spec-first, Spec Kit and BMAD
All three write a spec before the code. They differ in what gets checked, and when.
| Question | spec-first | Spec Kit | BMAD |
|---|---|---|---|
| Spec checked against the code before the build | A script resolves every cited file and line, then a fresh reviewer answers BUILD, BUILD WITH CUTS or REFUSE | analyze checks spec, plan and tasks against each other | Not described |
| Code checked against the spec after the build | Done criteria, and the verify stages in the commit gate | converge compares the code with the spec and adds missing tasks | BMad Loop builds and verifies an epic unattended |
| Commit blocked while a check is red | Built in | Possible through extensions | Not described |
| Decision log per change | Chose, over, why: one file per spec | decision.md for assessments | Decisions carried as durable context |
| Agents working in parallel | A worktree per spec; ids from the date plus random hex | Spec numbers come from counting the existing specs | Not described |
| Spec format | YAML with a schema | Markdown | Markdown |
| Breadth | A focused method: nine skills and a gate | Dozens of agent integrations, extensions, presets, bug and assessment processes | Personas for product, architecture, UX, development and testing, with modules |
From each project's own documentation on 28 October 2026: github/spec-kit and its spec-driven.md, and bmad-code-org/BMAD-METHOD. "Not described" means their documentation doesn't say, not that the feature can't exist. Corrections are welcome as a GitHub issue.
When to pick which
Spec Kit and BMAD cover more ground: more agents, more roles, more process. Pick one of them if you want a broad framework from idea to plan.
spec-first is narrower and stricter. Pick it if the failures you see are wrong assumptions about existing code, specs that don't match what was built, and "done" that wasn't. It checks the spec against the code before the build and blocks the commit until your checks pass.
Read the field report for what 1,300 specs of this looked like in practice.