Spec-driven development (SDD) treats a versioned specification - not the code - as the source of truth. You write what the system should do, plan how, break work into tasks, then implement. When requirements change, you edit the spec first and regenerate or update the code against it.
That sounds old-school until you watch AI agents vibe-code a feature that almost matches intent, invents APIs, and quietly contradicts yesterday's decisions. In 2026, SDD is the bridge between powerful agents and reliable shipping.
Why SDD showed up now
LLM coding agents fail in three predictable ways:
- Intent drift - "add login" is too vague; the model invents defaults- Context decay - past the context window, older decisions get ignored- Unverifiable output - without acceptance criteria, review never endsA precise spec fixes all three. The phrase you keep seeing: the spec is the prompt. ## The four phases
- Specify - user stories, acceptance criteria, NFRs, out of scope- Plan - architecture, data model, APIs, constraints from a project constitution- Tasks - atomic checklist items a junior (or agent) can execute- Implement - code against the tasks, verify against the criteriaHuman checkpoints at each boundary matter. Skipping them is vibe coding in a costume. ## EARS notation (the part agents actually follow) EARS (Easy Approach to Requirements Syntax) gives five patterns that collapse fuzzy asks into testable claims:
- Ubiquitous - The system shall log every authentication attempt.- Event-driven - WHEN a user submits login THE system SHALL validate credentials.- State-driven - WHILE sync is in progress THE system SHALL show a progress indicator.- Unwanted - IF login fails three times in 60s THEN THE system SHALL lock the account.- Optional - WHERE MFA is enabled THE system SHALL require a TOTP code.If it is not EARS-clear, an agent will guess. Guessing is expensive. ## Tooling landscape (quick map)
- GitHub Spec Kit - open, model-agnostic reference path- AWS Kiro - agentic IDE with hooks after each action- Claude Code + skills - terminal SDD loop- Cursor Plan Mode + AGENTS.md - IDE-first constitution + plan- OpenSpec / BMAD / Tessl - lighter or compliance-focused variantsPick based on where you already work. Portability usually means Spec Kit. AWS shops often pick Kiro. Cursor teams lean on Plan Mode plus a constitution file. ## SDD vs vibe coding vs TDD Vibe coding is great for spikes. SDD is for anything that ships. TDD says write the test first. SDD says write the whole intent first - behavior, constraints, edge cases - then generate code and tests from that. They complement each other; they are not rivals. ## Pitfalls to avoid
- Over-speccing implementation details- Under-speccing behavior ("make it nice")- Skipping a project constitution- Keeping specs in Notion while code lives in git- Letting agents merge without phase reviews## Related reading
- BMAD method for website content- Connect BCMS MCP to ChatGPT- Why AI depends on structured contentWant the full tool comparison, Claude/Copilot/Cursor workflows, and a worked example? Read the complete guide: Spec-Driven Development (SDD): The Definitive 2026 Guide.
Top comments (0)