last update
Jun 24, 2026
license
MITv1.0.0
format
SKILL.md
- Install
// Downloads SKILL.md into ~/.claude/skills/spec-driven-development-spec-kit/
$ curl -fsSL --create-dirs -o ~/.claude/skills/spec-driven-development-spec-kit/SKILL.md https://claudeskil.com/skills/spec-driven-development-spec-kit/SKILL.md - Invoke
// Inside Claude Code, type the skill name as a slash command
> /spec-driven-development-spec-kit fine-tune on this CSV - Or just ask
// Claude loads the skill by itself when a request matches its description
> fine-tune on this CSV
- name:
- Spec Kit SDD
- slug:
- spec-driven-development-spec-kit
- version:
- v1.0.0
- license:
- MIT
- author:
- @chiragthummar16
- categories:
- tags:
- #spec-driven-development#spec-kit#ai-coding#ears-specs#constitution-md
- description:
GitHub Spec Kit spec-driven development — /specify, /plan, /tasks, /implement, constitution.md, EARS specs.
README.md
Spec Kit SDD
This skill drives GitHub's Spec Kit through its full spec-driven development loop, so you write an explicit specification, plan, and task list before any implementation code exists. It's aimed at developers who want an AI agent to build against a reviewed, version-controlled intent — not a vibe-coded prompt — and who care about traceability from requirement to commit.
When to use it
- Starting a new feature where the requirements still have open questions you want surfaced and resolved up front.
- Working on a team that reviews specs and plans in PRs before code lands.
- Re-architecting an existing module and you want a checked-in
plan.md, data model, and contracts to align on first. - You keep getting half-right AI output because the agent guessed at acceptance criteria — EARS-style specs force those into the open.
How it works
The skill scaffolds a project with specify init (CLI installable via uv tool install specify-cli from the spec-kit repo), then runs the slash-command workflow inside your agent:
/constitution— writememory/constitution.mdwith non-negotiable engineering principles (testing, library-first, observability) that every later step must respect./specify— producespec.md: user stories and acceptance criteria, written in EARS phrasing ("WHEN <trigger>, the system SHALL <response>")./clarify— interrogate the spec for ambiguities and underspecified behavior, recording answers back intospec.md./plan— generateplan.mdplus supporting artifacts:research.md,data-model.md, and acontracts/directory./tasks— derive an ordered, dependency-awaretasks.md./analyze— cross-check spec, plan, and tasks for inconsistencies before you commit to building./implement— execute the task list against the plan.
Artifacts live under a per-feature directory (e.g. specs/001-feature-name/) so each feature carries its own spec, plan, and tasks in git.
Usage example
curl -fsSL --create-dirs -o ~/.claude/skills/spec-driven-development-spec-kit/SKILL.md https://claudeskil.com/skills/spec-driven-development-spec-kit/SKILL.md
# scaffold (Spec Kit CLI)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
specify init my-app
cd my-app
# then, inside your agent:
/constitution Principles: test-first, no feature without a contract
/specify Build a URL shortener with custom slugs and click analytics
/clarify
/plan Use Postgres, FastAPI, expose REST contracts under /api
/tasks
/analyze
/implement
Tips & gotchas
- Run
/clarifybefore/plan— planning over an ambiguous spec bakes the wrong assumptions intodata-model.mdand contracts. - The constitution is enforced downstream; vague principles produce vague gates. Make them checkable ("every endpoint has a contract test").
/analyzeis read-only triage — it reports drift but won't fix it. Re-run/specifyor/planto reconcile.- Spec Kit is agent-agnostic; the same
spec.md/plan.mdwork across Claude, Copilot, Cursor, and others.
FAQ
Do I have to use every command? No. The common minimum is /specify → /plan → /tasks → /implement. Add /constitution, /clarify, and /analyze as your need for rigor grows.
Does it overwrite my existing repo? specify init scaffolds the .specify/templates structure; use specify init --here to add it into the current directory rather than creating a new one.
Where do the specs live? Committed under specs/<feature>/, so they review and diff like code.
$ cat reviews/