エージェントを使わずにAIレビューでレビューの負荷を下げる話
最近、AIを活用した「開発エージェント」が注目を集めていますが、今回はそうした流行りのエージェントを導入するのではなく、すでに導入しているサービスを工夫して使うことで、コードレビューの省力化に挑戦しました。
開発プロセスにおいて、コードレビューは品質を担保するために不可欠な工程です。しかし、レビュワーの時間を大きく割いてしまうのも事実。特に、コーディング規約のチェックやタイポの指摘といった、細かいけれど重要なレビューに多くの時間が費やされがちです。
そういった細かいレビューをGitHub CopilotとPR Agentという2つのAIサービスを組み合わせたコードレビューの省力化を試みたところ、一定の効果がありました。今回は、その具体的な手法と、導入によって得られた効果や注意点についてご紹介します。
今回取り入れたAIレビューの手法
今回構築したAIコードレビューのフローは、以下の2段階です。
- ローカルでの事前レビュー (by GitHub Copilot)
- 開発者がプルリクエストを作成する前に、ローカル環境でCopilotにコーディング規約に基づいたレビューをさせます。
- プルリクエスト後の差分レビュー (by PR Agent)
- プルリクエストが作成された後に、PR Agentが差分全体を自動でレビューします。
このフローにより、人間がレビューする段階では、すでにAIによる一次チェックが完了している状態を作り出します。その結果、レビュワーは些末な修正指示から解放され、アプリケーションのロジックや設計といった、より本質的な部分に集中できるようになります。
ステップ1:Copilotでローカルレビューを徹底する
まず、プルリクエストを出す前に、ローカルでコードの品質を高めます。ここで活躍するのがGitHub Copilotです。
具体的な方法は、リポジトリの.githubディレクトリなどに、チームのコーディング規約を記述したファイル(例:context.md)を配置します。そして、Copilotのチャットやインライン機能を使って、ファイル単位や特定のコード範囲を指定し、「この規約に基づいてレビューしてください」と依頼するだけです。
Copilotは規約を解釈し、違反箇所を指摘したり、修正案を提示してくれたりします。これにより、プルリクエストが作成される前に、規約違反の多くを潰すことが可能になります。
ステップ2:PR Agentでプルリクエスト全体をレビューする
ローカルでのセルフレビューが終わったら、プルリクエストを作成します。すると、今度はPR Agentの出番です。
PR Agentは、プルリクエストが作成されると自動で起動し、変更されたコードの差分全体をレビューしてくれます。
- 変更内容の要約
- 改善点の提案
- パフォーマンスに関する懸念
- セキュリティリスクの指摘
これらの観点から、AIが客観的なコメントをプルリクエスト上に投稿してくれます。AIからの指摘をレビュイーが確認し、対応するもの、しないものを洗濯し、修正をした後に人のレビュアーがプルリクエストを確認することで、基本的な部分はすでに直っている前提でレビューを進めることが可能となります。
この仕組みを導入してから、肌感覚ではありますが、人間による規約に基づくコメントなどがほとんどなくなりました。その結果ロジックの妥当性や今後の拡張性といった、本来あるべき議論が増えたのです。
非常に便利なAIレビューですが、もちろんリスクも存在します。特に注意すべきなのが、GitHub Copilotが提案する修正案が正しくても、反映の時点で余計なコードを残す、必要なコードを消すということをしてしまう可能性があることです。Githubのコメント機能でのレビューではなくCopiot ChatのAgentモードを使ってレビューの指摘事項を挙げてもらい、一つずつ修正をしてもらうという手法も有効です。Agentモードでレビューをしてもらう場合に注意が必要なのが、「レビューして」だけだと直に複数の指摘事項のコード修正提案を持ってきます。その場合不要な修正も合わせてしてきてしまうため、「修正はせず、指摘事項の項目だしだけを行なってください」とあくまで項目だしだけを行なってもらうようにした方が意図した結果を返してくれます。
どちらの方法を取ったとしても、AIによる修正を適用した後は必ず開発者自身の目で最終確認を行うことが不可欠です。
まとめと今後の展望
複数のAIサービスを組み合わせたコードレビューは、人間のレビューを完全に置き換えるものではありません。AIに面倒な定型的な作業を任せることで、人間はより創造的で本質的な作業に集中できるようになります。
結果として、レビュープロセス全体の効率と質が向上し、開発チーム全体の生産性を高めることにつながります。もしコードレビューの工数に課題を感じているなら、試してみる価値は十分にあるはずです。
ここまでで、一定の人間の負荷を下げることはできました。
今後、エージェントのClaud CodeやGemini Code、Kiroを導入すると、このフローはさらに大きく変更となる可能性は高いです。実装部分をエージェントに任せ、一時レビューを別のプロンプトのエージェントに任せ、最終判断だけを人間がレビューをするという手法も考えることができるとは思います。これらは他の方々もいている通り、新規のコードについては非常に有効であると思いますが、大量の既存コードやニッチな技術を利用している場合など、全ての環境において現時点では必ずしも有効では無い場合もあります。もちろん今回のPR Agentの部分についてを前述のエージェントに置き換えることは可能だとは思います。
今年だけでも、まだまだここから多くのAIサービスなどが出てくることになると思います。そういったサービスに置き換えやフロー自体の見直しも試行錯誤もしていこうと思います。
Discussion