Definition
A development approach in which an explicit, versioned specification materially guides implementation and verification. The specification records what the system should do, the constraints it must respect, and enough acceptance evidence to distinguish a valid implementation from a merely plausible one.
In agentic work, the specification becomes durable context for more than one model call. It can drive planning, implementation, test generation, review, and later change. Good specifications preserve goals, behavior, non-goals, invariants, risk, assumptions, examples, and unresolved questions at the level the task needs. They do not have to dictate every implementation detail.
Older than the current AI wave
The practice and phrase predate generative AI. A 2004 paper by Jonathan Ostroff, David Makalsky, and Richard Paige presented agile specification-driven development using executable tests and contracts as complementary specifications. Current AI-assisted usage revived and broadened the term because agents can turn written intent into code quickly. The lineage matters: SDD is not simply a new name for writing a long prompt.
Keep the specification alive
A frozen spec can encode yesterday's misunderstanding with great precision. Treat it as a governed artifact that changes through feedback, records rationale, and remains connected to evidence and implementation. If the implementation reveals a missing decision, update the spec or record the exception rather than allowing the code to become the undocumented source of truth.
Distinguish it from nearby terms
Requirements capture needs and constraints. A prompt is an instruction sent to a model and may be disposable. Tests, contracts, schemas, and formal checks are executable forms of selected specification. Test-driven development begins from tests; spec-driven development can include them but usually carries broader intent and rationale.
Check your understanding
An agent implements every acceptance example, but users still cannot complete the real task because the spec omitted an authorization rule. Did SDD succeed? No. The implementation matched an incomplete artifact. Repair the missing intent, add evidence for it, and keep the change history visible.