{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreicarsmf3tb4hnprvvsuabskv3jun6qc5voyfpxsnllojbncda7thm",
"uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3monoirhanh42"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreieycflc3mqt7zj3rlmdamhdy6jhrcgjuqjoiuou4hu4bboieg4bl4"
},
"mimeType": "image/webp",
"size": 161396
},
"path": "/krlz/spec-driven-development-in-2026-what-it-is-the-tooling-and-how-teams-actually-use-it-2fk2",
"publishedAt": "2026-06-19T15:20:48.000Z",
"site": "https://dev.to",
"tags": [
"ai",
"programming",
"productivity",
"softwaredevelopment",
"[2602.00180] Spec-Driven Development:From Code to Contract in the Age of AI Coding Assistants",
"github",
"spec-kit",
"๐ค What is Spec-Driven Development?",
"โก Get Started",
"๐ฝ๏ธ Video Overview",
"๐ Community",
"๐ค Supported AI Coding Agent Integrations",
"๐ง Specify CLI Reference",
"๐งฉ Making Spec Kit Your Own: Extensions & Presets",
"๐ Core Philosophy",
"๐ Development Phases",
"๐ฏ Experimental Goals",
"๐ง Prerequisites",
"๐ Learn More",
"๐ Detailed Process",
"๐ฌ Support",
"๐ Acknowledgements",
"๐ License",
"uv",
"View on GitHub",
"Spec-Driven Development: From Code to Contract in the Age of AI Coding Assistants โ Deepak Babu Piskala, arXiv (Jan 2026)",
"Spec-Driven Development โ Thoughtworks (Medium)",
"Spec-Driven Development: The Definitive 2026 Guide โ BCMS",
"Spec Driven Development: The Fifth Generation of Programming โ Mofi Rahman, Google Cloud (Medium)",
"Same Patterns, New Hype: Spec-Driven Development โ Brandon Kindred (Medium)",
"Spec-Driven Development in 2026: The end of code as the center of development? โ Devoteam",
"Why the Future of Software Lies in Descriptions, Not Code โ esveo",
"What Is Spec-Driven Development? A Complete Guide โ Augment Code",
"GitHub Spec Kit"
],
"textContent": "_A field guide to the practice that's reshaping how software gets built with AI agents._\n\n> **TL;DR** โ Spec-Driven Development (SDD) makes a **precise, executable specification** the source of truth and treats code as a generated, verifiable artifact. The spec declares **intent** ; the code **realizes** it. In 2026 it went mainstream because AI agents are great at writing code and terrible at guessing what you meant.\n\n**Jump to:** Why now ยท Specs vs. executable specs ยท Maturity model ยท Workflow ยท Tooling ยท EARS ยท Worked example ยท Caveats ยท Bottom line\n\n## Why now? The \"vibe coding\" backlash\n\nThe movement defines itself against **\"vibe coding\"** โ the term Andrej Karpathy popularized in early 2025 for loosely prompting an AI and shipping whatever comes back. Vibe coding is great for throwaway prototypes and miserable for anything that has to be maintained.\n\nSDD is the disciplined counterweight: if AI writes most of the code, then the **specification becomes the highest-leverage artifact a human produces**. The skill that matters shifts from _typing the implementation_ to _defining the intent precisely enough that a machine can't get it wrong._\n\n## Raw specs vs. executable specs\n\nThis is the single most important distinction in the whole topic โ and the one most \"SDD explainers\" skip.\n\n| Traditional design docs | SDD specs\n---|---|---\n**Read by** | Humans | Humans **and** agents\n**Enforcement** | Advisory โ devs may diverge | Executable โ tests fail on drift\n**Lifecycle** | Goes stale, becomes archaeology | Living, continuously validated\n**Lives in** | A wiki nobody opens | The repo + CI/CD\n\n> \"Traditional specs are read by humans, while SDD specs are executed as BDD scenarios, API contract tests, or model simulations.\"\n> โ Deepak Babu Piskala, _Spec-Driven Development: From Code to Contract in the Age of AI Coding Assistants_ (arXiv, Jan 2026)\n\n\n\n\n\n## \n [2602.00180] Spec-Driven Development:From Code to Contract in the Age of AI Coding Assistants\n \n\nThe rise of AI coding assistants has reignited interest in an old idea: what if specifications-not code-were the primary artifact of software development? Spec-driven development (SDD) inverts the traditional workflow by treating specifications as the source of truth and code as a generated or verified secondary artifact. This paper provides practitioners with a comprehensive guide to SDD, covering its principles, workflow patterns, and supporting tools. We present three levels of specification rigor-spec-first, spec-anchored, and spec-as-source-with clear guidance on when each applies. Through analysis of tools ranging from Behavior-Driven Development frameworks to modern AI-assisted toolkits like GitHub Spec Kit, we demonstrate how the spec-first philosophy maps to real implementations. We present case studies from API development, enterprise systems, and embedded software, illustrating how different domains apply SDD. We conclude with a decision framework helping practitioners determine when SDD provides value and when simpler approaches suffice.\n\narxiv.org\n\n## The maturity model: three levels\n\nAlmost every serious 2026 source converges on the same ladder. Pick the rung you actually need โ not the most aggressive one.\n\n 1. **Spec-First** โ Specs seed the initial generation, then code is allowed to drift. Good for AI-assisted features and prototypes. Low overhead, no long-term guarantees.\n 2. **Spec-Anchored** โ Specs and code evolve together as living documentation; automated tests enforce alignment. Piskala's paper calls this **\"the sweet spot for most production systems.\"**\n 3. **Spec-as-Source** โ Humans edit **only** the spec; code is fully generated and never hand-edited. Eliminates drift by design โ but demands mature, trusted generation tooling. Still aspirational for most teams.\n\n\n\n\n flowchart TD\n A[\"<b>Spec-First</b><br/>specs seed generation,<br/>code is allowed to drift\"]\n B[\"<b>Spec-Anchored</b> ๐ฏ<br/>specs + code evolve together,<br/>tests enforce alignment\"]\n C[\"<b>Spec-as-Source</b><br/>humans edit only specs,<br/>code is fully generated\"]\n A -->|\"add living tests<br/>+ CI enforcement\"| B\n B -->|\"trust generation,<br/>stop hand-editing code\"| C\n style B fill:#dff3e4,stroke:#2ea44f,stroke-width:2px\n\n\n> ๐ฏ **Recommendation:** aim for **spec-anchored**. Spec-as-source is where the hype lives; spec-anchored is where the value is today.\n\n## The canonical workflow\n\nEvery major tool implements roughly the same pipeline, with a **human review gate at each phase boundary** to stop drift before it compounds:\n\n\n\n flowchart LR\n C[constitution] --> S[specify] --> CL[clarify] --> P[plan] --> T[tasks] --> I[implement] --> A[analyze]\n\n\nPhase | What happens\n---|---\n**Constitution** | Project-wide rules the agent must always obey (language, frameworks, testing, deps)\n**Specify** | _What_ and _why_ : user stories + acceptance criteria. No tech choices yet\n**Clarify** | The agent surfaces ambiguities **before** any planning\n**Plan** | _How_ : architecture, data models, technical decisions\n**Tasks** | Decompose the plan into atomic, independently-shippable items\n**Implement** | Execute tasks, verifying each against its acceptance criteria\n**Analyze** | Cross-check spec โ plan โ tasks for consistency\n\n> โ ๏ธ **Golden rule:** never skip from spec straight to code. Review the plan before task decomposition; review the tasks before implementation.\n\n## The tooling landscape (2026)\n\nTool | Strengths | Best for\n---|---|---\n**GitHub Spec Kit** | Open-source, model-agnostic, the reference implementation | Teams avoiding vendor lock-in\n**AWS Kiro** | Agentic IDE with automated guardrails (\"hooks\"), deep AWS integration | AWS-native / serverless shops\n**Claude Code (cc-sdd)** | Native `/sdd:specify`, `/sdd:plan` slash commands, terminal-first | Solo devs, CLI workflows\n**Cursor (Plan Mode)** | IDE-first, inline diff review, MCP support for Spec Kit | Teams prioritizing UX\n**OpenSpec** | Lightweight, framework-agnostic, Markdown + YAML | Indie devs, minimal tooling\n**BMAD-METHOD** | Community methodology, constitution + multi-agent role-play | Teams wanting a flexible framework\n**Tessl** | Compliance-focused, audit trails, regulated templates | Fintech, healthtech\n**Google Antigravity** | \"Agent-first,\" specification-constrained autonomy | Teams exploring deep agent autonomy\n\nThe open-source reference everyone benchmarks against:\n\n## \n github\n / \n spec-kit\n \n\n### ๐ซ Toolkit to help you get started with Spec-Driven Development\n\n# ๐ฑ Spec Kit\n\n\n <div class=\"markdown-heading\" dir=\"auto\">\n\n\n### _Build high-quality software faster._\n\n\n\n\n**An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.**\n\n## Table of Contents\n\n * ๐ค What is Spec-Driven Development?\n * โก Get Started\n * ๐ฝ๏ธ Video Overview\n * ๐ Community\n * ๐ค Supported AI Coding Agent Integrations\n * ๐ง Specify CLI Reference\n * ๐งฉ Making Spec Kit Your Own: Extensions & Presets\n * ๐ Core Philosophy\n * ๐ Development Phases\n * ๐ฏ Experimental Goals\n * ๐ง Prerequisites\n * ๐ Learn More\n * ๐ Detailed Process\n * ๐ฌ Support\n * ๐ Acknowledgements\n * ๐ License\n\n\n\n## ๐ค What is Spec-Driven Development?\n\nSpec-Driven Development **flips the script** on traditional software development. For decades, code has been king โ specifications were just scaffolding we built and discarded once the \"real work\" of coding began. Spec-Driven Development changes this: **specifications become executable** , directly generating working implementations rather than just guiding them.\n\n## โก Get Started\n\n### 1. Install Specify CLI\n\nRequires **uv** โฆ\n\n\n\n\nView on GitHub\n\n\n\n\n\nSupporting standards & frameworks that predate the AI wave but power SDD\n\n * **BDD:** Cucumber, SpecFlow, Behave (Gherkin / Given-When-Then)\n * **API contracts:** OpenAPI/Swagger, GraphQL SDL, Protocol Buffers, AsyncAPI\n * **Contract testing:** Pact, Specmatic\n * **Model-based design:** Simulink, SCADE\n\n\n\nNone of these are new. SDD's contribution is wiring them together as the _primary_ artifact an AI agent generates from โ not the documentation you write afterward.\n\n\n\n\n\n### 30-second tool-selection rubric\n\n * Already in **Claude Code**? โ Spec Kit + cc-sdd skills\n * In **Cursor**? โ Plan Mode + `AGENTS.md` + Spec Kit via MCP\n * **AWS** shop? โ Kiro\n * **Regulated** industry? โ Tessl\n * Want **minimal** ceremony? โ OpenSpec\n\n\n\n## EARS: how to write specs an LLM can't misread\n\n**EARS** (Easy Approach to Requirements Syntax) is the de facto standard for acceptance criteria that are unambiguous to humans _and_ models. Five patterns cover almost everything:\n\nPattern | Template | Example\n---|---|---\n**Ubiquitous** | The system **shall** โฆ | The system **shall** log every auth attempt.\n**Event-driven** | **WHEN** โฆ **THE system SHALL** โฆ | **WHEN** a user submits the login form **THE system SHALL** validate credentials.\n**State-driven** | **WHILE** โฆ **THE system SHALL** โฆ | **WHILE** a sync is running **THE system SHALL** show a progress indicator.\n**Unwanted behavior** | **IF** โฆ **THEN** โฆ | **IF** validation fails 3ร **THEN** lock the account for 15 min.\n**Optional** | **WHERE** โฆ **THE system SHALL** โฆ | **WHERE** MFA is enabled **THE system SHALL** require TOTP.\n\nThe payoff: criteria written this way map almost 1:1 onto test cases โ which is exactly what makes the spec _executable_ rather than advisory.\n\n## A worked example: \"magic-link login\"\n\nTalk is cheap; here's a (trimmed) end-to-end slice so the artifacts are concrete.\n\n๐ spec.md (excerpt)\n\n\n\n ## Feature: Passwordless magic-link login\n\n ### Acceptance criteria (EARS)\n - WHEN a user submits a valid email\n THE system SHALL send a one-time login link valid for 15 minutes.\n - IF a login link is used more than once\n THEN the system SHALL reject it with HTTP 410 Gone.\n - WHERE the email is not associated with an account\n THE system SHALL still return HTTP 202 (no account enumeration).\n - THE system SHALL store link tokens hashed, never in plaintext.\n\n ### Out of scope\n - Social login, SSO, password fallback.\n\n\n๐๏ธ plan.md (excerpt)\n\n\n\n ## Stack\n - Node 22 + Fastify, Postgres 16, Redis for token TTL.\n\n ## Data model\n - magic_tokens(id, user_id, token_hash, expires_at, consumed_at)\n\n ## Decisions\n - Tokens = 32 bytes CSPRNG, stored as SHA-256 hash.\n - 202-for-unknown-email enforced at the controller layer.\n\n\nโ
tasks.md (excerpt)\n\n\n\n - [ ] T1 migration: magic_tokens table\n - [ ] T2 POST /auth/magic-link (issue + email) refs spec ยง1, ยง3\n - [ ] T3 GET /auth/verify (consume + session) refs spec ยง2\n - [ ] T4 contract tests for 202 / 410 paths\n - [ ] T5 rate-limit issue endpoint (5/min/IP)\n\n\nNotice the thread: each task **cites the spec clause it satisfies**. That traceability is the whole point โ when a test fails, you know which intent broke.\n\n## Recommendations & best practices\n\n**Constitutional foundations**\n\n * Commit `AGENTS.md` or `.specify/memory/constitution.md` **before** the first spec.\n * Codify project-wide decisions as ubiquitous EARS statements: _\"The system shall use TypeScript strict mode.\"_\n\n\n\n**Specification discipline**\n\n * One feature = one spec directory (`specs/NNN-feature-name/`).\n * Keep specs to **1โ3 pages** ; split if larger.\n * Use explicit **\"out of scope\"** sections to bound the agent's exploration.\n * Write in **domain language** (business intent), not implementation detail.\n\n\n\n**Phase boundaries**\n\n * Never jump spec โ code. Review the plan, then review the tasks.\n\n\n\n**Documentation & traceability**\n\n * Cite specs in commits: `feat(auth): magic link, refs specs/004-magic-link/spec.md`.\n * Treat specs as durable โ they outlive the generated code.\n * Run pre-flight `/checklist` passes for security, accessibility, observability.\n\n\n\n## The honest caveats\n\nSDD has real skeptics, and they're worth more than the hype:\n\n * **It can be old wine in new bottles.** Brandon Kindred's _\"Same Patterns, New Hype\"_ (2026) argues SDD is largely waterfall/contract-design rebranded โ and that _\"the value is the thinking you do while writing the spec, not the tooling around it.\"_\n * **Drift and hallucination don't disappear.** Thoughtworks stresses that **executable code remains the source of truth requiring maintenance** , explicitly rejecting the \"specs alone suffice\" view. They place SDD in the **\"Assess\"** ring of their Technology Radar โ _not_ \"Adopt.\"\n * **Over-specification defeats the purpose.** When a spec becomes pseudo-code, you've written the program twice.\n * **False confidence.** Matching a _wrong_ spec satisfies no real requirement.\n * **Tooling complexity** can add ceremony without proportional value.\n\n\n\nโ
When SDD is worth it / โ when to skip it\n**Worth it:** using AI coding assistants ยท complex requirements ยท multiple maintainers ยท integration-heavy or regulated systems.\n\n**Skip it:** throwaway prototypes ยท solo, short-lived projects ยท exploratory work where requirements are still unknown.\n\n\n\n\n\n## What the data says (read with a skeptic's eye)\n\nVendor-reported numbers should be treated as _directional, not proven_. With that caveat: early adopters (GitHub, AWS) report meaningfully higher first-pass success from agents working off a good spec, and Piskala's paper cites error reductions on the order of tens of percent when LLMs work from refined specs versus loose prompts. The consistent, less-disputable finding is a **shift in where humans spend time** โ away from typing implementation, toward review and clarification.\n\n> If you take one number away, make it this one: _the spec is now where the thinking happens._\n\n## The bottom line\n\nIn 2026, SDD is best understood not as a tool but as a **discipline** : when agents write the code, the spec is the most leveraged thing a human can produce. The pragmatic path:\n\n 1. Target **spec-anchored** , not spec-as-source.\n 2. Write acceptance criteria in **EARS**.\n 3. Keep **code as the source of truth** and tests as the enforcer.\n 4. Use the tooling (Spec Kit, Kiro, cc-sdd) to enforce the loop โ **not** to replace the thinking.\n\n\n\n_Building with SDD already? What's worked and what's been pure ceremony? Drop it in the comments. ๐_\n\n๐ Sources\n\n * Spec-Driven Development: From Code to Contract in the Age of AI Coding Assistants โ Deepak Babu Piskala, arXiv (Jan 2026)\n * Spec-Driven Development โ Thoughtworks (Medium)\n * Spec-Driven Development: The Definitive 2026 Guide โ BCMS\n * Spec Driven Development: The Fifth Generation of Programming โ Mofi Rahman, Google Cloud (Medium)\n * Same Patterns, New Hype: Spec-Driven Development โ Brandon Kindred (Medium)\n * Spec-Driven Development in 2026: The end of code as the center of development? โ Devoteam\n * Why the Future of Software Lies in Descriptions, Not Code โ esveo\n * What Is Spec-Driven Development? A Complete Guide โ Augment Code\n * GitHub Spec Kit\n\n\n\n_Compiled June 2026._",
"title": "Spec-Driven Development in 2026: What It Is, the Tooling, and How Teams Actually Use It"
}