Validate plan
Read the plan contract. The bundled scripts require Python 3 and PyYAML; missing dependencies are a reported blocker.
- Resolve the explicit plan path. If omitted, inspect execution-plan candidates in docs/plans and choose only an unambiguous match; do not pick a PRD by modification time.
- Run
python3 <this-skill>/scripts/validate_plan.py <plan.md>. Use --json for parsed task metadata, diagnostics and the exact-byte plan hash. - Review what the script cannot prove: observable/relevant acceptance, repo command validity, actual file ownership, requirement coverage, consistent closed decisions, referenced decision records and unresolved product choices.
- Return PASS only when both structural and semantic checks pass. Distinguish structural success from readiness. Return all failures with task IDs and remedies.
- When called from an authorized planning/execution workflow, repair scoped issues and revalidate; when asked only for review, return findings without changing files.
The execution, requirements
and reporting references provide the shared downstream
contract. Before a final execution success claim run
python3 <this-skill>/scripts/validate_report.py <report.json> --plan <plan.md>.
Examples
- Two independent tasks own the same lockfile → FAIL; assign an owner and dependency.
- A syntactically valid plan says "the feature works" → semantic FAIL; require proof.
Closed decisions and open decisions
Validate the supplied decisions for conflicts and source authority. Do not reopen them merely because another design is possible.
Do not
Do not run acceptance commands during a read-only validation, equate script exit 0 with complete readiness, or schedule a malformed dependency graph with --force.
Codex integration
Use $validate-plan and native Codex tools. Read AGENTS.md; preserve current host permissions. Private agent briefs live under execute-plan/references/agent-prompts. Legacy references are archival and are not part of the active contract.