External Validation

External validation is an optional post-release evidence path for v1.0. Local automation proves that release commands, examples, docs, benchmarks, and schema contracts exist; outside-user evidence can later prove that a person outside the implementation session can adopt the workflow without private context.

Status: optional for the v1.0 release. Attach a dated issue, discussion, case study, or signed-off note when one becomes available.

Who Should Run This

Use someone who has not contributed to the current implementation session. The best validator is a developer who can install Python packages, run shell commands, and evaluate whether Zaxy's public positioning as Coordinator Memory for Agent Teams matches the actual workflow.

The validator should work from public docs and release artifacts only. Do not walk them through private repo history, hidden environment variables, or untracked local state. If they need help, record the exact gap and whether the fix belongs in docs, zaxy doctor, zaxy init, an example, or a release gate.

Validation Paths

Run at least one path. Run more than one if the release decision depends on a specific audience.

First-run local path

zaxy init
zaxy memory bootstrap --eventloom-path .eventloom
zaxy memory checkout "current project memory and next useful action" --eventloom-path .eventloom
zaxy doctor --beta-readiness

For the machine-checkable report, first_run_local reports must include zaxy init, zaxy memory bootstrap, zaxy memory checkout, and zaxy doctor --beta-readiness.

This path validates install, onboarding, Memory Bootstrap, Memory Checkout, doctor guidance, and the no-sidecar local default.

Coordinate workflow path

python examples/coordinate_three_worker_project.py

This path validates the v1.0 product thesis: multiple workers can report cited findings, produce reviewable state, resolve conflicts, promote accepted memory, assemble checkout context, and create a handoff without reading raw Eventloom JSONL.

Clean-repo release UAT path

scripts/beta-uat.sh

This path validates the scripted clean-workspace flow used by the release gate. It is stronger than the first-run local path, but it should not replace a human reading the docs and explaining what was confusing.

Other documented path

If a validator uses another documented v1.0 path, the machine-checkable other_documented reports must include at least one substantive Zaxy validation command. arbitrary or unknown zaxy command text does not count as validation evidence.

Required Evidence

Attach evidence in a GitHub issue, discussion, release note, or case-study draft. The evidence must include:

Report Template

For release-gate use, copy docs/examples/external-validation-report.example.json, change status from example to validated, replace the placeholder values, and run:

python scripts/check-external-validation.py path/to/external-validation-report.json

For teams that choose to require external evidence, pass the same report path directly:

scripts/release-check.sh --root . --require-external-validation --external-validation-report reports/external-validation/external-validation-report.json

In required release mode, custom --external-validation-cmd values must be a single python scripts/check-external-validation.py <report-path> invocation with no shell suffixes.

The checker validates the zaxy.v1.external-validation-report contract and rejects pending reports, reports from the current implementation session, reports whose validator name identifies the implementation session, reports whose validator name identifies the implementing agent, unexpected sidecar or credential requirements, failed release decisions, missing or vague shell evidence, vague Python version evidence, vague install-source evidence, missing evidence links, evidence links that are not an absolute http or https URL, bare-origin, single-label hostname, credential-bearing, local-only, private-network, internal-only domain, or reserved example-domain evidence URLs, reports with repository home pages, collection pages, unsupported GitHub repo paths, GitHub query strings, URL fragments, trailing slashes, empty path segments, or mixed-case artifact keywords, noncanonical, nonpositive, nonnumeric, or malformed GitHub issue, discussion, or pull-request links, plural /pulls/<number> links, malformed GitHub Actions run links, GitHub latest-release redirects, vague or malformed GitHub release tag links, branch-like, short-SHA, or malformed GitHub commit links, GitHub blob, raw, or tree file links with moving refs, short refs, or missing file paths, or raw.githubusercontent.com links with moving refs, short refs, or missing file paths instead of evidence artifacts, with missing or zero timing for first useful checkout, where command entries do not record executed commands, reports where command entries contain multiple lines, reports where command entries contain shell control operators, including background operators and shell comments, reports where command entries are only help or version probes, reports where commands match the selected validation_path incorrectly, first_run_local reports missing any required first-run command marker, other_documented reports missing a substantive Zaxy validation command, other_documented reports with only unknown zaxy command text, and reports that do not support the v1.0 Coordinator Memory for Agent Teams positioning. In a valid report, commands match the selected validation_path.

zaxy doctor --beta-readiness reports this as external_validation_evidence. Missing default evidence is OK for the v1.0 release; a validated report at reports/external-validation/external-validation-report.json keeps that check green with attached evidence. To check a report before moving it into the default reports directory, run:

zaxy doctor --beta-readiness --external-validation-report path/to/external-validation-report.json

For a hard local policy gate, require that evidence:

zaxy doctor --beta-readiness --require-external-validation --external-validation-report reports/external-validation/external-validation-report.json
## External validation report

- Validator:
- Date:
- Project or environment:
- Zaxy version or commit:
- Operating system:
- Shell:
- Python version:
- Install source:
- Validation path:
- Exact commands:
- Time to first useful checkout:
- Time to first successful Coordinate result, if applicable:
- Unexpected sidecar, credential, or password requirement:
- What worked:
- Friction or failure:
- Least useful error or doc section:
- Suggested docs, doctor, init, example, or release-gate change:
- Release decision:

Acceptance Criteria

External validation is acceptable when the report proves that at least one outside user or project ran a documented v1.0 path, recorded the outcome, and made a release decision that can be reviewed independently.

Passing validation does not require a perfect experience. It does require specific evidence and a decision. A failed validation is still useful evidence for follow-up work, but it does not block the v1.0 release unless maintainers explicitly opt into --require-external-validation.

After the report is attached, update the optional evidence reference in docs/archive/v10-gate-audit.md only if the report proves the requirement. Then check the matching optional review item in docs/archive/release-validation-checklist.md.

Related references: first-run-validation.md, coordinate-quickstart.md, v10-gate-audit.md, release-validation-checklist.md, testing.md, and README.md.