ブレる/誤検出の AI レビュー指摘を抑制する
「reduce false positives AI code review」「suppress noisy AI review comments」「stable AI review」で検索してたどり着いた方向けのレシピです。
課題
AI のコードレビューは、実行するたびに指摘内容が揺れたり、実装意図と食い違う誤検出を出したりします。同じ指摘が PR ごとに再燃すると、レビュー全体の信頼性を損ないます。やがて開発者は通知そのものを読み飛ばすようになります。River Review はこの揺れや誤検出を、レビュー判断の記録として抑制の対象に変えます。
River Review はどう抑制するか
River Review は誤検出への対処を 2 つの層に分けています。決定論的な検出器は canary(誤検出パターン集)で守られ、一度直した誤検出が再発しないことを機械的に保証します。意味的なノイズや実装意図との食い違いは、midstream フェーズの suppression-feedback スキルが扱います。
suppression-feedback スキルは、検出された指摘を 4 つの区分に整理します。機械的な削除はせず、レビュアーが抑制か修正かを選べるよう補助します。判断結果は river suppression add を通じて Riverbed Memory に記録されます。
false_positive: 実装意図に対する誤検知として記録する区分である。accepted_risk: リスクを認識したうえで残すと決めた指摘に付ける区分である。duplicate: 既存 fingerprint の指摘と重複するときに参照を張る区分である。- major / critical の指摘は、
accepted_riskとして根拠つきで区分した場合を除き、自動抑制されない(HIGH_SEVERITY guard)。minor / info のノイズはどの区分でも自動抑制される。
この判断が Riverbed Memory に残ると、後続 PR のレビューは同じノイズの再燃を防げます。
やってみる
専用のデモはありませんが、Riverbed Memory の suppression で同じ流れを試せます。次の手順で、誤検出と判断した指摘を記録します。
- レビュー実行後、抑制したい指摘の fingerprint を控える。
- その指摘が誤検知か、リスク受容かを判断する。
river suppression addで区分と根拠を記録する。
river suppression add \
--fingerprint <fp> \
--feedback false_positive \
--rationale "なぜ誤検知と判断したかを 1〜2 文で残す"
登録後の挙動と保存手順は、Riverbed Memory を使用する にまとまっています。決定論的な検出器がどこまで誤検出を防ぐかは、検出器の評価レポート で確認できます。設計思想は Riverbed Memory を参照してください。
やらないこと
- suppression entry を自動生成しない。書き込みは人間の承認を必要とする。
- 指摘を勝手にマージ判断へ反映しない。River Review は auto-merge せず、最終判断を人間に委ねる。
- 静的解析やカスタム linter の置き換えではない。決定論的な領域は canary が守り、意味的な判断だけを
suppression-feedbackに任せる。 - major / critical の指摘を無条件には抑制しない。
accepted_riskと根拠がそろって初めて自動抑制を許す。