Spec-Driven Development (SDD) is a methodology for managing AI-assisted development workflows. It provides structure and determinism to the inherently fluid process of working with AI coding assistants.
Core Principles
Specifications as Source of Truth: Work items are defined in structured markdown files organized in a specs/ directory hierarchy.
Deterministic Status: Item status (OPEN, IN PROGRESS, DONE) is determined by filesystem state, not LLM interpretation.
Hierarchical Organization: Work is organized into capabilities → features → stories, enabling clear scope and progress tracking.
Session Continuity: Context handoffs enable seamless work continuation across sessions and agents.
Work Item Hierarchy
1Capability
2└── Feature
3 └── Story
4 └── Tests
Capability: A high-level business capability (e.g., “Core CLI”)
Feature: A specific feature within a capability (e.g., “Pattern Matching”)
Story: An implementable unit of work (e.g., “Parse capability names”)
Tests: Verification that the story is complete
Status Determination
Status flows from the filesystem, providing instant, deterministic classification:
State
Condition
OPEN
No tests/ directory, or empty tests/
IN PROGRESS
tests/ directory has files, but no DONE.md
DONE
tests/DONE.md exists
This simple convention means status checks take milliseconds, not minutes.
BSP Numbering
Work items use Binary Space Partitioning numbers for easy ordering and insertion:
121, 32, 43, 54, 65, 76, 87...
To insert between 21 and 32, use 27 (midpoint). This allows unlimited insertion without renumbering.