| name | sdd-methodology |
| description | Use when explaining or applying Spec-Driven Development workflow, guiding through SDD phases, or helping with workflow decisions. Invoked for methodology guidance, workflow optimization, and best practices. |
SDD Methodology Skill
You are an expert in Spec-Driven Development (SDD), a methodology for AI-assisted software development. You guide teams through structured workflow phases to deliver high-quality software.
When to Use This Skill
- Explaining SDD workflow phases
- Guiding through workflow transitions
- Helping with methodology decisions
- Optimizing team workflows
- Onboarding new team members to SDD
- Troubleshooting workflow issues
SDD Workflow Overview
┌─────────┐ ┌─────────┐ ┌──────────┐ ┌────────┐ ┌───────────┐ ┌──────────┐
│ Assess │ → │ Specify │ → │ Research │ → │ Plan │ → │ Implement │ → │ Validate │
└─────────┘ └─────────┘ └──────────┘ └────────┘ └───────────┘ └──────────┘
↓ ↓ ↓ ↓ ↓ ↓
Assessed Specified Researched Planned In Implementation Validated
Note: Deployment/operations is "outer loop" - handled by external CI/CD pipelines, not SDD workflow.
Workflow Phases
1. Assess (/flow:assess)
Purpose: Evaluate if SDD workflow is appropriate for a feature.
Outputs:
- Assessment report in
docs/assess/
- Recommendation: Full SDD, Spec-Light, or Skip SDD
Criteria for Full SDD:
- Complex feature (>3 days estimated)
- Multiple stakeholders
- Architectural impact
- Security implications
- External integrations
2. Specify (/flow:specify)
Purpose: Create product requirements document.
Outputs:
- PRD in
docs/prd/
- User stories
- Acceptance criteria
- Success metrics
Best Practices:
- Focus on "what" not "how"
- Include user personas
- Define MVP scope
- Identify risks and mitigations
3. Research (/flow:research)
Purpose: Technical research and business validation.
Outputs:
- Research report in
docs/research/
- Technology recommendations
- Feasibility analysis
- Market validation (if applicable)
Activities:
- Spike prototypes
- Performance benchmarks
- Third-party evaluations
- Competitive analysis
4. Plan (/flow:plan)
Purpose: Create architecture and implementation plan.
Outputs:
- ADRs in
docs/adr/
- Platform design in
docs/platform/
- Task breakdown in backlog
Deliverables:
- System architecture diagrams
- API specifications
- Database schema
- Infrastructure requirements
5. Implement (/flow:implement)
Purpose: Execute the implementation plan.
Process:
- Assign tasks from backlog
- Implement with TDD/BDD
- Create pull requests
- Code review
- Merge to main
Best Practices:
- One task per PR
- All tests passing
- Documentation updated
- No new technical debt
6. Validate (/flow:validate)
Purpose: Quality assurance and security review.
Outputs:
- QA report in
docs/qa/
- Security report in
docs/security/
- Test coverage report
Checklist:
Workflow State Transitions
Note: Deployment and operations are "outer loop" concerns handled by external CI/CD pipelines.
Use /ops:* commands (/ops:monitor, /ops:respond, /ops:scale) for operational tasks.
| Current State | Valid Commands | Next State |
|---|
| To Do | /flow:assess | Assessed |
| Assessed | /flow:specify | Specified |
| Specified | /flow:research, /flow:plan | Researched, Planned |
| Researched | /flow:plan | Planned |
| Planned | /flow:implement | In Implementation |
| In Implementation | /flow:validate | Validated |
| Validated | (external CI/CD) | Deployed |
SDD Principles
1. Specification First
- Define requirements before coding
- Use acceptance criteria as contracts
- Document decisions as ADRs
2. Incremental Delivery
- Small, atomic tasks
- Continuous integration
- Frequent deployments
3. Quality Built-In
- TDD/BDD approach
- Automated testing
- Security by design
4. Continuous Improvement
- Retrospectives after each phase
- Metrics-driven optimization
- Knowledge sharing
Common Anti-Patterns
Avoid These:
- Skipping Assess: Jumping to implementation without evaluation
- Vague Specs: Requirements without acceptance criteria
- Big Bang Implementations: Large PRs with multiple features
- Testing Afterthought: Writing tests after implementation
- Documentation Debt: Leaving docs for "later"
Instead, Do This:
- Always assess complexity first
- Write testable acceptance criteria
- One task = one PR
- TDD from the start
- Document as you go
Workflow Configuration
SDD workflow is configured in flowspec_workflow.yml:
states:
- name: "To Do"
description: "Task created, not started"
- name: "Assessed"
description: "Complexity evaluated"
workflows:
assess:
command: "/flow:assess"
input_states: ["To Do"]
output_state: "Assessed"
agents: ["workflow-assessor"]
Getting Help
- Workflow troubleshooting:
docs/guides/workflow-troubleshooting.md
- State mapping:
docs/guides/workflow-state-mapping.md
- Customization:
docs/guides/workflow-customization.md