Claude Code-Native Spec-Driven Development
Speck is a specification-driven development framework that brings GitHub's spec-kit methodology to Claude Code. It provides slash commands, a natural language skill, and a CLI to help teams structure feature development through a disciplined three-phase workflow: Specify what you're building, Plan how you'll build it, Implement the plan.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SPECIFY │ → │ PLAN │ → │ IMPLEMENT │
└─────────────┘ └─────────────┘ └─────────────┘
What? How? Execute
Define what you're building (stakeholder-friendly, technology-agnostic), design how you'll build it (architecture, contracts, tech stack), then execute with dependency-ordered tasks.
- Three-phase workflow — Structured specify → plan → implement cycle inherited from spec-kit
- Claude Code plugin — Native slash commands (
/speck.specify,/speck.plan, etc.) - Natural language skill — Ask questions about your specs, plans, and tasks
- Dual-mode CLI — Same commands work in Claude Code and terminal
- Multi-repo support — Share specifications across repositories
- Worktree integration — Work on multiple features in parallel with automatic IDE launch
- spec-kit compatible — 100% file format compatibility, easy migration
-
Open Claude Code in your project:
claude
-
Open plugin manager:
/plugin -
Add the marketplace:
- Select "Manage marketplaces" → "Add marketplace"
- Enter:
speck-market
-
Install Speck:
- Select "speck-market" → "speck" → "Install"
/speck.specify Add user authentication with email and password login
Speck generates a structured specification in
specs/001-user-authentication/spec.md with user stories, requirements, and
success criteria.
See the Quick Start Guide for detailed setup including optional worktree integration.
| Command | Description |
|---|---|
/speck.specify |
Create or update a feature specification |
/speck.clarify |
Resolve ambiguities with targeted questions |
/speck.plan |
Generate implementation plan and design artifacts |
/speck.tasks |
Break down into dependency-ordered tasks |
/speck.implement |
Execute tasks automatically |
/speck.help |
Load the Speck skill for Q&A |
See the Commands Reference for all commands and options.
In addition to slash commands, ask Speck questions naturally:
What user stories are in this spec?
What's the technical approach in the plan?
What tasks are pending?
Rule of thumb: Skill for questions, commands for actions.
| Feature | Description |
|---|---|
| Speck Reviewer | Cluster-based PR reviews with spec awareness — Learn more |
| Multi-Repo | Share specs across microservices or frontend/backend splits — Learn more |
| Worktrees | Work on multiple features simultaneously with IDE auto-launch — Learn more |
| Monorepos | Manage workspace projects with shared specifications — Learn more |
| spec-kit | 100% file format compatible with GitHub's spec-kit — Learn more |
.claude/
├── commands/ # Slash commands (/speck.*)
├── agents/ # Subagents for complex workflows
└── skills/ # Natural language skill
plugins/speck/ # Deployable Speck plugin
├── scripts/ # CLI implementations
├── commands/ # Slash command definitions
└── skills/ # Skill definitions
packages/
├── common/ # Shared utilities (@speck/common)
└── maintainer/ # Maintainer tools (@speck/maintainer)
.speck/ # User project config (runtime)
└── config.json # Worktree and IDE settings
specs/ # Feature specifications (spec.md, plan.md, tasks.md)
website/ # Documentation site source
Speck is designed to be forked and customized. Teams can adapt templates, commands, and workflows to match their development practices. The upstream transform process works for forks too—you can stay synced with spec-kit releases while maintaining your customizations.
Speck stays aligned with GitHub's spec-kit through an automated transform process:
Your Fork ← Transform ← spec-kit upstream
Commands for syncing:
/speck.check-upstream— Check for new spec-kit releases/speck.pull-upstream— Fetch upstream content toupstream//speck.transform-upstream— Convert bash scripts to Bun TypeScript
Forks can use this same process to pull Speck updates while preserving local customizations.
PRs with new features, bug fixes, and documentation improvements are welcome!
A note on scope: Speck is opinionated and Claude-native by design. We prioritize deep Claude Code integration over multi-agent compatibility. Features that dilute this focus or add complexity without Claude-specific benefit may not be accepted.
Good PR candidates:
- Bug fixes and performance improvements
- Claude Code integrations and optimizations
- Documentation and examples
- Template improvements
For larger features, please open an issue first to discuss the approach.
- Bun 1.0+
- Git 2.30+
- Node 18+ (for some tooling)
git clone https://github.com/nprbst/speck.git
cd speck
bun installbun test # Run tests
bun run lint # Lint code
bun run typecheck # Type check
bun run preflight # Full check before PR
bun run website:dev # Local docs site (localhost:4321)- TypeScript 5.3+ with strict mode
- Follow existing patterns in the codebase
- Run
bun run fixbefore committing
- Website — Full documentation
- Quick Start — Installation and first command
- Three-Phase Workflow — Core methodology
- Commands Reference — All commands and options
- Speck & spec-kit — Origins and compatibility
Speck builds on GitHub's excellent spec-kit project, extending its specification-driven methodology for Claude Code users. We're grateful to the spec-kit team for creating this foundation.
For teams using other AI assistants or working outside Claude Code, spec-kit remains the canonical choice.