Spec-driven development is the methodology at the heart of Spec Kitty. This document explains what it is, why it matters, and when to use it.
Spec-driven development is an approach where you write a detailed specification before writing any code. The specification becomes the source of truth that guides implementation.
Traditional development:
Spec-driven development:
The key insight: AI agents need clear, unambiguous requirements to produce quality output. Specifications provide that clarity.
Human developers can fill in gaps, ask clarifying questions mid-task, and use intuition. AI agents work better with explicit requirements:
In Spec Kitty, specifications aren’t just documentation—they drive the workflow:
/spec-kitty.specify creates the spec/spec-kitty.plan creates implementation plan from the spec/spec-kitty.tasks generates work packages from the planThe specification is the contract that all agents follow.
When multiple agents (or humans) work on a feature:
This becomes critical in parallel development where multiple AI agents implement different work packages simultaneously.
┌─────────────────────────────────────────────────────────────────┐
│ PLANNING PHASE │
│ (in main repository) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ /spec-kitty.specify → Creates spec.md │
│ ↓ │
│ /spec-kitty.plan → Creates plan.md │
│ ↓ │
│ /spec-kitty.tasks → Creates tasks/WP01.md, etc. │
│ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ IMPLEMENTATION PHASE │
│ (in separate worktrees) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ spec-kitty implement WP01 → Agent A implements WP01 │
│ spec-kitty implement WP02 → Agent B implements WP02 │
│ spec-kitty implement WP03 → Agent C implements WP03 │
│ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ REVIEW PHASE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ /spec-kitty.review → Check implementation vs spec │
│ /spec-kitty.accept → Approve and merge │
│ │
└─────────────────────────────────────────────────────────────────┘
Each phase produces artifacts that feed into the next phase.
| Aspect | Traditional | Spec-Driven |
|---|---|---|
| Requirements | Often implicit, evolve during coding | Explicit, written upfront |
| Documentation | Written after implementation (often skipped) | Built into the process |
| Parallelization | Difficult without clear boundaries | Natural work package boundaries |
| AI-assisted development | Agents need context each time | Agents reference specifications |
| Rework | Common when requirements misunderstood | Reduced by upfront clarity |
| Scope creep | Easy to add “just one more thing” | Spec defines boundaries |
Features with clear boundaries:
Multi-agent or team projects:
Non-trivial features:
Exploratory work:
Simple one-off changes:
Emergency fixes:
The specification answers: What are we building and why?
A good spec includes:
The plan answers: How will we build it?
A good plan includes:
Implementation answers: Building the actual solution.
Each work package:
Traditional development often becomes serial:
Spec-driven development with Spec Kitty enables parallel work:
Example: A feature with 5 work packages:
This document explains the “why” behind spec-driven development. For “how” to create specifications, see the tutorials and how-to guides.