はじめに
「VSCodeからCodexにお願いしたけど、意図とズレた」――そんな経験はありませんか。私自身、短く書くと精度が落ち、長く書くと伝える内容が散らばることがありました。
そこで効果があったのが2ターン設計です。1回目で前提を確認し、2回目で実行に移す。たったそれだけで、精度と納得感が上がりました。この記事では、VSCode×Codexで使える「2ターンの型」を整理します。

1. なぜ1回でうまくいかないのか
LLMは文脈が不足していると、良い推測はしても本当に欲しい答えに辿り着けないことがあります。公式のプロンプト指針でも「目的・制約・期待する出力」を明確に伝えることが推奨されています12。
つまり、1回目の指示で「必要な前提が足りているか」を確かめるだけで、2回目の成功率が大きく上がります。
2. 2ターン設計の全体像
2ターン設計は、**確認(Turn 1)→実行(Turn 2)**の流れです。会話の段階を明確にするだけで、やりとりが安定します。
flowchart LR A[Turn 1: 調査・前提確認] --> B[Turn 2: 実装・反映]
Turn 1: 調査・前提確認
このターンでは、**「何を、どこまで、どういう形で」**を固めます。足りない情報があれば質問してもらい、必要な前提を揃えるのが目的です。質問してから進めるスタイルは公式例でも推奨されています3。
Turn 2: 実装・反映
Turn 1で前提が揃ったら、実装・修正・整理などを依頼します。ここでは作業のゴールと受け入れ条件が明確になっていることが大事です。
3. Turn 1のテンプレ(そのまま使える)
短くてもよいので、次の項目を伝えると迷いが減ります。
- 目的
- 変更範囲
- 期待する出力
- 制約(触らない場所、守るルール)
- 参照してほしいファイル
実際のテンプレはこんな感じです。
| |
ポイントは「まず調査して」と先にフェーズを指定することです。これだけで、いきなり修正を始めるリスクが減ります。
4. Turn 2のテンプレ(承認してから実行)
Turn 2では「OK、やってください」を明示します。明確な実行依頼が推奨されることは公式のベストプラクティスでも触れられています12。
| |
この形式だと、実装範囲が安定し、仕上がりの確認も楽になります。
5. VSCode×Codexの具体例(実践編)
5.1 実践例で理解する
例A: ドキュメント反映 → 追加情報 → 再調査
| |
| |
ポイント: Turn 1で一覧化、Turn 2で前提を更新して再調査。
例B: 仕様フロー照合 → 追加条件 → 再調査
| |
| |
ポイント: 仕様照合→追加条件→再調査の流れを固定化。

5.2 まず使うテンプレ
| |
| |
5.3 追加で効くひとこと
- 「不足があれば質問してください」
- 「最小変更でお願いします」
- 「未実装は未実装と明示してください」
- 「影響範囲が広い場合は先に相談してください」
6. よくある失敗と回避策
6.1 「短すぎる」問題
「直して」「いい感じに」だけだと、前提が曖昧になりがちです。公式ガイドでも指示は明確にとされています12。
6.2 「長すぎる」問題
情報が多すぎると要点が埋もれます。Turn 1は要点だけにして、必要な詳細は質問で補う方が安定します3。
6.3 「前提が途中で変わる」問題
途中で条件が変わるのはよくあります。そのときはTurn 1に戻って前提の更新を伝えると混乱が減ります。

まとめ
- 2ターン設計は「確認→実行」の流れを作るだけ
- Turn 1は前提を揃えるフェーズ
- Turn 2は承認して実行するフェーズ
- VSCode×Codexでもテンプレ化すると安定する
まずは次の1タスクで、Turn 1だけ丁寧に書いてみてください。驚くほど結果が変わります。
参考文献
“Prompt engineering”, OpenAI, https://platform.openai.com/docs/guides/prompt-engineering ↩︎ ↩︎ ↩︎
“Prompting” , Anthropic Documentation, https://docs.anthropic.com/en/docs/build-with-claude/prompting ↩︎ ↩︎ ↩︎
“Generate Clarifying Questions with a Language Model”, OpenAI Cookbook, https://github.com/openai/openai-cookbook/blob/main/examples/deep_research_api/introduction_to_deep_research_api.ipynb ↩︎ ↩︎
