Claude Code, Codex CLI, GitHub Copilot などを活用したAIコーディングにおいて、楽をして指示に "曖昧さ" を持たせると時に自らを苦しめる最大の要因となります。
本記事では、AIが曖昧な部分を勝手に解釈して意図せぬアクションを起こすことを防ぐための方法と曖昧さの排除によってどんなメリットが得られるかをご紹介致します。
曖昧さをなくすための手段
1. "不明点があれば質問せよ" をAIに明示する
AIコーディングにおいて、AIはプロンプトで指示された行動に素直に従います。
つまり「曖昧でもいいから実装して」と読み取れる指示を与えると、良しなに実装してしまうことが多々あります。
そこで重要なのが、曖昧な場合には必ず質問させるよう明示することです。
仕様や指示に不明点・解釈の余地がある場合は **必ず先に質問してください**
この一文があるだけで、出力前に「何が不明なのか」を洗い出す姿勢に切り替わります。
「何を聞くべきか?」を考えさせることで、より指示に対して精度の高い実装を促すことができます。
2. 曖昧さを含まないプロンプト設計を心がける
要件と背景を混ぜて書くと、AIはどこまでを仕様として重視すべきか混乱します。
以下のように、構造を明示すると理解の精度が向上します。
<context>
目的:
- 定期課金を管理するAPIである
前提:
- 決済基盤はStripeを使用する
- 毎月1日に自動請求を行う
</context>
<specification>
- ユーザーがキャンセルした場合、即時に全額返金する
- 日割り計算は行わない
</specification>
<task>
- 上記仕様を満たすAPIエンドポイント設計を行う
- エンドポイント一覧、HTTPメソッド、リクエスト/レスポンス例を示す
</task>
構造化しつつ、数値や定義を含めて「曖昧な言葉(例:適切に、高速に、最適化して)」を排除するのがポイントです。
3. CLAUDE.md/AGENT.md の活用
例として、ClaudeのCLAUDE.mdなどプロジェクト固有のコンテキストを活用しましょう。
ここに以下のような情報を記述しておくことで、セッションをまたいでも「思考の再共有」が可能になります。
# CLAUDE.md
## 基本方針
### 推測禁止
- 勝手な仮定・推測・補完による実装は禁止
### 曖昧時の振る舞い
- 仕様や指示に不明点・解釈の余地がある場合は **必ず先に質問すること**
ポイントは、「どう動くべきか」より「曖昧なときにどう振る舞うか」を明記することです。これにより、AIの“思い込み実装”を防ぐことができます。
4. AIの理解を明文化させてチェック
セッションの継続性には限界があります。重要なルールやコンテキストは都度、再提示しましょう。
他にも、「これまでの内容を要約し、前提知識として明示してください」と依頼することで、AI自身に過去のやりとりを圧縮・保存させることも可能です。
例)以下を行ってください。
1. これまでのやりとりから、今後の判断に影響する前提・制約のみを抽出する
2. 解釈が分かれる表現を避け要約する
制約:
- 一時的な話題や例示は含めない
- 推測や補完は行わない
- 箇条書きで記載する
これは、AIが保持できている情報を明文化するためのものでもあり、
忘れられている前提や抜けているルールがあれば、AIにとっての曖昧さに繋がります。
人が補完して次のセッションに与えてあげましょう。
5. テスト駆動で曖昧さを潰す
仕様が曖昧なままコードを出すと、テストとの整合性も崩れます。そこで以下の順番で進めると齟齬を減らせます。
- AIにテストケースを先に書かせる
- テスト内容が意図に合っているかを人が確認する
- 承認したテストを満たすコードを実装させる
テストが仕様のアンカーとなることで、実装の曖昧さを排除できます。
✅ 曖昧さ排除のメリット
実装のやり直しが減少
初期のコンテキスト設計が甘いと、数時間後に"大幅な方向修正"が必要になることがあります。最初に曖昧さを潰しておけば、こうした手戻りは大幅に減ります。
AIとの対話の質向上
曖昧さを潰すことで、AIは単なるコード生成だけでなく、設計の妥当性を確認する相手としても機能します。
不明点を質問させ、意図を確認したうえで実装させることで、「書かせて直す」やり取りではなく、曖昧さを排除するためのAIとの対話そのものが開発を前に進めるプロセスとなります。
チームの認識齟齬も減らせる
AIとのやり取りで曖昧さの排除が慣れていくと人間同士の齟齬の予防にも有効です。
💡 おわりに
AIと開発する世界では、曖昧な指示はそのまま成果物になり得ます。
人間なら立ち止まるような違和感も、AIは「仕様」として受け取り、コードに落とすことが可能です。
曖昧さをそのままAIに無理矢理実装させるのではなく、気づかせ、質問してもらう方向に持っていきましょう。
そうすることで、実装前に認識のズレを潰し、手戻りの少ない開発が可能になります。