
Spec Kit
- 30 installs
- 40 repo stars
- Updated August 4, 2026
- akillness/oh-my-skills
spec-kit is a Claude Code skill that installs GitHub's specify CLI and drives a Spec-Driven Development pipeline (constitution, specify, plan, tasks, implement) shareable across 30+ AI coding agents.
About
spec-kit is a routing-first wrapper around GitHub's specify CLI for Spec-Driven Development. A developer uses it to install specify-cli, initialize a project for a chosen AI coding agent, and drive the constitution, specify, plan, tasks, and implement command pipeline so specs become executable and drive implementation. It matters because it lets a single executable spec be shared across 30+ agents before code is written.
- Installs GitHub's spec-kit and bootstraps Spec-Driven Development for 30+ AI agents
- Drives the constitution -> specify -> plan -> tasks -> implement command pipeline
- Shares one executable spec across Claude Code, Copilot, Gemini, Cursor, Codex, and more
Spec Kit by the numbers
- 30 all-time installs (skills.sh)
- Ranked #1,857 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
spec-kit capabilities & compatibility
Free; installs open-source specify-cli, no API key needed
- Capabilities
- spec authoring · project bootstrap · task breakdown · requirements capture
- Works with
- github
- Use cases
- planning · project management · documentation
- Platforms
- Linux · macOS · Windows · WSL
- Pricing
- Free
What spec-kit says it does
GitHub's [spec-kit](https://github.com/github/spec-kit) inverts the usual flow: **specifications become executable** and directly drive implementation.
npx skills add https://github.com/akillness/oh-my-skills --skill spec-kitAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 30 |
|---|---|
| repo stars | ★ 40 |
| Last updated | August 4, 2026 |
| Repository | akillness/oh-my-skills ↗ |
What it does
Install GitHub spec-kit and run the constitution-to-implement pipeline so an executable spec drives a project across multiple AI agents.
Who is it for?
Bootstrapping a Spec-Driven Development project shareable across many AI agents
Skip if: Vendor-neutral packet-first planning (bmad), immutable-seed loops (ooo), or plan approval (plannotator)
When should I use this skill?
The user wants to install spec-kit/specify-cli or generate executable specs before code
What you get
An executable spec plus agent-specific command files that drive implementation across 30+ agents
- .specify/ project scaffold
- constitution template
- agent command files
By the numbers
- 30+ supported AI agents
- 5-step SDD pipeline
Files
spec-kit — Spec-Driven Development via specify
GitHub's spec-kit inverts the usual flow: specifications become executable and directly drive implementation. This skill is the routing-first wrapper around the upstream specify CLI — it installs the tool, bootstraps a project for a chosen AI agent, and walks the five-step SDD command pipeline.
When to use this skill
- The user asks to install
spec-kit,specify-cli, or "GitHub spec kit" - The user wants to start a project with a Spec-Driven Development workflow
- The user types or asks about
/speckit.constitution,/speckit.specify,
/speckit.plan, /speckit.tasks, /speckit.implement, /speckit.clarify, /speckit.analyze, or /speckit.checklist
- The user wants to share an executable spec across Claude Code, Copilot,
Gemini, Cursor, Codex, opencode, Qwen, Kiro, or another supported agent
- The user wants to discover community spec-kit extensions or presets
(specify extension search, specify preset search)
When not to use this skill
- The user wants a vendor-neutral packet-first planning router that
classifies the next BMAD artifact → use bmad
- The user needs a **spec-first control loop with immutable seed and
drift-aware execution** independent of GitHub spec-kit → use ooo
- The user wants visual review/approval of an existing plan or diff →
use plannotator
- The user wants pre-planning concept framing (problem, audience,
positioning) before any spec exists → use bmad-idea
Prerequisites
| Requirement | Notes |
|---|---|
| Linux / macOS / Windows | Native or WSL on Windows |
| Python 3.11+ | Required by specify-cli |
uv (recommended) or pipx | Tool installation manager |
git | Repo + plugin marketplace operations |
| One supported AI agent | Claude Code, Copilot, Gemini, Codex, etc. |
Instructions
Step 1 — Install specify-cli
# Recommended: uv tool install (pins via Git ref)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# Pinned to a tag (reproducibility):
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.0.10
# Alternative: pipx
pipx install git+https://github.com/github/spec-kit.git
# Verify
specify --version
specify integration listStep 2 — Pick the target AI agent
specify integration list prints all supported agents. Common options:
| Agent | --integration value |
|---|---|
| Claude Code | claude |
| GitHub Copilot | copilot |
| Google Gemini CLI | gemini |
| OpenAI Codex CLI | codex |
| Cursor CLI | cursor |
| opencode | opencode |
| Qwen CLI | qwen |
| Kiro CLI | kiro |
Step 3 — Initialize the project
# Create a new project directory and bootstrap it
specify init my-project --integration claude
# Bootstrap in the current directory
specify init . --integration copilot
# Force-overwrite into the current directory
specify init --here --force --integration geminiThis writes .specify/, agent-specific command files, and the constitution template.
Step 4 — Drive the SDD command pipeline
Run these slash commands inside the chosen agent (Claude Code, Copilot, Gemini, etc.). The agent reads files written by specify init.
| Command | Purpose |
|---|---|
/speckit.constitution | Establish project principles, non-negotiables |
/speckit.specify | Capture requirements and user stories |
/speckit.plan | Produce the technical implementation strategy |
/speckit.tasks | Break the plan into actionable tasks |
/speckit.implement | Execute the plan task by task |
Optional refinements:
/speckit.clarify— interview to resolve ambiguity in the spec/speckit.analyze— review consistency between constitution, spec, plan/speckit.checklist— generate quality checklists for review gates
Step 5 — Extensions and presets (community)
specify extension search
specify extension add <extension-name>
specify preset search
specify preset add <preset-name>Browse community resources at <https://github.github.io/spec-kit/community/>.
Step 6 — Plugin-style installation alongside jeo-skills
This skill folder is plugin-installable through the standard jeo-skills flow so the wrapper, references, and installer script land on disk for any supported agent runtime:
# Project install (writes into .agents/skills/spec-kit/)
npx skills add https://github.com/akillness/jeo-skills --skill spec-kit
# Global install for every detected agent
npx skills add -g https://github.com/akillness/jeo-skills --skill spec-kit
# Target specific agents
npx skills add -g https://github.com/akillness/jeo-skills --skill spec-kit -a claude-code -a codex -yThe skill also ships `scripts/install.sh` as a one-shot installer that detects uv / pipx and runs Step 1.
Output format
When the user asks spec-kit for help, return a compact brief:
# spec-kit Routing Brief
## Scope
- Target agent: claude | copilot | gemini | codex | cursor | opencode | ...
- Project state: new | existing-init | mid-pipeline | extension-only
- Pipeline stage: constitution | specify | plan | tasks | implement | clarify | analyze | checklist
## Recommended next move
- install-specify | specify-init | run-/speckit.<command> | add-extension
## Why
- 2-3 bullets grounded in the user's packet
## Route-outs
- `ooo` for vendor-neutral spec-first loops
- `bmad` for packet-first BMAD/BMM artifact selection
- `plannotator` for approval/review of an existing planBest practices
1. Pin a Git ref (@v0.0.10 or a commit SHA) when reproducibility is important — main moves. 2. One integration per repo unless the user explicitly wants multi-agent parity; switching --integration rewrites command files. 3. Treat `/speckit.constitution` as load-bearing — downstream /speckit.plan and /speckit.tasks honor it, so update it first when principles drift. 4. Use `/speckit.clarify` before `/speckit.plan` when the spec is ambiguous instead of letting the plan paper over open questions. 5. Hand off the artifact to `plannotator` for explicit review before /speckit.implement on level 2+ work. 6. Route to `ooo` when the user actually wants a vendor-neutral spec-first loop with drift tracking instead of GitHub's pipeline.
References
- Upstream repo: <https://github.com/github/spec-kit>
- Documentation site: <https://github.github.io/spec-kit/>
- Community presets and extensions: <https://github.github.io/spec-kit/community/>
- Installer script: `scripts/install.sh`
- Command reference: `references/commands.md`
- Adjacent skills:
../ooo/SKILL.md,../bmad/SKILL.md,
../plannotator/SKILL.md, ../bmad-idea/SKILL.md
- License: MIT (see upstream
LICENSE)
{
"skill_name": "spec-kit",
"evals": [
{
"id": 1,
"prompt": "Set up GitHub spec-kit for our new project. We use Claude Code.",
"expected_output": "An install + init flow: install specify-cli via uv tool (pinnable ref), run `specify init` with the claude integration, then start the SDD command pipeline from /speckit.constitution.",
"assertions": [
"Output installs specify-cli via `uv tool install ... --from git+https://github.com/github/spec-kit.git` (or pipx fallback) and mentions ref pinning for reproducibility.",
"Output runs `specify init` with `--integration claude` (not a different agent).",
"Output starts the pipeline at `/speckit.constitution` before `/speckit.specify`."
]
},
{
"id": 2,
"prompt": "Our spec has open questions but the team wants to jump straight to /speckit.plan. What order should we follow?",
"expected_output": "Guidance to run /speckit.clarify before /speckit.plan, keeping the constitution authoritative, and using /speckit.analyze before tasks/implement.",
"assertions": [
"Output inserts `/speckit.clarify` before `/speckit.plan` when the spec is ambiguous.",
"Output keeps `/speckit.constitution` as the load-bearing artifact that plan/tasks must honor.",
"Output places `/speckit.analyze` (consistency check) before `/speckit.tasks` / `/speckit.implement`."
]
},
{
"id": 3,
"prompt": "I want a vendor-neutral spec-first loop with an immutable seed and drift tracking, not GitHub's pipeline.",
"expected_output": "A route-out to `ooo` (Ouroboros) for the vendor-neutral spec-first control loop, instead of forcing spec-kit.",
"assertions": [
"Output routes to the `ooo` skill for immutable-seed, drift-aware loops.",
"Output does not run `specify init` or the /speckit.* pipeline for this request.",
"Output names the boundary: spec-kit owns GitHub's SDD pipeline; ooo owns the vendor-neutral loop."
]
}
]
}
spec-kit command reference
Upstream: <https://github.com/github/spec-kit>
CLI (specify)
| Command | Purpose |
|---|---|
specify --version | Print installed specify-cli version |
specify integration list | List supported AI coding agents and their flags |
specify init <dir> --integration <agent> | Bootstrap a new spec-kit project for an agent |
specify init . --integration <agent> | Initialize spec-kit in the current directory |
specify init --here --force --integration <agent> | Force re-init in-place |
specify extension search | Search community extensions |
specify extension add <name> | Install a community extension |
specify preset search | Search community presets |
specify preset add <name> | Install a community preset |
Slash commands (run inside the chosen agent)
| Command | Purpose |
|---|---|
/speckit.constitution | Project principles, non-negotiables, decision rules |
/speckit.specify | Requirements, user stories, success criteria |
/speckit.clarify | Targeted interview to resolve ambiguity in the spec |
/speckit.plan | Technical implementation strategy honoring the constitution |
/speckit.tasks | Actionable task breakdown derived from the plan |
/speckit.analyze | Cross-check constitution ↔ spec ↔ plan consistency |
/speckit.checklist | Review/quality checklists for gates |
/speckit.implement | Execute the tasks against the codebase |
Recommended order
1. /speckit.constitution — once, then revisit when principles change 2. /speckit.specify — describe the change in product language 3. /speckit.clarify — only if the spec has open questions 4. /speckit.plan — generate the technical strategy 5. /speckit.analyze — verify the plan honors the spec + constitution 6. /speckit.tasks — decompose into independently runnable tasks 7. /speckit.checklist — produce gate-ready review artifacts 8. /speckit.implement — execute, one task at a time
Supported integrations (selected)
specify integration list is authoritative. Common values:
claude— Claude Codecopilot— GitHub Copilotgemini— Google Gemini CLIcodex— OpenAI Codex CLIcursor— Cursor CLIopencode— opencodeqwen— Qwen CLIkiro— Kiro CLItabnine,mistral,goose,forge,pi, and 15+ others
#!/usr/bin/env bash
# spec-kit installer wrapper.
# Installs GitHub's `specify-cli` (spec-kit) via uv or pipx.
#
# Env knobs:
# SPEC_KIT_REF — Git ref / tag / SHA to pin (default: main)
# SPEC_KIT_INTEGRATION — optional: integration to bootstrap after install
# (claude, copilot, gemini, codex, cursor, opencode,
# qwen, kiro, ...)
# SPEC_KIT_PROJECT_DIR — optional: target dir to `specify init` into
# (default: skip init; only install the CLI)
#
# Usage:
# bash scripts/install.sh
# SPEC_KIT_REF=v0.0.10 bash scripts/install.sh
# SPEC_KIT_INTEGRATION=claude SPEC_KIT_PROJECT_DIR=./my-app bash scripts/install.sh
set -euo pipefail
SPEC_KIT_REF="${SPEC_KIT_REF:-main}"
SPEC_KIT_REPO="git+https://github.com/github/spec-kit.git@${SPEC_KIT_REF}"
echo "=== spec-kit installer ==="
echo "ref: ${SPEC_KIT_REF}"
if command -v uv >/dev/null 2>&1; then
echo "[1/2] Installing specify-cli via uv tool install"
uv tool install --force "specify-cli" --from "${SPEC_KIT_REPO}"
elif command -v pipx >/dev/null 2>&1; then
echo "[1/2] uv not found — falling back to pipx"
pipx install --force "${SPEC_KIT_REPO}"
else
echo "ERROR: neither uv nor pipx is installed." >&2
echo " Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2
echo " Or pipx: python3 -m pip install --user pipx && pipx ensurepath" >&2
exit 1
fi
if ! command -v specify >/dev/null 2>&1; then
echo "ERROR: 'specify' is not on PATH after install." >&2
echo " Make sure your tool bin dir is on PATH (uv: ~/.local/bin)." >&2
exit 1
fi
echo "[2/2] specify $(specify --version 2>/dev/null || echo 'installed')"
specify integration list || true
if [ -n "${SPEC_KIT_INTEGRATION:-}" ] && [ -n "${SPEC_KIT_PROJECT_DIR:-}" ]; then
echo ""
echo "=== Bootstrapping project ==="
echo "dir: ${SPEC_KIT_PROJECT_DIR}"
echo "integration: ${SPEC_KIT_INTEGRATION}"
mkdir -p "${SPEC_KIT_PROJECT_DIR}"
( cd "${SPEC_KIT_PROJECT_DIR}" && specify init . --integration "${SPEC_KIT_INTEGRATION}" --force )
fi
echo ""
echo "Done. Next:"
echo " specify init my-project --integration claude"
echo " cd my-project && open it in your AI agent, then run /speckit.constitution"
N:spec-kit
D:GitHub Spec-Driven Development via the `specify` CLI — install specify-cli (uv tool, pinnable ref), bootstrap a project for one of 30+ AI agents (claude/copilot/gemini/codex/cursor/opencode/qwen/kiro/...), and drive the constitution → specify → clarify → plan → analyze → tasks → checklist → implement pipeline.
T:Bash|Read|Write|Edit|Glob|Grep|WebFetch
G:spec-kit|speckit|specify|specify init|spec-driven|SDD|/speckit|executable spec
F:Claude|Copilot|Gemini|Codex|Cursor|OpenCode|Qwen|Kiro
S:
1:Install — `uv tool install specify-cli --from git+https://github.com/github/spec-kit.git[@ref]` (pipx fallback); pin a ref for reproducibility
2:Pick the agent — `specify integration list`
3:Init — `specify init <dir> --integration <agent>` (or `--here --force`)
4:Pipeline — /speckit.constitution → /speckit.specify → (/speckit.clarify) → /speckit.plan → (/speckit.analyze) → /speckit.tasks → (/speckit.checklist) → /speckit.implement
5:Extensions/presets — `specify extension|preset search/add`
R:
ooo:Use for a vendor-neutral spec-first loop with immutable seed and drift tracking
bmad:Use for packet-first BMAD/BMM artifact routing
plannotator:Use for review/approval of an existing plan
bmad-idea:Use for pre-planning concept framing
Related skills
FAQ
What does specify init write?
It writes .specify/, agent-specific command files, and the constitution template.
How is spec-kit installed?
Via uv tool install specify-cli from the GitHub repo, or pipx as an alternative.