M.

Claude に「敵対的レビュー」をさせて、指摘がどれくらい当たっていたかを数えた

個人開発では、コードを見てくれる人がいません。そこで Claude Code に「このコードの壊れるところを探して」と頼むレビューを、よく使っています。褒めずに粗を探させるので、ここでは 敵対的レビュー と呼んでいます。

ただ、AI のレビュー指摘はそのまま信じられません。それっぽいけれど外れている指摘が混ざるからです。そこで、指摘をもう一度確かめる「再検証」までをセットにしてきました。

その記録が、各リポジトリの git 履歴と PROGRESS.md(進捗メモ)に残っていました。指摘がどれくらい当たっていたのかを数えてみます。

環境:Windows 10 / Claude Code(Opus・Sonnet)/2026年7月〜10月の個人開発リポジトリ

レビューの頼み方

やり方はだいたい次の形です。

  1. 観点を分けて、サブエージェントに並行で頼む。たとえば Windows アプリでは「キーボードフック周り」「音声処理」「フォルダ構成・読みやすさ」の3つに分けました
  2. 「壊れる可能性」に絞らせる。良いところの説明は要らない、と伝えます
  3. 出てきた指摘を、別の Claude に再検証させる。「先のレビューの結論を鵜呑みにせず、該当するコードを実際に読んで確かめて」と頼みます
  4. 再検証の結果を PROGRESS.md に残す。外れた指摘も消さずに、「検証:〜」と訂正を書き足します

3 の再検証が、この記事の材料です。

数えてみた

git 履歴をレビュー・指摘・偽陽性などの言葉で探すと、8リポジトリで40件ほどのコミットが見つかりました。そのうち、指摘を再検証して、結果を数として残していたもの は次の5回です。

レビュー指摘完全に外れ重さや範囲が言いすぎ判断が要る
Web アプリ全体(Node.js)18件0件4件—
Windows アプリ(C#、3観点並行)約13件1件2件—
画像生成サービス(コードレビュー)11件2件——
画像生成サービス(全体監査)38件1件4件3件
Windows アプリ(/code-review と /simplify の計5回)—1件1件—

まとめると、完全な外れは各回0〜2件で、思っていたより少なめでした。多かったのは、指摘そのものは事実だけれど「重さ」「影響範囲」を言いすぎているものです。

完全に外れていた指摘

  • 「〜という注意コメントを足すべき」:そのコメントはすでにファイルに書いてありました
  • 「ワーカーへの同時アクセスで競合する」:本番は同時実行数1・インスタンス1台に絞ってあり、競合は起こりません
  • 「ワーカーに認証なしでアクセスできる」:IAM で呼び出し元を絞っていて、認証なしは 403 になることを確かめました
  • 「モデルのライセンス表記が古い」:表記はすでに直っていました
  • 5つのレビューが一致して勧めた書き換え:その書き換えに使うメソッドが、ライブラリに存在しませんでした。ビルドが通らないので却下です

最後の例は印象に残っています。5回のレビューが全員同じことを言っても、正しいとは限りません。同じ思い込みを5回繰り返しただけでした。

言いすぎていた指摘

  • 「境界値のチェックが全くない」→ 実際は1か所だけ漏れていた:Q 値やゲインはすでに範囲を制限していて、漏れていたのは EQ の周波数の上限だけでした。「優先度A」から「この3行を直すだけ」に縮みました
  • 「例外処理がないのでフックチェーンが壊れる」→ 壊れる経路はない:コールバックの先頭で次のフックを必ず呼んでいました。ログを足す程度の「優先度B」に下げました
  • 「色のテーブル(256色)の変換を直すべき」→ 1回しか動かない:静的な初期化なので、変換は型の初期化時に1回だけでした。対応不要としました
  • 「依存パッケージに high の脆弱性が4件」→ 件数は正しいが、悪用の条件が揃わない:ReDoS はルートにパラメータがあるときだけ成立し、このアプリにはありませんでした
  • 「不要なファイルがコンテナイメージに入る」→ 一部だけ:ビルドは git のチェックアウトから行うので、未追跡のファイルは入りません。入るのはテストや docs だけで、「イメージが少し太る」程度でした
  • 「JWT の検証でアルゴリズムを指定していない」→ 実害なし:使っているライブラリは、対称鍵だと HS 系しか受け付けません。「低・堅牢化」に下げました
  • 行番号の誤り:重複の指摘自体は正しく、場所がずれていました

「判断が要る」に変わった指摘

全体監査では、3件が「バグ」から「要ユーザー判断」に書き換わりました。たとえば「出題で2軸の差のペアがほとんど出ない」という指摘は、実は「差の大きいペアから試す」という意図した設計の結果でした。直すかどうかはコードの正しさではなく、方針の問題です。

AI は、意図した設計と不具合の区別がつきません。ここは人が決めるしかありません。

外れ方の型

外れた指摘を並べると、型がありました。

  1. 「〜がない」という指摘が、実はある。一番多い外れ方です。メソッド名や設計から「たぶんない」と推測して、実際のコードを読んでいません
  2. 本番の設定を知らない。同時実行数、IAM、ビルドの仕組みなど、コードの外にある条件で実害が消えるパターンです
  3. 重さを最大に見積もる。悪用の条件や発生頻度を考えずに「高」を付けます
  4. 存在しない API を勧める。ビルドすればすぐに分かります

Windows アプリのレビューでは、再検証のあとに Claude がこう書き残していました。

「境界値/例外処理が無い」という指摘は、対策コードの有無を実際に grep・通読して確認してから採用すること(メソッド名や設計思想からの類推だけで「無い」と断定しない)

これは、そのまま次のレビューの指示に使えます。

再検証の頼み方

数えてみて、再検証で効いていたのは次のことでした。

  • 別の Claude に頼む。レビューした本人に確かめさせると、自分の結論を守りがちです。新しいサブエージェントに「先の指摘を鵜呑みにしないで」と渡します
  • 再現させる。「スクリプトで実測する」「npm audit をもう一度回す」「Playwright で画面を操作して起きるか見る」のように、手を動かして確かめさせます。全体監査では、2件を Playwright で再現できたと追記していました
  • 「ない」と言われたら grep させる。上の型の1つ目を潰せます
  • 本番の設定も渡す。デプロイの設定ファイルや IAM の状態を読める状態にしておくと、型の2つ目が減ります
  • 外れた指摘も記録に残す。消さずに「検証:一部偽陽性。理由〜」と書き足しておくと、次に同じ指摘が出たときにすぐ判断できます

敵対的レビューはコード以外にも使える

コードだけでなく、方針にも使っています。

Web アプリで「楽譜表示を外部ライブラリから自作に置き換えるか」を調べたとき、調査のあとに「そもそも置き換える価値があるのか、あえて反対側から考えて」と頼みました。返ってきたのは、こんな指摘です。

  • 利用者から見て、今の表示に不具合報告はない。置き換えても見える改善はほぼない
  • 楽譜表示を誰が見ているかのデータがない。作る前に計測するべき
  • 大譜表にすると高さが増え、スマホで画面が縦に長くなる

結局、自作することにしたのですが、「高さは今より増やさない」という条件はこのレビューから来ています。反対意見を先に聞いておくと、進める場合でも条件がはっきりします(自作の話は別の記事に書きました)。

まとめ

  • 5回分の再検証の記録では、完全に外れた指摘は各回0〜2件だった
  • 多かったのは「事実だが重さを言いすぎ」の指摘。優先度Aが「3行直すだけ」に縮んだ例もある
  • 外れ方の型は「ないと言うが実はある」「本番の設定を知らない」「重さを最大に見積もる」「存在しない API」
  • 何回レビューしても、同じ思い込みは繰り返される。5つ一致した提案がビルドできなかった
  • 再検証は別の Claude に、grep・再現・本番設定つきで頼み、外れた指摘も記録に残す

参考文献

この記事をシェア

関連する記事

Claude Code 向けのドキュメントは3つに分ける(CLAUDE.md はルール、README はセットアップ、PROGRESS.md は次にやること)

Claude Code に任せて開発していると、CLAUDE.md・README・PROGRESS.md が同じ説明で膨らんでいきます。個人開発のリポジトリで役割を分け直したら、CLAUDE.md は117行から50行、README は172行から35行になりました。分け方と、書かないことにしたものをまとめます。

Claude Code に GCP の課金を棚卸しさせたら、月1万円が半分になった(失敗込みの記録)

個人開発で使っている GCP の全プロジェクトを、Claude Code と一緒に横断して見直しました。gcloud での調査、ストレージの掃除、通信料の削減、そして CUD の二重契約という失敗まで。AI に任せられたこと・人間がやる必要があったことを整理します。

claude -p を評価器にして、AI の生成結果を930件自動採点した

コード進行アプリのキーワードボタンが本当に効いているのかを確かめるため、Claude Code の `claude -p` で930件を生成し、プログラムで採点しました。API キーを使わない生成のしかた、本番に近づけるためのオプション、Windows での落とし穴、AI に採点させない集計の考え方をまとめます。

AI コード進行アプリを2年運用して分かったこと(GPT-4o から Claude へ、2024→2026)

キーワードからコード進行を作る Web アプリ Chord Eureka を、2024年12月の公開から2年近く運用してきました。GPT-4o 時代のコストと出力崩れへの対処、Claude への移行、temperature 廃止で本番が落ちた件、構造化出力、測ってから決めたモデル更新までを、git の履歴をもとに振り返ります。

テーマから探す