Spec-Driven Development
Last updated: 2026-07-174 min read
Spec-driven development (SDD) makes requirements, design, tasks and acceptance criteria explicit before generation. A specification can improve explicitness without being complete or correct; implementation, tests, verification and operational evidence remain separate artifacts and decisions.
Contents
Where SDD came from
SDD emerged in 2025 as the direct counter-movement to prompt-and-hope coding: agents produce plausible code that drifts from intent, invents APIs, and decays as projects scale. The proposed fix is old-fashioned and radical at once - agree on a written specification before generation, and keep it authoritative during implementation. By 2026 every major tool ecosystem ships an SDD flavor; GitHub’s Spec Kit documents the open-source workflow; support and popularity are mutable vendor facts, so evaluate the current version directly.
The movement validates something this site argues from the verification side: the missing artifact in AI coding is written intent. SDD builds that artifact at feature scale; machine-checkable specifications build it at run scale. The philosophies meet in the middle.
How the workflow actually looks
- Requirements.What the feature must do, phrased as user stories with acceptance criteria - in Kiro’s flow the first of three gated phases, in Spec Kit the
/specifystep. - Design. Architecture decisions, data models, interfaces - agreed before code exists, so the agent inherits decisions instead of making them silently.
- Tasks. The design broken into small, ordered, individually reviewable work items - the unit an agent executes.
- Implementation against the spec. The agent codes task by task; humans review against the agreed documents rather than reconstructing intent from diffs.
Vendor and practitioner reports describe benefits in selected settings, but they do not establish a general productivity result. The secondary guide summarizes examples whose setup, attribution and measurement limits require teams to establish a dated local baseline for document effort, rework, defects and review load.
An honest look at the tooling
| GitHub Spec Kit | AWS Kiro | Lightweight per-run spec | |
|---|---|---|---|
| Form | Open-source CLI + templates, agent-agnostic (30+ agents). | Agentic IDE with gated requirements → design → tasks flow. | A few lines per run: goal, boundaries, criteria. |
| Strongest at | Feature-scale work across mixed toolchains; community momentum. | Guided, integrated flow - the clearest mental model of the three. | Bug fixes and single-run tasks; zero setup. |
| Weakest at | Small fixes - the ceremony dwarfs the change. | Verbosity: practitioners report it 'way too verbose for a small bug'. | Multi-run features - no design memory between runs. |
| Verification story | Spec defines the plan; checking results against it stays your job. | Same - phases gate planning, not post-run verification. | Feeds directly into a spec-vs-implementation check. |
Honest limits - from people who used it
- Agents don’t reliably obey their own specs. The Fowler-team analysis notes that even with all the templates and checklists, “the agent ultimately did not follow all the instructions” - a written plan is not an enforced plan.
- Document review can exceed code review. Several practitioners report they would rather review the code than three markdown files describing it. SDD shifts effort upstream; it does not remove it.
- Specs age. A spec that is not maintained becomes confidently wrong documentation - worse than none, because it looks authoritative.
- SDD plans forward; it does not check backward. The workflow gates what gets built, but the question “does the merged code actually match the spec?” still needs an independent spec-vs-implementation check - especially given the first limit above.
Where Reality Graph fits
SDD and Reality Graph attack the same gap from opposite ends: SDD makes the intent explicit before generation, Reality Graph verifies the result against intent after it - with boundary checks, validation the model did not author, and an evidence report per run. Teams using Spec Kit or Kiro bring excellent Solls; Reality Graph restates them as the contract a single run is measured against and closes the loop those tools leave open.
SDD gives you
- Agreed requirements and design before generation
- Explicit requirements, assumptions, and acceptance criteria for review
- Reviewable task units instead of monolithic diffs
- A shared reference for humans and agents
It does not
- Make agents obey the spec - runs still need verification
- Pay off on small fixes - right-size the ceremony
- Keep itself up to date - specs age without care
- Replace tests, review, or a human merge gate
If these boundaries fit how your team wants to ship:
FAQ
- What is spec-driven development and how does it work with AI agents?
- Spec-driven development (SDD) makes requirements, design decisions, task breakdown and acceptance criteria explicit before generation. Tools such as GitHub Spec Kit and AWS Kiro structure those artifacts into phases. The specification is still a human-authored model that can be incomplete, ambiguous, stale or wrong; it guides implementation but does not guarantee it.
- How is SDD different from just writing checkable task specifications?
- Same philosophy, different weight class. A checkable task specification is a lightweight per-run artifact with goal, boundaries and criteria; SDD can span requirements, design and tasks across a feature. Neither form is automatically complete or machine-checkable: schemas, acceptance checks and tests cover only the encoded properties.
- Does spec-driven development replace tests?
- No. The spec defines what must be true; tests are one way of checking it. SDD tools generate task lists that usually include writing tests, but a spec that nobody validates against remains a plan, not a proof. The verification step - comparing what was built against what was specified - is separate work, whichever tool wrote the spec.
- Is SDD worth it for small teams?
- Selectively. Workflow fit, task size, specification quality and review cost vary by team. Vendor and practitioner examples are observations from particular setups, not a productivity guarantee. Measure document effort, rework, defects and review load against a local baseline before adopting a universal prescription.
- What are the main criticisms of SDD?
- Three recur in practitioner reports: the document overhead dwarfs small tasks, agents do not reliably follow their own specs ('I frequently saw the agent ultimately not follow all the instructions'), and reviewing several markdown files can be more work than reviewing the code itself. None of these kill the idea - they argue for right-sizing it and for verifying results independently of the spec pipeline.
- Which SDD tool should we try first?
- GitHub documents Spec Kit as an open-source toolkit; AWS documents Kiro's requirements-design-tasks flow. Product support and integrations change, so verify the dated vendor documentation for the version you evaluate. Choose through a bounded trial and independently verify the resulting implementation.
Keep reading
Sources
- Martin Fowler / Birgitta Böckeler - practitioner analysis of Kiro, Spec Kit, and Tessl (2026); observations are setup-specific
- GitHub vendor documentation - Spec-driven development open-source toolkit (Spec Kit, 2025); product facts may change
- GitHub vendor repository - Spec Kit documentation (accessed 2026); verify evaluated version
- BCMS secondary guide - Spec-Driven Development examples (2026); not independent productivity evidence
- MarkTechPost secondary comparison - Kiro, BMAD, GSD and more (2026); feature claims require vendor verification