AI開発

要件定義から設計・開発までをAIで回す3つの箱

株式会社Atsumell|7分で読めます
要件定義から設計・開発までをAIで回す3つの箱

# 要件定義から設計・開発までをAIで回す3つの箱

「要件定義から設計・開発までをAIで回したい」。ここ数週間、この相談を何度も聞いている。

気持ちはよくわかる。ひとつのAIに任せれば、要件を読み、設計を起こし、コードを書き、テストまで回せそうに見えるからだ。

だが、現場で本当に効くのは“一発で全部やらせる”ことではない。むしろ、工程ごとに引き渡し可能な箱を作る方が安定する。

OpenAIの Agents SDK では、オーケストレーション、ハンドオフ、ガードレール、人間レビューが分かれている。MCP の Resources は読むための文脈を、Claude Code overview は複数ファイルにまたがる作業とテストの実行を前提にしている。つまり、エージェントは「全部をひとつにまとめる」より、「何を渡し、何を受け取るか」を決める方が本質だ。

ひとつの長い指示が崩れやすい理由

要件定義、設計、開発は、同じプロジェクトの中でも問いが違う。

要件定義で問うのは、何を作るか、なぜ作るか、何をやらないかだ。設計で問うのは、どこを分けるか、どのデータが流れるか、失敗したらどう戻すかだ。開発で問うのは、どのファイルをどう変え、どう確かめるかだ。

この3つを1本の長いプロンプトに押し込むと、AIは平気で境界を飛び越える。要件の曖昧さを設計で埋め、設計の抜けをコードの推測で補い、最後にテストでごまかす。出力はそれっぽい。だが、後で直すときに地雷になる。

サーバーワークスの AI駆動開発の要件定義・設計・プロセスを体系化した記事 も、AIの出力を前提に評価と改善を回す重要性を整理している。そこにさらに必要なのは、フェーズごとの引き渡しの型だ。

引き渡しは3つの箱で考える

最初から巨大な仕様書を作るより、次の3箱に分けた方がずっと扱いやすい。

1. 要件箱

ここに入れるのは、目的、背景、制約、非目的、受け入れ条件、未決定点だ。

この箱の役割は、AIに「何を理解すべきか」を渡すことではない。むしろ、「何を勝手に決めてはいけないか」を明確にすることにある。

要件箱が薄いと、設計箱が勝手に要件を補完し始める。そこからズレる。

2. 設計箱

ここに入れるのは、画面やAPIの境界、データの流れ、エラー時の振る舞い、権限の分け方、テスト観点だ。

設計箱では、実装の細部よりも、どこで状態が変わるかをはっきりさせる。たとえば「登録できる」ではなく、「どの状態からどの状態へ遷移するのか」を書く。AIは文章の上手さより、状態の前後が揃っている方が強い。

3. 開発箱

ここに入れるのは、対象ファイル、変更順、確認コマンド、ロールバックの考え方だ。

Claude Code の overview が示すように、複数ファイルをまたぐ変更やテスト実行は、ちゃんと切り分けた方が回しやすい。開発箱があれば、AIは「どこを触るか」を迷いにくい。人間もレビューしやすい。

3箱をつなぐルール

3箱の考え方で大事なのは、箱の中身よりも「次の箱に渡してよい条件」を決めることだ。

たとえば、要件箱から設計箱に渡す条件はこうなる。

  • 受け入れ条件が3つ以上書かれている
  • 例外時の振る舞いが1つ以上ある
  • 人間が決める論点が残っている

この条件を満たしていなければ、まだ設計に進めない。設計箱から開発箱に渡す条件も同じだ。

  • 変更対象のファイルが見えている
  • 影響範囲が説明できている
  • 失敗時の戻し方が書かれている

OpenAI の agent evals が示すように、評価は飛ばすと意味がなくなる。AIの出力が良いかどうかは、見た目ではなく、箱の受け渡し条件を満たしたかで測るべきだ。

人間が残す場所を先に決める

AIでつなぐと言っても、全部を自動にする話ではない。

むしろ、止める場所を先に決める方が大事だ。OpenAI のドキュメントでも、Guardrails と human review は危ない作業の前で止めるための仕組みとして整理されている。

たとえば次のような境界は、人間に残した方がいい。

  • 外部送信が発生する瞬間
  • 権限や請求に触る変更
  • 顧客向けの確約表現
  • 既存仕様を壊す可能性がある差分

ここを先に決めると、AIは安心して速くなる。逆に境界がないと、速いだけで怖い。

MCP の Resources と Tools の分離も、発想は同じだ。読むための文脈と、動かすための手段を分ける。要件定義から設計・開発までの流れも、同じように読む箱、考える箱、動かす箱に分けた方が崩れにくい。

明日からやるなら

いきなり全社で変える必要はない。まずはひとつの案件で、次の3ファイルを作ればいい。

  • `requirements.md`
  • `design.md`
  • `implementation.md`

各ファイルは1ページで十分だ。長くするより、渡す条件を書いた方が効く。

そして、AIに頼む前に次の3点だけ確認する。

  • これは要件の話か、設計の話か、実装の話か
  • 人間が決める論点はどこか
  • どうなったら次の箱に渡してよいか

この3点が揃うと、AIは急に使いやすくなる。要件定義から設計・開発までをAIでつなぐとは、ひとつの魔法の指示を探すことではない。引き渡しの単位を小さくし、判断を見える化することだ。

この切り分けのいいところは、AIの失敗を小さく閉じ込められることだ。要件箱で迷ったら設計に進ませない。設計箱で迷ったらコードを触らない。開発箱で迷ったら、テストと戻し方を先に直す。全部を一気に直そうとしないだけで、手戻りはかなり減る。

実際、社内文書の下書きや問い合わせ対応でも同じだ。最初に「何を確定するか」「誰が決めるか」「どこで止めるか」を分けるだけで、AIの出力は急に読みやすくなる。AIの強さは一枚の完成度ではなく、次の箱に渡せる状態で返ってくることにある。

まとめると

AIは万能の1枚岩ではない。よく回るのは、要件、設計、開発の3箱を順番に渡す流れだ。

箱が小さくなるほど、AIは推測しにくくなる。人間はレビューしやすくなる。手戻りも減る。

「要件定義から設計・開発までをAIで」は、全部を丸投げする話ではない。むしろ、つなぎ目をちゃんと設計する話だ。ここを押さえると、AIはようやく現場の道具になる。

関連記事

#AI駆動開発#要件定義#設計#開発プロセス#仕様駆動開発

AI仕様書エディタKakusillに興味がありますか?

無料トライアルで、AIと開発する体験をすぐにお試しいただけます。

お問い合わせ