A reusable spec-driven development framework for VS Code Copilot that guides TDD-based development through structured phases.
/sdd.init-project
The AI will ask about your tech stack, architecture, and preferences, then generate a complete project structure with SDD framework configured.
/sdd.onboard
The AI will analyze your codebase to discover:
- Tech stack (backend, frontend, database, testing)
- Naming conventions and code patterns
- Existing linting/formatting rules
- Test organization and coverage targets
Then generate standards files that match your existing conventions.
If you prefer manual setup:
- Copy this folder to your project root
- Customize standards in
standards/global/for your tech stack - Start a feature with
/sdd.start your feature description
Copy the entire sdd-framework/ contents to your project:
cp -r sdd-framework/.github /path/to/your/project/
cp -r sdd-framework/standards /path/to/your/project/
cp -r sdd-framework/specs /path/to/your/project/
cp -r sdd-framework/product /path/to/your/project/ # OptionalYour project structure should include:
your-project/
├── .github/
│ ├── agents/ # Agent definitions (main logic)
│ │ ├── sdd-init-project.agent.md # New project setup
│ │ ├── sdd-onboard.agent.md # Existing project onboarding
│ │ ├── sdd-start.agent.md
│ │ ├── sdd-initiate.agent.md
│ │ ├── sdd-shape.agent.md
│ │ ├── sdd-specify.agent.md
│ │ ├── sdd-tasks.agent.md
│ │ ├── sdd-implement.agent.md
│ │ ├── sdd-validate.agent.md
│ │ └── sdd-complete.agent.md
│ │
│ ├── prompts/ # Command wrappers
│ │ ├── sdd-init-project.prompt.md
│ │ ├── sdd-onboard.prompt.md
│ │ ├── sdd-start.prompt.md
│ │ └── ... (one per phase)
│ │
│ └── instructions/
│ └── sdd-context.md
│
├── standards/
│ └── global/
│ ├── code-quality.md
│ └── testing.md
│
├── specs/
│ ├── active/
│ ├── implemented/
│ └── _templates/
│ ├── spec.template.md
│ └── tasks.template.md
│
├── product/ # Optional product docs
│ ├── mission.template.md
│ └── roadmap.template.md
│
└── [your project files]
┌─────────────────────────────────────────────────────────────────┐
│ PROJECT SETUP (New Projects Only) │
│ ───────────────────────────────── │
│ /sdd.init-project │
│ ├── Q&A: tech stack, architecture, testing │
│ ├── Generate project structure │
│ ├── Generate standards for your stack │
│ └── Create mission.md │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ FEATURE DEVELOPMENT (Repeatable) │
│ ──────────────────────────────── │
│ │
│ /sdd.start (Phases 1-3 combined) │
│ ├── Creates feature branch │
│ ├── Searches codebase for similar features │
│ ├── Gathers requirements through Q&A │
│ └── Generates specification │
│ │ │
│ ▼ [User reviews spec] │
│ │
│ /sdd.tasks (Phase 4) │
│ └── Creates TDD-ordered task breakdown │
│ │ │
│ ▼ [User reviews tasks] │
│ │
│ /sdd.implement (Phase 5) │
│ └── TDD implementation (Red-Green-Refactor) │
│ │ │
│ ▼ │
│ /sdd.validate (Phase 6) │
│ └── Verifies implementation vs spec │
│ │ │
│ ▼ │
│ /sdd.complete (Phase 7) │
│ └── Moves spec to implemented/, finalizes │
└─────────────────────────────────────────────────────────────────┘
| Command | Description |
|---|---|
/sdd.init-project |
Initialize new project - asks about tech stack, generates structure |
/sdd.onboard |
Onboard existing project - analyzes codebase, infers standards |
| Command | Description |
|---|---|
/sdd.start [description] |
Start new spec - combines phases 1-3 |
/sdd.start PROJ-123 |
Start from Jira issue (if MCP available) |
| Command | Phase | Description |
|---|---|---|
/sdd.initiate |
1 | Create branch and folder structure |
/sdd.shape |
2 | Gather requirements through Q&A |
/sdd.specify |
3 | Generate specification document |
/sdd.tasks |
4 | Create TDD-ordered task breakdown |
/sdd.implement |
5 | TDD implementation |
/sdd.validate |
6 | Verify implementation matches spec |
/sdd.complete |
7 | Finalize and move to implemented/ |
Invoke agents with @:
@sdd-init-project- Initialize new project@sdd-onboard- Onboard existing project@sdd-start- Start new feature spec@sdd-tasks- Create task breakdown- etc.
The framework includes optional product-level documents:
Defines project purpose, target users, and tech stack. Generated by /sdd.init-project or created manually from mission.template.md.
Optional local roadmap for feature planning. Not required if using external tools like Jira.
Roadmap → Specs flow:
Roadmap Item → /sdd.start "feature name" → Spec in specs/active/
Jira → Specs flow:
Jira Epic/Ticket → /sdd.start PROJ-123 → Spec in specs/active/
After each phase completes, the agent suggests the next step via a handoff button. This guides you through the workflow without needing to remember commands.
All implementation follows Red-Green-Refactor:
- RED: Write failing tests first
- GREEN: Write minimal code to pass
- REFACTOR: Improve while keeping tests green
Before specifying new features, the framework searches your codebase for:
- Similar features to reference
- Reusable components
- Patterns to follow
The "Out of Scope" section prevents feature creep:
- Explicitly lists what's NOT included
- Enforced during implementation
- Verified during validation
If Atlassian MCP is available:
- Start from Jira issues:
/sdd.start PROJ-123 - Auto-fetch issue details and attachments
- Graceful fallback if unavailable
Specs currently in development:
specs/active/2025-01-29-user-auth/
├── spec.md # The specification
├── tasks.md # Task breakdown
├── requirements.md # Raw requirements from shaping
├── validation-report.md # Generated by validate phase
└── visuals/ # Mockups, wireframes
Completed specs (moved on completion).
Quality standards (customize for your stack):
code-quality.md- Code quality rulestesting.md- TDD and testing requirements
Optional product documentation:
mission.md- Project mission and overviewroadmap.md- Feature roadmap (if not using external tool)
- New projects: Use
/sdd.init-projectto get proper setup - Always start features with
/sdd.start- Don't skip the spec - Review before proceeding - Check specs and tasks before implementation
- Follow TDD strictly - Tests before code, always
- Respect scope - Out of scope means out of scope
- Use handoffs - Let the workflow guide you
The framework uses two types of files:
- Prompt files (
.github/prompts/): Minimal wrappers for/commandinvocation - Agent files (
.github/agents/): Full instructions and handoffs
This separation allows:
- Clean
/sdd.*command syntax - Rich agent behavior with handoffs
- Easy customization of either layer
MIT - Use freely in your projects.