Spec-Driven Development toolkit — AI builds from your spec, inside VS Code chat (@sdd).
Project description
SDD Kit — Spec-Driven Development
Tell the AI what you want to build. It writes the spec, scaffolds the code, runs tests, and reports back. You just review.
SDD Kit is a VS Code chat participant (@sdd) that turns a one-sentence idea into a working project — by writing the spec first and then generating code from it.
It uses your existing GitHub Copilot subscription. No extra API keys, no extra bills.
Install (2 steps)
pip install sdd-kit
sdd install-extension
That's it. Reload VS Code and you'll see @sdd in the chat panel.
Requirements
- Python 3.10+ (for
pip install sdd-kit) - VS Code 1.85+ with the GitHub Copilot extension signed in
- The
code(orcursor) CLI on your PATH VS Code → Cmd+Shift+P → "Shell Command: Install 'code' command in PATH"
Why pip? The CLI bundles a copy of the
.vsixand installs it via thecodeCLI, so you don't have to download anything manually or trust a Marketplace upload.
Quickstart — 60 seconds
- Open any folder in VS Code.
- Open the chat panel (Ctrl/Cmd+Alt+I).
- Type:
@sdd /init a sales analytics dashboard - Answer 6–8 questions about stack, users, MVP scope.
- SDD Kit writes 4 spec docs into
docs/and scaffolds the project.
That's the loop. From here, ask @sdd to do anything else with the slash commands below.
The commands — what they do and when to use them
@sdd exposes 9 slash commands. /init runs once per project. The others are tools you reach for whenever you need them.
/init — Start a new project
Use once, at the beginning. Turns "an idea" into "a real folder with spec docs and starter code".
@sdd /init a CRM for solo lawyers
Asks you: stack? who uses it? what's in the MVP? what's out of scope?
Writes: docs/constitution.md, docs/PRD.md, docs/ARCHITECTURE.md, docs/FEATURE_SPEC_MVP.md, plus initial code.
/plan — Get a checklist before doing the work
Use when you want SDD to think before it touches code. Outputs
docs/PLAN.mdwith goal, assumptions, numbered checklist, risks, and acceptance criteria. Writes no code.
@sdd /plan migrate auth from sessions to JWT
Read the plan, edit it if you want, then run /build to execute it.
/design — Add or rework a feature in the spec
Use when you want a new feature, before writing code. Updates the architecture & feature docs first.
@sdd /design add invoice export to PDF
/ux — Design UI/UX
Use when a feature needs screens, flows, or a component system. Outputs
docs/UX_SPEC.md(user flows + screen inventory + nav map + accessibility) anddocs/UI_COMPONENTS.md(design tokens + component catalog). Writes no UI code yet —/builddoes that.
@sdd /ux design the onboarding flow for new admins
/build — Implement code from the spec
Use after
/design, or when a feature is in the spec but not built yet. Reads the spec, writes the code.
@sdd /build the invoice export feature
/test — Write or fix tests
Use after
/build, or whenever tests are missing/red.
@sdd /test
/refactor — Clean up code, staying aligned with the spec
Use when the code works but is messy. SDD reads the architecture rules and refactors without breaking contracts.
@sdd /refactor the auth module
/review — Audit code against the spec
Use before merging or shipping. Outputs a
REVIEW.mdwith drift, gaps, and risks.
@sdd /review
/update-doc — Sync docs back to the code
Use after manual code changes that diverged from the spec. SDD detects drift and rewrites the docs to match reality.
@sdd /update-doc
Why "spec-driven"?
Most AI coding tools jump straight to code, and the code becomes the only source of truth. That works for snippets, not for projects you have to maintain.
SDD Kit keeps a spec (docs/constitution.md + friends) as the source of truth:
- Every
/build,/refactor,/testreads only the spec sections it needs (not the whole codebase) — so it stays fast and on-topic. - Every
/reviewcompares code against the spec — so drift is visible. - Every
/update-docresyncs the spec — so the docs never go stale.
In short: the spec is the contract, the code is one implementation, and SDD keeps them in sync.
Project layout after /init
my-project/
├── docs/
│ ├── constitution.md # name, stack, users, rules, MVP scope
│ ├── PRD.md # problem, goals, success metrics
│ ├── ARCHITECTURE.md # folders, components, API, data model
│ └── FEATURE_SPEC_MVP.md # feature-by-feature breakdown
└── …scaffolded code…
Additional docs created on-demand by other skills:
docs/
├── PLAN.md # ← /plan
├── UX_SPEC.md # ← /ux
├── UI_COMPONENTS.md # ← /ux
├── TEST_PLAN.md # ← /test
└── REVIEW.md # ← /review
Troubleshooting
"No language model available" — Install GitHub Copilot and sign in (GitHub icon in the Activity Bar). SDD Kit will use whichever model Copilot offers — Claude, GPT-4o, or others.
sdd install-extension says "couldn't find code CLI" — In VS Code: Cmd+Shift+P → "Shell Command: Install 'code' command in PATH". Same with Cursor.
@sdd doesn't appear in chat — Reload VS Code (Cmd+Shift+P → "Developer: Reload Window") after installing the extension.
License
Apache-2.0.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sdd_kit-0.2.1.tar.gz.
File metadata
- Download URL: sdd_kit-0.2.1.tar.gz
- Upload date:
- Size: 33.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da9dd02638e3f776eabfcf342817ec777f6d6f63269e91b54d496a5e813a8d6d
|
|
| MD5 |
bd01f05c2f9c7a739311f2ce608928fb
|
|
| BLAKE2b-256 |
5a27c28e3da49e909a2db42abda0ac50f3e019a7aac8c2cc58f08c1e0b1bce78
|
File details
Details for the file sdd_kit-0.2.1-py3-none-any.whl.
File metadata
- Download URL: sdd_kit-0.2.1-py3-none-any.whl
- Upload date:
- Size: 32.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
851674fe0ed4bc6d6b24282a57ea17ba1bc890eeeda7a976bc33f0141f0d6e27
|
|
| MD5 |
0d741236f6e054f0e3228115abefe378
|
|
| BLAKE2b-256 |
0d4a034a7b5bb010ad18d5b0b5ad8770e0ac75896bda73335fe966b2f19be26c
|