HomeInsightsEngineering Practice
Engineering PracticeAI DevelopmentSeptember 15, 202613 min read

Spec-Driven Development: Why AI Coding Needs a Contract in 2026

Ninety per cent of developers now use AI at work. Only thirteen per cent use it across the full software lifecycle. That gap is the whole story — AI is stuck at autocomplete in most teams, and the reason is not model capability. It is that agents build faster than anyone can specify what they should be building.

VE
Vikgol Engineering Team
AI Engineering & Delivery · Vikgol
Share
Vibe Coding vs Spec-DrivenSame agent. Same model. Completely different outcome.VIBE CODINGSPEC-DRIVENPrompt → code → fix → prompt againIntent lives in the chat historyWorking demo in an hourNobody can maintain it in month threeSpecify → Plan → Tasks → ImplementIntent lives in version controlSlower to first outputSomeone else can maintain itTHE ADOPTION GAP90%of developers use AI at workJetBrains AI Pulse, Jan 2026 · 11,000 devs13%use AI across the whole SDLCSame surveyThe bottleneck is not the model. It is the absence of a written target.VikgolBelieve In Doers

The JetBrains AI Pulse survey of 11,000 developers in January 2026 produced two numbers that sit oddly together. Ninety per cent use AI at work. Thirteen per cent use it across the entire software development lifecycle.

So AI has been adopted almost universally — as autocomplete. It suggests the next line, drafts a function, explains an unfamiliar file. What it mostly does not do is participate in how the software gets designed, built, tested and handed over.

The reason is straightforward once you have watched it happen. Coding agents will build whatever you describe, immediately, and keep building. Point one at a vague instruction and it produces a large volume of plausible code very quickly. Days later you discover it built something adjacent to what was needed. The generation was never the bottleneck. Knowing precisely what to generate is.

Spec-driven development is the practice that emerged to fix this, and in 2026 it has gone from a niche technique to something close to an industry default.

📌 Quick answer: what is spec-driven development?

Spec-driven development (SDD) treats a structured specification — behaviour, architecture, edge cases, constraints — as the source of truth, and code as its generated output rather than the other way around. The canonical loop is four gated phases: Specify, Plan, Tasks, Implement, with a human checkpoint between each. The spec lives in version control alongside the code it produced.

The Tooling Consolidated Fast

This is not a proposal waiting for adoption. The ecosystem arrived in under a year:

ToolWhat it isBest suited to
GitHub Spec KitOpen-source CLI, MIT licensed. Past 93,000 GitHub stars by May 2026. Works with 30+ coding agents including Claude Code, Copilot and Gemini CLI.Teams wanting a portable, agent-agnostic standard without changing IDE
Amazon KiroAn agentic IDE built around the spec lifecycle — Constitution, Specify, Plan, Tasks, Implement, PR. Now GA with CLI support.AWS-native teams wanting the workflow enforced by the environment
BMAD-METHODOpen-source framework orchestrating 12+ specialised agents across the lifecycle. Around 46,700 stars.Teams comfortable running multi-agent workflows
Claude Code SkillsReusable commands that encode repeatable workflows — lightweight specs for common tasks, without a full toolkit setup.Terminal-first teams wanting SDD principles with minimal ceremony
Cursor rules, Plan ModePlan-before-code built directly into the IDE, with project rules as persistent constraints.IDE-first teams starting with the lightest possible commitment

Martin Fowler has written about it. Thoughtworks published an analysis. GitHub's own framing when open-sourcing Spec Kit was that intent is now the source of truth and code is the last-mile output.

The Four-Phase Loop

Every serious SDD framework converges on the same structure, which is itself a useful signal:

PHASE 01
Specify
Describe the goal and user journeys in plain language. The agent drafts a detailed specification and refines it against your feedback. No code is written. The output is a document you could hand to a different team entirely.
PHASE 02
Plan
Declare architecture, stack and constraints. What must not change, what the system integrates with, what the non-functional requirements actually are. This is where an experienced engineer earns their keep.
PHASE 03
Tasks
The spec and plan decompose into discrete, ordered, independently verifiable units of work. Each one small enough that a wrong turn is caught in the next review rather than three days later.
PHASE 04
Implement
The agent executes tasks while you review at checkpoints. Code, tests and documentation all derive from the same spec, which is why they stay consistent with each other.

The gates matter more than the phases. Each checkpoint is a place to catch a misunderstanding while it is still cheap — a paragraph to correct rather than a module to rewrite.

Writing Specs an Agent Can Actually Execute

Prose specifications fail because prose is ambiguous. EARS notation — Easy Approach to Requirements Syntax — constrains requirements into a small set of patterns that leave much less room for interpretation.

EARS — requirement patterns
# Ubiquitous — always true
shall

# Event-driven
When
shall


# State-driven
While
shall

# Unwanted behaviour
If
thenshall


# Optional feature
Where
shall

Compare that to "handle payment failures gracefully" — which is what most tickets actually say, and which an agent will interpret in one of about nine reasonable ways.

✅ The test for a good spec

Could a competent engineer who has never spoken to you build the right thing from this document alone? If not, an agent cannot either — and it will not ask. A human would come back with questions. The agent proceeds confidently on its first interpretation, which is precisely why the written artefact has to carry what a conversation used to.

Is This Just Waterfall Again?

It is the obvious objection and it deserves a straight answer rather than a dismissal. The critique has been raised repeatedly — on Hacker News, in the Thoughtworks analysis, by plenty of engineers who lived through the original.

The surface resemblance is real. Write the requirements first. Design before building. Gates between phases. That is recognisably waterfall.

What changed is the cost of being wrong. Waterfall failed because specifications were expensive to produce and ruinous to revise — months of analysis, and by the time reality contradicted the document, the political cost of changing it exceeded the cost of shipping the wrong thing.

Rewriting a spec now takes an afternoon. Regenerating the implementation from the revised spec takes hours. When iteration is that cheap, the argument against specifying upfront mostly evaporates — you are not committing to a plan, you are writing down the current one somewhere an agent can read it.

⚠️ Where the critique lands

SDD does become waterfall when teams treat the spec as a deliverable to be approved rather than a working artefact to be revised. If your specification requires three sign-offs to change, you have rebuilt the failure mode with better tooling. The spec should be as easy to amend as the code — same branch, same review, same day.

When to Use It, and When Not To

⚡ Vibe coding is fine here
Exploration
  • · Prototypes and spikes you intend to throw away
  • · One-off scripts and internal tooling
  • · Testing whether an approach is viable at all
  • · Work only you will ever touch
  • · Anything where the goal is learning, not shipping
📋 Spec-driven here
Production
  • · Anything more than one person will maintain
  • · Multi-month projects with changing teams
  • · Regulated domains needing an audit trail
  • · Systems handling money, health or identity data
  • · Anything you will hand over to someone else

The pattern most teams settle on is sequential rather than exclusive: vibe-code a spike to learn the shape of the problem, distil what you learned into a spec, then spec-drive the version that ships. The prototype was never wasted — it was the research phase.

The Part Nobody Writes About: Handover

Most SDD discussion frames the benefit as code quality. There is a second benefit that matters more in some situations and is rarely mentioned.

When an AI agent builds a system through unstructured prompting, the intent behind every decision lives in a chat transcript. Why is retry logic three attempts and not five? Why does this service own that table? The code shows what, never why.

Six months later — new engineer, or a client taking over a codebase an agency built — that context is simply gone. The code is readable and the reasoning is not. Changes get made nervously, or not at all.

A spec in version control is the artefact that survives. It records the decisions, the constraints, the edge cases that were considered and rejected. For anyone who builds software that someone else will own, the spec is not project overhead. It is the deliverable that makes the code usable after you leave.

📌 Why this matters for client work

We hand over full code ownership on every engagement, which makes this concrete rather than theoretical. A repository without specs is a repository a client's team cannot confidently modify — and a codebase you are afraid to change is a liability whatever its test coverage says. Specs and architecture decision records travel with the code, which is what makes "your IP, your code" mean something in practice.

Adopting It Without a Six-Week Rollout

1

Spec one feature you were going to ship anyway

Pick something small and real — not a pilot project invented to test the process. Spend thirty minutes writing the spec before touching the agent. Compare the outcome to how the last comparable feature went.

This week
2

Write a constitution for the repository

Standing constraints that apply to everything: stack, conventions, what must never be changed without review, how errors are handled, what the test bar is. Every agent invocation inherits this instead of rediscovering it.

Week 1
3

Put specs in the same pull request as the code

Reviewed together, merged together, versioned together. A spec in a wiki is stale within a fortnight. A spec in the PR that implements it stays accurate because it has to.

Week 2
4

Adopt EARS for acceptance criteria only

Do not rewrite your whole process in formal notation. Constrain just the acceptance criteria — that is where ambiguity causes the most expensive rework, and it is a change your team can absorb in a day.

Week 2–3
5

Measure rework, not velocity

SDD is slower to first output. It should be faster to correct output. If rework and post-merge defects are not falling after a month, something in your specs is not carrying the information the agent needs — and that is a fixable, specific problem.

Ongoing
6

Expand only where it earned its place

Some work genuinely does not need a spec. Forcing the process onto exploratory work produces ceremony without benefit, and ceremony is how good practices get abandoned. Let the teams that saw the gain pull it into more of their work.

Ongoing

Frequently Asked Questions

What is spec-driven development?
Spec-driven development treats a structured specification — covering behaviour, architecture, edge cases and constraints — as the source of truth, with code generated from it rather than the reverse. The standard loop runs Specify, Plan, Tasks, Implement, with a human checkpoint between each phase. The specification lives in version control alongside the code, and is revised as understanding changes.
How is SDD different from TDD or BDD?
They share DNA but differ in the canonical artefact. TDD says write the test first. BDD says write the behaviour first, in business language. SDD says write the whole specification first — behaviour, architecture, edge cases, constraints — and let an agent produce code, tests and documentation from it. SDD subsumes much of BDD: EARS-style acceptance criteria are a more rigorous relative of Gherkin. A good SDD workflow still produces unit and integration tests, but they are generated from the spec rather than preceding it.
Isn't this just waterfall with better tools?
The resemblance is real and worth taking seriously. The difference is the cost of revision. Waterfall failed because specs took months to produce and were politically expensive to change, so teams shipped the wrong thing rather than revisit the document. Rewriting a spec now takes an afternoon and regenerating from it takes hours. SDD does become waterfall if you treat the spec as a deliverable requiring sign-off rather than a working artefact — if changing your spec needs three approvals, you have rebuilt the original failure mode with nicer tooling.
Which tool should we start with?
There is no single best one; it depends on your stack. GitHub Spec Kit is the most portable and agent-agnostic, and the usual starting point. Amazon Kiro is the most integrated if you are AWS-native and want the workflow enforced by the IDE. Claude Code Skills are the lowest-friction option for terminal-first teams. Cursor's Plan Mode and project rules suit IDE-first teams wanting minimal commitment. Start with whichever requires the fewest changes to how your team already works — the practice matters considerably more than the tooling.
Does SDD slow us down?
To first output, yes — measurably. To correct output, usually not. The honest framing is that SDD moves effort from debugging and rework into specification. Whether that trade is worth it depends on how much rework you currently do. Teams shipping prototypes will find it pure overhead. Teams maintaining production systems where a wrong assumption costs three days of unpicking will find it pays for itself quickly. Measure rework rate rather than velocity, or you will conclude it is slower and stop.
What happens to the spec after the feature ships?
It stays in the repository and is updated with the code it describes. This is the part that determines whether SDD delivers long-term value or becomes ceremony. A spec that is written once and abandoned is worse than no spec, because it is confidently wrong. Keep specs in the same pull request as the implementation so they are reviewed and updated together — that single convention does more for spec accuracy than any tooling choice.

Building With AI Agents on Production Code?

We build production systems with AI-assisted engineering — specs, architecture decision records and full code ownership handed over at the end. Book a free 30-minute call. NDA first, no pitch deck.

#SpecDrivenDevelopment#AICoding#SpecKit#SoftwareEngineering#EARS#VibeCoding#EngineeringPractice#Vikgol
VE
Vikgol Engineering Team
AI Engineering & Delivery · Vikgol
The Vikgol engineering team has shipped 90+ AI, web and cloud projects for startups and enterprises across US, UK, UAE and India. We build with AI-assisted engineering and hand over full code ownership — specs and architecture decision records included, because a codebase nobody can safely change is not an asset.
Available Now · 72-Hour POC

Ready to Ship Your AI Product?
Let’s Build It Together.

Senior engineers on demand. Working prototype in 72 hours. NDA before we discuss anything. 100% code ownership to you — no lock-in, ever.

70+
Senior engineers on staff
90+
Projects delivered globally
72h
Working POC guaranteed
5
Client satisfaction rating