手放す仕事と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を使う環境から実行できる状態にします。
添付ファイルは実際に使っている定義です。本文へ長い指示を貼る代わりに、このファイルを保存して再利用します。レビュー先に渡してよいコードを対象にしてください。
導入手順
- 添付の
codex-reviewer.mdをダウンロードします。 - ホームディレクトリにある
~/.claude/agents/を用意し、~/.claude/agents/codex-reviewer.mdとして保存します。先頭の定義部分も含め、ファイル全体を保存します。 - ターミナルでCodexのログインを済ませます。
- 対象リポジトリでClaude Codeを起動し、レビューを頼んで動作を確かめます。
ログインと状態確認には、次のコマンドを使います。
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側が各指摘の該当コードを読み、次の形に整理します。以下は形式を示す架空の例です。
レビュー対象:未コミット差分 [高] 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
まだコメントはありません。質問や、試してみた感想を書いてみませんか?