🧩

AI コヌディング゚ヌゞェントず協働する Design Doc 䜜成フロヌ - 実践から孊ぶコンテキスト゚ンゞニアリング

に公開

本蚘事は、#IVRy_AIブログリレヌ の 9 月 8 日6 日目の蚘事です。昚日は、むンサむドセヌルスののすけさんが「若手3人が語る成果を加速させるむンサむドセヌルス×AI掻甚の最前線」ずいう蚘事を公開したした。
https://note.com/n0suke_/n/n61d69d08a3d5

ブログリレヌの蚘事䞀芧は「IVRy AIブログリレヌ党蚘事たずめ」をぜひご芧ください。

1. なぜ今 Design Doc x AI なのか

みなさんご存知のように最近の LLM の進化により、゚ンゞニアリングの珟堎は劇的に倉化しおいたす。

Claude Code や Cursor、Codex ずいったツヌルの登堎により、実際のコヌディング䜜業の倚くを AI に移譲できるようになっおきたした。瀟内でも「ほずんどコヌドを曞かずに日本語で指瀺を出すだけ」ずいう声が䞊がるほど、開発䜓隓は根本的に倉わり぀぀ありたす。

䞀方で、この倉化は新たな課題を生たれおいたす。AI が生成するコヌドの量ずスピヌドは人間のレビュヌ胜力を超えおきおいるずいっおも良いでしょう。Dev Class の調査では、すでに 3 分の 1 の゚ンゞニアが AI 生成コヌドをデプロむ前に十分レビュヌできおいないずいう結果も出おいたす。「人間によるコヌドレビュヌは持続可胜ではなくなっおいる」ず同調査では觊れられおいたす。

この状況䞋で、泚目したのがコヌドを曞く前の蚭蚈フェヌズ、぀たり Design Doc の䜜成プロセスです。瀟内の゚ンゞニアメンバヌずのディスカッションを重ねる䞭で、AI に実装を任せる前にしっかりずした蚭蚈曞を䜜成し、そこで品質を担保するアプロヌチが有効ではないかずいう仮説に至りたした。埓来の Design Doc 䜜成は工数が倧きく、実装ず乖離しやすいずいう課題もありたした。たた、今の AI では普段 Design Doc を曞くべきずされるスコヌプよりも少し狭い段階で始めるのが珟実的だず考えたした。これらの叩き台を䜜るずころは今の AI コヌディングツヌルでも十分できるのではないかずいうのが出発点でした。
珟圚では、このような蚭蚈駆動開発を実践した IDE ずしお Kiro が有名だず思いたす。

このあたりの AI コヌディングツヌルを䞭心ずした゚ンゞニアリングに぀いおは別途スラむドで公開しおいる資料があるので興味ある方はみおみおください。

2. ゚ンゞニアず AI の協働実隓 - 第  ステップ

そのため、Claude Code で䜿える Design Doc 䜜成フロヌずいうのを題材にしお取り組んでみたした。最初は、Cladue Code Action ずしお GitHub Actions 経由で発火できるようにしおおくこずで、Design Doc の䜜成を IDE に向き合わずずもできる䜓隓を実珟できないかず始めおみたした。

第䞀匟ずしおは、ずある Amazon DynamoDB に察しお栌玍するデヌタの䞊限サむズに関連する技術的課題が露呈しおおり、そこに察しお Design Doc を䜜成しおみるこずにしたした。
背景情報ずしおは、タスク管理ツヌルずしお利甚しおいる Linear ず、スタック情報が蓄積されおいる Notion に背景情報を入力ずしお、Claude Code Action 経由で Design Doc を䜜成しおもらうずいうものです。
ここの発火たでの流れに぀いおも、Zapier などを䜿っおどうにか開発フロヌに溶け蟌たせるような流れにできないかなず詊行錯誀しおいたした。

そしお、最初の結果を゚ンゞニアの negipo さんにレビュヌしおいただいたずころ、いろいろな課題感が浮き圫りになりたした。negipo さんの入瀟゚ントリヌ

実行の仕方が難しい

  • マニュアルが存圚しおいない
  • 固定フロヌを想定したものだったのでアドホックにやろうずする時の事前蚭定が耇雑すぎる
  • Notion、Linear、GitHub など入力むンタヌフェヌスが分散しおいお、どこに䜕を入力すればいいのかわからない。
  • Zapier の蚭定䞍備によりそもそも動䜜しない

このようなたあたあ散々な結果ずなっおいたした。

これだけ䜿いにくいものでしたが、 negipo さんに実際に䜿っおいただき、貎重なフィヌドバックを埗るこずができたした。やはりこうした取り組みは 1 人では限界があり、チヌムでの詊行錯誀が䞍可欠だず実感したした。

内容的にも䜿甚に耐えるものではない

たた、内容面においおも、

  • 倧枠ずしお想定しおいた方向性は問題なし
  • デヌタの読み蟌みにのみに焊点があたっおおり、曎新系に぀いおの考慮が挏れおいた
  • マルチリポゞトリに枡った理解ができおいない単䞀リポゞトリのみで実行しおいるため
  • DynamoDB の容量問題を解決するはずだったのに、音声認識粟床改善に぀いおの調査報告が入っおいた機械孊習特有の調査も同時に行わせる想定だったため、Claude Code 偎が無理やり調査を行っおくれた暡様

のような問題が発生しおいたした。

たた、セキュリティリスクやプラむバシヌリスクの項をテンプレヌトで蚭けおいたずころ、これらの項目に぀いおは過床に詳现な怜蚎がなされおおり、本来フォヌカスしおほしい蚭蚈の革新郚分がむしろ曖昧になっおいたずいうバランスの悪さも目立ちたした。

そのほかにも、negipo さんよりは、

「アむブリヌのサヌビス党䜓のコンテキストを持っおいないために気の回し方が䞍自然」

ずいった指摘も受けたしたが、䞀方で「サむズによっお耇数のストラテゞを組み合わせる方針は思い぀いおいなかった」ずいう郚分的な評䟡もあり、完成品を䜜るずいうよりも 蚭蚈における幅を広げる ずいう面での有効性が垣間芋えた結果ずなりたした。

3. ゚ンゞニアず AI の協働実隓 - 改善ステップ

第䞀匟ずなるものに぀いお埗られたフィヌドバックやむンサむトをベヌスずしお、Design Doc 䜜成においお䜿甚しおいたプロンプト呚りの倧幅なアップデヌトを加えたした。

具䜓的には、完成品をいきなり出すのではなく、蚭蚈における遞択肢の幅を出すこずを目的 ずしおアップデヌトを行いたした。

  • 耇数の候補を出させおそれらに぀いお同じ粒床で詳现化した䞊で比范怜蚎するように Design Doc のテンプレヌトおよびプロンプトの調敎
  • 䞍芁な機械孊習系の調査に぀いおは行わないように調敎必芁に応じお行うように刀断を任せるスタンス
  • 成果物ずしお Notion に出させる想定だったが、ロヌカルの Markdown ファむルずしお出力する圢に倉曎Notion ぞの曞き蟌みで䜙分な token 消費が行われる
  • Claude Code Action ではなく、ロヌカルの Claude Code のカスタムコマンドずしお動かすように倉曎

䞊蚘のような改善を加えた結果、かなり前向きなフィヌドバックをいただくこずができたした。

これらを螏たえるこずで、アシスタントずいった立ち䜍眮での Design Doc 䜜成を行うこずができるようになりたした。

4. コンテキスト゚ンゞニアリングの実践ず課題

䞊蚘の取り組みを螏たえお、12-Factor Agentsでも蚀及されおいるようなコンテキスト゚ンゞニアリング芳点に萜ずし蟌んだ時の実践もいく぀か行ったため、そちらに぀いおいく぀かかい぀たんで玹介したす。

実践内容

情報源の敎備MCP

MCP を通じお、AI コヌディングツヌルがさたざたな情報にアクセスしやすいように工倫を行いたした。MCP ずしお敎備したのは、すでに觊れおいたすが、䞋蚘のツヌルを MCP ずしお入れおいたす。

たた、LLM ごずによっお考えのクセなどが異なるこずず、圓時は Claude Code 自身の Web 怜玢の挙動が安定しおいなかったこずもあり、MCP 経由で Web 怜玢を有効化した MCP である o3-search-mcp を導入するこずで、成果物に察するセルフレビュヌや Web 調査に぀いおの倖出しを行うずいった工倫も入れおいたした。

圓たり前ですが、これらを甚意するだけでは䞍十分ではあり、実装の背景ずなる情報を Notion なり Linear なりで詳现に曞いおおく必芁がありたす。これらのドキュメンテヌション呚りの敎備に぀いおはただただ課題感が残るものずなっおたす。

段階的アプロヌチによる品質の向䞊

たた、今回 Design Doc の䜜成においおはいきなり完成品を䜜らせるのではなく、いく぀かのフェヌズに分けお䜜成を行わせおいたす。

  1. 調査フェヌズ: 䞎えられた情報やコヌドベヌスを調査する
  2. 蚭蚈フェヌズ: 調査フェヌズで埗られた情報をベヌスに、蚭蚈方針をたおる
  3. 文曞化フェヌズ: 蚭蚈した内容をドラフトずしお曞き起こす
  4. レビュヌフェヌズ: o3-search-mcp 経由でセルフレビュヌを実斜し、その内容を螏たえた䞊でアップデヌトを行う

このようなフェヌズを区切るこずで、1 ぀ 1 のフェヌズの成果物がコンテキストずしお出おくるずいう圢になりたす。こちらに぀いおも、ある意味コンテキスト゚ンゞニアリングず解釈できるものになるず思っおいたす。

たた、文曞を曞かせるずころでは 箇条曞きを原則犁止 ずいうルヌルを適甚しおいたす。個人の経隓䞊、AI に曞かせたドキュメントで箇条曞きされた箇所があるずどうしおも目が箇条曞きを䞊滑りしおしたう経隓がありたした。そのため、䞊滑りしない & 論理関係を明文化させるこずによる読者の理解向䞊を意図しお、原則文章Narrative圢匏での蚘茉を匷制させたした。

プロンプト経由でこれらを指瀺するこずで、人間にずっお解釈が可胜で、か぀アクションが打おるものずしお有甚性をたしたものず蚀えたす。

その他プロンプトでの工倫

䞊蚘のプロンプトの改善で工倫したずころずしおは、AI そのものにプロンプトを改善させたこずも挙げられたす。すでに実践されおいるケヌスは倚いず思うのですが、Anthropic 瀟によっお公開されおいるプロンプト゚ンゞニアリングに関するドキュメントを読み蟌たせながらアップデヌトを加えるこずで、よりシンプルか぀明瞭なプロンプトにアップデヌトされたした。

さらに、手続き型での指瀺も加え぀぀も 成果物ずその成功基準を明確に定矩 したのもプロンプトを構築でのポむントです。AI に察しお「テストが通るようになるたで実装を進めお」ず指瀺するのず同じなのですが、「具䜓的にどういう状態になっおいるこずが望たしいのか」ずいうのを宣蚀的に定矩するこずによっお、途䞭寄り道しおしたったずしおも AI 自䜓が目的を芋倱わずに目的を完遂できるようになりたす。
ずはいえ、進め方に぀いおはある皋床ゆるいレヌルを敷いおあげるこずによっお、ベヌスラむンずなるクオリティを担保するような工倫をしおいたす。
この぀のバランスを意識するこずも、プロンプトを構築する䞊で工倫したポむントでした。

実践における課題

GitHub Actions 䞊で MCP サヌバヌを動かす

䞀方で、ロヌカルで実珟する分には問題ないのですが今回利甚しおいる MCP サヌバヌでは Machine to Machine での認蚌・認可に察する敎備が発展途䞊です。そのため、GitHub Actions 䞊で Claude Code Action を動かす堎合は固定の API キヌを発行する必芁が出おきたすし、リモヌト MCP サヌバヌではなくロヌカル MCP サヌバヌずなるため、手元で Claude Code を動かす時ずたた異なった認蚌・認可の蚭定を行う必芁がありたす。

OAuth Token ベヌスでのアクセスになっおくれるずセキュリティ的には奜たしいのですが、ただそこのサポヌトは埅぀必芁がありそうです。

MCP ツヌルが倚すぎるこずによるコンテキストの圧迫

最近サポヌトされた Claude Code での /context コマンドで Claude Code 内郚でのコンテキストの占有量であったり内蚳が芋れるようになりたした。

MCP tools の䞭でどこがどれぐらいのトヌクンを消費しおいるのかの詳现も芋れるようになっおいたす。

 MCP tools · /mcp
...
 └ mcp__notion__notion-create-pages (notion): 4.1k tokens
 └ mcp__notion__notion-update-page (notion): 2.0k tokens
 └ mcp__notion__notion-move-pages (notion): 867 tokens
 └ mcp__notion__notion-duplicate-page (notion): 537 tokens
 └ mcp__notion__notion-create-database (notion): 7.2k tokens
 └ mcp__notion__notion-update-database (notion): 7.0k tokens
 └ mcp__notion__notion-create-comment (notion): 2.0k tokens
...

これで詊しに実行しおみたずころ、MCP tools の項目のみだけで 5 䞇トヌクン近くも消費しおいるこずになっおいたした。Claude は 20 䞇トヌクンたでしかコンテキストずしお考慮できないため、そのうち実に 1/4 をデフォルトで消費しおいる蚈算です。
これらを深掘りしおみるず、Notion 呚りで普段䜿いしおいないずころで倚くのコンテキストを消費しおいるこずがわかっおきおいたす。
しかしながら、筆者が調査した限りでは個別にこれらの tool をコンテキストから陀倖するずいう方法はサポヌトされおいない暡様で、珟状詊行錯誀しおいるフェヌズずなりたす。

たずめず今埌の展望

今回は、AI を掻甚した Design Doc 䜜成における実践䟋に぀いお、赀裞々に語りたした。
さたざたな難点や考慮事項が発生しおいく䞭で、今回取り組んだ題材や個人で行っおいた察話フロヌ呚りの改善においおは圹立おられたした。このようにドキュメントそのものは開発に圹立぀ものの 1 ぀にたで昇華させるこずができるようになりたした。
しかしながら、私個人の野望ずしおは、「AI によっお自埋的に End-to-End で開発できる領域を広げおいく」ずころにありたす。ここを目指さないずチヌム党䜓の開発生産性を 10 倍、100 倍にするこずは䞍可胜なのではないか、ずさえ感じおいたす。

今回の、Design Doc の䜜成のより開発の党䜓サむクルの䞭での䞀郚の補助ができそうずいう芋蟌みができたした。今埌は開発の流れ党䜓におけるボトルネックの特定や、ビゞネス貢献たでを芋据えた䞊での取り組みをしおいきたいず思いたす。

最埌に宣䌝

2025 幎 08 月 22 日に生成 AI に関する曞籍を出したした。今回ご玹介したような取り組みの背景ずなるような知識に぀いお、䞀通り孊べるようなものずなっおたす。
もしよければ、お手に取っお読んでいただけるず嬉しいです。

Amazon のリンクはこちら
https://www.amazon.co.jp/dp/4296205234

以前曞かせおいただいた曞籍宣䌝ブログ
↓↓

https://zenn.dev/ivry/articles/492e8e19de3906

たた、IVRy では「むベントや最新ニュヌス、募集ポゞションの情報を受け取りたい」「䌚瀟に぀いお詳しく話を聞いおみたい」ずいった方に向けお、キャリア登録やカゞュアル面談の機䌚をご甚意しおいたす。ご興味をお持ちいただけた方は、ぜひ以䞋のペヌゞよりご登録・お申し蟌みください。

https://ivry-jp.notion.site/209eea80adae800483a9d6b239281f1b
https://herp.careers/v1/ivry/wmZiOSAmZ4SQ

IVRyテックブログ

Discussion