Bye Bye Work トップへ

Claude CodeからCodexでコードレビューする方法|サブエージェント定義付き

@yusukeのプロフィール最終更新 2026年10月20日

手放す仕事とL3の完成形

AIに実装を任せても、書いた本人に見直してもらうだけでは、同じ前提のまま見落とすことがあります。そこで、Claude CodeのサブエージェントからCodex CLIを呼び、別系統のモデルにセカンドオピニオンのコードレビューを頼みます。

手放すのは、レビュー対象を選び、別のAIへ依頼し、指摘を読み直して整理する仕事です。Claude側がCodexの指摘に対応するコードを読み、軽く裏取りしてから、重い順に返します。人は結果を見て採否を決めます。ここまでをL3「AIに丸投げ」の完成形とします。

モデルを分ける狙いは、同じモデルの思い込みによる見落としを減らすことです。必ず不具合が見つかるわけでも、指摘がすべて正しいわけでもありません。

用意するもの

  • Claude Codeを利用できる環境
  • Codex CLIと、利用可能なChatGPTアカウントまたはAPIでのログイン
  • レビュー対象のgitリポジトリ
  • 添付のエージェント定義 codex-reviewer.md

インストール方法は環境によって異なるため、Claude Codeの公式案内とCodex CLIの公式リポジトリに沿って準備します。両方のコマンドを、Claude Codeを使う環境から実行できる状態にします。

添付ファイルは実際に使っている定義です。本文へ長い指示を貼る代わりに、このファイルを保存して再利用します。レビュー先に渡してよいコードを対象にしてください。

導入手順

  1. 添付の codex-reviewer.md をダウンロードします。
  2. ホームディレクトリにある ~/.claude/agents/ を用意し、~/.claude/agents/codex-reviewer.md として保存します。先頭の定義部分も含め、ファイル全体を保存します。
  3. ターミナルでCodexのログインを済ませます。
  4. 対象リポジトリでClaude Codeを起動し、レビューを頼んで動作を確かめます。

ログインと状態確認には、次のコマンドを使います。

bash
codex login
codex login status

ChatGPTアカウントでログインする場合は画面の案内に従います。APIで使う場合は公式の認証手順に従い、認証情報をエージェント定義へ書き込まないでください。ログイン状態の確認方法はCodexの公式コマンド資料でも確認できます。

保存後はClaude Codeのセッションを起動し直します。ユーザー用の保存場所と読み込みについては公式のサブエージェント案内を参照してください。

最初は小さな変更を用意して、「codex-reviewerを使って未コミット差分をレビューして。修正せず、結果だけ返して」と頼みます。Codexの呼び出しとレポートが返るところまで確認します。

使い方

普段の依頼は、次のように書けます。

  • 「実装が終わったら、コミット前にcodexでレビューして。結果だけ返して」
  • 「codexでmainブランチとの差分をレビューして。修正はしないで」
  • 「codexで直前のコミットをレビューして。例外処理を重点的に見て。結果だけ返して」

定義の説明文には、実装後やコミット・PR前に積極的に使うよう書かれています。そのためClaude Codeが自動で選ぶこともあります。ただし、保存しただけで毎回必ず動くフックではありません。確実にレビューを依頼したい場面では、一言添えます。

呼び出されたエージェントは、まずgitリポジトリ内かを確認します。続いて、未コミット差分、比較先ブランチ、指定コミットから対象を判断し、codex exec review を実行します。

定義では未コミット変更の確認が先に書かれています。ブランチ比較や特定コミットを頼む場合は、未コミット変更が残っていないか確認し、返ってきたレポートの対象も見ます。比較先が省略された場合は、既定ブランチの参照やmain/masterを手がかりにします。

通常は対象に応じて --uncommitted、--base、--commit のいずれかを使います。重点項目を指定した場合は、対象フラグと自由文を併用せず、レビュー対象と重点項目を文章で渡す設計です。

Codexの出力は一時ファイルに保存して読み取ります。その後、Claude側が各指摘の該当コードを読み、次の形に整理します。以下は形式を示す架空の例です。

text
レビュー対象:未コミット差分

[高] src/parser.ts:42 — 空の入力で例外になる可能性
Codexの修正案:入力チェックを追加する
確認状況:確認済み
根拠:空の値をそのまま参照している

確認状況は「確認済み/未確認/誤検知の可能性」です。誤検知と考えた場合は理由を添え、指摘がなければ、そのことを明示します。

人が確認すること

最初に、レビュー対象が意図どおりかを見ます。次に、重大な指摘からコードや仕様と照らし合わせ、採用するかを決めます。「確認済み」はClaudeが軽くコードを確認したという意味で、再現テストや修正の正しさまで保証するものではありません。

「未確認」は判断材料が足りない指摘として扱います。「誤検知の可能性」が付いていても、業務上の前提や呼び出し元の条件を人が確認します。気になる指摘には再現条件やテストを求め、根拠を補ってから判断します。

このエージェントは自分でコードを書き換えない設計です。別モデルの提案にも誤りがあるため、レビューの指摘をそのまま自動修正へつなげないようにしています。修正する場合は、人が採否を決めてから別の作業として依頼します。なお、これは定義上の指示であり、読み取り専用の権限で強制しているわけではありません。

うまくいかないとき

  • Codexが未ログイン:Claude Codeを動かしている環境のターミナルで codex login status を確認し、必要ならログインし直します。コマンド自体が見つからない場合は、インストール先とPATHも確認します。
  • gitリポジトリ外で実行している:対象フォルダへ移動し、git rev-parse --show-toplevel が成功する場所で頼み直します。
  • タイムアウトする:定義は呼び出し側に600000msのタイムアウトを指定するよう指示しています。完了しなかった場合は「指摘なし」と扱わず、対象を絞って再実行します。
  • 入力待ちのように止まる:呼び出し時の </dev/null が残っているか確認します。標準入力を閉じ、親プロセスからの入力待ちを避けるための指定です。ログインそのものを代行する指定ではありません。

失敗時は停止して報告する指示ですが、通常の実行例は標準出力と標準エラーを捨てています。そのため、終了コードだけで原因を特定できない場合があります。詳しく調べる際はターミナルで同じ対象のコマンドを実行し、エラーを表示させて確認します。

検証範囲

この記事は、実際に使用している添付定義の内容を確認してまとめたものです。執筆時に、各OSや各バージョンでの再実行、未コミット差分・ブランチ比較・特定コミットの全パターンの網羅検証はしていません。

CLIの更新による互換性、自動呼び出しの頻度、重点項目を文章で渡した場合の対象選択の精度も未検証です。導入先では小さな変更で一度試し、対象と出力を確認してください。

作業時間の短縮量や見落としの減少率は測定していません。テストや人による最終判断を置き換えるものではなく、レビュー依頼から指摘の整理までを手放すための方法です。

添付ファイル CC0 ・ 自由に持ち帰れます

  • 設定ファイル ・ 2.2 KB

会社のデータをAIに入れる前に、社内ルールを確認しましょう。

コメント 0

まだコメントはありません。質問や、試してみた感想を書いてみませんか?