開発手法 NEW 2026.07.08 追加

スペック駆動開発

すぺっくちゅうどうかいはつ

仕様書をコードより先に書き、AIエージェントを仕様に従わせる開発手法。

スペック駆動開発

スペック駆動開発とは

スペック駆動開発(Spec-Driven Development / SDD)は、AIエージェントにコードを生成させる前に、目的・制約・受け入れ条件を明文化した構造化仕様書を作成する開発手法だ。「バイブコーディング」がプロンプトの雰囲気でコードを生成するのに対し、SDD ではエージェントへの指示の前に人間が仕様を確定させ、その仕様を実装の唯一の正解(Single Source of Truth)として扱う。

仕様書は Markdown などの人間が読みやすい形式で書かれる。バグ修正やリファクタリングの際も、まず仕様書を更新してからエージェントに差分を実装させることで、コードが仕様から乖離しにくい構造を維持する。2025年末にエンジニアコミュニティで注目を集め、2026年には DeepLearning.AI がコースを開設、Microsoft・GitHub・AWS が専用ツールをリリースした。

なぜ注目されているのか

AIコーディングツールが普及する中で、「もっともらしいが間違ったコード」が大量生成される問題が顕在化した。エージェントはプロンプトの文脈から実装を推測するため、プロジェクトが大規模になるほど仕様とコードの乖離(ドリフト)が進む。SDD はこのドリフトへの構造的な対処として位置づけられており、早期採用者の報告ではエージェントによる一発実装の成功率が従来比 3〜10 倍になるとされている。

一方で、仕様書の作成・維持コストが増加するという課題もある。仕様を書く段階で要件が固まっていなければ SDD の効果は薄く、仕様変更のたびにエージェントへの再指示が必要になる。アジャイルな開発では仕様ファーストの原則と相性が悪い場面もあり、ユースケースを絞った導入が推奨されている。

関連する技術

バイブコーディングとは目的が対照的だが技術的な土台は共通しており、Claude Code や GitHub Copilot などの AI コーディングアシスタントがどちらにも使われる。またメタハーネスによる複数エージェントの制御と組み合わせることで、単一の仕様書から複数エージェントが並列実装する設計パターンも登場している。

ドラゴンボールで例えると

AIエージェントを悟空、開発者を亀仙人に例えると、スペック駆動開発は「修行メニューを紙に書いて渡してから修行を始める」スタイルにあたる。

「感覚で強くなれ」より「このメニューをこなせ」のほうが再現性が高い。AIが「なんとなく動く」時代になるほど、仕様を先に固める原則が重要になる。

実装してみる

▸ CLAUDE CODE
  1. 01
    プロジェクトルートに spec/ ディレクトリを作成し、機能単位でスペックファイル(Markdown)を配置する
  2. 02
    各スペックファイルに目的・制約・受け入れ条件を明記する
  3. 03
    Claude Code にスペックファイルを渡して実装・テストの生成を依頼する
  4. 04
    生成コードを受け入れ条件のチェックリストと照合し、差分があれば仕様を更新してから再依頼する
SPEC — spec/auth.md
# 認証機能スペック

## 目的
ユーザーがメールアドレスとパスワードでサインインできるようにする。

## 制約
- パスワードは bcrypt でハッシュ化する(コスト係数 12)
- セッションは JWT で管理し、有効期限は 7 日間
- ログイン失敗 5 回で 30 分ロックアウト

## 受け入れ条件
- [ ] POST /auth/login が正しい認証情報で 200 を返す
- [ ] 不正な認証情報で 401 を返す
- [ ] ロックアウト中のリクエストが 429 を返す
SHELL
mkdir -p spec

# スペックを読み込ませて実装を依頼する
claude "spec/auth.md を読み、記載された制約と受け入れ条件をすべて満たす認証 API を Express + Prisma で実装してください。受け入れ条件を検証するテストも作成すること。"
PROMPT例 — そのまま貼り付け可
spec/ ディレクトリ内のスペックファイルをすべて読み込み、記載された目的・制約・受け入れ条件を満たす実装を TypeScript で生成してください。実装後に各受け入れ条件を検証するテストも作成し、スペックとコードの対応を README に記録すること。

出典