AIエージェントの進化は凄まじい。特にClaude Codeのようなツールが登場してから、開発スタイルは根本から変わった。だが、多くの人が「AIが思うように動かない」「指示を無視する」と悩んでいるのも事実だ。結論から言うと、その原因のほとんどはプロンプトの書き方ではなく、仕様の渡し方にある。
AIエージェントに巨大な仕様をそのまま投げても、情報の海に溺れて重要な指示を見失うだけだ。AIが迷わないように情報を適切に切り分け、作業の境界線を引く必要がある。この記事では、1人SaaS開発者である筆者が実践している、巨大仕様を攻略するための設計パターンを解説する。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理までAIがサポート。
AIエージェントに渡すべき仕様書の8要素分割法
AIエージェントに仕事を頼むとき、最も避けるべきなのは「いい感じにやって」という丸投げだ。人間のチームメンバーなら空気を読んでくれるかもしれないが、AIは空白を自分の推測で埋めてしまう。その推測が外れたとき、開発は一気に迷走する。
そこで導入したいのが、仕様を8つの要素に分解して伝える手法だ。これによってAIの作業範囲を明確に固定できる。
1. 目的と2. 非目的
「何を作るか」と同じくらい重要なのが「何を作らないか」だ。非目的を明記することで、AIが勝手にリファクタリングを始めたり、関係ないファイルの型定義をいじり回したりするのを防げる。
3. 背景
なぜこの機能が必要なのか、ユーザーは誰なのかを伝える。これだけで、UIの細かいニュアンスやエラーメッセージのトーンが適切になる。
4. 変更範囲と5. 入力文脈
触っていいファイルと、参照するだけのファイルを明確に区別させる。AIに全ファイルの書き換え権限を与えると、思わぬバグを混入させるリスクが高まる。
6. 受け入れ条件と7. テスト条件
何をもって完了とするかを定義する。具体的なテストケースを仕様に含めることで、AIは実装後に自ら動作確認を行い、精度を高めることができる。
8. 停止条件
「不明点があれば作業を中断して質問せよ」という指示だ。これが無いと、AIは無理やり答えをひねり出して間違った方向に突き進む。
Read-onlyモードによる段階的な計画立案
いきなりコードを書かせ始めるのは、初心者が最も陥りやすい罠だ。熟練の開発者は、まずRead-onlyモードでAIにリポジトリを分析させ、実装計画を立てさせる。
具体的な手順はこうだ。まず「まだ実装はしないでほしい」と念を押し、既存のコードベースを読ませる。その上で、変更候補のファイルや実装方針、潜在的なリスクを出力させる。人間が忘れていた古い設計判断や、似たような実装パターンをAIが指摘してくれることもある。
このステップを挟むだけで、手戻りは減る。AIが出した計画を人間がレビューし、問題がなければ初めて実装を指示する。この「急がば回れ」の精神が、AIエージェント開発では重要になる。
しんたろー:
Claude Codeでコードを書く際、このRead-onlyから始めるフローは外せない。AIにいきなり書かせると「既存の便利なユーティリティ関数」を無視して新しいコードを書き始めることがあるからだ。
段階的開示でコンテキストウィンドウを守る設計
AIエージェントには、一度に処理できる情報の限界がある。特にClaude Codeなどのツールでは、Skills(スキル)と呼ばれる拡張機能の定義が、常にコンテキストの一部を占有している。これを使いすぎると、肝心の作業用トークンが削られてしまう。
ここで使うのが段階的開示(Progressive Disclosure)という設計パターンだ。Skillsの概要(description)は20文字から50文字程度の最小限に留め、詳細な手順は別のファイルに切り出す。
必要になったときだけそのファイルを読み込ませるように設計すれば、常時消費されるトークンを節約できる。これは大規模なプロジェクトであればあるほど、AIの推論精度に直結するテクニックだ。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後はAIが投稿案を毎日生成。確認して選ぶだけ。
言い切れる規模への分割と多層パス設計
AIの出力には「席」がある。一度の回答で出力できる情報量には限りがあり、仕様が長すぎると重要な項目が席から漏れてしまう。これを防ぐには、仕様を「言い切れる規模」に分割して、複数回のパスに分けて処理させる必要がある。
特に有効なのが、個別のファイルを深く見る単文書パスと、複数のファイル間の連携を見る結合スコープパスの二層構造だ。全体を一度に読ませるのではなく、関係性のある部分だけを切り出してAIに渡すことで、情報の抜け漏れや幻覚を最小限に抑えることができる。
以下の表に、これまで紹介した設計パターンの特徴をまとめた。
| 設計パターン | 主なメリット | 注意点 |
| :--- | :--- | :--- |
| 8要素分割法 | 実装の精度が向上し、AIの暴走を防げる | 仕様を書くための準備に一定の工数がかかる |
| Read-only計画 | 既存コードとの整合性が取れ、手戻りが減る | 実装開始までにワンステップ挟む必要がある |
| 段階的開示 | コンテキストを節約し、複雑なタスクに対応できる | ファイル管理やディレクトリ構造のルール化が必要 |
| 多層パス設計 | 長文仕様でも情報の抜け漏れを大幅に防げる | 人間側で情報を切り分ける高度な判断が求められる |
初心者がハマる3つのつまずきポイント
AIエージェント開発を始めたばかりの人が遭遇する罠がある。これを意識するだけで、開発効率は上がる。
1. 「ついでに直しといて」という曖昧な指示
メインのタスク以外にリファクタリングなどを頼むと、AIの注意力が分散する。一つのタスクには一つの目的だけを持たせるのが鉄則だ。
2. Skillsの過剰な詰め込み
便利だからといってSkillsを増やしすぎると、前述のコンテキスト圧迫問題が発生する。本当に必要なものだけを厳選し、説明文は極限まで削るべきだ。
3. AIの「わかった」を鵜呑みにする
AIが「理解しました」と言っても、実際には仕様の一部を無視していることがある。受け入れ条件に基づいたテストを必ず実行させ、結果を自分の目で確認する。
しんたろー:
開発しているThreadPostでも、この分割術を導入してからバグ修正のスピードが上がった。AIに「何をさせるか」よりも「何をさせないか」を伝える方が、開発を加速させる近道だ。
AIエージェント開発に関するFAQ
Q1: AIエージェントが勝手にコードを修正してしまいます。どう防げばいい?
仕様書の中に「非目的(Out of Scope)」というセクションを必ず作る。そこに「既存の型定義は変更しない」「リファクタリングは行わない」と明記すれば、AIの勝手な行動を抑制できる。また、変更を許可するディレクトリを制限する指示を出すのも効果的だ。
Q2: 仕様書が長すぎてAIが重要な指示を無視します。
AIが一度に出力できる情報量には限界がある。仕様を機能単位やコンポーネント単位で細かく分割し、別々のセッションやパスで指示を出す。また、最も重要な制約事項はプロンプトの最初と最後に配置すると、AIの記憶に残りやすくなる。
Q3: Claude CodeのSkillsを増やすと精度が落ちるというのは本当?
本当だ。Skillsの説明文(description)は常にコンテキストを消費し続ける。これが長すぎると、実際のコードを読み書きするための枠が減ってしまう。詳細は別ファイルに逃がし、descriptionはトリガーとなるキーワードだけに絞るのが賢い設計だ。
Q4: 「結合スコープパス」を実践する具体的なコツは?
単体での実装が終わった後に、連携するインターフェースの部分だけを抽出してAIに渡す。例えば「APIの定義ファイル」と「それを使うフロントエンドのファイル」だけをペアにして読ませ、整合性をチェックさせる。全体を読ませるよりも、関係性にフォーカスさせる方が正確な判断ができる。
Q5: AIの回答が安定せず、毎回違うコードを書いてきます。
AIの生成には揺らぎがある。重要なロジックを組む際は、一度の生成で決め打ちせず、同じ指示で複数回生成させて結果を比較する。また、仕様書に具体的なテストコードの期待値を記述し、そのテストをパスすることを完了条件に設定すれば、出力のブレは最小限に抑えられる。
まとめ:仕様分割の技術がAI開発の格差を生む
AIエージェントに正確な仕事をさせるためには、人間側が「情報の交通整理」を行う必要がある。巨大な仕様を8つの要素に分解し、Read-onlyモードで計画を練り、段階的開示でコンテキストを守る。これらの設計パターンを使いこなすことで、AIは単なるチャットボットから、頼れる開発パートナーへと進化する。
まずは、次にAIに指示を出すとき「やらないこと」を一行付け加えるところから始める。それだけで、AIの挙動が安定することに驚くだろう。

この記事が参考になったら、ThreadPostを試してみませんか?
投稿作成・画像生成・スケジュール管理まで、AIがサポートします。
ThreadPostをもっと知る