GitHub Spec Kit: コードより先に仕様書を書く SDD フレームワーク
GitHub Spec Kit は、コードより先に仕様書(Markdown)を AI と合意してから実装する SDD(仕様駆動開発) フレームワーク。
Microsoft/GitHub が提供するオープンソースの specify CLI を使う。
なぜ仕様書が先なのか
「実装してから仕様を確認する」サイクルは:
- AI が実装する
- 「それじゃなかった」と分かる
- やり直す
Spec Kit はこれを逆にする:
- 仕様書を AI と合意する
- 人間が確認・承認する
- AI が実装する(やり直しが減る)
ワークフロー
フェーズ 0: 初期化(初回のみ)
specify init --here --integration claude --force
生成されるもの:
.specify/— Spec Kit 設定.claude/skills/speckit-*/—/speckit-*スラッシュコマンド群
フェーズ 1: Constitution の作成(初回のみ)
/speckit-constitution
プロジェクトの「憲法」を作成する。アーキテクチャ原則・コーディング規約・禁止事項を定義。
フェーズ 2: 要件定義
/speckit-specify
ユーザーストーリー形式で要件を定義し、specs/<n>-<feature>/specify.md を生成。
フェーズ 3: 技術設計
/speckit-plan
specify.md を元に技術設計(plan.md)を生成。対象ファイル・API・データ構造・依存関係が定義される。
フェーズ 4: タスク分解
/speckit-tasks
plan.md を元に実装チェックリスト(tasks.md)を生成。
ここで人間がタスクリストをレビューして承認する。 これが AI の暴走を防ぐ最後の承認ゲート。
フェーズ 5: 実装
/speckit-implement
tasks.md のタスクを順に実装。タスク完了のたびにチェックボックスが自動更新される。
補助コマンド
| コマンド | タイミング | 用途 |
|---|---|---|
/speckit-clarify |
specify の前 | 仕様が曖昧な場合に事前質問 |
/speckit-checklist |
plan の後 | 要件の完全性を検証 |
/speckit-analyze |
implement の前 | 仕様・設計・タスクの整合性確認 |
/speckit-converge |
既存プロジェクト | 既存実装と specs の乖離を追記 |
生成されるファイル構造
project/
├── .specify/ # Spec Kit 設定(自動生成)
│ └── memory/
│ └── constitution.md # プロジェクト憲法
└── specs/
├── 001-feature-name/
│ ├── specify.md # 要件定義
│ ├── plan.md # 技術設計
│ └── tasks.md # 実装チェックリスト
└── 002-next-feature/
└── ...
インストール
specify CLI は uv(Python パッケージマネージャー)でインストールする。
# uv をインストール(未インストールの場合)
curl -LsSf https://astral.sh/uv/install.sh | sh
# specify-cli をインストール
uv tool install specify-cli --from "git+https://github.com/github/spec-kit.git@v0.11.9"
# 確認
specify --version