GitHub spec-kitで始めるSpec-Driven Development入門 - 仕様駆動開発でAI時代の開発を効率化
はじめに
「何を作るか」は決まっているのに「どう実装するか」で迷ってしまう経験はありませんか?
GitHubが開発したspec-kitは、そうした課題を解決する「Spec-Driven Development(仕様駆動開発)」を実践するためのツールキットです。特にAI開発ツール(Claude Code、GitHub Copilot、Cursorなど)と組み合わせることで、アイデアから実装までのプロセスを大幅に効率化できます。
この記事では、spec-kitの基本概念から実際の使い方まで、初心者向けに解説します。
Spec-Driven Developmentとは?
従来の開発との違い
従来の開発:
アイデア → すぐ実装 → 後から仕様書(書かない場合も)
Spec-Driven Development:
アイデア → 仕様(/specify) → 計画(/plan) → タスク(/tasks) → 実装
重要なのは、「何を(What)」と「なぜ(Why)」を最初に明確化し、「どうやって(How)」は後で決めるという点です。
核となる哲学
- Intent-driven development: 技術スタックより先に目的と意図を明確にする
- Rich specification creation: 制約やガードレールを含む豊富な仕様作成
- Multi-step refinement: 一発生成ではなく段階的な洗練プロセス
- AI capabilities: 高度なAIモデルとの密な連携
セットアップと前提条件
必要な環境
- OS: Linux/macOS(Windows の場合は WSL2)
- Python: 3.11+
- uv: パッケージ管理
- Git
- AIエージェント(以下のいずれか):
プロジェクトの初期化
# 基本的な初期化
uvx --from git+https://github.com/github/spec-kit.git specify init my-project
# 現在のディレクトリで初期化
uvx --from git+https://github.com/github/spec-kit.git specify init --here
# AIエージェントを指定して初期化
uvx --from git+https://github.com/github/spec-kit.git specify init my-project --ai claude
システムチェック
# インストール済みツールの確認
uvx --from git+https://github.com/github/spec-kit.git specify check
基本ワークフロー
1. プロジェクト初期化
# プロジェクト作成(Claudeを使用する場合)
uvx --from git+https://github.com/github/spec-kit.git specify init my-app --ai claude
# 作成されるファイル構造
my-app/
├── memory/
│ ├── constitution.md # 開発憲法
│ └── constitution_update_checklist.md
├── scripts/ # 自動化スクリプト
├── specs/ # 仕様ディレクトリ
└── templates/ # テンプレート
├── spec-template.md
├── plan-template.md
└── tasks-template.md
2. AIエージェントの起動
cd my-app
# Claude Codeの場合
claude
# Cursorの場合
cursor .
重要: この時点で /specify
, /plan
, /tasks
, /constitution
などのコマンドが利用可能になります。
/specify
)
3. 仕様作成 (AIエージェント内で以下のようなプロンプトを実行:
/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.
重要なポイント:
- 何を作りたいか、なぜ必要かに焦点を当てる
- 技術スタックは言及しない
- できるだけ具体的に記述する
/plan
)
4. 計画立案 (仕様が完成したら、技術的な実装計画を策定:
/plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
この段階で以下が生成されます:
-
data-model.md
: データモデル設計 -
contracts/
: API仕様 -
research.md
: 技術調査結果 -
quickstart.md
: 実装ガイド
/tasks
)
5. タスク分解 (具体的な作業項目に分解:
/tasks Create an actionable task list from the plan, breaking it down into implementable steps.
6. 実装
この時点で、AIエージェントが自動的に:
- 新しいブランチを作成
- コードの実装を開始
- 必要なファイル構造を生成
実際の開発例:フォトアルバムアプリ
Step 1: 仕様定義
/specify
家族の思い出を整理するフォトアルバムアプリを作りたい。
機能要件:
- 写真を日付別のアルバムに自動整理
- アルバムはドラッグ&ドロップで並び替え可能
- 各アルバム内では写真をタイル表示
- ネストしたアルバムは作成しない
- シンプルで直感的な操作性
対象ユーザー:
- 技術に詳しくない家族メンバー
- スマートフォンでも快適に使用したい
制約:
- オフラインでも動作
- プライバシー重視(写真はローカル保存)
Step 2: 技術計画
/plan
技術スタック:
- フロントエンド: Vite + vanilla JavaScript
- データベース: SQLite(ローカル)
- UI: CSS Grid + Flexbox
- ファイル処理: File API
制約:
- 外部サービス依存なし
- レスポンシブデザイン必須
- ブラウザサポート: モダンブラウザ
Step 3: タスク生成
/tasks
計画に基づいて以下のタスクに分解してください:
1. プロジェクトセットアップ
2. データベース設計と実装
3. 写真アップロード機能
4. アルバム表示機能
5. ドラッグ&ドロップ実装
6. レスポンシブ対応
7. テスト実装
主要コマンドの詳細解説
/constitution
- 開発憲法の管理
プロジェクトの開発憲法を表示・更新できます:
/constitution
このコマンドを実行すると:
- 現在の
memory/constitution.md
の内容を表示 - 必要に応じて憲法の更新提案
- 開発方針の確認と調整
使用例:
/constitution
このプロジェクトではセキュリティを最重要視し、
すべての外部API呼び出しは暗号化通信のみ使用すること。
また、ユーザーデータはローカルでのみ保存する。
その他の利用可能コマンド
AIエージェント起動後に使用可能な主要コマンド:
-
/specify
- 仕様作成・更新 -
/plan
- 実装計画の策定 -
/tasks
- タスクの生成・分解 -
/constitution
- 開発憲法の管理 -
/research
- 技術調査(一部エージェント)
開発フェーズと活用シーン
Phase 1: 0-to-1 Development (新規開発)
- 新しいアイデアをゼロから形に
- プロトタイプの迅速な構築
Phase 2: Creative Exploration (創造的探求)
- 複数の実装パターンを並行検討
- アーキテクチャの比較検証
Phase 3: Iterative Enhancement (反復改善)
- 既存システムの段階的改善
- レガシーシステムのモダナイゼーション
実践的なTips
効果的な仕様作成のコツ
- 具体的なシナリオを含める
/specify
レシピ検索アプリ
使用シーン:
- 冷蔵庫の余り物で料理を作りたい主婦
- 食材を写真で撮って検索
- アレルギー情報も考慮した検索結果
- 成功指標を明確に
成功の定義:
- 検索精度85%以上
- 検索時間3秒以内
- 月間アクティブユーザー1000人
- 制約を明記
制約条件:
- 開発期間3ヶ月
- 予算上限50万円
- 開発者2名体制
AIエージェント選択のガイド
エージェント | 得意分野 | 適用シーン |
---|---|---|
Claude Code | 仕様分析・アーキテクチャ設計 | 複雑なシステム設計 |
GitHub Copilot | コード生成・リファクタリング | 実装フェーズ |
Cursor | 統合開発環境 | エンドツーエンド開発 |
Gemini CLI | 多角的分析・比較検討 | 意思決定支援 |
トラブルシューティング
よくある問題と解決法
問題: /specify
コマンドが認識されない
# 解決法: AIエージェントが正しく起動されているか確認
cd your-project
claude # または使用しているエージェント
問題: Git認証エラー (Linux)
# Git Credential Managerの設定
wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.deb
sudo dpkg -i gcm-linux_amd64.2.6.1.deb
git config --global credential.helper manager
問題: 生成される仕様が曖昧
# より具体的なプロンプトを使用
/specify [詳細な要求] + [具体的なシナリオ] + [制約条件] + [成功指標]
まとめ
GitHub spec-kitを使ったSpec-Driven Developmentは:
✅ 明確な仕様から始めることで開発の迷いを大幅に削減
✅ 段階的アプローチで複雑なプロジェクトも体系的に整理
✅ AI連携による生産性の飛躍的向上
✅ チーム共有しやすい構造化されたドキュメント生成
特に一人開発やスモールチームでは、「何を作るか」を明文化することで開発効率が劇的に改善します。
まずは小さなプロジェクトでspec-kitを試し、Spec-Driven Developmentの効果を体感してみましょう。
Discussion