spec-validate

v1.0.1

Comprehension validation, review gating, and approval state for spec-kit artifacts — staged-reveal quizzes, peer review SLA, and a hard gate before /speckit.implement.

Community extension — Independently maintained. Use at your own discretion. Learn more

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

  1. Copy spec-kit-spec-validate/ into your project's .specify/extensions/ directory
  2. Register the extension with spec-kit (the hooks in extension.yml are auto-detected)
  3. Optionally copy config-template.yml to .specify/extensions/spec-validate/spec-validate-config.yml and 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:

SettingDefaultDescription
complexity.low_max_items3Specs with ≤N items = low complexity
complexity.high_min_items8Specs with ≥N items = high complexity
always_critical_sectionsSee configSections always treated as critical
review.require_on_any_misstrueForce review on wrong answers
review.sla_hours24Hours before review times out
review.timeout_policywarning-with-author-reasonTimeout behavior
gate.block_without_validationtrueBlock if not validated
gate.allow_maintainer_overridetrueAllow override with reason
privacy.personal_metrics_visibilityself-and-maintainersWho sees personal metrics
question_generation.modedeterministic-firstDistractor 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

2 stars

Version

1.0.1release
Updated 29 days ago

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

Owners

License

MIT