最近、SNS で「AI にコードを書かせたあと、人間はちゃんとレビューすべきか」という話をよく見ます。
以前の自分なら、かなり強く「見るべき」と思っていました。でも最近は、もう人間が差分を全部読む前提は崩れてきている気がしています。
もちろん、レビューが不要という意味ではありません。むしろ AI によるコードレビューは必須 だと思っています。ただ、人間がやるべきことは、生成されたコードを 1 行ずつ読むことではなく、レビューするエージェントと検証のハーネスをちゃんと作ることに移っているのではないか、という感覚です。
考えてみると、AI が出る前から、自分たちは全部のコードを読んでいたわけではありません。
curl のソースコードを読んでから使っているか。jQuery の中身を全部理解していたか。React や Next.js の実装を読んでからプロダクトに入れているか。
たぶん、ほとんど読んでいません。信頼している OSS は、中身を全部読まずに使ってきました。
もちろん、OSS と AI 生成コードは同じではありません。OSS には利用実績、メンテナ、issue、レビュー履歴があります。一方で、自分のプロジェクトで AI が作ったコードには、そういう外側の信頼がまだ薄い。だから「信頼できないコードは人間が見るべき」という意見はかなり正しいと思います。
ただ、その前提も少しずつ変わってきています。今の AI は、人間が急いで書くコードより、きれいな構造で出してくることが増えました。少なくとも、自分の手元では「まず人間が全部読まないと危ない」という感覚はかなり薄れています。
むしろ、人間レビューが重く必要になるときは、AI の問題というより 仕事の切り方が大きすぎる ことが多い気がします。
何でもかんでも一発で作らせる。仕様も曖昧なまま、広い範囲をドカンと変更させる。テストや型や lint の足場も弱い。その状態で「AI のコードは怖い」と言っているなら、怖いのは AI というより、任せ方の粒度です。
ちゃんと領域を分ける。小さい単位で作らせる。AI レビュー用のエージェントを別に立てる。テスト、型、静的解析、実行確認をハーネスに組み込む。
人間が見るべきなのは、生成コードそのものより、この仕組みのほうだと思っています。
「人間がコードを読めるべき」という話は、まだ正しいです。でも「AI が書いたコードを、人間が毎回すべて読むべき」は、そろそろ違う話になってきている気がします。
これから大事になるのは、コードを読む力そのものより、AI に読ませる設計、失敗を検知する仕組み、任せる粒度を決める力なのだと思います。