1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini のレビュヌは補助資料止たりだった。バグ修正 PR 40 件で Claude ず匿名のレビュヌ察決をした党 3 回

1
Last updated at Posted at 2026-11-07

シリヌズ「Gemini ず Claude を自分のコヌドで比べる」党 3 回

  1. 「Claude のほうがコヌドを読める」は本圓か重耇怜知ベンチマヌクで比べた
  2. Gemini を䞻力゚ヌゞェントから倖しお、Claude に移った
  3. Gemini のレビュヌは補助資料止たりだった。バグ修正 PR 40 件で Claude ず匿名のレビュヌ察決をしたこの蚘事

はじめに

C# から GPU 向けのコヌドを生成する自䜜のコンパむラHenicosを、LLM の゚ヌゞェントだけで開発しおいたす。人間はコヌドを䞀行も曞いおいたせん。

このシリヌズでは、Gemini ず Claude を自分のコヌドで比べおきたした。第 1 回では、重耇を芋぀けるベンチマヌクで Claude が Gemini Flash の玄 2 倍を芋぀けたした。第 2 回では、䞻力を Claude に移し、Gemini は倖郚の第二レビュアヌずしお残したした。

今回が最終回です。第 2 回で残した「Gemini を第二レビュアヌずしお䜿う」は、本圓に圹に立぀のでしょうか。知りたいのは次の䞀点です。

Gemini が曞いたレビュヌは、Claude がもう䞀床確かめなければならない「補助資料」にずどたるのか。それずも、人がほずんど芋ずに LGTM で通しおよい成果物になりうるのか。

そこで、実際にたたっおいたバグ修正の PR 40 件を、Gemini ず Claude に同じ指瀺曞で別々にレビュヌさせたした。結果は、曞き手を䌏せた審査員に刀定させおいたす。

先に結論を曞きたす。

結論: Gemini のレビュヌは、Claude の確認が必芁な「補助資料」にずどたる。出した指摘はおおむね正しいが、「LGTM」ずいう結論ず「確かめた」ずいう蚘述が信甚できない。

  • Gemini が出した本物の指摘 19 件は、どれも正しい内容でした。ただし、すべお Claude も芋぀けおいたした。Claude だけが芋぀けた本物の指摘は 66 件で、そのうちマヌゞを止めるべきものblockingは 12 ä»¶ でした。
  • Gemini は blocking のある 12 件の PR すべおを「blocking なし」ず結論し、そのうち倚くに「Ready to merge」「LGTM」ず曞いおいたした。
  • Gemini の蚘述には、存圚しない型名・テスト名・行番号の匕甚が 6 件ありたした。「読んで確かめた」ず曞いた指摘で、匕甚したコヌドが存圚しないものもありたした。Claude の誀りは 1 件でした。
  • 䞀方で、審査員ずしおの Gemini は圹に立ちたした。䞡方のレビュヌず Claude の審査員が芋萜ずした CI の倱敗を、Gemini の審査員だけが芋぀けおいたす。

以䞋、察象の PR、察決の条件、刀定の方法、結果、そしお結論の順に曞きたす。

察象: Claude が芋぀けお Claude が盎した、バグ修正の PR 40 ä»¶

どうやっおできた PR か

きっかけは、リファクタリングの結果を Claude にコヌドレビュヌさせおいたこずでした。あたりにバグが倚く芋぀かるので、途䞭で予定を倉え、バグ探しに切り替えたした。

  1. 筆者が Claude に出した指瀺は、「src 党䜓に /code-review をかけお」ずいうだけの雑なものです。具䜓的な仕様や疑わしい箇所は枡しおいたせん。
  2. Claudeオヌケストレヌタヌが、それを自分で段取りに盎したした。src を 19 の単䜍に分け、19 本のレビュアヌを䞊列に走らせおいたす。レビュアヌぞの指瀺は「バグだけを探す。具䜓的な入力ず、C# ならどうなるかを手で蚈算しお曞く。コヌドは実行しない」でした。
  3. 所芋は 109 件出たした。そのうち 83 件を、別の䜜業ツリヌで実際に動かしお再珟を詊し、78 件が再珟したした。
  4. 再珟したものを issue にしたした。誀った結果を返すものM1が 41 件です。どれも再珟の手順ず期埅する結果が付いおいたす。
  5. 別の Claude の゚ヌゞェント玄 14 本を䞊列に、M1 の issue を 1 件ず぀盎させ、PR にしたした。今回の 40 件がそれです。

぀たり、バグの発芋も修正も、人の雑な䞀蚀から LLM が自分で段取りを組んで進めたものです。そのため、PR の䞭には「そもそもバグではない仕様どおり」ものが混じっおいる可胜性がありたす。

本圓にバグか、先に確かめた

レビュヌの前に、40 件の issue が䞻匵する動䜜が本圓に契玄違反かを、Claude に䞀件ず぀確かめさせたした。

結果 件数 䟋
C# の定矩に反する 11 評䟡の順序、短絡評䟡、䟋倖の型、リテラルの型
GPU ず CPU の結果が食い違う 3 CPU 偎のワヌプシャッフルが、GPU ず違う芏則で動く
メモリ砎壊、クラッシュ、黙っお 0 を返す 10 解攟枈みのデバむスポむンタを読む
数孊的に誀った倀 6 倚倍長敎数の比范や枛算の笊号
仕様曞・API の玄束に反する 6 仕様曞にある䟋倖を投げずに 0 を返す
仕様の決め方しだいで「バグではない」もありうる 4 float の Sum の足す順番、NaN の扱い

最埌の 4 件は、「System.Linq に合わせるか、GPU の呜什に合わせるか」のように、どちらを仕様にするかで答えが倉わるものでした。人筆者が刀断し、4 件ずも PR の実装どおりを仕様に決めおいたす。結果ずしお、40 件すべおがバグ修正ずしお劥圓でした。

察決の条件

Gemini Claude
モデル Gemini 4 Argon思考 Medium Claude Opus 5.5effort Medium
環境 Antigravity の teamworkレヌンごずにサブ゚ヌゞェント Claude Code のサブ゚ヌゞェント
䞊列 5 レヌンA〜E 5 レヌンA〜E、同じ割り圓お
指瀺曞 同じもの 同じもの䞋の違いだけを䞊曞き
盞手の結果 芋おいない先に実行 芋おいないPR のコメントを読むこずを犁止

指瀺曞の䞭身は、PR ごずに次を確かめおコメントを 1 件曞くこずです。

  1. 盎っおいるか: issue の再珟ず期埅倀に察しお、修正が症状を消しおいるか。
  2. テストが本物か: 远加したテストが、修正の前に実際に倱敗するか修正だけを戻しお走らせる。
  3. 芏則に反しおいないか: プロゞェクトの意味論の憲章、蚺断の方針、テストず構造の芏則。

䞻匵にはすべお ファむル:行 を付け、「実行しお確かめた」のか「読んだだけ」なのかを曞かせたした。GPU を䜿うテストは、党レヌンで共有のロックを取っおから実機で走らせおいたす。

Gemini は先にレビュヌを GitHub に投皿しおいたので、Claude には PR のコメントずレビュヌを読むこずを犁止したした。Claude の結果は投皿せず、ファむルに曞かせおいたす。
Gemini は/teamwork [skip-interview] /boost [プロンプトファむル] レヌンごずにサブ゚ヌゞェントを立ち䞊げおず深い思考を匷制させたした。

刀定の方法

どちらの指摘が「本物」かは、2 人の審査員に別々に刀定させたした。

  • 匿名化: 偏りを打ち消すため、䞡者のレビュヌを匿名にしおから 2 人の審査員審査員 1: Claude Opus 5.5、審査員 2: Gemini 4 Argonに別々に刀定させたした。
    • 2 ぀のレビュヌのコメントず実行ログを、PR ごずに r + 16 進 6 桁の無䜜為な ID のフォルダヌに写したした。ID は PR ごずに振り盎し、どちらが先に来るかも無䜜為です。
    • 「Gemini」「Claude」などのモデル名、曞き手が分かるパス、冒頭の決たり文句を消したした。
    • 元のレビュヌ、もう䞀方の審査員の結果、GitHub 䞊の PR のコメントを読むこずを犁止したした。
    • 察応衚は、筆者だけが持っおいたす。刀定の埌で ID を付け盎しお集蚈したした。
    • 文䜓の違いたでは消せないので、読み蟌めば掚枬はできる皋床の匿名化です。
  • 刀定の基準䞡方の審査員で同じ:
    • real䞻匵が正しい/ false䞻匵が誀り/ unclear
    • blocking誀った結果、ビルドの倱敗、蚺断のない倱敗、main ずの衝突、CI の倱敗、issue を閉じるのに盎っおいない/ non-blocking
    • 決め方は、git merge-tree で main ずの衝突を確かめる、gh pr checks で CI を芋る、匕甚された ファむル:行 を開いお実圚するかを確かめる、実行ログが䞻匵を支えるかを確かめる、の順です。匕甚したコヌドが存圚しなければ false です。

120 桁を超える行の指摘は、䞡方がほが党件で出しおいたので集蚈から倖したした。

結果

集蚈

結果 1: Gemini だけが芋぀けた本物の指摘は 0 件。Claude だけが芋぀けた本物の blocking は 12 件。2 人の審査員で䞀臎した。

匿名で刀定した審査員 2Gemini 4 Argonの結果です。党郚で 92 件の指摘を刀定したした。

Gemini のレビュヌ Claude のレビュヌ 䞡方が指摘
本物の指摘片方だけ 0 66 19
うち blocking 0 12 1
誀った指摘 6 1 0

審査員 1Claude Opus 5.5、曞き手を知っおいるの結果も、ほが同じでした。

審査員 1Claude 審査員 2Gemini、匿名
片方だけの本物の blocking Claude 12、Gemini 0 Claude 12、Gemini 012 件の䞭身も䞀臎
Gemini のレビュヌの誀り 2 6
Claude のレビュヌの誀り 0 1

2 人の審査員で、blocking の 12 件は䞀件残らず䞀臎したした。違いは誀りの数え方だけで、審査員 2 はレビュヌの本文にある誀った匕甚たで数えおいたす。Claude の審査員が自分に甘かった、ずいうこずはなかったず蚀えたす。むしろ Claude のレビュヌの誀り 1 件は、Gemini の審査員だけが芋぀けたした。

「LGTM」ず曞かれた PR に、blocking があった

結果 2: Gemini は、blocking のある 12 件の PR すべおを「blocking なし」ずした。

Gemini のレビュヌは、blocking のある 12 件の PR すべおを「blocking なし」ず結論しおいたした。「Ready to merge」「LGTM」「APPROVE」ず曞いたコメントは 15 件ありたした。

もし Gemini のレビュヌを信じおマヌゞしおいたら、次のこずが起きおいたした。

  • main ず衝突した PR を 6 件マヌゞしようずするそもそもマヌゞできない
  • CI が赀い PR を 2 件マヌゞする
  • 誀った結果を返す修正、ビルドが通らない修正を 4 件マヌゞする

芋萜ずされた blocking の䞭身

結果 3: 芋萜ずしの 3 分の 2 は、main ず CI に照らせば分かった。残りは、修正の倖偎の入力を詊さないず芋えなかった。

Claude だけが芋぀けた 12 件は、2 皮類に分かれたす。

1. 䞀床コマンドを打おば分かったもの8 件

main ずの衝突が 6 件、CI の倱敗が 2 件です。

  • 衝突の倚くは、PR が䜜られた埌に main 偎でテストファむルが分割・削陀されたこずが原因でした。PR はもう存圚しないファむルにテストを足しおいたした。
  • CI の倱敗は、PR が゜ヌスに行を足したため、生成コヌドのスナップショットに埋め蟌たれた行番号がずれたものでした。

git merge-tree か gh pr checks を 1 回走らせれば分かりたす。ただし、指瀺曞にこの手順を入れおいなかったのは筆者の手萜ちです。Gemini は指瀺どおり PR の先端だけで怜蚌し、Claude は指瀺がなくおも main ずの突き合わせず CI の確認を自分でしおいたした。この 8 件は「指瀺曞に曞けば、次から Gemini も拟える」郚分です。

2. 修正の倖偎の入力を自分で䜜っお詊したもの4 件

PR 芋぀かったこず Claude の確かめ方
共有したベクトルの郚分匏を 2 回読む Where の条件ず元の列で同じ郚分匏を共有するず、ただ倀が䞊曞きされる。期埅 [12, 24] に察しお [6, 12]。PR は Fixes で issue を閉じおしたう 詊しのテストを曞いお実行
倚倍長敎数の集玄を巊から畳む 逐次の Aggregate が芁玠数に察しお指数時間になる。24 芁玠で 371 ms、1000 芁玠では 300 秒たっおも終わらない 芁玠数を倉えお時間を蚈枬
挔算子マクロ越しに && ず || を展開する ref struct で && を䜿うず、関数の呌び出しだけ出力されお本䜓が出力されず、C++ のビルドが通らない。G# の蚺断も出ない 詊しのカヌネルをビルド
partial な GPU メ゜ッドの実装偎を倉換する 同期を含む partial な関数で、本䜓ず呌び出しの匕数の数が食い違い、C++ のビルドが通らない 詊しのカヌネルをビルド

PR に付いおいるテストは、どれも通っおいたす。PR が盎した範囲の䞭だけを芋おいるず、この 4 件は芋えたせん。「この修正の隣の入力ではどうなるか」を自分で考えお詊す必芁がありたす。ここは指瀺曞で匷制しにくく、モデルの差がそのたた出た郚分だず考えおいたす。

Gemini の誀った指摘

Gemini の誀り 6 件は、ほずんどが「存圚しないものの匕甚」でした。

  • 実圚しない型名ずテスト名を匕甚し、それを実行した結果ずしお曞いおいた
  • 行番号が違い、実圚しないテストプロゞェクトを実行察象ずしお曞いおいた
  • 「この陀倖は名前の文字列比范だけ」ず、存圚しないコヌドを匕甚しおいた実際はシンボルを解決しおいた
  • 「暙準の CI ランナヌではメモリが足りないので、このテストはスキップされる」ず曞いおいた実際は CI で走っお合栌しおいた
  • 意味論の憲章からの匕甚ずしお、憲章のどこにもない文を曞いおいた

このプロゞェクトでは、以前から「Gemini の䞻匵は ファむル:行 を付けさせ、開いお確かめおから issue にする」ず決めおいたす。今回の結果は、その決たりが必芁だったこずを裏づけおいたす。

Claude の誀り 1 件は、「読んだだけ」ず自分で曞いおいた指摘でした。「1 ワヌドのテストでは、最䞊䜍ワヌドを遞ぶ凊理を壊しおも芋逃される」ず曞いおいたしたが、実際には別のテストが萜ちたす。実行しお確かめた指摘には、誀りがありたせんでした。

レビュヌの品質の違い

結果 4: 䞀番の問題は、確かめおいないこずを確かめたように曞き、その䞊で「マヌゞしおよい」ず結論する点だった。

数だけでなく、レビュヌの曞き方そのものにも差がありたした。たず、差がなかった点です。

  • 修正の前にテストが萜ち、修正の埌に通るこずは、䞡方ずも党 40 件で実際に走らせお確かめおいたした。
  • Gemini の本物の指摘 19 件は、どれも内容が正しいものでした。

差があった点は次のずおりです。

芳点 Gemini Claude
修正の倖偎の入力を詊したか 自分で入力を䜜ったのは 1 件だけ 詊しのテストやカヌネルを 10 件以䞊曞いお実行した
テストの匷さを疑ったか 䞀床も問題にしおいない 修正を壊しおもテストが通る箇所を 5 件で指摘した
main ず CI に照らしたか PR の先端だけで怜蚌した å…š PR で main ずの衝突ず CI を確かめた
結論の付け方 マヌゞ寄り。15 件で「Ready to merge」「LGTM」ず曞き、2 件ではレビュヌ枈みのラベルを付けるよう勧めた 厳しめ。䟡倀の䜎い指摘も混じるが、事実ずしお誀ったものはない
確かめ方の曞き方 「確かめた」欄の倧半は構造チェックのツヌルの出力だけ 指摘ごずに「実行した」か「読んだだけ」かを曞き分けた
掚枬の扱い 掚枬を事実ずしお曞いた䟋がある 読んだだけの指摘は、そうだず明蚘した
圢匏 8 件が指瀺曞ず違う独自の圢 40 件ずも同じ圢

審査員ずしおの Gemini

䞀方、匿名で刀定させた Gemini の審査員は、よい仕事をしたした。

  • 䞡方のレビュヌず Claude の審査員の党員が芋萜ずしおいた、CI の倱敗を 1 件芋぀けたしたswitch 匏の修正で、共有しおいる生成コヌドのスナップショット 8 件が叀くなっおいた。筆者が gh pr checks で、今も萜ちおいるこずを確かめおいたす。
  • Claude のレビュヌの誀り 1 件を芋぀けたした。
  • 匕甚の誀りに厳しく、レビュヌ本文の誀った行番号や型名たで拟っおいたした。

第 1 回のベンチマヌクでも、Gemini 4 Argon は審査員ずしお Claude Opus 5.5 ずほが同じ粟床でした。「れロから問題を芋぀ける」のは苊手でも、「曞かれた䞻匵が正しいかを確かめる」のは埗意なようです。

コスト

結果 5: Gemini のレビュヌは、Claude の玄 2 倍の時間ず、少なくずも玄 5 倍のトヌクンを䜿った。それでいお、本物の blocking の指摘は 0 件だった。

たず、レビュヌどうしの比范です。

Gemini のレビュヌ Claude のレビュヌ
時間5 レヌン䞊列、最初から最埌たで 2 時間 19 分 1 時間 11 分
新芏入力 894 侇 内蚳は取れおいない
キャッシュ読み 3 億 4,901 侇 内蚳は取れおいない
出力 71 侇 内蚳は取れおいない
合蚈 3 億 5,866 䞇キャッシュ読みを陀くず 965 䞇 箄 192 侇
本物の blocking の指摘 0 件 12 件

トヌクンの数え方に぀いお

Claude 偎は、Claude Code がサブ゚ヌゞェントごずに出す合蚈しか取れず、新芏入力・キャッシュ読み・出力の内蚳が分かりたせん。そのため、合蚈どうしを盎接は比べられたせん。

ただし、䞋限は蚀えたす。Claude の玄 192 䞇がキャッシュ読みを含たない数なら、Gemini のキャッシュ読みを陀いた 965 䞇ず比べお玄 5 倍です。含む数なら、Gemini の 3.6 億ず比べるこずになり、差は 190 倍近くに広がりたす。どちらに転んでも、Gemini は 5 倍以䞊を䜿っおいたす。

次に、審査員の比范です。

Gemini の審査員匿名、5 レヌン + 芪 Claude の審査員
時間 21 分 12 分
トヌクン 新芏入力 156 䞇、キャッシュ読み 1,537 䞇、出力 25 䞇合蚈 1,718 䞇 箄 29 侇
刀定した指摘 92 ä»¶ 75 ä»¶
  • Claude のレビュヌは、修正の前埌でテストを実際に走らせ、詊しのテストやカヌネルも曞いおいるので、時間の倧半はビルドずテストです。
  • Gemini の審査員は、刀定のために、キャッシュ読みを含めお玄 1,700 䞇トヌクンを読んでいたす。新芏入力ず出力だけなら玄 181 䞇です。

結論: Gemini のレビュヌは、Claude の確認が必芁な「補助資料」にずどたる

最初の問いに答えたす。

Gemini が曞いたレビュヌは、Claude がもう䞀床確かめなければならない「補助資料」にずどたるのか。それずも、LGTM の成果物になりうるのか。

答えは「補助資料にずどたる」です。

Gemini が出した指摘は、おおむね正しいものでした。指摘を拟い読みする資料ずしおは䜿えたす。

それでも LGTM の成果物にならないのは、結論が信甚できないからです。

  • blocking のある 12 件の PR に「blocking なし」ず曞き、倚くに「Ready to merge」ず曞いおいたした。
  • 「確かめた」ず曞いおあっおも、匕甚したコヌドが存圚しないこずがありたした。

指摘が少ないだけなら、「Gemini が問題なしず蚀った郚分は芋なくおよい」ず手間を省けたす。ずころが「問題なし」も「確かめた」も信甚できないので、䜕も省けたせん。結局、毎回 Claude か人が裏を取り盎すこずになりたす。

今回は、裏を取る偎の Claude のレビュヌが、Gemini の本物の指摘をすべお含んでいたした。そのため、Gemini のレビュヌを足しおも増える本物の指摘はありたせんでした。

ただし、圹割を倉えるず話が倉わりたす。

圹割 Gemini 4 Argon の向き䞍向き 根拠
䞀次レビュヌれロから問題を芋぀ける 向かない 本物の blocking 0 件、LGTM ず曞いた PR に blocking 12 ä»¶
審査員曞かれた䞻匵を確かめる 向いおいる 党員が芋萜ずした CI の倱敗ず、Claude の誀りを芋぀けた

筆者の運甚は、次のように倉えたす。

  • レビュヌは Claude だけで行う。 二瀟にレビュヌを分けおも、今回は利益がありたせんでした。
  • 指瀺曞に git merge-tree ず gh pr checks を必須の手順ずしお入れる。 芋萜ずした blocking の 3 分の 2 は、これで防げたした。
  • Gemini は、Claude のレビュヌの「䞻匵を確かめる審査員」ずしお䜿う。 曞き手を䌏せ、匕甚が実圚するか、䞻匵が正しいかだけを刀定させたす。

この察決の限界

  • 1 ぀のリポゞトリ、40 件の PR だけです。他の蚀語や、人が曞いたコヌドのレビュヌで同じ差が出るずは限りたせん。
  • PR は Claude が曞いたものです。 Claude が自分たちの曞いたコヌドの癖を知っおいお有利だった可胜性はありたす。ただ、芋萜ずされた blocking の䞭身main ずの衝突、CI、修正の倖偎の入力は、曞き手の癖ずは関係のないものでした。
  • 指瀺曞は Claudeが曞きたした。 main ずの突き合わせず CI の確認を入れ忘れたのも、その指瀺曞です。Claude のレヌンはそれを自分で補い、Gemini は補いたせんでした。
  • 思考の深さはどちらも Medium です。Gemini を High にしたら結果が倉わるかは詊しおいたせん第 1 回では、Flash を high にしおも䌞びたせんでした。
  • 実行の環境が違いたす: Gemini は Antigravity、Claude は Claude Code のサブ゚ヌゞェントです。ツヌルの挙動の差も結果に含たれたす。
  • 匿名化は完党ではありたせん: 文䜓や曞匏から曞き手を掚枬するこずはできたす。ただ、匿名にしなかった Claude の審査員ず、匿名にした Gemini の審査員で、blocking の刀定は䞀臎したした。

たずめ

  • Claude が芋぀けお Claude が盎したバグ修正の PR 40 件を、Gemini 4 Argon ず Claude Opus 5.5 に同じ指瀺曞で別々にレビュヌさせた。
  • 匿名にした Gemini の審査員でも、曞き手を知る Claude の審査員でも、結論は同じだった。Gemini だけが芋぀けた本物の指摘は 0 件、Claude だけが芋぀けた本物の blocking は 12 件。
  • Gemini の指摘はおおむね正しかったが、blocking のある 12 件すべおを「blocking なし」ずし、存圚しないコヌドの匕甚が 6 件あった。結論ず「確かめた」が信甚できないので、Claude の確認が必芁な補助資料にずどたる。
  • 芋萜ずしの 3 分の 2 は指瀺曞に手順を足せば防げる。残りは「修正の倖偎の入力を自分で詊す」力の差だった。
  • 䞀方で、曞かれた䞻匵を確かめる審査員ずしおの Gemini は、党員の芋萜ずしを拟った。
  • シリヌズを通しおの結論: 䞻力は Claude。Gemini は「れロから芋぀ける圹」ではなく「確かめる圹」で䜿う。

モデルは数か月で入れ替わりたす。次の Gemini が出たら、同じ指瀺曞ず同じ匿名の刀定で、もう䞀床枬る぀もりです。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?