Get started with Spec Kit in 5 minutes.
- Claude Code installed (claude.ai/code)
- Git (optional but recommended)
cd your-project
# Create necessary directories
mkdir -p .claude/commands .specify
# Copy Spec Kit files
cp -r /path/to/speckit/.specify/* ./.specify/
cp -r /path/to/speckit/.claude/commands/speckit*.md ./.claude/commands/Create CLAUDE.md in your project root:
# CLAUDE.md
This repository uses **Spec Kit** for specification-driven development.
## Commands
- `/speckit.specify <description>` - Create feature spec
- `/speckit.plan` - Create technical plan
- `/speckit.tasks` - Generate executable tasks
- `/speckit.implement` - Execute implementation
- `/speckit-workflow-v2 <brief>` - Run full workflow
See [Spec Kit](link-to-repo) for full documentation.Edit .specify/memory/constitution.md with your project's principles:
# Project Constitution
## Core Principles
1. Test-Driven Development
2. API-First Design
3. Security by Default
## Technology Stack
- Language: [Your language]
- Framework: [Your framework]
- Database: [Your database]Open Claude Code in your project and run:
/speckit.specify Add user login with email and passwordThis will:
- Create a feature branch
001-user-login - Generate
specs/001-user-login/spec.mdwith requirements - Validate specification quality
- Ask clarification questions if needed
# Create technical plan
/speckit.plan
# Generate executable tasks
/speckit.tasks
# Implement the feature
/speckit.implement/speckit-workflow-v2 Add user login with email and password --autoAfter running the workflow, you'll have:
specs/001-user-login/
├── spec.md # What the feature does and why
├── plan.md # How to implement it technically
├── tasks.md # Ordered list of implementation tasks
└── checklists/ # Quality validation checklists
├── security.md
└── requirements.md
Technology-agnostic description of the feature:
# User Login
## Overview
Allow users to authenticate using email and password...
## User Scenarios
**As a** registered user
**I want to** log in with my email and password
**So that** I can access my account
## Success Criteria
- Users can log in within 3 seconds
- Failed login attempts show clear error messagesTechnical implementation details:
# Implementation Plan: User Login
## Technology Stack
- FastAPI for auth endpoints
- bcrypt for password hashing
- JWT for session tokens
## Architecture
- POST /auth/login endpoint
- UserService.authenticate() method
- JWT token generationOrdered, executable tasks:
## Phase 3: User Stories
### P1 - Basic Login (MVP)
- [ ] [T010] [P] [US1] Create User model in src/models/user.py
- [ ] [T011] [P] [US1] Create AuthService in src/services/auth.py
- [ ] [T012] [US1] Create login endpoint in src/api/auth.py
- [ ] [T013] [US1] Add login tests in tests/test_auth.py# 1. Specify what you want
/speckit.specify Add real-time notifications
# 2. Review and clarify (if questions are asked)
/speckit.clarify
# 3. Create technical plan
/speckit.plan
# 4. Generate tasks
/speckit.tasks
# 5. Implement
/speckit.implement# Run entire workflow at once
/speckit-workflow-v2 Add export to PDF feature --auto# Include security and accessibility checks
/speckit-workflow-v2 Add payment processing --domains 'security,pci-compliance' --strictTasks follow this format:
- [ ] [T010] [P] [US1] Create User model in src/models/user.py
│ │ │ │ │
│ │ │ │ └─ Description with file path
│ │ │ └────── User Story reference
│ │ └─────────── [P] = Parallelizable
│ └───────────────── Task ID
└─────────────────────── Checkbox (marks completion)
- Task ID: Unique identifier for tracking
- [P]: Can be done in parallel with other [P] tasks
- [US#]: References user story from spec.md
- File path: Where to implement the change
# In your terminal
./.specify/scripts/bash/check-prerequisites.sh --jsonReturns:
{
"branch": "001-user-login",
"feature_dir": "specs/001-user-login",
"spec_file": "specs/001-user-login/spec.md",
"plan_file": "specs/001-user-login/plan.md",
"tasks_file": "specs/001-user-login/tasks.md"
}As you implement each task, mark it complete in tasks.md:
- [X] [T010] [P] [US1] Create User model in src/models/user.py
- [ ] [T011] [P] [US1] Create AuthService in src/services/auth.pyYour first spec doesn't need to be perfect. You can clarify later:
/speckit.specify Add basic user profile page
/speckit.clarify # Claude will ask targeted questionsAlways review the generated spec.md before continuing. It's easier to fix specifications than code.
Implement P1 tasks first for a working MVP, then add P2 and P3 features incrementally.
Each user story (US1, US2, US3) should be independently testable. You can stop after any story and have a working feature.
Use --strict flag for critical features:
/speckit-workflow-v2 Add payment processing --strictThis will halt on validation failures instead of proceeding.
Make sure you're on a branch following the pattern ###-feature-name:
git checkout -b 001-my-featureOr set manually:
export SPECIFY_FEATURE="001-my-feature"Run diagnostics:
./.specify/scripts/bash/check-prerequisites.sh --jsonThis shows what's available and what's missing.
# Delete the spec directory
rm -rf specs/001-old-feature
# Checkout main and create new branch
git checkout main
git branch -D 001-old-feature- Read the Full Documentation: See README.md for detailed explanations
- Customize Templates: Edit
.specify/templates/to match your project style - Define Your Constitution: Add project-specific principles to
.specify/memory/constitution.md - Explore Advanced Features: Try checklists, analysis, and GitHub issue generation
- Full Documentation: README.md
- Framework Details: CLAUDE.md
- Contributing: CONTRIBUTING.md
- Issues: Report bugs or request features on GitHub
After a few features, your project will look like:
your-project/
├── .claude/
│ └── commands/
│ ├── speckit.specify.md
│ ├── speckit.plan.md
│ └── ... (other Spec Kit commands)
├── .specify/
│ ├── memory/
│ │ └── constitution.md
│ ├── scripts/bash/
│ └── templates/
├── specs/
│ ├── 001-user-login/
│ │ ├── spec.md
│ │ ├── plan.md
│ │ └── tasks.md
│ ├── 002-user-profile/
│ │ ├── spec.md
│ │ ├── plan.md
│ │ └── tasks.md
│ └── 003-notifications/
│ ├── spec.md
│ ├── plan.md
│ └── tasks.md
├── src/
│ └── (your application code)
├── tests/
│ └── (your tests)
└── CLAUDE.md
Happy building! 🚀