Skip to main content

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 (or cursor) 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 .vsix and installs it via the code CLI, so you don't have to download anything manually or trust a Marketplace upload.


Quickstart — 60 seconds

  1. Open any folder in VS Code.
  2. Open the chat panel (Ctrl/Cmd+Alt+I).
  3. Type:
    @sdd /init a sales analytics dashboard
    
  4. Answer 6–8 questions about stack, users, MVP scope.
  5. 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.md with 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) and docs/UI_COMPONENTS.md (design tokens + component catalog). Writes no UI code yet — /build does 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.md with 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, /test reads only the spec sections it needs (not the whole codebase) — so it stays fast and on-topic.
  • Every /review compares code against the spec — so drift is visible.
  • Every /update-doc resyncs 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

sdd_kit-0.2.1.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sdd_kit-0.2.1-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

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

Hashes for sdd_kit-0.2.1.tar.gz
Algorithm Hash digest
SHA256 da9dd02638e3f776eabfcf342817ec777f6d6f63269e91b54d496a5e813a8d6d
MD5 bd01f05c2f9c7a739311f2ce608928fb
BLAKE2b-256 5a27c28e3da49e909a2db42abda0ac50f3e019a7aac8c2cc58f08c1e0b1bce78

See more details on using hashes here.

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

Hashes for sdd_kit-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 851674fe0ed4bc6d6b24282a57ea17ba1bc890eeeda7a976bc33f0141f0d6e27
MD5 0d741236f6e054f0e3228115abefe378
BLAKE2b-256 0d4a034a7b5bb010ad18d5b0b5ad8770e0ac75896bda73335fe966b2f19be26c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page