| 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 │ → │ Operate │
└─────────┘ └─────────┘ └──────────┘ └────────┘ └───────────┘ └──────────┘ └─────────┘
↓ ↓ ↓ ↓ ↓ ↓ ↓
Assessed Specified Researched Planned In Implementation Validated Deployed
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:
- All acceptance criteria met
- Test coverage >= 80%
- Security scan clean
- Performance benchmarks passed
- Documentation complete
7. Operate (/flow:operate)
Purpose: Deploy and maintain in production.
Outputs:
- Deployment runbook
- Monitoring dashboards
- Alert configurations
Activities:
- Blue/green deployment
- Smoke testing
- Performance monitoring
- Incident response
Workflow State Transitions
| 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 | /flow:operate |
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"
# ... more states
workflows:
assess:
command: "/flow:assess"
input_states: ["To Do"]
output_state: "Assessed"
agents: ["workflow-assessor"]
# ... more workflows
Getting Help
- Workflow troubleshooting:
docs/guides/workflow-troubleshooting.md - State mapping:
docs/guides/workflow-state-mapping.md - Customization:
docs/guides/workflow-customization.md