AIに「レビューして」はもう古い — 敵対的検証で品質を担保する新常識
はじめに
AIにコードや文章を作らせたあと、そのまま「レビューして」と頼んでいないだろうか。返ってくるのはたいてい当たり障りのない改善提案で、本当に危ういバグや論理の穴はすり抜けていく。いまエンジニアの間で注目されているのが、この「レビューして」を一段引き上げる 敵対的検証(adversarial verification) という考え方だ。Zennで190 likesを集めた記事を起点に、この手法がなぜ効くのか、そしてClaude CodeやCodexで実際にどう使うのかを掘り下げる。
「レビューして」と「敵対的検証して」は何が違うのか
一見似た指示だが、AIに与える「構え」がまったく異なる。
| 観点 | レビューして | 敵対的検証して |
|---|---|---|
| 構え | 改善点を探す | 課題がある前提で反証を試みる |
| 出力 | 指摘のリスト | 判定・深刻度・根拠を含む出力 |
| 信頼性 | 表面的な改善提案 | 証拠に接地した指摘 |
「レビューして」は、AIに「基本的には良い成果物だが、しいて言えば」というスタンスを取らせてしまう。結果、コメントの追加やネーミングの微修正といった無難な指摘に流れやすい。一方「敵対的検証」は、「これは間違っているはずだ、証明してみろ」 という敵対的な役割をAIに背負わせる。すると出力は自然と「どこが・どれくらい深刻で・なぜそう言えるのか」という判定と根拠を伴うものになる。採否を判断する側にとって、後者のほうが圧倒的に扱いやすい。
なぜ効くのか — 敵対的な構えと「Fresh Context」
この手法が機能する鍵は2つある。
1つ目は前述の 敵対的な構え だ。人間のレビューでも、書いた本人が見直すより、赤ペンを持った第三者が「ここ本当に大丈夫?」と突く方が欠陥は見つかる。AIも同じで、役割の与え方次第で検出力は大きく変わる。
2つ目が Fresh Context(新鮮な文脈) である。成果物を作ったのと同じセッションでレビューさせると、AIは自分が書いた前提や言い訳を引き継いでしまい、実質的に「自分で自分を採点する」状態になる。これでは甘くなるのは当然だ。そこで、作成の文脈を一切持たない別のサブエージェントを立て、成果物だけを渡して検証させる。Anthropicの推奨でも、独立した新規コンテキストの検証エージェントは自己批判(self-critique)を上回るとされており、Claude Code v2.1系ではサブエージェントがさらにサブエージェントを生成し、レビュー担当が指摘ごとに専用の検証役をファンアウトする構成まで可能になっている。
Claude CodeとCodexでの実践プロンプト
すぐ使える形に落とし込むと、次のようになる。Claude Codeなら最も簡単なのは一言、「敵対的検証して」 だ。これだけで複数視点の検証が並列で走る。精度を上げたいなら強化版を使う。
サブエージェントを立てて、この成果物を敵対的に検証して。反証を試みて、指摘には深刻度と根拠を付けて。事実の主張は一次情報に当たって確認して。
ChatGPTなど他ツールでは、新規セッションを開き、成果物だけを貼り付けて「懐疑的なレビュアーとして振る舞い、各指摘に『指摘・深刻度・根拠・確度』を必ず付けよ」と役割を明示するのが雛形になる。
さらに一歩進めるなら、モデルをまたいだ対立レビュー が有効だ。Claude Codeで書いたコードをCodex(あるいはその逆)に検証させる「セカンドオピニオン駆動開発」が2026年に広がっており、OpenAI公式の連携経由で第三者視点のレビューを得るルートも整備されている。同一モデル同士では共通の知識誤りをすり抜けるため、別系統のモデルでクロスチェックする価値は大きい。
エンジニアへの影響と注意点
この手法は強力だが、万能ではない。実務に取り入れるうえで押さえておきたい落とし穴がある。
- 過剰指摘:健全な成果物にも指摘が付く。「全部が間違い」ではないので、鵜呑みにせず取捨選択する前提で使う。
- コスト:トークン消費はシングルエージェントの3〜10倍に達する。やり直しコストの高い成果物(設計・移行・公開前の記事など)に絞るのが現実的だ。
- 逆方向の失敗:検証役が手を抜いて「問題なし」と合格させることもある。一次情報への接地を明示的に指示して防ぐ。
- 最終判断は人間:AIの指摘は「正解」ではなく「反証の試み」にすぎない。採否を決めるのは人間だ。
裏を返せば、これらを理解したうえで 重要局面に絞って敵対的検証を挟む だけで、AI生成物の信頼性は一段跳ね上がる。「作らせたら、別の文脈で壊しにかかる」——このワンクッションを標準運用にできるかどうかが、AI時代の品質を左右する。
まとめ
- 「レビューして」は無難な指摘に流れやすく、重大な欠陥を見逃す。
- 敵対的検証は「間違っている前提で反証させる」ことで、判定・深刻度・根拠を伴う指摘を引き出す。
- 効く理由は「敵対的な構え」と「作成文脈を持たないFresh Context」の2点。
- Claude Codeなら「敵対的検証して」の一言から始められ、モデルをまたぐと精度はさらに上がる。
- コストと過剰指摘に注意し、やり直しの重い成果物に絞って使うのが賢い。
自己採点ほどあてにならないものはない。AIにコードを書かせる時代だからこそ、「別のAIに、敵として検証させる」一手間が品質保証の新常識になりつつある。