Speckit
概要
- GitHubが公開している仕様駆動開発を支援するツールキット
ワークフロー
(1) Specify: 仕様作成
- プロジェクトの「what」と「why」を記述し、コーディングエージェントにより詳細な仕様を生成する
- 仕様はユーザージャーニーや期待する成果を中心に記述し、技術スタックや実装詳細はこの段階では重視しない
- 具体的には「誰が使うのか」「そのユーザーが抱える問題は何か」「ユーザーはどのように操作するのか」「成功とみなす基準は何か」といった問いに答えることが求められている
- 仕様は生きた成果物として、利用者や要件が変われば更新され、エージェントはその更新を基に後続の生成物を再計算する流れとなる
(2) Plan: 計画作成
- 技術的な方向性や制約(スタック、アーキテクチャ、コンプライアンス要件、性能目標など)を提供し、コーディングエージェントが実装計画を生成する
- ここでは企業で標準化された技術や、レガシーシステムとの統合要件、コンプライアンスやパフォーマンスの目標など、実運用を左右する条件を明確にする必要がある。
- 複数の計画バリエーションを生成して比較することも可能であり、内部ドキュメントや設計パターンをエージェントに与えれば、それらを計画に組み込ませることができる
- エージェントはこうした制約を理解した上で、後続のタスク分解や実装指示を生成する
(3) Tasks: タスク分解
- 仕様と計画を元に、エージェントがレビュー可能な小さなタスクへと分解する
- ブ各タスクは独立して実装・テスト可能な単位とし、エージェントはこれらのタスクを順次(あるいは並列で)実装できるようにする
- ブタスクは「レビュー可能な差分」を生む小さな単位にすることが重要であり、これは開発者が個々の変更点を短時間で検証できるようにするとともに、エージェントが自らの出力を検証して次の作業に進むための前提にもなる
- ブログでは、タスクが独立して実装・テスト可能であることを強調しており、これによりエージェントは自動的に検証しながら進行できるという
(4) Implement: 実装と検証
- エージェントがタスクを実装し、開発者はフェーズごとに生成物を検証して次へ進める
- 各段階には明確なチェックポイントがあり、開発者は仕様や計画を更新して再生成をおこなってもよい
- 実装フェーズではエージェントが生成するのは大規模なコードの塊ではなく、特定の問題を解決する焦点を絞った機能であることが強調されている
- 開発者はその機能をレビューして受け入れるか修正指示を出す役割を担う
コマンド
/speckit.constitution
- プロジェクト開始時に最初に実行するコマンド
- プロジェクトの基本的な方針・進め方を決定する
/speckit.specify
- spec.mdの作成
- 新しい機能を作る際の要件定義
/speckit.clarify
- spec.mdの明確化
- spec.mdを読み込み、対話的に詳細化
/speckit.plan
- plan.mdの作成
- spec.mdを基に「どのように作るか?」を決定
- 技術スタック、アーキテクチャ、データモデル、API仕様etc
/speckit.tasks
- tasks.mdの作成
- 実装手順を検討しタスクリストを生成
/speckit.analyze
- spec.md/plan.md/tasks.md`のファイル間で一貫性と網羅性を分析
- このコマンドは非破壊的操作であり、既存のファイルは変更されない
/speckit.implement
/speckit.checklist
- 要件の完全性、明確性、一貫性を検証するカスタム品質チェックリストを生成
クイックスタート
(1) プロジェクトの初期化
mkdir my-project
cd my-project
specify init . --ai claude # 使用するAIエージェントを指定
(2) プロジェクトの基本方針を定義
/speckit.constitution
(3) spec.md作成
/speckit.specify
(4) plan.md 作成
/speckit.plan
(5) tasks.md 作成
/speckit.tasks
(6) 実装
/speckit.implement
参考資料