spec-validate
v1.0.1Comprehension validation, review gating, and approval state for spec-kit artifacts — staged-reveal quizzes, peer review SLA, and a hard gate before /speckit.implement.
Spec Validate
Comprehension validation, review gating, and approval state for spec-kit artifacts.
Overview
Spec Validate ensures developers actually read and understand generated specifications before building. It adds a staged-reveal multiple-choice quiz, peer review workflow, and a hard gate before implementation.
Install
- Copy
spec-kit-spec-validate/into your project's.specify/extensions/directory - Register the extension with spec-kit (the hooks in
extension.ymlare auto-detected) - Optionally copy
config-template.ymlto.specify/extensions/spec-validate/spec-validate-config.ymland customize
Commands
/speckit.spec-validate.validate
Validate your comprehension of the current spec. Presents sections one at a time with multiple-choice questions for critical items.
/speckit.spec-validate.validate
- Specs with 0 critical items are auto-passed
- Wrong answers are recorded (no retries) and may trigger peer review
- Results are stored as JSON with a SHA-256 content hash
/speckit.spec-validate.validate-tasks
Same validation mechanism applied to tasks.md.
/speckit.spec-validate.validate-tasks
/speckit.spec-validate.gate
Hard gate before implementation. Runs automatically as a mandatory before_implement hook.
- Blocks when: no validation, failed validation, stale hash, pending review, changes requested
- Allows when: validated + review met, stale + review approved, maintainer override
- Warns when: review timed out + author self-approved
/speckit.spec-validate.review
Peer review for validated specs. Reviewer sees missed items highlighted.
/speckit.spec-validate.review
- Approve, request changes, or add notes
- 24-hour SLA — times out to warning with author self-approval
/speckit.spec-validate.status
Read-only display of current validation and approval state.
/speckit.spec-validate.status
/speckit.spec-validate.analytics
Private and aggregated comprehension analytics.
/speckit.spec-validate.analytics
Workflow
/speckit.specify → spec.md generated
↓
[after_specify hook] → "Run comprehension validation?" (optional)
↓
/speckit.spec-validate.validate → staged quiz
↓
/speckit.tasks → tasks.md generated
↓
[after_tasks hook] → "Run task validation?" (optional)
↓
/speckit.spec-validate.validate-tasks → staged quiz
↓
/speckit.implement
↓
[before_implement hook] → gate check (MANDATORY)
↓
├── allowed → proceed
├── blocked → STOP, show actions needed
└── warning → proceed with warnings
Configuration
Edit .specify/extensions/spec-validate/spec-validate-config.yml:
| Setting | Default | Description |
|---|---|---|
complexity.low_max_items | 3 | Specs with ≤N items = low complexity |
complexity.high_min_items | 8 | Specs with ≥N items = high complexity |
always_critical_sections | See config | Sections always treated as critical |
review.require_on_any_miss | true | Force review on wrong answers |
review.sla_hours | 24 | Hours before review times out |
review.timeout_policy | warning-with-author-reason | Timeout behavior |
gate.block_without_validation | true | Block if not validated |
gate.allow_maintainer_override | true | Allow override with reason |
privacy.personal_metrics_visibility | self-and-maintainers | Who sees personal metrics |
question_generation.mode | deterministic-first | Distractor generation strategy |
Solo Developer Mode
Solo developers skip peer review entirely. Self-validation is the only gate, regardless of artifact complexity. No 24-hour timeout wait needed.
Troubleshooting
"BLOCKED: Spec has not been validated"
Run /speckit.spec-validate.validate before attempting implementation.
"BLOCKED: Spec content has changed since validation"
Spec was edited after validation. Re-run /speckit.spec-validate.validate.
"BLOCKED: Reviewer requested changes"
Address reviewer feedback, update the spec, then re-validate.
"BLOCKED: Peer review is pending"
Wait for reviewer, or use maintainer override if urgent.
"WARNING: Review timed out after 24h SLA"
Reviewer didn't respond in time. Author self-approved — implementation proceeds with warning.
Privacy
- Git-tracked: Approval state, review outcomes, override reasons (visible in PRs)
- Local only: Wrong answers, distractor selections, personal accuracy (never in git)
- Team analytics: Aggregated only — no individual names on scores
License
MIT
Stats
Version
Install
Using the Specify CLI
specify extension add spec-validate --from https://github.com/aeltayeb/spec-kit-spec-validate/archive/refs/tags/v1.0.1.zip