Spec Kit とは
GitHub が公開した仕様駆動開発ツールです。
Spec Kit は、自然言語で書いた仕様を元に、LLM(Large Language Model)を活用して要件定義からタスクの詳細、さらにはソースコードまで自動生成してくれる革新的なツールです。
今回は実際に Spec Kit を使ってタスクの作成まで体験してみたので、その所感をコマンド例とともに紹介していきます。
セットアップ
まずは基本的なセットアップから始めます。
uv がインストールされていない場合はインストールしてください。
Python のバージョン管理ツールとして新たなデファクトスタンダードとなっているツールです。
# Spec Kitのインストール
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# プロジェクトの初期化
specify init my-project
specify check
cd my-project
インストールは非常にシンプルで、Python の環境があればすぐに始められます。
仕様からプロジェクト構造を生成
Spec Kit の魅力は、シンプルな仕様記述から包括的なプロジェクト構造を生成できることです。
1. 仕様ファイルの作成
まず、プロジェクト内のルールを定めます。
/speckit.constitution 生成するドキュメントは日本語で記載してください。
2. 要件定義の生成
仕様から詳細な要件定義を生成します
# 要件定義の自動生成
/speckit.specify
このコマンドを実行すると、LLM が仕様を解析して以下のような詳細な要件定義を生成してくれます
- 機能要件
- 非機能要件
- ユーザーストーリー
- 受け入れ条件
3. マスタスケジュールの作成
次に、プロジェクト全体のスケジュールを生成します
# マスタスケジュールの生成
/speckit.plan
LLM が要件を分析して、現実的な開発スケジュールを提案してくれます。工数見積もりや依存関係も考慮されており、非常に実用的です。
4. 詳細タスクの生成
マスタスケジュールから具体的な開発タスクを生成します
# 詳細タスクの生成
/speckit.tasks
このコマンドで生成されるタスクは
- 各機能の実装タスク
- テスト計画
- データベース設計
- API 設計
- フロントエンド実装
- デプロイメント計画
などが含まれ、それぞれに具体的な実装ガイドラインも付属します。
実際に使ってみた感想
良かった点
-
自然言語での仕様記述
- 技術的な詳細を知らなくても、アイデアをそのまま記述できる
- ステークホルダーとの認識合わせがしやすい
-
包括的な出力
- 単なるコード生成ではなく、プロジェクト全体の構造を考えてくれる
- 要件定義からスケジュール、タスクまで一貫性がある
-
実用的な粒度
- 生成されるタスクが実際の開発で使える詳細度
- 工数見積もりも比較的現実的
改善の余地がある点
-
LLM の精度依存
- 複雑な仕様だと理解が曖昧になることがある
-
スケジュールの信憑性
- AI が作成していることもあり、優秀な SE が構築すれば間に合うスケジュールで引かれている
コマンド一覧
よく使うコマンドはこちらです
応用
各種 LLM と組み合わせ、作成されたタスク一覧から見積りを出すことも可能です。
単価と納期を教え、「アサインするべき推奨人数と見積りを出して」と伝えると、見積り.mdを作成してくれました。
まとめ
Spec Kit は、仕様駆動開発を実現する非常に有望なツールです。特に
- プロジェクトの初期段階での要件整理
- チーム間のコミュニケーション向上
- 開発計画の立案効率化
に大きな価値があると感じました。
LLM の進化とともに精度も向上していくと思われるので、今後の発展が楽しみです。次回は実際にソースコード生成まで試してみたいと思います。