Spec Kit によるスペック駆動開発
バイブコーディング — 「ダッシュボードを作って」と頼み、返ってきたものをそのまま受け入れる — は、機能が大きくなるまではうまく機能します。ところが機能が大きくなるとエージェントは脱線します。以前の決定を忘れたり、関数を作り直したり、技術的には動くけれど意図したものではないものを出してきたりします。スペック駆動開発(SDD: Spec-Driven Development) は、2026年にエージェント型コーディング界隈で広く支持されるようになった、その解決策です。プロンプトを使い捨てとして扱う代わりに、書かれてレビュー可能な仕様を信頼できる唯一の情報源にし、エージェントにそこからコードを生成させるのです。
GitHub のオープンソース Spec Kit は、その考え方を、今日 Claude Code の中で実行できる具体的なワークフローに落とし込みます。
- スペック駆動開発とは何か、そしてそれが解決する問題を理解する
- Spec Kit のフェーズを辿る: constitution → specify → plan → tasks → implement
- Specify CLI をインストールし、Claude Code に組み込む
- 任意のクオリティゲート(clarify、analyze、checklist)を知る
- SDD がそのオーバーヘッドに見合うときと、省くべきときを判断する
なぜ単なるプロンプトではなくスペックなのか
プロンプトはターンが終わった瞬間に消えてしまいます。スペックはアーティファクトです。読むことができ、PR でレビューでき、修正でき、再実行できます。このたった一つの転換が、大きなエージェント型ビルドが失敗する三つの原因を解消します。
- ドリフト — 何も書き留められていないため、エージェントが以前の決定と矛盾すること。スペックがその記憶になります。
- 曖昧さ — 「いい感じにして」は十通りに解釈できます。要件を散文に落とし込むことを強制すると、コードが存在する前に — つまり修正が安価なうちに — ギャップが表面化します。
- レビュー不能な差分 — 2,000行の生成された PR は判断が困難です。レビュー済みのスペック+プランは、その差分を意外なものではなく想定されたものにします。
メンタルモデルはこうです。意図こそが価値が高く、長続きするものであり、コードはその下流にある、再生成可能なアーティファクトである。 SDD は、Claude Code 自身の Plan Mode の規律ある親戚です — まず計画し、次に構築する — それを機能全体にスケールアップし、リポジトリ内のファイルとして永続化したものです。
Spec Kit のワークフロー
Spec Kit は、機能をスラッシュコマンドの短いパイプラインとして構造化します。各コマンドは Markdown のアーティファクトをリポジトリ(.specify/ 配下)に書き込むので、すべてのフェーズが検査可能でバージョン管理されます。
- プロジェクトごとに一度 /speckit.constitution を実行します。これは統治となる原則 — コードスタイル、テストの基準、譲れないアーキテクチャ上の決まり — を .specify/memory/constitution.md に書き込みます。以降のすべてのフェーズはこれと照合されるので、これがあなたの長続きするガードレールになります(原則に特化した CLAUDE.md だと考えてください)。
- /speckit.specify を実行し、何を構築するのか、そしてなぜ構築するのかを説明します — ユーザーストーリー、要件、成功基準です。技術スタックは意図的に含めません。エージェントは構造化されたスペックを生成し、あなたは先に進む前にそれを読んで修正します。
- 技術的な選択 — フレームワーク、データストア、制約 — とともに /speckit.plan を実行します。ここでようやく「どうやって」が書かれます。アーキテクチャ、コンポーネント、そしてそれらがどうスペックを満たすかです。技術的な決定はスペックではなくここに置かれるので、スペックは実装に依存しないままになります。
- /speckit.tasks を実行して、プランを番号付きで順序付けられた、個別にレビュー可能な小さなステップのリストに分解します。これがビルドを監査可能にするものです — どんなコードが書かれる前にも、その順序を見ることができます。
- /speckit.implement を実行すると、エージェントがタスクリストを実行し、プランと constitution に沿って機能を構築します。前段の各フェーズがレビュー済みなので、結果として得られる差分は意外なものではなく、想定されたものになります。
任意のクオリティゲート
機能が重要度の高いものであるときは、さらに三つのコマンドがループを引き締めます。
/speckit.clarify— スペックを精査して仕様が不十分な箇所を見つけ、計画の前に的を絞った質問をします。specifyの直後に実行するのが最適です。/speckit.analyze— スペック、プラン、タスクを相互チェックし、一貫性とカバレッジのギャップを確認します。/speckit.checklist— 検証用のチェックリストを生成し、「完了」が定義され、テスト可能になるようにします。
- /speckit.plan の前に /speckit.clarify を実行する — 曖昧さを直すのは、アーキテクチャが確定する前が最も安価です。
- 生成された各アーティファクトを PR のように扱う: 読み、修正し、そうしてから次のフェーズに進む。
- .specify/ のアーティファクトをコミットする — それらはコードの背後にある意図のレビュー可能な記録です。
Claude Code で動かす
Spec Kit は Specify という CLI を提供しており、これがスラッシュコマンドをプロジェクトに足場として組み込みます。30以上のコーディングエージェントをサポートしており、Claude Code もその一つです。
- uv を使ってリポジトリからインストールします。(Python + uv が必要です。)
- .specify/ 構造とエージェントコマンドを足場として組み込みます。新規または既存のリポジトリで init を実行し、プロンプトが出たらエージェントとして Claude Code を選びます(または README にある現在の統合フラグを渡します)。
- プロジェクトフォルダで claude を起動します。/speckit.constitution、/speckit.specify、/speckit.plan、/speckit.tasks、/speckit.implement がスラッシュコマンドとして現れれば、組み込まれていることがわかります。
Install the Specify CLI (uv)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
Scaffold spec-driven workflow into a project
# new project specify init my-feature # or in the current repo specify init --here
Then, inside Claude Code, run the pipeline
/speckit.constitution Establish principles: TypeScript strict, tests for every public function, no secrets in code. /speckit.specify Build a CSV export for the reports page: users pick a date range and download a CSV of matching rows. /speckit.clarify /speckit.plan Next.js App Router, server action for the query, stream the CSV; no new dependencies. /speckit.tasks /speckit.implement
- specify init の正確なエージェント選択フラグはリリースごとに変わります — フラグを盲目的にコピーするのではなく、README のクイックスタートを確認してください。
- SDD は検証の必要をなくしません: 生成されたコードを読み、実行してください。スペックは差分をレビュー可能にするのであって、自動的に正しくするわけではありません。
- シークレットや認証情報をスペック、プラン、constitution に決して入れないでください — それらは他のファイルと同様にコミットされてしまいます。
いつ使うべきか(そしていつ使わないか)
SDD は前もっての手間と引き換えにコントロールを得ます。その取引は、作業が大きい、曖昧、あるいは他の人にレビューされなければならないときには価値がありますが — そうでないときには純粋なオーバーヘッドです。
- SDD を使うべきとき: グリーンフィールドの機能、複数ファイルにまたがるビルド、チームメイトがレビューしなければならないもの、あるいはサブエージェント群に渡す作業。
- SDD を省くべきとき: 使い捨てのスクリプト、ごく小さな修正、探索的な使い捨てコード — 素のプロンプトや Plan Mode の方が速いです。
- ブラウンフィールドでも機能します: /speckit.specify を新規プロジェクトだけでなく、既存コードベースへの機能拡張に向けてください。
理解度チェック
Check yourself
0/3- スペック駆動開発は、プロンプトではなくレビュー可能なスペックを信頼できる唯一の情報源にし、ドリフト、曖昧さ、レビュー不能な差分を消し去ります。
- GitHub の Spec Kit(Specify CLI)は、SDD を /speckit.* スラッシュコマンドとして Claude Code に持ち込みます。
- パイプラインは constitution → specify → (clarify) → plan → (analyze) → tasks → (checklist) → implement で、それぞれが検査可能なアーティファクトを書き込みます。
- 「何を」「なぜ」はスペックに、「どうやって」はプランに留める; 進む前にすべてのアーティファクトを PR のようにレビューする。
- 大きく、曖昧で、レビューされる機能に使う; 使い捨ての作業には省く — そして常に、生成されたコードを必ず検証する。
次へ
- Plan Mode — 組み込みの、より軽量な「構築する前に計画する」ループ
- Slash Commands — /speckit.* コマンドが Claude Code のコマンドシステムにどう収まるか
- CLAUDE.md & Memory Files — constitution の背後にある「原則を記憶として」の考え方
- Subagents — レビュー済みのタスクリストをエージェント群に渡す
- Coding & Software Development — SDD が依拠する、すべてを検証するという心構え