Spec-Driven Development (SDD) Skill
Guide users through GitHub's Spec-Kit for Spec-Driven Development - a methodology that flips traditional software development by making specifications executable and directly generating working implementations.
Guide users through GitHub's Spec-Kit for Spec-Driven Development - a methodology that flips traditional software development by making specifications executable and directly generating working implementations.
--- name: sdd description: This skill should be used when users want guidance on Spec-Driven Development methodology using GitHub's Spec-Kit. Guide users through executable specification workflows for both new projects (greenfield) and existing codebases (brownfield). After any SDD command generates artifacts, automatically provide structured 10-point summaries with feature status tracking, enabling natural language feature management and keeping users engaged throughout the process. version: 2.1.0 triggers:
author: Based on GitHub Spec-Kit by Den Delimarsky and John Lam license: MIT tags:
---
Guide users through GitHub's Spec-Kit for Spec-Driven Development - a methodology that flips traditional software development by making specifications executable and directly generating working implementations.
Spec-Driven Development emphasizes:
Remember: This is **AI-native development**. Specifications aren't just documentation - they're executable artifacts that directly drive implementation. The AI agent uses them to generate working code that matches the intent defined in the specs.
→ **See [Greenfield Workflow](references/greenfield.md)** for the complete 6-step process
→ **See [Brownfield Workflow](references/brownfield.md)** for reverse-engineering and integration guidance
→ **See [Installation Guide](references/sdd_install.md)** for setup and troubleshooting
**Recommended (Persistent):**
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git**One-time Usage:**
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>**Verify:**
specify checkFor detailed installation options, troubleshooting, and environment variables, see [Installation Guide](references/sdd_install.md).
Works with:
**CRITICAL WORKFLOW**: After any SDD command generates or modifies artifacts, automatically follow this feedback loop to keep the user engaged:
Use this structured format after ANY SDD command completes:
## ✅ [Command Name] Completed - Here's What Just Happened
### 🎯 Key Decisions Made (Top 3)
1. [Decision] - **Rationale:** [Why this was chosen]
2. [Decision] - **Rationale:** [Why this was chosen]
3. [Decision] - **Rationale:** [Why this was chosen]
### 📋 What Was Generated
- [Artifact 1]: [Brief description of content]
- [Artifact 2]: [Brief description of content]
### 🔍 Important Items to Review (Top 3)
1. [Critical item to check and why it matters]
2. [Important detail to verify and potential impact]
3. [Edge case to consider and how it affects the design]
### ⚠️ Watch Out For (Top 2)
- [Potential issue or gotcha] - **How to avoid:** [Guidance]
- [Common mistake] - **How to avoid:** [Guidance]
### 🔄 What This Enables Next (2 Options)
- **Option 1:** [Next step] - Best if: [Condition]
- **Option 2:** [Alternative step] - Best if: [Condition]
📊 **Feature Status:** [Current Feature Name] ([Stage]) → Next: [Next Feature]
Progress: [●●●○○] [X]% | Completed: [N] of [Total] features | Dependencies: [Status]
**Your options:** [A] Proceed [B] Modify [C] Explain more [D] Show full status\`\`\`
📊 **Feature Status:** user-authentication (Specified) → Next: profile-management Progress: [●●○○○] 40% | Completed: 1 of 5 features | Dependencies: database-setup ✅
**Your options:** [A] Proceed to planning [B] Modify requirements [C] Explain JWT choice [D] Show full status \`\`\`
Only skip the summarization step when:
After every SDD command, include a **brief feature status line** in the summary. Provide **detailed status on demand** with `/speckit.status`.
Include this at the end of every summary:
📊 **Feature Status:** [Current Feature Name] ([Stage]) → Next: [Next Feature Name]
Progress: [●●●○○] [X]% | Completed: [N] of [Total] features | Dependencies: [Dep] ✅/⏸️**Stage values:**
**Progress indicator:**
When user requests full status (option D) or runs `/speckit.status`, show:
📊 Project Feature Status Dashboard
🎯 CURRENT FEATURE
├─ [feature-name] ([Stage] - [X]% complete)
│ ├─ ✅ Requirements specified
│ ├─ 🔄 Implementation plan in progress
│ ├─ ⏸️ Tasks not started
│ └─ ⏸️ Implementation not started
│ Blockers: [None | Description]
│ Dependencies: [feature-name] ✅
✅ COMPLETED FEATURES ([N])
├─ [feature-1] (100% complete)
└─ [feature-2] (100% complete)
📋 UPCOMING FEATURES ([N])
├─ [feature-3] (depends on: [current-feature])
└─ [feature-4] (depends on: [feature-3])
⚠️ BLOCKED FEATURES ([N])
[List any features that are blocked with reasons]Claude should automatically detect and handle natural language feature management requests:
**User says:** "Move feature XYZ before ABC" **Claude does:**
**User says:** "Add a new feature for email notifications" **Claude does:**
**User says:** "Let's do profile-management first" **Claude does:**
**Detection patterns:**
Guide users through these operations when requested:
**Add Feature:**
User: "Add a feature for admin dashboard"
Claude:
1. What's the priority? (High/Medium/Low)
2. What features does this depend on? (user-auth, profile-management, etc.)
3. Brief description?
[Creates outline, shows updated status]**Reorder Features:**
User: "Reorder features"
Claude:
Current order:
1. user-authentication
2. profile-management
3. admin-dashboard
4. email-notifications
5. reporting
How would you like to reorder? (provide new numbers or describe changes)
[Updates order, shows new status]**Remove Feature:**
User: "Remove the reporting feature"
Claude:
⚠️ Warning: This will remove 'reporting' feature.
Dependencies affected: None
Are you sure? (yes/no)
[If yes: removes, updates status]Automatically calculate progress based on SDD workflow completion:
| Stage | Progress | Indicators | |-------|----------|------------| | **Specified** | 20% | `specify.md` exists | | **Planned** | 40% | `plan.md` exists | | **Tasked** | 60% | `tasks.md` exists | | **In Progress** | 80% | Implementation started (code files modified) | | **Complete** | 100% | Implementation complete, tests pass |
Track and visualize dependencies:
**Show dependencies:**
user-authentication
├─ Depends on: database-setup ✅
└─ Blocks: profile-management ⏸️, admin-dashboard ⏸️**Check if ready:**
📊 Can we start profile-management?
Checking dependencies...
✅ user-authentication (complete)
✅ database-setup (complete)
All dependencies satisfied! Ready to proceed.**Detect circular dependencies:**
⚠️ Warning: Circular dependency detected
feature-A depends on feature-B
feature-B depends on feature-C
feature-C depends on feature-A
Please resolve this before proceeding.**For Greenfield Projects:**
**For Brownfield Projects:**
For complete feature management guidance, see [Feature Management Guide](references/feature_management.md).
\`\`\`bash specify init my-project --ai claude \`\`\`
**To greenfield project:**
**To brownfield/existing project:**
\`\`\` specify init → /speckit.constitution → [SUMMARIZE] → /speckit.specify → [SUMMARIZE] → /speckit.plan → [SUMMARIZE] → /speckit.tasks → [SUMMARIZE] → /speckit.implement \`\`\`
**Full details:** [Greenfield Workflow](references/greenfield.md)
\`\`\` specify init --here → /speckit.brownfield → [SUMMARIZE] → /speckit.analyze-codebase → [SUMMARIZE] → /speckit.reverse-engineer → [SUMMARIZE] → /speckit.specify → [SUMMARIZE] → /speckit.integration-plan → [SUMMARIZE] → /speckit.tasks → [SUMMARIZE] → /speckit.implement \`\`\`
**Full details:** [Brownfield Workflow](references/brownfield.md)
Start with high-level requirements, generate specifications from scratch, plan implementation steps, build production-ready applications.
**→ [Greenfield Workflow](references/greenfield.md)**
Add features iteratively to existing codebases, modernize legacy systems, adapt processes for evolving requirements, reverse-engineer existing code into SDD format.
**→ [Brownfield Workflow](references/brownfield.md)**
Explore diverse solutions in parallel, support multiple technology stacks & architectures, experiment with UX patterns.
**→ [Greenfield Workflow](references/greenfield.md) - Multi-Stack Exploration section**
\`\`\`bash specify init <project> # New project specify init --here --force # Existing project specify check # Verify installation \`\`\`
\`\`\` /speckit.constitution # Project principles → SUMMARIZE /speckit.specify # Define requirements → SUMMARIZE /speckit.plan # Technical planning → SUMMARIZE /speckit.tasks # Break down tasks → SUMMARIZE /speckit.implement # Execute \`\`\`
\`\`\` /speckit.brownfield # Analyze existing code → SUMMARIZE /speckit.analyze-codebase # Deep analysis & constitution → SUMMARIZE /speckit.reverse-engineer # Document existing features → SUMMARIZE /speckit.integration-plan # Plan new feature integration → SUMMARIZE \`\`\`
\`\`\` /speckit.clarify # Clarify ambiguous requirements /speckit.analyze # Cross-artifact consistency check /speckit.checklist # Generate quality checklists \`\`\`
The SDD skill includes analysis scripts for deep quality validation and progress tracking:
Generates a comprehensive progress report across all phases in a tasks.md file:
**Usage:** \`\`\`bash ~/.claude/skills/sdd/scripts/phase_summary.sh specs/003-keyboard-shortcuts/tasks.md \`\`\`
**Output:** Markdown-formatted phase-by-phase progress report with:
**When to Use:**
Analyzes requirement coverage across spec.md and tasks.md:
**Usage:** \`\`\`bash python3 ~/.claude/skills/sdd/scripts/analyze-requirements.py \`\`\`
**Output:** JSON with coverage metrics, uncovered requirements, vague requirements
Analyzes success criteria verification coverage:
**Usage:** \`\`\`bash python3 ~/.claude/skills/sdd/scripts/analyze-success-criteria.py \`\`\`
**Output:** JSON with coverage summary, verification task mapping
Analyzes edge case coverage across specifications:
**Usage:** \`\`\`bash python3 ~/.claude/skills/sdd/scripts/analyze-edge-cases.py \`\`\`
**Output:** JSON with coverage breakdown, uncovered edge case details
**When to Use:** These scripts are automatically invoked during \`/speckit.analyze\` to provide deep consistency validation. They help identify:
\`\`\` /speckit.validate-reverse-engineering # Verify spec accuracy /speckit.coverage-check # Check documentation coverage /speckit.validate-constitution # Verify constitution consistency /speckit.trace [feature] # Map specs to code \`\`\`
This skill works well with: