Synopsis
aigon feature-validate <ID> [--dry-run] [--no-update]Flags
| Flag | Description |
|---|---|
--dry-run | Print the planned validation steps without executing anything |
--no-update | Run validation but don’t update any state or status files |
Description
feature-validate runs the validation commands defined in the feature spec’s ## Validation section and evaluates whether the acceptance criteria are met. It is used both as a manual check during development and as the gating step in feature-do --iterate mode — where failed validation triggers a fresh implementation attempt.
The command reads the spec from 03-in-progress/, parses the ## Validation commands, executes them, and reports which acceptance criteria passed, failed, or were skipped (along with brief reasoning for each outcome).
If the spec has no ## Validation section, the command reports that no commands were found and exits cleanly.
What it does
- Finds the feature spec in
03-in-progress/ - Parses the
## Acceptance Criteriachecklist items - Runs each command in the
## Validationsection - Evaluates which criteria passed, failed, or should be skipped
- Prints a summary:
Criteria: N passed, N failed, N skipped
Examples
# Validate feature 42 manually
aigon feature-validate 42
# Dry run — show planned validation without running anything
aigon feature-validate 42 --dry-run
# Validate without writing state updates
aigon feature-validate 42 --no-updateIn iterate mode
When you run feature-do <ID> --iterate, feature-validate is called automatically at the end of each iteration. A failed validation spawns a new implementation attempt with fresh context up to --max-iterations. A passing validation exits the loop.
Adding validation to your spec
In the feature spec, add a ## Validation section with shell commands:
## Validation
\`\`\`bash
npx playwright test tests/feature-42.spec.ts
node --test tests/integration/feature-42.test.js
\`\`\`These commands are run in the feature’s worktree directory.
Prefer targeted commands for the specific feature. Keep the repo-wide suite in your close or pre-push gate.
Related
feature-do—--iterateflag uses feature-validate as the loop gate- Feature Spec format — how to write the Validation section