1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIでコードレビュー!皆さんCopilotレビューは使っていますか? 〜「一般論」で終わらせない、人の勘所をAIに授ける生存戦略〜

1
Posted at

はじめに

この記事は、現場の最前線で働くSEによる、生成AI活用に向けた試行錯誤の記録です。
「AIにレビューを任せたいけど、なんか薄っぺらい指摘しか来ないんだよなぁ」と悩んでいる皆さんに捧げます。

対象読者

  • GitHub Copilotを導入したものの、コードレビューの精度に満足していない方
  • 「生成AIを活用せよ」という上層部からの無茶ぶりに、具体的な解を求めている方
  • MCP(Model Context Protocol)やCustom Agentsといった最新技術の実装例を知りたい方

TL;DR

  • 標準のCopilotレビューは「一般論(命名規則やDRY原則)」には強いが、プロジェクト固有のコンテキストには弱い。
  • レビューの質を上げる鍵は、**「テックリードの思考プロセス(概要把握→アタリ付け→深掘り)」**をAIに再現させること。
  • Custom Agentsで「レビュー専用モード」を構築し、MCPでGitHub API経由の外部情報を注入することで、一歩先のレビューを実現した(格闘中!)。

1. はじめに:AIレビューの「理想」と「現実」

現在、私のプロジェクトでも「生成AIを使い倒せ!」という大号令が響き渡っています。
特に期待されているのがコードレビューの自動化。GitHub Copilotを導入し、Pull Request(PR)でのCopilotレビュー機能もフル活用し始めました。

最初は「これでレビュー依頼の行列から解放される!」と歓喜したものです。
しかし、実際に使い込んでいくと、ある「壁」にぶち当たりました。

2. ぶち当たった「一般論レビュー」という壁

Copilotレビューは、確かにコード単体を見れば非常に優秀です。

  • 「変数の命名をもう少し具体的にしましょう」
  • 「ここのネストは深くしすぎない方がいいですよ」

といった指摘はバシバシ飛んできます。しかし、SEとして本当に欲しい指摘は、もっと別のところにありました。

現場で本当に欲しいのは「プロジェクトの文脈」

  • 「この変更、実はあっちのファイルの共通処理とロジックが重複してない?」
  • 「うちのプロジェクトの設計指針では、ここはAじゃなくてBを使う決まりだよね?」
  • 「この修正、一見良さそうだけど、バッチ処理側のあの定数と矛盾しない?」

こうした**「Instructions(指示書)に書ききれないプロジェクトの特性」や、「複数ファイルにまたがる影響範囲」を、標準のAIレビューは見抜いてくれないのです。いわば、「教科書は完璧だけど、現場のルールを知らない新入社員」**のような状態でした。

3. テックリードはどうやってレビューしているのか?

どうすればAIを「テックリード級」に引き上げられるのか?
私は、人間(特にテックリード層)がレビューする時の動作を観察し、以下の3ステップに分解しました。

  1. 概要把握: PRのタイトルや説明、変更ファイルのリストを見て「何のための修正か」を掴む。
  2. アタリ付け: 「この機能の修正なら、あの共通部品にも影響が出るはず」「ここ、以前バグが出た箇所に近いな」と、怪しい箇所を直感(経験)で絞り込む。
  3. 深掘り: 絞り込んだ箇所に集中して、関連ファイルを横断的に読み、矛盾がないか確認する。

多くの時間がかかるのは「3」ですが、最も価値があるのは「2」のアタリ付けです。
ならば、**「AIにアタリを付けさせ、必要な情報を動的に取ってこさせる仕組み」**を作ればいいのではないか?と考えました。

4. 解決策:Custom Agents × MCP で「脳」と「手足」を作る

ここで登場するのが、GitHub Copilotの最新機能である Custom Agents (カスタムエージェント) と、今話題の MCP (Model Context Protocol) です。

① Custom Agents で「レビュー専用モード」を定義

単なるチャットではなく、レビューに特化したシステムプロンプトを持つエージェントを作成しました。
ここでは「一般論の指摘は8割削れ」「プロジェクトの設計書(Markdown)を常に参照しろ」といった、テックリードの着眼点を叩き込みます。

② MCP で AIに「調査する手足」を与える

AIの最大の弱点は、コンテキスト(把握できる情報量)の限界です。これを突破するために、以下のMCPを組み合わせました。

  • 公式GitHub MCP: PRのメタデータや差分を詳しく取得。
  • 自作MCP (FastMCP使用): GitHub REST API を叩き、「特定のキーワードを含むファイルをプロジェクト全域から検索する」「指定したファイルの依存関係を抽出する」といったツールを自作しました。(さらに一段取得したデータを生成AIに要約させることも検証中)

これにより、AIが「このファイル修正してるけど、関連するXXXService.javaも確認しなくて大丈夫?」と、自らGitHub APIを叩いて調査し、アタリを付けることが可能になります。

5. 現在の手応えと、一歩先のレビューへ

正直に言います。まだ「精度100%!人間不要!」ではありません。
というか、AIに渡すコンテキストが多すぎると逆に迷走したり、自作MCPの挙動が甘くて空振りしたりすることも多々あります(笑)。

しかし、標準のCopilotレビューと比べれば、「おっ、そこまで見てるのか!」という指摘が出る確率は格段に上がりました。

今後の展望:スキルの「仕組み化」

この試行錯誤で気づいたのは、AIを使いこなすには、人間側の「言語化能力」と「PRの出し方」も重要だということです。

  • AIが読みやすいPRの粒度(AtomicなPR)にする。
  • コンテキストの整理(どのドキュメントを読ませるか)を最適化する。

これらを磨くことで、AIレビューは「単なる文法チェック」から「設計の番人」へと進化できると確信しています。

まとめ

「生成AIでレビュー」は、ツールを入れて終わりではありません。
「テックリードの勘所」をどうやってAIに教え込み、MCPなどの技術でどうやって「現場のコンテキスト」を届けるか。 この泥臭いチューニングこそが、SEとしての新しい腕の見せ所ではないでしょうか。

皆さんも、自分だけの「最強のレビューエージェント」を育ててみませんか?


最後に

今回のAdvent Calendarのテーマである CodeRabbit は、まさにこの「コンテキストの深い読み取り」を高い次元で実現しているサービスです。自作MCPで苦労している部分を、CodeRabbitがどう鮮やかに解決しているのか……。それと比較してみるのも、面白いかもしれません。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?