階層型AIコードレビュー:AI生成PRのためのフレームワーク

AIツールは、レビューキューに届くコードのあり方を変えています。差分(diff)はより大きく、より速くなります。それらは人間の思考からではなく、AIから生成されることが多くなっています。

レビュープロセスが以前のまま変わらないのであれば、これは問題となります。

研究によると、AIコーディングツールはコードのチャーン(変更頻度)を増加させ、再利用性を低下させる可能性があります。ある研究では、AIが生成したコードは、人間が書いたコードよりもセキュリティの脆弱性が多くなる傾向があることが示されています。

AIツールはチームのデリバリーを加速させます。しかし、すべてのAIプルリクエストを人間によるものと同じように扱うと、ボトルネックや潜在的な欠陥が生じます。

階層的なアプローチが必要です。変更のリスクに合わせて、レビューの工数を調整してください。

レビューの階層を決定するために、次の3つのシグナルを使用します。

コードの出自 (Code Origin): 人間がAIによる小さな提案を利用したのか、それともAIが機能全体をドラフトしたのか? AIコードは一見正しく見えますが、深いロジックに欠けていることがよくあります。 • 変更の範囲 (Change Scope): 何行変更されたか? 大きな差分は、エラーが発生する可能性(表面積)が大きくなります。 • 影響範囲 (Blast Radius): そのコードは何に影響するか? 認証や決済に関する変更はリスクが高く、ドキュメントの変更はリスクが低いです。

これらのシグナルに基づいて階層を割り当てます。

Tier 1 (Skim/流し読み): 人間のみのコード、またはAIによる小さな支援を受けたスクリプトに使用します。レビュアー1名がハードコードされたキーがないか確認します。所要時間:4時間。 • Tier 2 (Scrutinize/精査): 中程度のAIによる変更、または人間による大きな差分に使用します。レビュアー1名がロジックとテストカバレッジを確認します。所要時間:24時間。 • Tier 3 (Sign-off/承認): 重要なコード、またはAIが生成した大規模な差分に使用します。テックリードを含む2名のレビュアーによる承認が必須です。セキュリティスキャンとロールバック計画も必須となります。所要時間:48時間。

影響範囲(Blast radius)は、優先順位を上書きする基準です。決済ロジックに対するAIによる極めて小さな変更であっても、常にTier 3となります。

これは自動化可能です。GitHub Actionsのワークフローを使用して、差分のサイズやファイルパスを読み取ります。review/tier-1review/tier-3 といったラベルを自動的に割り当てます。

このシステムはペナルティではありません。適切な人間が、適切なコードに対して、適切な注意を払えるようにするための方法です。

マトリックスを作成し、ラベルを追加しましょう。蓄積されたデータを使用して、時間の経過とともにしきい値を調整してください。

Source: https://dev.to/vuong_ngo/tiered-ai-code-review-a-framework-for-ai-generated-prs-4fgb

Optional learning community: https://t.me/GyaanSetuAi