開発者向けガイド · 18件の作業
開発者のためのAI:コーディングエージェント、コスト、安全な任せ方
すでにコード補完やチャットを使っているなら、次の段階は、リポジトリを読み、コマンドを実行し、プルリクエストを作るエージェントです。それで時間が節約できるかどうかは、モデルよりもセットアップで決まります。最初のパートはどのコーディングエージェントにも当てはまります。Claude CodeとCodexのパートでは、それぞれの公式ドキュメントをもとに、コマンド、ファイル、設定を掘り下げます。
どのコーディングエージェントでも
01
完了を証明できるタスクをエージェントに渡す
エージェントは「これを改善して」では失敗し、チェックで終わるタスクでは成功します。通るべき失敗中のテストや、出力が変わるべきコマンドです。証明の方法をタスクに書き込めば、エージェントは終わったように見えた時点で止まらず、本当に終わるまで続けます。
例
「ISO週番号の日付に対応するよう日付パーサーを直してください。完了の条件は、2026-W01の新しいテストを含めてnpm test -- datesが通ることです。テストは変更しないでください。」エージェントはテストが通るまで実行し、その出力を貼り付けます。あなたがレビューするのは、推測ではなく30行の差分です。
やり方
- 1渡す前に、チェックを書くか指定します。失敗中のテスト、またはコマンドとその期待される出力です。
- 2このページのプロンプトでタスクを渡します。変更してよいファイルと、変更してはいけないファイルも含めます。
- 3チェックはエージェント自身に実行させ、最終的な出力を貼り付けさせます。
- 4差分は同僚のプルリクエストと同じようにレビューします。チェックが通ったらレビューが始まるのであって、終わるのではありません。
組み込み機能
コピーできるプロンプト
タスク:[変更内容]。 完了の条件:[テストまたはコマンド]が通り、[期待される出力]を表示すること。終える前に実行し、結果を貼り付けてください。 変更してよいもの:[パス]。変更してはいけないもの:[パス]、依存関係、テスト。 通せない場合は、チェックを回避せずに作業を止め、理由を説明してください。失敗しやすい点
- エージェントは、テストを弱めることでテストを通してしまうことがあります。テストの変更を禁止し、差分でもそうなっていないか確認しましょう。
- 1つのチェックに収まらないほど大きなタスクは、一度に任せるには大きすぎます。分割しましょう。
02
別の作業をしている間に、クラウドでタスクを走らせる
クラウドのエージェントは独自の環境であなたのリポジトリを扱い、レビューすべき変更を持って戻ってきます。そのため、あなたが別のことをしている間に複数のタスクが進みます。効果があるのは、きちんと指定されたタスクだけです。あいまいなタスクは、ほどくのが大変な大きな差分になって戻ってきます。
例
昼食前の小さなタスク3つ:依存関係を1つ更新する、足りないデータベースのインデックスを追加する、不安定なテストを直す。それぞれを専用のチェックとともにクラウドのエージェントに渡せば、午後には、コンテキストを3回切り替える代わりに3つのプルリクエストをレビューできます。
やり方
- 1コードの置き場所に近いものを選びます。Codex Cloud、GitHubのCopilot cloud agent、またはClaude Code on the webです。
- 2その環境で依存関係をインストールし、テストを実行できることを確認しましょう。それができなければ、エージェントは推測で動くことになります。
- 3上の作業のように、それぞれ専用のチェックを付けた、小さく独立したタスクを送ります。
- 4各プルリクエストは、まず自動レビューアーに読ませ、それから自分でレビューします。
組み込み機能
コピーできるプロンプト
このリポジトリで:[タスク]。 背景:[コードの該当箇所、関連するissue]。 完了の条件:あなたの環境で[テストまたはコマンド]が通ること。その出力をプルリクエストの説明に記載してください。 プルリクエストの変更行数は[行数]行未満にしてください。それ以上必要な場合は、作業を止めて分割の方法を提案してください。失敗しやすい点
- 設定していないシークレットやサービスが必要なテストは、スキップされるか失敗します。それなしで通っても、ほとんど何も証明されません。
- 関連するコードに複数のエージェントを当てると、競合するプルリクエストができます。並行するタスクは別々の領域に分けましょう。
03
チェックが人の手を介さずに走るようにする
機械で確認できることにレビューの時間を使わないでください。フックを使えば、エージェントが変更するたびにフォーマッター、リンター、テストが実行され、レビューボットがあなたより先に各プルリクエストを読みます。そうすれば、あなたのレビューは誤字ではなく設計についてのものになります。
例
編集のたびに、フックがフォーマッターと単体テストを実行します。エージェントの変更で2つのテストが壊れますが、エージェントはフックの出力で失敗を見て、あなたが見る前に直します。その後、レビューボットが処理されていないエラーケースを1つ指摘し、それはあなたが判断します。
やり方
- 1ビルド、テスト、リントのコマンドを、エージェントが毎回のセッション開始時に読む指示ファイルに書きます。ファイル名は各エージェントのドキュメントに載っています。
- 2Claude Codeでは、編集のたびにフォーマッターとテストを実行するフックを追加します。そうすればエージェントが失敗を見て直します。
- 3すべてのプルリクエストをボットにレビューさせます。Codexで「Automatic review」をオンにするか、Copilotをレビューアーに指定します。
- 4エージェントが同じ間違いを2回したら、それをテストか指示ファイルのルールにします。
組み込み機能
コピーできるプロンプト
このリポジトリを読んで、コーディングエージェント向けの指示ファイルを書いてください: 1. インストール、ビルド、テスト、リント、フォーマットの正確なコマンド。 2. プロジェクトの構成を10行以内で。 3. ここで新しく来た人が間違えやすい規約を、それぞれ例を1つ付けて。 4. エージェントがここで決してしてはいけないこと。たとえばマイグレーションの変更や生成ファイルの編集。 実際に実行して成功したコマンドだけを載せ、それ以外には「未検証」と付けてください。失敗しやすい点
- もう動かないコマンドが書かれた指示ファイルは、エージェントにそのファイルを無視するよう教えるだけです。セットアップが変わったら、コマンドを実行し直しましょう。
- レビューボットも自信たっぷりに間違えます。コメントは提案として扱いましょう。
04
エージェントを最小限の権限でツールにつなぐ
エージェントの力は、見えるもので決まります。issue、ドキュメント、ログ、データベースのスキーマです。MCPでそれらをつなげますが、接続はどれもアクセス権であり、外部から読み込んだテキストに指示が紛れ込んでいることもあります。読み取り専用から始め、タスクに必要なときだけ広げましょう。
例
エージェントはトラッカーからissue 482を読み、ログでスタックトレースを見つけ、ライブラリのドキュメントを確認してから、原因のファイルを特定します。すべて読み取り専用のトークンで行います。修正はあなたのリポジトリに書き、あなたはいつもどおりレビューします。
やり方
- 1チャットに最もよく貼り付けているものを書き出します。たとえばissue、エラーログ、ドキュメント、スキーマです。まずそれらを接続します。
- 2それぞれについて公式のMCPサーバーを、読み取りしかできないトークンで追加します。Gemini CLIでは、拡張機能にMCPサーバーとその設定をまとめられます。
- 3それらが必要なタスクを渡し、正しいものが呼び出されたか確認します。
- 4数週間ごとに、使わなくなったサーバーを削除します。
組み込み機能
コピーできるプロンプト
何かを変更する前に:トラッカーでissue [ID]を読み、ログでエラーを見つけ、[ライブラリ名]のドキュメントを確認してください。 それぞれから何がわかったか、どのファイルに原因があると思うかを教えてください。 接続しているツールには何も書き込まないでください。失敗しやすい点
- ウェブページ、issue、文書には、エージェントを操るために書かれたテキストが含まれていることがあります。外部のコンテンツを読み込むツールには、書き込み権限を与えないでください。
- 設定ファイルに書いたトークンは漏れます。クライアントのシークレット保存機能か環境変数を使い、リポジトリには決して置かないでください。
05
サブスクリプションとトークン単位の従量課金のどちらを選ぶか
エージェントのセッションはファイルを読み、多くのステップを実行するので、チャットよりはるかに多くのトークンを使います。選ぶ前に、自分の典型的な1週間の使用量で料金を見積もりましょう。サブスクリプションなら手で操作する利用の費用が一定額に収まり、トークン単位の課金なら自動実行1回ごとに上限を設けられます。
例
毎日エージェントを使う1週間で、入力トークンは約4,000万(40M)、出力トークンは約300万(3M)になります。APIの料金ページで使っているモデルの価格をもとに計算し、サブスクリプション1か月分と比べます。サブスクリプションのほうが安く、その制限が1週間の使い方に収まるならサブスクリプションを選び、CI用に上限付きのAPIキーを1つ持っておきます。
やり方
- 1すでに払っているものを確認しましょう。ChatGPTのプランにはCodexが、Claudeの有料プランにはClaude Codeが含まれています。
- 2エージェントがトークン使用量を表示する場合は、典型的なセッションをいくつか選んでその使用量を記録します。
- 3その使用量を、このサイトのAPI料金ページで計算し、サブスクリプションと比べます。
- 4自動化やCIには、利用額の上限を設定したAPIキーを使いましょう。ループで請求額が膨らむのを防げます。
組み込み機能
コピーできるプロンプト
典型的なセッション[回数]回分の使用量です:[入力と出力のトークン数]。仕事をするのは週に約[日数]日です。 この価格でトークン単位の月額料金を見積もってください:[API料金ページから貼り付け]。 月額[価格]のサブスクリプションと比べてください。私が確認できるように計算過程を示してください。失敗しやすい点
- サブスクリプションにも利用上限があります。作業の途中で上限に達すると時間を失います。価格だけでなく上限も確認しましょう。
- 請求額を何よりも大きく左右するのはモデルです。実際に使うモデルで比べましょう。
Claude Code
06
CLAUDE.mdで、どのセッションも同じ状態から始める
毎回のセッションの始めにビルドコマンドや規約を説明しているなら、それはCLAUDE.mdの役目です。Claudeはセッションの開始時に毎回このファイルを読みます。短く、正しい内容に保てば、同じ間違いが繰り返されなくなります。
例
Claudeが、プロジェクトのpnpm test:unitではなくnpm testを実行し続け、生成されたファイルを編集し続けていたリポジトリ。CLAUDE.mdに正しいコマンドと「src/gen/は絶対に編集しない」の2行を書くと、どちらの間違いも止まります。
やり方
- 1リポジトリで/initを実行します。コードベースを分析して最初のCLAUDE.mdを書くか、既存のものへの改善案を出します。
- 2ビルドやテストのコマンド、コーディング規約といったチームのルールは./CLAUDE.mdに書いてコミットします。自分の好みは、すべてのプロジェクト用なら~/.claude/CLAUDE.mdに、このプロジェクト用ならCLAUDE.local.mdに書きます。
- 3長い文書は貼り付けずに参照させましょう。@path/to/fileと書くと、起動時に別のファイルが読み込まれます。
- 4Claudeが同じことを2回間違えるたびに、それを防げたはずの1行を追加します。
コピーできるプロンプト
このリポジトリを読んで、CLAUDE.mdを改善してください。60行未満に収めてください: 1. ビルド、テスト、リントの正確なコマンド。 2. 構成を数行で。 3. ここで新しく来た人が間違えやすい規約。 4. 決して編集してはいけないファイルとフォルダ。 もう正しくない内容は削除してください。実行していないコマンドには「未検証」と付けてください。失敗しやすい点
- CLAUDE.mdの内容はすべて毎回のセッションで読み込まれ、コンテキストを消費します。詳細は、CLAUDE.mdから読み込むファイルに移しましょう。
- もう正しくない指示は、指示がないより悪い結果を招きます。セットアップが変わったら、コマンドをもう一度確認しましょう。
公式ドキュメントより: Claude Code docs: How Claude remembers your project
07
まず計画し、それから編集させる
多くのファイルにまたがる変更では、高くつく間違いは1行の誤りではなく、方針の誤りです。プランモードでは、Claudeはソースファイルを編集せずに調査して計画を書きます。あなたが計画を修正し、それから承認します。
例
14のファイルにまたがって、認証をcookieからトークンに移行するケース。最初の計画はモバイルクライアントを忘れています。それを指摘すると計画にステップが1つ加わり、そこで初めてClaudeが編集を始めます。
やり方
- 1ステータスバーにプランモードがオンと表示されるまでShift+Tabを押すか、プロンプトを/planで始めます。
- 2変更内容と、変えてはいけないことを説明します。計画中もClaudeは調査のためにコマンドを実行することはありますが、ファイルは編集しません。
- 3計画は設計メモのように読みます。間違ったファイル、抜けているケース、大きすぎる変更がないかを見ます。正しくなるまで修正を頼み、それから承認します。
- 4次の無関係なタスクの前に、/clearで新しく始めます。
コピーできるプロンプト
/plan [目標]のために[変更対象]を変更してください。制約:[変えてはいけないこと]。 触れるファイル、変更の順序、各ステップを証明するテスト、確信が持てない点を一覧にしてください。私が承認するまで何も編集しないでください。失敗しやすい点
- 想定より多くのファイルに触れる計画は、警告のサインです。承認する前に理由を尋ねましょう。
- プランモードでも、調査のためにコマンドは実行されます。見慣れないリポジトリを安全に実行できるようになるわけではありません。
公式ドキュメントより: Claude Code docs: Choose a permission mode · Claude Code docs: Commands · Claude Code docs: Best practices
08
同じコマンドを50回承認するのをやめる
テストの実行を毎回手で承認していると、読まずに「はい」を押す癖がつきます。安全で繰り返し使うコマンドはプロジェクトの設定で一度だけ許可し、危険なものは拒否し、それ以外は確認を求めるようにしておきましょう。
例
あるチームは、共有のプロジェクト設定でテストとリントのコマンドを許可し、.envファイルの読み取りを拒否しています。確認を求められるのは読む価値のある少数のコマンドだけになり、誰のセッションでもキーを開けません。
やり方
- 1/permissionsを開くと、すべてのルールと、それぞれがどの設定ファイルから来ているかがわかります。
- 2チームのルールは.claude/settings.jsonに書いてコミットします。個人のルールは~/.claude/settings.jsonか.claude/settings.local.jsonに書きます。
- 3ルールは拒否(deny)、確認(ask)、許可(allow)の順に確認されるので、拒否ルールが1つあれば、どの許可ルールよりも優先されます。
- 4Shift+Tabでモードを切り替えます。acceptEditsは作業ディレクトリ内のファイル編集を自動で承認します。bypassPermissionsは確認と安全チェックをオフにします。ドキュメントでは、インターネットに接続していない隔離されたコンテナやVMでのみ使うよう書かれています。
コピーできるプロンプト
このセッションで実行したコマンドを見てください。.claude/settings.jsonの権限ルールを提案してください。毎日使う読み取り専用のコマンドとテストのコマンドは許可し、シークレットを読むものやプロジェクト外を削除するものは拒否し、それ以外はすべて確認を求めるようにしてください。各ルールを1行で説明してください。失敗しやすい点
- どんなコマンドにも一致する許可ルールは、確認がないのと同じです。コマンドは正確に指定して許可しましょう。
- .claude/settings.jsonのルールは、コミットするとチーム全体に適用されます。コードと同じようにレビューしましょう。
公式ドキュメントより: Claude Code docs: Configure permissions · Claude Code docs: Settings files and precedence · Claude Code docs: Choose a permission mode
09
各セッションを1つのことに絞る
無関係な3つのタスクを続けて扱ったセッションには、3つすべてがまだコンテキストに残っていて、それが表に出ます。タスクの合間にはクリアし、長いタスクは焦点を指定して圧縮し、広い範囲の検索はサブエージェントに専用のコンテキストで任せましょう。
例
バグを直した後、同じセッションでリファクタリングを頼むと、バグの古い回避策に従い続けます。/clearして1文で背景を伝えれば、そうはなりません。
やり方
- 1無関係なタスクの合間には、/clearで空のコンテキストから新しい会話を始めます。
- 2長いタスクでは、焦点を指定した/compact(たとえば「/compact プランと失敗しているテストを残す」)で、それまでの内容を要約します。
- 3広い範囲の検索はサブエージェントに任せます。サブエージェントはそれぞれ専用のコンテキストウィンドウで動くので、あなたのセッションに戻ってくるのはその答えだけです。
- 4Claude Codeは上限が近づくと自動でも圧縮します。よいタイミングで自分で圧縮すれば、残すものを自分で選べます。
組み込み機能
コピーできるプロンプト
/compact 残すもの:目標、計画、ここまでに変更したファイル、まだ失敗しているテスト。調査の過程は捨ててください。失敗しやすい点
- /clearは会話を忘れます。また必要になるものは、先にCLAUDE.mdに書いておきましょう。
- 戻ってくるのはサブエージェントの答えだけです。結論だけでなく、ファイルパスと行番号も求めましょう。
公式ドキュメントより: Claude Code docs: Commands · Claude Code docs: Best practices · Claude Code docs: Create custom subagents
10
2つのタスクを衝突させずに同時に走らせる
1つのチェックアウトで2つのセッションを動かすと、互いの足元で同じファイルを編集してしまいます。claude --worktreeを使うと、各セッションが専用のブランチ上に専用のコピーを持つので、リファクタリングとバグ修正を並行して走らせられます。
例
1つのworktreeでは依存関係の更新、もう1つではUIの修正。どちらも、あなたが3つ目のプルリクエストをレビューしている間に進みます。どちらのセッションも、相手の作りかけのファイルを見ることはありません。
やり方
- 1各セッションをclaude --worktree <name>(または-w)で始めます。ブランチworktree-<name>上に、.claude/worktrees/<name>/の下にgit worktreeが作られます。
- 2ドキュメントの推奨どおり、.claude/worktrees/を.gitignoreに追加します。
- 3各セッションには専用のチェックを付けたタスクを1つずつ渡し、1つずつレビューできるようにします。
- 4各ブランチは、ほかのプルリクエストと同じようにレビューしてマージします。
コピーできるプロンプト
あなたはブランチworktree-[名前]のworktreeで作業しています。タスク:[1つの変更]。完了の条件:[テストまたはコマンド]が通ること。このブランチにだけコミットし、ほかのブランチをマージやリベースしないでください。失敗しやすい点
- worktreeはそれぞれ別のフォルダなので、依存関係やビルドの出力は共有されません。それぞれでインストールしましょう。
- 同じファイルに触れる2つのタスクは、worktreeを使っても使わなくても、マージのときに競合します。
公式ドキュメントより: Claude Code docs: Run parallel sessions with worktrees
11
間違った方向に進んだら、rewindで元に戻す
セッションがおかしな方向に進んだとき、Claudeに自分の変更を元に戻すよう頼むと、2つ目の混乱が生まれがちです。rewindを使えば、会話、コード、またはその両方を間違いの前の時点に戻せます。シェルコマンドが行ったことは元に戻せないので、危険なステップの前にはコミットしましょう。
例
3つ前のプロンプトから間違った方向に進んでしまったリファクタリング。その前まで巻き戻せばファイルと会話が元に戻り、コードを言い争って戻させる代わりに、依頼を言い直せます。
やり方
- 1空のプロンプトでEscを2回押すか、/rewindと入力します(/checkpointと/undoも使えます)。
- 2おかしくなる前の時点を選び、会話、コード、またはその両方を元に戻します。
- 3限界を知っておきましょう。rm、mv、cpなどのシェルコマンドで変更されたファイルは元に戻りません。Claude Codeの外や別のセッションで行った編集も同様です。
- 4危険なステップの前にはコミットします。チェックポイントはセッション内ですばやく立て直すためのもので、gitの代わりにはなりません。
コピーできるプロンプト
始める前に、現在の状態を「[タスク]の前のチェックポイント」というメッセージでコミットしてください。それから[タスク]を行ってください。ファイルを削除または移動するコマンドの前には、私に確認してください。失敗しやすい点
- コマンドが削除したファイルは、rewindでは戻りません。戻せるのはgitだけです。
- その間に手で行った編集も記録されていません。巻き戻す前にコミットしましょう。
公式ドキュメントより: Claude Code docs: Checkpointing · Claude Code docs: Commands
12
スクリプトやCIから実行する
同じエージェントはチャットなしでも動きます。claude -pはプロンプトを受け取って作業を行い、スクリプトで確認できる終了ステータスで終了します。CIでは、--bareを付けるとローカルのフック、スキル、MCPサーバー、CLAUDE.mdが読み込まれないので、どこで実行しても同じように動きます。
例
夜間ジョブで、「今日マージされたプルリクエストから変更履歴を更新して」というプロンプトと--output-format jsonを付けてclaude -pを実行し、終了ステータスが0以外ならビルドを失敗させます。こうすれば、失敗した実行に翌朝気づけます。
やり方
- 1claude -p "..."は非対話モードで実行します。--output-format jsonまたはstream-jsonを付けると、スクリプトで解析できる出力になります。
- 2成功すると0、失敗すると0以外で終了するので、CIでその結果に応じて処理を分けられます。
- 3ローカルのセットアップに依存しない実行には、CIで--bareを付けます。
- 4プルリクエストには、/install-github-appでClaude Code GitHub Actionsを設定します(github.comのリポジトリのみ)。その後、プルリクエストやissueのコメントで@claudeにメンションします。
コピーできるプロンプト
claude -p "mainとの差分を読んでください。依存関係を追加する変更、認証に触れる変更、データベースのマイグレーションを変更する変更をすべて、次のJSONで一覧にしてください:{\"files\": [], \"reason\": \"\"}。該当がなければ空のリストを返してください。" --output-format json失敗しやすい点
- スクリプトは、あなたが与えた権限で動きます。CIには必要最小限の権限だけを与えましょう。
- /install-github-appは、github.com上のリポジトリでしか使えません。
公式ドキュメントより: Claude Code docs: Run Claude Code programmatically · Claude Code docs: GitHub Actions
Codex
13
AGENTS.md:Codexのすべてのタスクの出発点になる指示
Codexは作業を始める前に、グローバルのファイルから作業するフォルダまで、AGENTS.mdを読みます。コマンドとルールは、適用されるコードの近くに一度だけ書きましょう。いちばん近いファイルが優先されます。
例
ウェブアプリと決済サービスがあるリポジトリ。ルートのAGENTS.mdには共通のコマンドが書かれ、payments/AGENTS.mdには「テストなしで通貨の丸め処理を変更しない」が追加されています。payments/での作業は両方に従い、食い違う箇所では近いほうのファイルが優先されます。
やり方
- 1CLIで/initを実行すると、現在のフォルダに最初のAGENTS.mdが書かれます。
- 2個人的な指針は~/.codex/AGENTS.mdに、プロジェクトのルールはリポジトリに置きます。サブフォルダには専用のファイルを置けます。Codexが作業する場所に近いファイルが優先されます。
- 3ファイルは短く保ちましょう。合計サイズには上限があり、初期設定では32 KiBです。
- 4「## Code Review Rules」セクションを追加します。GitHubでのCodexのレビューは、このセクションに従います。
コピーできるプロンプト
このリポジトリを読んで、AGENTS.mdを書いてください: 1. インストール、ビルド、テスト、リントの正確なコマンド。 2. 構成を数行で。 3. ここで新しく来た人が間違えやすい規約。 4. レビューアーが必ず指摘すべきことを書いた「## Code Review Rules」セクション。 実際に実行して成功したコマンドだけを載せ、それ以外には「未検証」と付けてください。失敗しやすい点
- 長いファイルは逆効果です。合計サイズの上限は、初期設定で32 KiBです。
- ルートのファイルと矛盾しているのにそう書いていないサブフォルダのファイルは、Codexだけでなく人も混乱させます。何を上書きするのかを書きましょう。
公式ドキュメントより: Codex docs: AGENTS.md · Codex docs: CLI commands · Codex docs: GitHub integration
14
Codexが自分の判断でどこまでしてよいかを決める
Codexが確認せずに何をするかは、権限モードで決まります。「Ask for approval」はワークスペース内で作業し、その外に出る前に一時停止します。「Full access」はサンドボックスも確認もなくします。一度決めて終わりではなく、タスクごとに選びましょう。
例
見慣れないリポジトリを読み取り専用で読み、1つのバグを直すときに「Ask for approval」に切り替えます。Codexはリポジトリ内では編集しますが、その外に手を伸ばす前には止まって確認します。
やり方
- 1CLIでは、/permissionsでモードを切り替え、/statusで現在の承認ポリシーと書き込み可能なフォルダを確認できます。
- 2推奨の初期設定である「Ask for approval」は、ワークスペース内でファイルを編集しコマンドを実行し、その外に出る前に一時停止します。
- 3「Approve for me」は同じサンドボックスのまま、承認の依頼をあなたではなく自動レビューに送ります。
- 4「Full access」はファイルシステムとネットワークの制限をなくします。ドキュメントにも注意書きがあります。使い捨てにできる環境だけで使いましょう。
コピーできるプロンプト
始める前に/statusを実行し、承認ポリシーと書き込み可能なフォルダを教えてください。それから[タスク]を行ってください。ネットワークが必要なコマンドや、このリポジトリの外に書き込むコマンドの前には確認してください。失敗しやすい点
- 「Approve for me」では、個々の依頼を人が読むことはありません。間違った操作を簡単に取り消せる場面で使いましょう。
- 「Full access」はリポジトリだけでなく、マシン全体に適用されます。
公式ドキュメントより: Codex docs: Permission modes · Codex docs: Sandboxing · Codex docs: Approvals and security · Codex docs: CLI commands
15
スクリプトやCIからCodexを実行する
codex execはチャットなしでタスクを実行します。進捗はstderrに、最終メッセージだけがstdoutに出力されるので、スクリプトで答えを使えます。読み取り専用で始まるので、書き込み権限はジョブに必要なときだけ与えましょう。
例
リリース用のスクリプトが、「前回のタグ以降のコミットからリリースノートを書いて」というプロンプトでcodex execを実行し、stdoutをRELEASE.mdに保存します。ファイルはスクリプト自身が書くので、読み取り専用で十分です。
やり方
- 1codex exec "..."は非対話モードで実行し、初期設定では読み取り専用のサンドボックスを使います。
- 2ファイルを編集する必要がある場合は--sandbox workspace-writeを付けます。--full-autoは非推奨です。
- 3--jsonを付けると、すべてのステップが必要なスクリプト向けに、イベントをJSON Lines形式のストリームで出力します。
- 4GitHub Actionsでは、openai/codex-action@v1がcodex execを実行してくれます。
コピーできるプロンプト
codex exec "タグ[v1.2.0]以降の変更を読んでください。Added、Changed、Fixedに分けてリリースノートを書いてください。変更1つにつき1行、ユーザーにわかる言葉で書き、コミットハッシュは入れないでください。"失敗しやすい点
- 古いガイドではまだ--full-autoが使われています。これは非推奨なので、--sandbox workspace-writeを使いましょう。
- 読み取りだけのジョブは、CIでも読み取り専用のままにしましょう。
公式ドキュメントより: Codex docs: Non-interactive mode · Codex docs: GitHub Action
16
プッシュする前にレビューを受ける
Codexは作業ツリー、ブランチ、プルリクエストをレビューします。GitHubでは最も深刻な問題(P0とP1)だけを指摘するので、そのコメントは読む価値があります。プッシュする前に実行し、すべてのプルリクエストをレビューさせましょう。
例
マイグレーションをプッシュする前に、/reviewが、新しい列に初期値がないため既存の行が失敗することを指摘します。デプロイの失敗ではなく、プッシュ前の1分で済みます。
やり方
- 1CLIの/reviewは作業ツリーをレビューします。codex reviewはチャットなしで同じことを行い、ベースブランチ、コミット、未コミットの変更を対象にできます。
- 2GitHubでは、プルリクエストに@codex reviewとコメントします。
- 3Codexの設定の「Personal preferences」で自動レビューをオンにすれば、コメントは不要になります。
- 4チームのルールは、AGENTS.mdの「## Code Review Rules」セクションに書きます。
組み込み機能
コピーできるプロンプト
## Code Review Rules - 認証や権限への変更はすべて指摘する。 - 元に戻す手段のないデータベースのマイグレーションを指摘する。 - 新しい依存関係を指摘し、それが必要かどうかを述べる。 - フォーマットは無視する。リンターが処理する。失敗しやすい点
- GitHubでのレビューが指摘するのはP0とP1の問題だけです。コメントがないからといって、設計が正しいわけではありません。
- レビューはセカンドオピニオンであって、テストの実行ではありません。テストは残しておきましょう。
公式ドキュメントより: Codex docs: CLI commands · Codex docs: GitHub integration
17
Codex Cloudにタスクを任せる
Codex Cloudは、あなたのコンピューターがスリープしている間も作業を続けます。各タスクは、一度設定した環境から作られる専用のワークスペースで動きます。適切な環境があればインストール、ビルド、テストができますが、なければ推測で動きます。
例
会議の前にcodex cloud execで4つの小さなリファクタリングを送り、それぞれが同じ環境から作られた専用のワークスペースで動きます。いちばん難しいものには3回の試行を頼んで最もよいものを残し、後で4つの差分をレビューします。
やり方
- 1タスクに必要なリポジトリ、依存関係、ツール、アクセス設定を含む環境を作ります。新しい環境には、インストールスクリプトと起動用のスキルが記録されます。
- 2インターネットへのアクセスは環境ごとに設定します。パッケージマネージャーのみ、選んだドメインのみ、またはすべてです。
- 3タスクはChatGPTから、長いジョブならIDE拡張機能から、またはターミナルからcodex cloud execで始めます。--attempts 1-4を付けると、比較するための複数回の試行を頼めます。
- 4Code Review、GitHubとLinearの連携は、まだ旧版のCodex Cloud(Legacy)で動いています。OpenAIはこれを廃止する予定です。
組み込み機能
コピーできるプロンプト
codex cloud exec --attempts 3 "タスク:[変更内容]。背景:[ファイル]。この環境で[テスト]が通れば完了です。差分は[行数]行未満にしてください。"失敗しやすい点
- インターネットへのアクセスを制限しないと、タスクはどのサイトにも届きます。タスクを操るために書かれたページも含めてです。ジョブに必要なものだけを許可しましょう。
- インストールスクリプトがなければ、テストが実行されていないかもしれません。タスクが実際にテストを実行したか確認しましょう。
公式ドキュメントより: Codex docs: Cloud environments · Codex docs: CLI commands · Codex docs: IDE extension
18
Codexを一度だけ設定する:config、プロファイル、MCP
毎回のセッションでモデルや設定を手で変えているなら、config.tomlに書きましょう。Codexは毎回~/.codex/config.tomlを読み、信頼済みのプロジェクトではプロジェクトの設定も読みます。プロファイルを使えば、設定一式をまとめて切り替えられます。
例
設計の質問には推論の度合いを高くした「deep」プロファイル、ちょっとした修正には初期設定。アーキテクチャについて質問する前はcodex --profile deep、それ以外はすべて普通のcodexです。
やり方
- 1初期設定のモデルと推論の度合いは、~/.codex/config.tomlで設定します(modelとmodel_reasoning_effort)。CLIとIDE拡張機能で共有されます。
- 2プロファイルは専用のファイル~/.codex/<name>.config.tomlとして作り、--profile <name>で起動します。
- 3MCPサーバーはcodex mcp add <name> -- <command>で追加します。それぞれが[mcp_servers.<name>]テーブルになり、/mcpで有効なサーバーの一覧が表示されます。
- 4/statusで現在有効な設定を確認でき、codex resume --lastでこのフォルダの最新のセッションを再開できます。
コピーできるプロンプト
~/.codex/config.tomlと、このプロジェクトの.codex/config.tomlを読んでください。有効になっているモデル、推論の度合い、サンドボックス、MCPサーバーと、それぞれがどのファイルから来ているか、そして矛盾している点を教えてください。失敗しやすい点
- プロジェクトの設定は、信頼済みのプロジェクトでしか読み込まれません。設定が無視されているようなら、まずそこを確認しましょう。
- 現在、プロファイルは別々のファイルです。config.tomlの中に[profiles.name]を書くガイドは古くなっています。
公式ドキュメントより: Codex docs: MCP · Codex docs: Config basics · Codex docs: Advanced config · Codex docs: CLI commands
開発者のためのルール
- シークレット、キー、顧客データは決してプロンプトに貼り付けないでください。インデックスされるフォルダにも置かないでください。
- エージェントはブランチ上で、コマンドの前に確認を求める権限設定で動かしましょう。差分はすべてレビューします。
- エージェントが書いたものをマージする前に、自分でテストを実行しましょう。
- エージェントが使うAPIキーには、すべて利用額の上限を設定しましょう。
さらに詳しく
- 必要な背景を渡す レッスン、約8分
- 例と、ほしい形式を示す レッスン、約8分
- 答えを少しずつよくする レッスン、約8分
- Claude Code 101 Anthropic (Claude Academy)
- Get Started with Codex OpenAI (OpenAI Academy)
- AI Agents Course Hugging Face
- Full Course: Spec-Driven Development with Coding Agents DeepLearningAI on YouTube