AIToday
AIコーディングZenn AI/ML掲載日時: 2026年11月14日 16:00

AIコードレビュー、小さなPR2本で見えた5つの失敗型

LINEで送る
AIコードレビュー、小さなPR2本で見えた5つの失敗型

3つのポイント

  1. 何が起きたか

    著者はPR #17(CIマトリクスに3行追加・1行削除)とPR #13(Dockerfileのベースイメージ変更とspec追加、2ファイルで39行追加・1行削除)をAnthropicのコードレビュースキルとCodeRabbitでレビューした。結論は正しいが理由が誤っている例や、接頭辞しか検証しないテストなど、5つの再発パターンが浮かび上がった。

  2. なぜ重要か

    git ls-filesで追跡ファイルを確認する、結論と理由を分けて検証する、変更前の状態を確認する、テスト名と実装を照合する、差分の外を見る——著者のチェックリストは、AIレビューを最終回答ではなく検証すべきシグナルとして扱うべきだと示している。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

著者の出発点は単純な観察だった。AIレビューボットはチームが対応しきれないほどコメントを出すため、本当の問いはどのコメントを信頼するかになる。ここで使われた2本のプルリクエストは意図的に小さく抑えられている。PR #17はCIマトリクスの数行を変えただけ、PR #13はDockerfileのベースイメージを差し替えて2ファイルにspecを追加しただけだ。その規模でも5つの異なるパターンが現れたため、著者は問題がリポジトリの複雑さではないと論じる。

パターンには共通の形がある。CIマトリクスの例では、Ruby 3.5のエントリを削除すると、失敗するチェックが、決して報告されない必須チェックに置き換わっていただろう。ジョブ名がマトリクスのエントリに紐づいており、リポジトリのルールセットがRuby 3.4、Ruby 3.5、CodeQLを要求しているからだ。著者は、差分を読んでもこれは分からず、確認にはルールセット自体へのアクセスが必要だと指摘する。RuboCopの例では、rake defaultが失敗するというレビューの結論は正しかったが、示された原因は誤っていた。著者は実行を再現し、RuboCop 1.92.2で152件のoffenseを見つけた。これらの例は、著者の最終チェックリストがコメントの説得力ではなく証拠の所在から始まる理由を示している。

著者はまた、この手法を自分自身に適用したことにも触れている。AIレビューは、元の原稿が5つのパターンをすべて単一の依存関係更新プルリクエストに帰していたが、実際は2つの別々のPRから来ていたこと、引用された差分がgit showの出力と一致していないことを指摘した。著者はこれらの点を修正し、最初の5件のレビューコメントのうち3件が、著者自身が警告していたパターンを指摘していたと述べている。

よくある質問
著者が特定した5つの失敗パターンとは何か?
パターンは、差分に答えがない、結論は正しいが理由が誤っている、差分だけでは判断できないPR由来の欠陥、テスト名が主張する内容を検証していないテスト、追跡されていないファイル由来の証拠、の5つだった。
AIレビューはRuboCopの失敗について何か間違えたか?
レビューはRuboCopがTargetRubyVersion: 2.6をサポートしなくなったためrake defaultが失敗するとしたが、実行するとRuboCop 1.92.2は依然動作し、失敗は152件のoffenseによるものだった。
著者はDockerfileのspec問題にどう対処したか?
著者は元のspecと修正版を比較し、元のテストはFROM ruby:3.4-bookwromという誤記のイメージを通過させていたが、修正版のspecはそれを失敗させ、より明確な失敗メッセージを使うことを示した。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

このようなAIの動きを、御社の業界・競合に合わせて毎日届ける法人プランもあります → 詳しく見る

関連記事

CPC AIの尹氏、3〜5日MVPは決めることを減らして実現と説明

CPC AI Inc.の尹氏は3〜5日でMVPを出す工程を示した

Zenn AI/ML10時間前

Inflab、CodeRabbitで定型ミスを指摘と報告

InflabのYakpoong氏が約7カ月のCodeRabbit利用を振り返り、誤字や引数の誤り、console.log/System.out.println、BIGINTルールに反するINTEGER外部キーをAIレビュ…

Zenn AI/ML10時間前

Claude Codeの4分業、Opus単体より2.7倍のトークン

同じCanonical Zephyrの記事で、Haiku/Sonnet/Opusの4分業は約207秒で198,658トークン、Opus 1体は約168秒で74,381トークンだった

Zenn AI/ML10時間前

長文プロンプト規約は5件中4件しか守られず

AI LaboがVM215上でgemini-3.8-flashに同一タスクを解かせたところ、Mode Aは5大アーキテクチャ規約のうち4件のみ遵守し、Hook方式のMode Bは5件全てを遵守した

Zenn AI/ML10時間前

Zenn記事をAIエージェントがPRで執筆する環境

筆者は非公開のGitHubリポジトリをZennに連携し、エージェントに環境構築とCLAUDE.mdのルールファイルの下書きを作らせ、筆者自身の記事をエージェント作成PRの第1号として公開した

Zenn AI/ML10時間前

ウェブスクレイピングでファインチューニング用JSONLを生成する手順

DokuProのQiita記事が、PythonのrequestsとBeautifulSoup4でスクレイピングのパイプラインを組み、instruction/outputペアをファインチューニング用のJSONLファイルに書…

Qiita 機械学習16時間前
次の記事へゲーム開発者の40%が生成AI使用、55%は有害視