AIのコメントに“納得できない”とき、どう対応すべきか?
はじめに
AIが出力するレビューコメントに、こんな違和感を抱いたことはないだろうか。
- 「それってこのプロジェクトのルールに反してるけど?」
- 「一応正しいけど、この文脈では筋違いじゃない?」
- 「結局、何をどう直せばいいのかわからない」
AIによるコードレビューが実用段階に入りつつある今、コメント内容に対して“納得できない”という感情が発生する状況も増えてきている。
本記事では、レビューアーの立場から、AIコメントへの違和感にどう対処するかを体系化し、人間のレビュー判断力をどう活かすべきかを考える。
よくある“納得できない”コメントのパターン
AIレビューにおける違和感は、大きく以下の3種類に分類できる。
1. 指摘は正しいが「空気が読めていない」
function createUser() {
console.log("User created");
}@AI: Avoid using console.log in production code. Use a logging framework instead.→ テスト用コードで console.log を一時的に使っているだけ。プロダクションコードという前提が違う。
2. 言っていることはもっともだが「解決案が提示されない」
const sum = arr.reduce((a, b) => a + b, 0);@AI: Consider performance implications when using reduce on large arrays.→ パフォーマンスが問題になるほどの規模ではないし、代替案も提示されない。
3. 指摘自体が「誤解している」
function getUserAge(user) {
return user.age ?? 0;
}@AI: Use default values to avoid undefined errors.→ すでに ?? 0 で対処しているのに、処理意図を正確に把握していない。
AIコメントとは、LLM(大規模言語モデル)を用いてコード差分やファイル全体を読み取り、問題点・改善案を提案する自動生成コメントのこと。代表例はChatGPT(function callingあり)、CodeRabbit、GitHub Copilot Commentsなど。
レビューアーが取るべき対応のフレームワーク
「AIがそう言っている」だけではレビューは成立しない。
レビューアーは、次のようなフレームでAIコメントを咀嚼・対応すべきである。
ステップ1:指摘のカテゴリを特定する
- 構文/文法レベルの指摘(例:セミコロン忘れ、スコープ誤り)
- 設計・責務分離に関する指摘(例:関数が肥大化)
- 可読性/保守性の提案(例:命名、コメントの有無)
- プロジェクト方針とのズレ(例:特定のライブラリ使用禁止)
→ まず「AIが何に対して問題を感じたのか?」を自分なりに解釈する
ステップ2:プロジェクト文脈との整合性を検証する
- この指摘はこのコードにおいて本当に適切か?
- プロジェクトのコーディング規約や制約と合っているか?
- チームの合意・慣習と反する指摘ではないか?
→ 「文脈のズレ」はAIコメントの典型的誤差
ステップ3:指摘が役立つ可能性を“再構成”する
納得できないコメントでも、「この部分に対して注意を促したかったのかもしれない」という再解釈力が、レビューアーには求められる。
@Reviewer: ChatGPTの指摘はズレているように見えますが、「この関数の責務が2つに分かれている」という点に着目すると、設計分離の観点では一理あります。→ そのまま飲み込むのではなく、「要点を読み替える」
ステップ4:必要に応じて“AIへの反論コメント”をつける
@Reviewer: AIはconsole.logの使用を指摘していますが、この箇所はデバッグ用に一時的に残しており、本番環境には含まれません。意図的な利用のため、指摘は適用外です。→ 「意図がある」「既に対応済み」「指摘がプロジェクトポリシーに合わない」場合は、その理由を書き添えて明示的に“却下”する
実例:AIコメントにレビューアーが補足したケース
ケース1:指摘は正しいが文脈誤り
return users?.map(u => u.email);@AI: Consider null checking before using optional chaining.@Reviewer: すでに optional chaining `users?.` で null 安全性を確保しているため、この指摘は文脈にそぐわないと判断しました。ケース2:抽象的すぎて意味がない
const page = await getPage();@AI: Improve function naming for better clarity.@Reviewer: `getPage` という命名はCMS由来のコンテキストにおいて業界標準的に使われており、このプロジェクトでも命名の一貫性があるため、変更は不要です。ケース3:別の観点から再評価
function handleError(error) {
console.error(error);
}@AI: Avoid using console.error in production code.@Reviewer: `console.error` を使っている理由は、テスト環境でのスタックトレース収集が目的です。運用環境ではロガーに差し替わる設計になっているため、指摘はステージ依存として扱います。AIとの違和感をレビューに活かす
気づきを促す“逆レビュー”
@Reviewer: AIのこの指摘、正直よく分からないと思うけど、逆に「なぜこういう指摘をしたのか?」を考えてみると、責務分離の観点が見えてくるかもしれない。→ 違和感を考えるきっかけとして使う
AIコメントに“ツッコミ”を入れるレビュー研修も有効
たとえば、新人やメンバーに以下を課す:
- 「このAIコメント、おかしい点は?」
- 「どう解釈したら実用的になる?」
- 「本当にこのまま対応すべきか?」
→ 受動的に読むのではなく、“読む力”を鍛える訓練として使える
AIコメントへのレビューアーの対応フロー
まとめ:AIコメントに納得できないときの“視点の持ち方”
AIレビューは万能ではありません。特にレビューコメントにおいては、「理由が薄い」「文脈がズレている」「指摘に一貫性がない」ことも多くあります。
しかし、それを一蹴するだけでは意味がない。
- なぜAIはこう判断したのかを“読み解く力”
- 文脈とのズレを“意識して指摘する力”
- コメントを再構成して“学習につなげる力”
これらはすべて、レビューアーにしか担えない役割です。
「納得できないコメント」ほど、レビューアーの腕の見せどころなのです。
