| name | Specification-Driven Development |
| description | This skill should be used when the user asks about "spec methodology", "specification workflow", "spec-driven development", "how to write specs", "spec best practices", "specification templates", or needs guidance on creating, validating, decomposing, or executing specifications for software development. |
| version | 1.0.0 |
Specification-Driven Development Methodology
A systematic approach to software development that starts with comprehensive specifications before implementation.
Workflow Overview
The spec workflow consists of four phases:
/spec:create -> /spec:validate -> /spec:decompose -> /spec:execute
Phase 1: Create (/spec:create)
Generate a comprehensive specification document using first-principles thinking:
- Problem Analysis: Strip away solution assumptions, identify root cause
- Validation: Confirm real user need, audit assumptions
- Technical Discovery: Search codebase, identify conflicts/dependencies
- Specification Writing: 17-section template covering all aspects
When to use: Starting any non-trivial feature or bugfix
Phase 2: Validate (/spec:validate)
Analyze the specification for completeness and detect overengineering:
- WHY Analysis: Intent, goals, success criteria
- WHAT Analysis: Scope, requirements, deliverables
- HOW Analysis: Implementation details, error handling, testing
- YAGNI Check: Cut unnecessary features aggressively
When to use: Before decomposing, after major spec revisions
Phase 3: Decompose (/spec:decompose)
Break the validated spec into actionable implementation tasks:
- Task Breakdown: Single-objective tasks with clear acceptance criteria
- Dependency Mapping: Identify blocking vs parallel work
- Content Preservation: Copy ALL details, don't summarize
- Task Management: Create in STM or TodoWrite
When to use: After spec passes validation
Phase 4: Execute (/spec:execute)
Implement using orchestrated specialist agents:
- Implement: Launch domain expert agents
- Test: Write comprehensive tests
- Review: Code review for completeness AND quality
- Fix: Address issues before marking complete
- Commit: Atomic commits per task
When to use: After decomposition creates tasks
Key Principles
First Principles Problem Analysis
Before any solution, validate the problem:
- What is the core problem separate from solutions?
- Why does this problem exist?
- What would success look like with unlimited resources?
- Could we solve this without building anything?
YAGNI (You Aren't Gonna Need It)
Be aggressive about cutting scope:
- Unsure if needed? Cut it
- For "future flexibility"? Cut it
- Only 20% of users need it? Cut it
- Adds complexity? Question it, probably cut it
Content Preservation
When creating tasks from specs:
- COPY implementation details verbatim
- Include complete code examples
- Never write "as specified in spec"
- Each task must be self-contained
Quality Gates
Each phase has validation checkpoints:
- Specs require 8+/10 quality score
- Tasks require code review approval
- Implementation requires all tests passing
Integration with Task Management
STM (Session Task Manager)
If installed, provides persistent task tracking:
stm init # Initialize
stm add "Task" --details "..." # Create task
stm list --pretty # View tasks
stm update [id] --status done # Complete task
TodoWrite (Fallback)
Built-in session task tracking when STM unavailable.
See Also
- references/spec-template.md - Full 17-section specification template
- references/overengineering-patterns.md - Common patterns to avoid