Spec-driven development (SDD) is a software engineering methodology where a formal, machine-readable specification serves as the authoritative source of truth and the primary artifact from which implementation, testing, and documentation are derived. Unlike traditional development where documentation is often retrospective, spec-driven development mandates that system intent be explicitly defined in a structured formatâÂÂsuch as OpenAPI or MarkdownâÂÂbefore implementation begins. In the context of AI-assisted engineering, spec-driven development serves as a rigorous framework that transforms specifications into executable blueprints for coding agents, preventing the inconsistencies associated with ad-hoc "vibe coding".
The roots of spec-driven development trace back to 1960s NASA workflows and early formal methods that prioritized logic verification before coding. The methodology was academically formalized in 2004 as a synergy between test-driven development (TDD) and design by contract (DbC), before seeing a 2020s renaissance driven by LLM-powered agentic workflows.
Modern spec-driven development typically follows a four-phase lifecycle:
Proponents argue this approach represents a shift toward architecture as an executable control plane, where implementation code is treated as a transient byproduct of the maintained specificationâÂÂa concept sometimes referred to as "spec-as-source".
While complementary, spec-driven development is often distinguished from similar practices by its focus on high-level intent: