validate subcommand checks that all required task artifact files are present, that evidence.json and verdict.json are valid JSON with the correct top-level keys, that status values are within the allowed set, and that task_id fields in both JSON files match the requested --task-id.
Run validate before sign-off to confirm the full artifact set is complete and consistent.
Usage
Flags
Task identifier to validate. Must match the
task_id field inside evidence.json and verdict.json.Optional working directory inside the repo. Defaults to the current directory. The script walks up from this path to discover the git repository root.
What validate checks
JSON parseability
Attempts to parse
evidence.json and verdict.json. A parse failure is recorded as an error.Top-level key presence
Checks that
evidence.json contains all required keys: task_id, overall_status, acceptance_criteria, changed_files, commands_for_fresh_verifier, known_gaps.Checks that verdict.json contains all required keys: task_id, overall_verdict, criteria, commands_run, artifacts_used.Allowed status values
Checks that
overall_status in evidence.json and overall_verdict in verdict.json are one of PASS, FAIL, or UNKNOWN.Checks that every item in acceptance_criteria (evidence) and criteria (verdict) has a status field that is also one of PASS, FAIL, or UNKNOWN.Exit code
0— all required files are present and all checks pass.1— one or more files are missing, or one or more validation errors were found.
JSON output
validate prints a JSON object to stdout regardless of exit code:
| Field | Type | Description |
|---|---|---|
valid | boolean | true only when missing_files and errors are both empty. |
missing_files | array of strings | Absolute paths to required files that do not exist. |
errors | array of strings | Validation error messages from JSON structure and consistency checks. |