DeveloperJune 17, 2026·10 min read

What Is Spec-Driven Development? The Beginner's Guide (2026)

Spec-driven development writes a formal specification before any code is generated — the spec is the source of truth, code is the output. Learn how SDD works, what EARS notation is, and which of the 6 major SDD tools to use.

Spec-driven development (SDD) is a software development methodology where a formal specification is written and approved before any code is generated. The specification — not the chat prompt and not the developer's memory of a conversation — is the source of truth. Code is the build output. If the code does not match the spec, the spec wins.

SDD emerged in 2025 as a direct, structural response to a specific and well-documented failure mode: AI coding agents that produce plausible code that drifts from intent, hallucinates APIs, and degrades as projects scale. By mid-2026, every major AI coding tool — Amazon Kiro, GitHub Spec Kit, Claude Code, Cursor, BMAD-METHOD — has shipped its own flavour of spec-driven development.

What is the problem SDD solves?

The failure mode that SDD addresses has a name: vibe coding. Vibe coding is the practice of iterating on AI-generated code through conversational prompts, accepting whatever the agent produces, and moving on. It works remarkably well for small, self-contained tasks. It falls apart for anything that spans multiple files, involves integration contracts, or needs to be maintained by someone other than the person who originally prompted it.

Three specific failure modes that vibe coding produces at scale:

  • Context blindness: AI agents have no memory of previous sessions. Without a spec, each new session starts from zero — the agent cannot know what was decided in previous conversations, what constraints were established, or why certain architectural choices were made.
  • Specification drift: Without a written spec, the implementation is the spec. As the codebase grows, early design decisions become implicit constraints that agents violate because they are not documented anywhere.
  • Unverifiable requirements: If requirements live only in a chat history, there is no systematic way to check whether the implementation satisfies them. Testing verifies behaviour; only a spec can verify intent.

How does spec-driven development work?

The core SDD workflow has four phases, regardless of which tool you use:

PhaseWhat happensOutput
1. SpecificationRequirements are written in structured natural language before any codeSpec file (Markdown or YAML)
2. PlanningSpec is decomposed into a technical design and ordered task listArchitecture doc + task breakdown
3. ImplementationAgent generates code against the approved spec, not a raw promptCode that satisfies spec acceptance criteria
4. VerificationGenerated code is checked against the spec — automatically or via checklistPass/fail against spec requirements

The critical distinction from vibe coding is phase 1. In SDD, the agent cannot begin writing code until a specification has been reviewed and approved by a human. The spec is a gate, not a suggestion.

Spec-driven development vs vibe coding — workflow comparisonLeft column: vibe coding — prompt → code → drift → confusion loop. Right column: SDD — spec → plan → tasks → implementation → verify → done.❌ Vibe Coding✓ Spec-Driven DevelopmentPromptNatural language ideaAI generates codeNo grounding documentLooks right?Manual review onlyDrift accumulatesEach session starts freshConfusion / reworkContext lost between sessionsendless loopSpecificationEARS requirements written firstHuman reviewSpec approved before code startsPlan + tasksArchitecture & ordered task listImplementationAgent codes against the specVerify ✓Checklist / CI validates vs specThe spec is the gate — no code generation until the spec is approved
Vibe coding loops on confusion; SDD gates implementation behind an approved specification

What is EARS notation?

EARS stands for Easy Approach to Requirements Syntax. It is a structured natural language format for writing requirements that AI agents can parse unambiguously. Most SDD tools — including Amazon Kiro and GitHub Spec Kit — use EARS for their spec files.

EARS uses five requirement templates:

  • Ubiquitous: "The system shall [action]." — always-true requirements
  • Event-driven: "When [event], the system shall [response]."
  • State-driven: "While [state], the system shall [action]."
  • Conditional: "Where [condition], the system shall [action]."
  • Optional: "Where [feature] is included, the system shall [action]."

A spec written in EARS is precise enough for an agent to validate implementation against, yet readable enough for a non-engineer product manager or stakeholder to review. That dual readability is why EARS has become the standard spec language for AI-assisted development in 2026.

SDD vs TDD — are they the same?

Spec-driven development and test-driven development (TDD) are complementary methodologies that operate at different levels of abstraction. They are not competing approaches.

DimensionSpec-Driven DevelopmentTest-Driven Development
Level of abstractionFeature / system levelFunction / unit level
Written beforeImplementation beginsEach function is written
FormatNatural language (EARS) or YAMLExecutable test code
Verified byAgent checklist or CI/CD schema validationTest runner (Jest, Pytest, etc.)
Answers the questionDoes the feature do what was intended?Does the function behave correctly?

Most mature SDD workflows produce user stories and acceptance criteria that map directly to TDD test cases. The spec defines what to test; TDD defines how to test it. Teams using both together get specification coverage at the feature level and execution coverage at the unit level.

The 6 main SDD tools in 2026

The SDD tool landscape has consolidated around six distinct approaches, each suited to a different team profile and project type:

ToolTypeBest forCost
Amazon KiroAgentic IDEStructured requirements + AWS teams$19/month (Pro)
BMAD-METHODOpen-source frameworkComplex greenfield, exhaustive docsFree (high API token cost)
GitHub Spec KitOpen-source CLIAgent-agnostic multi-tool teamsFree (MIT)
Claude CodeCLI agentDeep reasoning, brownfield codebasesFrom $20/month
CursorAI IDESpeed + lightweight spec constraints$20/month (Pro)
OpenSpecOpen-source frameworkCI/CD-native, YAML specs, fast iterationFree (MIT)

How to get started with spec-driven development

The lowest-friction starting point in 2026 is GitHub Spec Kit — free, MIT-licensed, works with every major AI coding agent, and the four-command workflow (/specify → /plan → /tasks → /implement) maps cleanly onto any existing development process.

A practical first session:

  • Install Spec Kit and run /constitution to create your project's architectural principles file. This is the highest-leverage step — it prevents entire categories of architectural drift on all future features.
  • Pick one upcoming feature. Run /specify to generate a spec from a natural language description. Review it carefully — this is where you invest the planning time that saves debugging time later.
  • Run /plan to generate a technical design, then /tasksto break it into implementable steps.
  • Use your preferred AI coding agent (Cursor, Claude Code, Copilot) to implement against the task list. The spec file is always in context.
  • Run /checklist to verify the implementation against spec acceptance criteria before merging.

Teams typically see the productivity benefit within the first two features — not because writing specs is fast, but because the debugging and rework cost drops sharply when the agent is working from a verified target rather than a remembered conversation.

Is spec-driven development worth the overhead?

The honest answer is: it depends on the complexity and longevity of what you are building. A useful framework:

  • Use full SDD: multi-file features, integrations with external APIs, features that will be maintained by other developers, regulated industry requirements, anything where "almost right" has high downstream cost.
  • Use lightweight SDD (.cursor/rules or a CLAUDE.md file): solo projects, rapid prototypes, features where you are confident in scope and the main risk is code quality rather than requirement drift.
  • Skip SDD: true throwaway scripts, one-off data transformations, debugging sessions, simple CRUD endpoints with no domain complexity.

The "Spec Tax" — the time investment in writing and reviewing a spec before touching code — is real. Teams that treat SDD as optional tooling and apply it selectively by feature complexity get more value from it than teams that mandate it uniformly for every task.

Official references and further reading

These three sources are the canonical repositories and documentation for the leading open-source spec-driven development tools.

  • GitHub Spec Kit — Official Repository — The MIT-licensed GitHub Spec Kit repository with 90,000+ stars, full workflow documentation for the /specify, /plan, /tasks, /implement, and /checklist commands, and the EARS notation constitution template.
  • BMAD-METHOD — Official Repository — The MIT-licensed BMAD-METHOD repository with ~49,000 stars, installation instructions for all 19+ agent personas, and workflow documentation for the full planning-to-implementation cycle.
  • Amazon Kiro — Official Documentation — Kiro's official documentation covering the three-phase spec workflow (requirements → design → tasks), Agent Hooks configuration, Steering files for architecture enforcement, and the EARS notation format used for spec files.

Key takeaways

  • Spec-driven development writes a formal specification before any code generation begins. The spec is the source of truth; code is the output.
  • SDD solves three vibe coding failure modes: context blindness, specification drift, and unverifiable requirements.
  • EARS notation (Easy Approach to Requirements Syntax) is the standard format for writing AI-readable specs — precise enough for agents, readable enough for humans.
  • SDD and TDD are complementary: specs define what to build at feature level; TDD verifies it works at unit level.
  • GitHub Spec Kit is the lowest-friction starting point — free, agent-agnostic, and installs in minutes.

Frequently asked questions

Do I need to use a specific AI tool to do spec-driven development?

No. SDD is a methodology, not a tool. You can implement spec-driven workflows with any AI coding agent by maintaining a spec document (Markdown or YAML) in your repository and including it in context when generating code. Tools like GitHub Spec Kit, BMAD, and Amazon Kiro provide structure and automation on top of that core practice, but the methodology itself is tool-agnostic.

What is a "constitution file" in spec-driven development?

A constitution file (used by GitHub Spec Kit and BMAD) is a project-level document that defines architectural principles, coding standards, and constraints that apply to every feature — written in EARS notation. Examples: "The system shall use TypeScript strict mode," "The system shall reject PRs that lower test coverage below 80%." The constitution is the spec for the codebase itself, ensuring every new feature is built consistently with architectural decisions already made.

How is spec-driven development different from writing technical documentation?

Technical documentation (READMEs, API docs, architecture diagrams) describes what was built after it was built. Specs describe what should be built before it is built. The key distinction: a spec is an active constraint on agent behaviour during generation. Documentation is a passive record after the fact. In SDD, the spec also typically becomes the foundation of the post-implementation documentation — they are the same document at different lifecycle stages.

What is the difference between Amazon Kiro and GitHub Spec Kit?

Kiro is a commercial agentic IDE — spec creation, code generation, and Agent Hooks (event-driven automation) all run inside a VS Code-based editor with a proprietary agent layer. GitHub Spec Kit is a free, open-source CLI that works with any AI coding agent — Copilot, Claude Code, Cursor, Gemini CLI, and others. Kiro is simpler to onboard for teams new to SDD; Spec Kit is more portable for teams using multiple AI tools simultaneously.

Is spec-driven development only for large teams?

No — solo developers arguably benefit more per hour invested, because the spec serves as the external memory that a single developer's context window cannot hold across sessions. The most common testimonial pattern in the BMAD and Spec Kit communities is solo developers describing how SDD eliminated the experience of returning to a project after two weeks and having no idea why certain decisions were made.

Free tool

Try the Spec-Driven Development Tools

Use our free spec-driven development tools to calculate results instantly — no signup required.

Open Spec-Driven Development Tools
Tags:spec-driven developmentsddai codingkirobmadgithub spec kitvibe codingears notation