# Spec Kit

> Use GitHub Spec Kit for Spec-Driven Development. Initialize projects, create specifications, and build software using the /speckit.* slash commands. Supports Claude Code, GitHub Copilot, Gemini CLI, and Codebuddy.

- Skill: `dvcrn/spec-kit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dvcrn/spec-kit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/spec-kit/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/spec-kit

---


# Spec Kit — Spec-Driven Development

Build high-quality software faster using **Spec-Driven Development** (SDD). Specifications become executable artifacts that generate working implementations, not just documentation.

**Homepage:** https://github.github.com/spec-kit/  
**GitHub:** https://github.com/github/spec-kit

---

## What is Spec-Driven Development?

SDD flips traditional software development:

| Traditional | Spec-Driven |
|-------------|-------------|
| Specs are scaffolding → discarded | Specs are **executable** → generate code |
| Code is king | **Intent** is king |
| One-shot prompts | Multi-step refinement |
| Focus on "how" | Focus on "what" and "why" |

**Core Philosophy:**
- Intent-driven development
- Rich specifications with guardrails
- Heavy reliance on AI model capabilities
- Technology-independent process

---

## Prerequisites

- **OS:** Linux, macOS, Windows (PowerShell supported)
- **AI Agent:** Claude Code, GitHub Copilot, Gemini CLI, or Codebuddy CLI
- **Package Manager:** [uv](https://docs.astral.sh/uv/)
- **Python:** 3.11+
- **Git:** Any recent version

---

## Installation & Setup

### Initialize a New Project

```bash
# Create new project directory
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

# Initialize in current directory
uvx --from git+https://github.com/github/spec-kit.git specify init .
uvx --from git+https://github.com/github/spec-kit.git specify init --here
```

### Specify AI Agent

```bash
# Proactively set AI agent during init
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --ai claude
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --ai gemini
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --ai copilot
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --ai codebuddy
```

### Script Type (Shell vs PowerShell)

Auto-selected by OS, or force explicitly:

```bash
# Force PowerShell (Windows)
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --script ps

# Force POSIX shell (Linux/macOS)
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --script sh
```

### Skip Tool Checks

```bash
uvx --from git+https://github.com/github/spec-kit.git specify init <project> --ai claude --ignore-agent-tools
```

---

## The 6-Step Spec-Driven Process

### Step 1: Initialize

Run `specify init` to create project structure with templates.

```bash
uvx --from git+https://github.com/github/spec-kit.git specify init my-app --ai claude
```

**Creates:**
- `.speckit/` directory with configuration
- Agent-specific templates
- Git repository structure

---

### Step 2: Define Constitution

Establish core rules and principles for your project.

**Slash Command:**
```
/speckit.constitution This project follows a "Library-First" approach. 
All features must be implemented as standalone libraries first. 
We use TDD strictly. We prefer functional programming patterns.
```

**Purpose:** Sets guardrails and organizational principles that all specs must follow.

---

### Step 3: Create Specification

Describe **what** you want to build, not **how**.

**Slash Command:**
```
/speckit.specify Build an application that can help me organize my photos 
in separate photo albums. Albums are grouped by date and can be re-organized 
by dragging and dropping on the main page. Albums are never in other nested 
albums. Within each album, photos are previewed in a tile-like interface.
```

**Best Practices:**
- Focus on user scenarios and behaviors
- Avoid tech stack details (AI picks appropriate tech)
- Describe UI/UX in plain language
- Include constraints and business rules

---

### Step 4: Refine (Clarify)

Identify and resolve ambiguities in your specification.

**Slash Command:**
```
/speckit.clarify Focus on security implications and edge cases
```

**What it does:**
- Detects vague or ambiguous requirements
- Asks clarifying questions
- Suggests concrete implementations
- Updates spec with resolved details

---

### Step 5: Plan

Generate detailed implementation plan from specification.

**Slash Command:**
```
/speckit.plan
```

**Output:**
- Architecture decisions
- File structure
- Implementation steps
- Testing strategy
- Dependencies to install

---

### Step 6: Build

Execute the implementation plan.

**Slash Command:**
```
/speckit.build
```

**Features:**
- Generates code based on spec + plan
- Creates files incrementally
- Runs tests as specified
- Commits progress to Git

---

## Context Awareness: Git Branch-Based

Spec Kit automatically detects the active feature based on your current Git branch.

**Naming Convention:**
```
001-feature-name
002-user-authentication
003-photo-album-grid
```

**To switch between specifications:**
```bash
git checkout 001-feature-name    # Work on feature 1
git checkout 002-user-auth       # Work on feature 2
```

**Context is automatically loaded** when you run Spec Kit commands.

---

## Development Phases

### Phase 1: 0-to-1 (Greenfield)
**Focus:** Generate from scratch

- Start with high-level requirements
- Generate specifications
- Plan implementation steps
- Build production-ready applications

### Phase 2: Creative Exploration
**Focus:** Parallel implementations

- Explore diverse solutions
- Support multiple technology stacks
- Experiment with UX patterns
- Compare approaches

### Phase 3: Iterative Enhancement (Brownfield)
**Focus:** Modernization

- Add features iteratively
- Modernize legacy systems
- Adapt existing processes
- Refactor with specs

---

## All Slash Commands Reference

| Command | Purpose | When to Use |
|---------|---------|-------------|
| `/speckit.constitution` | Define project principles | At project start |
| `/speckit.specify` | Create specification | For each new feature |
| `/speckit.clarify` | Resolve ambiguities | When spec is vague |
| `/speckit.plan` | Generate implementation plan | Before coding |
| `/speckit.build` | Execute implementation | After planning |

---

## Enterprise Features

### Organizational Constraints

- **Cloud Providers:** Target specific platforms (AWS, Azure, GCP)
- **Tech Stacks:** Enforce approved technologies
- **Design Systems:** Integrate enterprise UI libraries
- **Compliance:** Meet security/regulatory requirements

### Technology Independence

Spec Kit works with:
- Any programming language
- Any framework
- Any architecture pattern
- Any deployment target

---

## Local Development (Contributing)

### Clone and Setup

```bash
git clone https://github.com/github/spec-kit.git
cd spec-kit
```

### Run CLI Directly

```bash
# Fastest feedback - no install needed
python -m src.specify_cli --help
python -m src.specify_cli init demo-project --ai claude --script sh
```

### Editable Install

```bash
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\Activate.ps1
uv pip install -e .
specify --help
```

### Test From Branch

```bash
# Push branch first
git push origin your-feature-branch

# Test via uvx
uvx --from git+https://github.com/github/spec-kit.git@your-feature-branch \
  specify init demo-branch-test --script ps
```

---

## Best Practices

### Specification Writing

✅ **DO:**
- Describe user scenarios
- Include business rules
- Mention constraints
- Use plain language
- Focus on behavior, not implementation

❌ **DON'T:**
- Specify tech stack (let AI choose)
- Write implementation details
- Use jargon without context
- Make assumptions unstated

### Example Good Spec

```
/speckit.specify Build a task management app where:
- Users can create projects with color-coded labels
- Tasks have priorities (High/Medium/Low) with visual indicators
- Drag-and-drop to reorder tasks within a project
- Tasks can be assigned to multiple users
- Due dates trigger notifications 24h before
- Completed tasks archive automatically after 7 days
- Mobile-responsive with touch-friendly interactions
```

### Example Bad Spec

```
/speckit.specify Build a React app with Redux for state management.
Use Material-UI for components. Store data in PostgreSQL.
```

---

## Troubleshooting

### Command Not Found

**Problem:** AI agent doesn't recognize `/speckit.*` commands  
**Solution:** Re-run `specify init` in the project directory

### Wrong Context Loaded

**Problem:** Working on wrong specification  
**Solution:** Check current branch with `git branch` and switch: `git checkout <branch>`

### Script Type Issues

**Problem:** PowerShell scripts on macOS or vice versa  
**Solution:** Force script type: `--script sh` or `--script ps`

### Agent Tool Missing

**Problem:** Spec Kit complains about missing AI agent tools  
**Solution:** Use `--ignore-agent-tools` flag during init

---

## Workflow Examples

### New Feature Workflow

```bash
# 1. Create feature branch
git checkout -b 004-dark-mode

# 2. In AI agent chat:
/speckit.specify Add dark mode toggle to the application. 
System should detect OS preference but allow manual override. 
Store preference in localStorage.

# 3. Clarify ambiguities:
/speckit.clarify Focus on accessibility (WCAG contrast)

# 4. Generate plan:
/speckit.plan

# 5. Build:
/speckit.build

# 6. Commit and PR
git add .
git commit -m "feat: add dark mode toggle"
```

### Brownfield Enhancement

```bash
# 1. Switch to existing feature
git checkout 002-user-auth

# 2. Enhance spec:
/speckit.specify Add OAuth2 login with Google and GitHub providers

# 3. Plan the enhancement:
/speckit.plan

# 4. Build iteratively:
/speckit.build
```

---

## Resources

- **Documentation:** https://github.github.com/spec-kit/
- **GitHub Repo:** https://github.com/github/spec-kit
- **Contributing:** https://github.com/github/spec-kit/blob/main/CONTRIBUTING.md
- **Support:** https://github.com/github/spec-kit/blob/main/SUPPORT.md

---

## Key Principles Summary

1. **Intent over Implementation** — Describe what, not how
2. **Specifications are Assets** — Treat them as primary deliverables
3. **Multi-step Refinement** — Iterate: Constitute → Specify → Clarify → Plan → Build
4. **Context-Aware** — Git branches maintain feature context
5. **Technology Agnostic** — Process works with any stack

---

_Last updated: 2026-02-28_

