Codex CLI のリポジトリ配下にプロンプティングガイドが用意されていました。わかりやすいのでひと通り読んでおくと良いと思います。備忘録も兼ねて人力で翻訳(意訳)。
- スタータータスク
- カスタムインストラクション
- プロンプトテクニック
スタータータスク
Codex CLI の動作確認時は下記のコマンドを実行してください。
下記のように直接プロンプトを引数に与えて質問することもできます。
codex "あなたに何ができるか 2-3 文で説明してください。"
Codex を体験していただくためにまずは簡単な HTML のウェブページを作成してもらいましょうか。新規のディレクトリで下記を実行してください。
mkdir first-task && cd first-task && git init && codex "Codex、知性とプログラミングの本質についての詩を表示する poem.html ファイルを作成してください。CSS を追加して額縁を壁に飾ったかのように表示してください。"
Codex はデフォルトで suggest(提案)モードになります。つまり、タスクが完了するまで「はい(y)」または「いいえ(n)」を選択してください。
下記のような結果が返ってくるはずです。
codex
以下の poem.html ファイルを作成しました。
変更点:
* HTML5ドキュメントを日本語設定(lang="ja")で作成
* フレームを模したCSS(太めのボーダー、パディング、影)を追加
* 背景色やフォントを調整して壁に飾った額縁のような雰囲気を演出
* Codex、知性、プログラミングの本質をテーマにした日本語の詩を埋め込み
このファイルをブラウザで開くと、詩が額縁の中に美しく表示されます。
今開いているセッションを終了するには「q」を押し、open poem.html
を実行してください。ウェブブラウザが立ち上がり、詩が表示されたウェブページが表示されるはずです。
私の手元で動かしたところ下記のような表示になりました。
カスタムインストラクション
Codex は Markdown ベースの二種類のカスタムインストラクションに対応しています。カスタムインストラクションはモデルの挙動やプロンプティングに影響を与えます。
~/.codex/instructions.md
あらゆるセッションやプロジェクトで読み込まれるグローバルに指定できる指示です。短く簡潔に記載してください。個人の設定、シェルのセットアップに関するヒント、安全性についての制約、好みのツールなどに使ってください。
たとえば、「シェルコマンドを実行する前に、.codex-venv
という名前の Python の仮想環境を作成してアクティブにしてください」や「すべての変更が完了するまで pytest を実行しないでください」など。
CODEX.md
こちらは現在のディレクトリあるいは git のルートから読み込むことのできるプロジェクト固有の指示です。リポジトリ固有のコンテキストやファイル構造、コマンドポリシー、プロジェクト規約などで使ってください。codex
コマンドの引数に --no-project-doc
または CODEX_DISABLE_PROJECT_DOC=1
を指定しない限り、CODEX.md
は自動的に反映されます。
たとえば「すべての React コンポーネントを src/components/
に配置してください」など。
プロンプトテクニック
数日前に公開した GPT-4.1 のプロンティングガイド(下記)にて、最新のモデルを効果的に活用するための洞察などを含めています。その中には Codex CLI を利用する際にも役立つ「Agentic Workflows」について解説しています。Codex CLI はこの「Agentic Workflows」の参考実装です。
Codex には 3 つのプロンプトパターンがあります。これらはタスクの複雑性やどこまでエージェントに任せるかによって分類されます。
小規模なリクエスト
独立したバグ修正や小さな機能追加など、コードの小さな修正を Codex に依頼する際は、何を変更してほしいのかを明確に示すことが重要です。タスクが要件を満たしているか確認できるよう、変更点を明確に伝えてください。
たとえば、/utils
の上のディレクトリから
codex "utils/priceUtils.js の割り引き関数を 10% の割引になるよう修正してください"
基本原則
- 編集する関数名やファイル名を正確に指定する
- 何を変更するのか、変更後の動作がどうあるべきかを説明する
- より速くフィードバックループを回すために、インタラクティブモードをデフォルトにする
中規模なタスク
より複雑で長文の入力が必要な場合、ファイルとして指示を与えることができます。
codex "$(cat task_description.md)"
タスクに関する端的かつ十分な説明を含めることを推奨します。もし CODEX.md
に記載していない場合、コードベースに初めて触れる方向けのコンテキストを追加してください。また、Codex が把握しておくべきコンテキストや編集対象のファイル、参照してほしいファイル、自身の作業の検証方法についての好みなどを含めることもできます。
(コンテキストが多いためだと思うが)もし Codex が最初の実行でうまく処理できなかった時はインタラクティブモードでフィードバックを与えてあげてください。
たとえば、task_description.md
に下記を記載。
リファクタリング: 静的ドキュメント全体でモデル名を簡略化
サイト上でより良いモデル命名規則を使用するように、docs_site を更新してください
以下のファイルを確認してください
- docs_site/content/models.md
- docs_site/components/ModelCard.tsx
- docs_site/utils/modelList.ts
- docs_site/config/sidebar.ts
ユーザー向けの箇所では、わかりにくいモデル識別子をすべて簡略化したバージョンに置き換えてください
変更内容や試してみたことを final_output.md に追記してください
大規模なプロジェクト
Codexは、大規模なタスクにおいて驚くほど自律的に作業を進めることができます。たとえば、エージェントに複雑な作業を任せて、後からその結果を調整したい場合に便利です。
目標は明確でも具体的な手順が決まっていない場合、タスクを構造化して与えてあげることで、Codex は計画を立て、実行し、進捗管理まで一貫して任せることができます。
たとえば下記のように進めることが可能です。
- 作業ディレクトリにエージェントとの共有ワークスペースとしての
.codex/
を追加する - 目標や実行時の動作に関わる指示を含んだ要件定義書をプロジェクトディレクトリに配置する
- 作業の進捗に合わせて計画を更新するよう指示する(
.codex/plan_2025-04-16.md
のような日付付きファイルを作成、更新、README に反映をリクエストするなど)
ただし、.codex/
はカスタムインストラクションなど明示的に指定されるものではない点にご注意ください。Codex は他のディレクトリと同列に扱います。
インタラクション・モード
全自動で実行し、あとから手を加えることも、各々のマイルストーンをインタラクティブに承認しつつ進めることもできます。