## 審査の対象となっている主張
Martin MonperrusによるarXiv上の論文「コードレビューの終焉:コーディングエージェントは人間による検査を凌駕する」は、大規模言語モデル(LLM)を用いたコーディングエージェントが、従来の人間によるコードレビューがソフトウェア品質パイプラインの必須コンポーネントではなくなるほどの能力の閾値に達したと主張している。この議論は2つの主張に基づいている。すなわち、コードレビューのあらゆる目標は、エージェントによってより低いコストと高いスループットで提供でき、そして、エージェントがコードを書き、人間が必須のレビュー担当者として残るというナイーブな統合は、意味のある保証を提供せず、AI支援によるスループットに合わせてスケールしないため、行き止まりであるという点である。
この論文は、ピアコードレビューを「欠陥検出」「スタイル強制」「知識転送」「意識の向上」の4つの機能に分解している。エージェントがそれぞれを実行できるため、結論として、エージェントは人間によるレビュー担当者に取って代わる能力を持っていることになる。
## 機能が見落としているもの
反論は、エージェントが欠陥を検出したりスタイルを強制したりできないということではない。実際、それらはしばしば可能である。むしろ、レビューにおける還元不可能な人間の次元は、分解によって消し去られる「機能間の統合」の中にのみ生き残っている。自動化可能な検出では捉えきれない、いくつかの明確な能力がある。
- **シグナルとしての混乱。** 経験豊富なレビュー担当者がdiffを読んで「これを理解できない」と言うとき、その混乱自体が発見である。それは、コードが複雑すぎる、抽象化が間違っている、あるいは意図が不明確であることを示唆する。LLMは、それらの問題を露呈させる正当な「理解不能」を伴わずに、常にコードを処理する。 - **必要性への疑問。** レビュー担当者は、変更がそもそも必要かどうかを日常的に問いかける。「これは2つのPRに分けるべきか?」あるいは「これは問題ではなく、症状を解決しているだけだ」といった具合である。このような判断は検証に先立ち、システムの方向性に関する共通の理解に依存するが、孤立したエージェントにはそれが欠けている。 - **存在しないものを見る。** 人間は、APIの契約は変更されたがエラーハンドリングは変更されていないことや、期待されるブランチが欠落していることに気づく。この「欠落の認識」は、LLMが苦労する失敗のクラス(欠落に対する盲目)である。なぜなら、LLMは存在するものをしかレビューしないからである。 - **執筆履歴による調整された注意。** ジュニアエンジニアによる決済モジュールへの最初のコミットは、ベテランによる日常的なリファクタリングとは異なる監視を自然に引き付ける。その調整は、diff単体ではなく、関係性や過去のパフォーマンスの記憶に依存する。 - **双方向性と共活動的な学習。** コードレビューは共同の認知活動である。レビュー担当者は著者のアプローチを学び、著者はレビュー担当者の質問から学ぶことで、どちらも最初には持っていなかった共通の理解を生み出す。エージェントの要約は「伝達」であり、メンタルモデルを変化させる「対話」ではない。 - **リポジトリを超えた運用コンテキスト。** レビュー担当者は、先週の火曜日にサービスでインシデントがあったこと、下流のコンシューマーがインターフェースを非推奨にすること、あるいは法務部門が特定のフィールドのログ記録を禁止したことなどを知っている。これらの組織的なコンテキストは、テスト、ドキュメント、またはバージョン管理にはほとんど含まれないが、何を変更すべきかに関するあらゆる意思決定を形作る。
## ガバナンスとしての責任、形式的なものではない
この論文は、人間の責任をコンプライアンスの成果物(法的な目的のための名前の付いた人間)として扱っている。しかし、個人的な責任はレビューの進め方を形作る。「当事者意識(skin in the game)」は、機械的な承認ではなく、真剣な評価を生み出す。プルリクエストを承認するエージェントは、いかなる結果も負わず、注意深い判断を報いるインセンティブ構造も持っていない。倫理的な懸念を「要件エンジニアリングとデプロイ後の監視」に転送しても、その責任を回復するものではなく、単に先送りにするだけである。
## 代替の神話
コードレビューは単なる検出プロセスではない。それは同時に調整プロセス、意味把握プロセス、およびガバナンスプロセスである。代替の神話は認識可能なパターンに従っている。人間の貢献を測定可能な機能に分解し、機械が各機能を複製できることを示し、そして人間を余剰なものと宣言する。このパターンはあらゆる領域で同じ時点で失敗する。最も重要だった人間の貢献は、機能間の「統合」であったからである。人々は予期せぬ状況や文脈に適応し、形式的なゲートでは捉えられない社会的責任を果たす。それらの適応能力は元の分解からは欠落しており、機械が孤立した機能を代替したとしても再出現することはない。
したがって、この批判は論文の分解には同意するが、その推論は拒絶する。エージェントは、より低いコストと高いスループットで検出、スタイル、知識転送、および意識の向上という目標を果たすことができるかもしれない。未解決の問いは、統合レイヤー(変更が必要かどうか、システムの軌道に適合するか、チームがコードの集団的所有権を保持しているかなどを決定する層)を、コストなしで譲り渡すことができるかという点である。
