The SDD Workflow
Spec Kit organizes development into a structured, multi-phase workflow:Core Principles
Separation of Concerns
Each command has a specific responsibility:- What (Specification) comes before How (Planning)
- Why (Requirements) drives What (Design)
- Design (Architecture) comes before Do (Implementation)
Progressive Refinement
The workflow builds knowledge incrementally:- Start with high-level user needs
- Clarify ambiguities through targeted questions
- Research technical approaches
- Design concrete solutions
- Execute in phases
Quality Gates
Each phase validates work before proceeding:- Constitution checks ensure alignment with project principles
- Specification validation prevents ambiguous requirements
- Plan validation resolves all technical unknowns
- Task validation ensures complete coverage
- Analysis detects inconsistencies across artifacts
Command Categories
Governance
/speckit.constitution
Define and maintain project principles, constraints, and governance rules
Feature Development
/speckit.specify
Create feature specifications from natural language
/speckit.clarify
Ask targeted questions to resolve specification ambiguities
/speckit.plan
Generate technical architecture and design artifacts
/speckit.tasks
Break plans into actionable, dependency-ordered tasks
Quality Assurance
/speckit.analyze
Detect inconsistencies and gaps across artifacts
/speckit.checklist
Generate domain-specific quality validation checklists
Execution
/speckit.implement
Execute the implementation plan by processing all tasks
Typical Workflows
New Feature - Full Workflow
Quick Feature - Skip Clarification
Constitution Update
Handoffs and Automation
Commands can automatically hand off to the next phase:After
/speckit.specify completes, it suggests running /speckit.clarify or /speckit.plan.After /speckit.plan completes, it suggests running /speckit.tasks.After /speckit.tasks completes, it suggests running /speckit.analyze or /speckit.implement.File Organization
Commands generate and read files in a structured hierarchy:Key Concepts
Feature Branches
Each feature gets a numbered branch:- Format:
###-feature-name(e.g.,001-user-auth) - Auto-incrementing across remote, local, and specs directories
- Matches a corresponding
specs/###-feature-name/directory
Templates
All commands use templates from.specify/templates/:
- Ensures consistent structure across features
- Supports customization for project-specific needs
- Validated during execution
Validation
Multiple validation layers:- Format validation: Ensures required sections exist
- Content validation: Checks for placeholders and ambiguities
- Cross-artifact validation: Detects inconsistencies (via analyze)
- Constitution validation: Enforces project principles
Progressive Disclosure
Commands load only necessary context:- Reduces token usage
- Focuses on relevant information
- Supports large codebases
Best Practices
Start Simple
Begin with a minimal viable specification:- Focus on core user value
- Add details through clarification
- Let the AI infer reasonable defaults
Use Clarification Strategically
Only clarify what matters:- Scope boundaries that impact architecture
- Security/privacy decisions
- User experience trade-offs
- Skip implementation details
Validate Early and Often
Run analysis before implementation:- Catch requirement gaps
- Detect conflicting specifications
- Verify constitution alignment
- Ensure task coverage
Leverage Checklists
Generate domain-specific checklists:- Security requirements validation
- UX requirement quality
- API contract completeness
- Performance requirement clarity
Next Steps
Constitution
Learn how to define project principles
Specify
Start creating feature specifications