SkyWaysThe agentic manual

What is spec-driven development? Kiro and Spec Kit explained

The spec becomes the thing you maintain. Two tools, three levels of commitment, and the part no tool decides for you.

7 minutesBeginnerLesson 5 of 7Updated By

On this page
  1. Sound familiar?
  2. What is spec-driven development?
  3. How the tools do it, step by step
  4. The honest critiques
  5. Where you'll use it
  6. Why it matters
  7. Try it
  8. Key takeaways
  9. FAQ
  10. Apply it in your role
  11. Sources and credits
All lessonsStart here

Getting started

  1. What is the agentic PDLC?
  2. How this tutorial works

Agentic PDLC fundamentals

  1. The evolution of the PDLC
  2. Why agentic AI projects fail
  3. P0 · Frame
  4. P1 · Design & Spec
  5. The one hard gate
  6. P2 · Build & Prove
  7. P3 · Run & Learn
  8. The eight loops
  9. The evidence pack

Methods decoded

  1. AI-DLC vs AIDD vs agentic SDLC
  2. What is AI-DLC?
  3. What is AIDD?
  4. What is the BMAD Method?
  5. What is spec-driven development?
  6. One lifecycle for every method
  7. How much process a change needs

Running delivery

  1. How to run an agentic AI project
  2. Bolts vs sprints
  3. A board for agentic work
  4. Cut delivery from months to weeks
  5. Review AI code by risk
  6. How accurate must an agent be?
  7. Prove the agent meets its bar
  8. Shadow mode and cut-over
  9. Why the AI bill is 4× the estimate
  10. Guardrails that hold
  11. The five governance gates
  12. Catch AI drift
  13. AI incident postmortems

By role

  1. For product managers
  2. For program managers
  3. For solution architects
  4. For engineers
  5. For forward-deployed engineers
  6. For QA
  7. For DevOps and platform
  8. For business sponsors
  9. For executives

Teams and organisation

  1. Team structure for agentic AI
  2. Measuring AI productivity
  3. The maturity model
  4. Rolling it out in 90 days

Practice

  1. The SkyWays case study
  2. The operating rhythm
  3. The workbench
  4. Twelve exercises

Interviews and careers

  1. What is an FDE?
  2. Six answer frameworks
  3. AI PM interview questions
  4. FDE interview questions
  5. GenAI engineer questions
  6. Agentic engineer questions
  7. AWS GenAI questions

In short

Spec-driven development (SDD) means writing a specification before any code and keeping it as the artefact that AI agents build from. AWS's Kiro does it by keeping requirements, design and tasks files, and GitHub Spec Kit by moving work from a constitution through specify, plan and tasks to implementation. Either way the spec, not a chat history, is what people review and what the agent reads.

Spec-driven developmentKiro and Spec KitYou decideWhat no tooldecides for youThe bar per slicefrom what a mistake costsThe authority budgetlimits in signaturesyou write these into the specP1What a toolkeepsKirorequirements.md in EARS, design.mdSpec Kitconstitution, specify, plan, tasksP2What the agentdoesKirotasks.md, run task by taskSpec Kitimplement, to checklistsThe spec, not the code, is what you maintain. The tools keep it and build from it; the bar and the authority budget areyours to write in.

Spec-driven development Kiro and Spec Kit

You decideWhat no tool decides for you
  • The bar per slicefrom what a mistake costs
  • The authority budgetlimits in signatures

you write these into the spec

P1What a tool keeps
  • Kirorequirements.md in EARS, design.md
  • Spec Kitconstitution, specify, plan, tasks

P2What the agent does
  • Kirotasks.md, run task by task
  • Spec Kitimplement, to checklists

The spec, not the code, is what you maintain. The tools keep it and build from it; the bar and the authority budget are yours to write in.

In this lesson you'll learn:

  • what spec-driven development is, and its three levels of commitment;
  • how Kiro and GitHub Spec Kit each put it into practice;
  • the honest critiques, and the parts of a spec that a tool cannot fill in.

Sound familiar?#

  • The agent built something plausible and wrong, because the only "spec" was a chat thread it half-remembered.
  • Six months later nobody knows why the code behaves as it does, because the reasoning lived in a conversation.
  • A spec tool generated four long markdown files for a one-line bug fix, and nobody read them.

The first two are the problem spec-driven development solves. The third is the problem it can create, and the reason depth matters.

What is spec-driven development?#

Spec-driven development is writing a spec before writing code with AI (documentation first) and treating that spec as the authoritative reference for both people and agents. Birgitta Böckeler, writing on Martin Fowler's site in October 2025, distinguishes three levels of commitment:

LevelWhat happens to the specCommitment
Spec-firstWritten before the task, then discarded when it is doneLow
Spec-anchoredKept after the task, and evolved with the featureMedium
Spec-as-sourceThe primary artefact; people edit only the spec and the code is generatedHigh

This manual asks for spec-anchored on every change: the spec is the one artefact that survives the code, and a change with no spec change is a change nobody can review.

spec first:thrown awayspec anchored:keptsurvivesthe code
Spec-first throws the spec away when the task is done. Spec-anchored keeps it and changes it with the feature, on every change.

How the tools do it, step by step#

Step 1 · Kiro: requirements, design, tasks#

Kiro, AWS's agentic IDE released in public preview in July 2025, keeps three files per feature. requirements.md holds user stories with acceptance criteria in EARS (WHEN … THE SYSTEM SHALL …), the requirements syntax developed at Rolls-Royce. design.md holds the architecture, data flow and testing strategy. tasks.md is the implementation plan, each task traceable to a requirement. You can start from requirements or from design.

Step 2 · GitHub Spec Kit: constitution, specify, plan, tasks, implement#

GitHub Spec Kit, open-sourced on 2 September 2025, is a toolkit of templates and commands that work inside coding agents such as GitHub Copilot, Claude Code and Gemini CLI. It moves work through a constitution of project-wide principles, then specify, plan and tasks, and finally implement, with checklists that serve as the definition of done at each step.

Step 3 · Choose the level of commitment per change#

Neither tool decides how much of this a change needs. A defect fix may need one updated acceptance line; a new feature needs all of it. Pick the level, and the depth, from the risk of the change, not from the tool's default. How much process a change needs.

Step 4 · Fill in what the tool cannot#

A spec tool gives you the places to write things down. It does not know how accurate the agent in your product must be, which of its actions need a person, or where a limit must be enforced. Those are the five agentic fields of this manual's eight-field spec (the model's role, autonomy per action, the bar per slice, the fallback and the records), and they belong in the requirements file whichever tool holds it.

The honest critiques#

Böckeler's review is worth reading before you adopt either tool. Her main points:

  • Workflow mismatch. The tools do not scale their process to the size of the problem, so small bugs get elaborate treatment.
  • Review burden. Long generated markdown files can be more tedious to review than the code.
  • An illusion of control. Agents still ignore or over-interpret instructions, however full the spec.
  • An old echo. Spec-as-source recalls model-driven development, with the risk of combining inflexibility with non-determinism.

Each critique is an argument for depth by change and for checks that do not depend on the agent reading the spec: the harness, the tool signatures and the tests.

Where you'll use it#

  • On every change, at the depth it needs: at minimum, the spec is updated and reviewed.
  • As the input a coding agent builds from, in place of a chat thread.
  • As the record an auditor or a new engineer reads to find out why the system behaves as it does.

Why it matters#

A coding agent builds whatever it understands. Spec-driven development moves the understanding out of a conversation and into a file that people review, version and keep, which is what makes the agent's output reviewable, and the system maintainable, after the conversation is gone.

Try it#

A team uses Spec Kit. Its specify step produced a thorough feature spec for a refund assistant, with user stories and acceptance criteria. What should the architect check is in the spec before the work crosses into the build?

Show the answer

The five agentic fields. The model's role (which steps the model decides and which are exact code), autonomy per action (which refunds may be issued alone and which need an approver), the acceptance bar per slice derived from what a wrong refund costs, the fallback when the model cannot decide, and what every refund must record. Spec Kit provides the structure; these decisions are the team's, and the refund limit must also exist in the refund tool's signature, not only in the spec.

Key takeaways#

  1. Spec-driven development writes the spec first and keeps it as the artefact agents build from.
  2. Kiro keeps requirements, design and tasks files; Spec Kit runs constitution, specify, plan, tasks and implement.
  3. The tools hold the spec; you still decide its depth, its bars and its limits, and enforce the limits in code.

FAQ#

What is the difference between spec-driven development and test-driven development?#

Test-driven development writes a failing test before the code that makes it pass. Spec-driven development writes the specification (requirements, design and tasks) before any code, for an AI agent to build from. They combine well: the acceptance criteria in the spec become the tests.

What are requirements.md, design.md and tasks.md?#

The three files Kiro keeps for each feature: the requirements, as user stories with acceptance criteria in EARS notation; the technical design; and the implementation plan, as tasks traceable to the requirements.

Is spec-driven development the same as AI-DLC?#

No, though they fit together. Spec-driven development is about what agents build from; AWS's AI-DLC is a wider methodology with phases, mob rituals and bolts. An AI-DLC team would typically keep its Inception output as a spec.

Do I need Kiro or Spec Kit to do spec-driven development?#

No. The practice is writing and keeping the spec; the tools make it convenient inside a coding agent. A markdown file in the repository, read by path from the agent's context file, is spec-driven development.

Apply it in your role#

If you are…Do thisThe AI-augmented shortcut
A forward-deployed engineerMake the spec the contract: requirements in EARS, design and tasks, reviewed by the customer's people before any code.Have Kiro or Spec Kit generate the requirements file, then walk it line by line with the customer's owner.
A product manager or FDPMWrite the bar and the authority budget into the spec yourself. No SDD tool decides them.Ask a model to find every requirement in the spec that has no measure.
A GenAI or agentic AI engineerImplement task by task against the spec, and update the spec when reality disagrees. A stale spec is worse than none.After each task, have the agent diff the spec against the code and propose spec edits.

Across the enterprise. Adopt one SDD tool where you can and keep specs in the repository, so specs are reviewed like code across teams and survive the people who wrote them.

The ten-minute workflow. Review a spec the way a coding agent will misread it:

Here is our spec (requirements, design and tasks): <paste>. Find (1) requirements without a
measurable acceptance criterion, (2) actions with no stated limit or approver, and (3) tasks that
implement nothing in the requirements. Output three lists with line references.

Sources and credits#

IdeaOriginSource
Spec-first, spec-anchored and spec-as-source, and the critiquesBorrowedBöckeler, B. (2025). Understanding spec-driven development: Kiro, spec-kit and Tessl. 15 October
Kiro's requirements, design and tasks, with EARSBorrowedKiro. Specs · Introducing Kiro
Spec Kit's workflowBorrowedGitHub (2025). Spec-driven development with AI. 2 September
EARSBorrowedMavin, A. et al. (2009). Easy Approach to Requirements Syntax. IEEE RE'09
Spec-anchored on every change; the five agentic fieldsOriginal: this manualThe Agentic PDLC

Prefer GitHub? This track is on the wiki, and this lesson is markdown. Found a mistake? Edit this lesson, or say so.