AIニュースまとめ ブログへ戻る
AIニュースまとめへ

code-review-graphとは:AIコードレビューの文脈を絞る仕組み

code-review-graphの仕組み、導入条件、向いている用途、注意点を整理します。

code-review-graphは、コードベースをグラフ化し、変更の影響範囲と関連ファイルをAIへ渡すための開発ツールです。リポジトリ全体を毎回読み込ませる代わりに、変更と関係が強い範囲へ文脈を絞ります。

何ができるのか

code-review-graphは、Tree-sitterでコードを解析し、関数、クラス、インポート、呼び出し、継承、テストとの関係をSQLiteへ保存します。AIコーディングツールからはMCPまたはCLI経由で参照できます。

対応先として、Claude Code、Codex、Cursor、Zed、Gemini CLI、GitHub Copilotなどが案内されています。GitHub Actionsへ組み込み、PRレビューに利用する構成もあります。

主な用途

変更の影響範囲を調べる

変更された関数から、呼び出し元、依存ファイル、関連テストをたどれます。複数ファイルへ影響する変更や、モノレポのレビューで確認範囲を絞る用途に向いています。

複数のAIツールで同じ構造情報を使う

MCPサーバーとCLIを提供しているため、複数のAIコーディングツールへ共通のコードグラフを渡せます。

読み込むコード量を減らす

公式ベンチマークでは、リポジトリ全体を読む場合と比べて、質問あたりのトークン量を大きく減らせると説明されています。ただし、実際の削減量はリポジトリ構成や質問内容によって変わります。

仕組み

処理の流れは次のとおりです。

  1. リポジトリをTree-sitterで解析する
  2. 関数、クラス、ファイルなどをノードとして保存する
  3. 呼び出し、インポート、継承、テスト関係をエッジとして保存する
  4. 変更された箇所と依存先を差分更新する
  5. AIへ関連範囲を返す

保存先は通常.code-review-graph/配下のSQLiteです。Neo4jなどの外部データベースは必須ではありません。

導入条件

  • Python 3.10以上
  • pippipx、またはuv
  • 対象リポジトリへの読み取り権限
  • GitHub Actionsで使う場合はPRコメントの書き込み権限

対応言語には、Python、JavaScript、TypeScript、Go、Rust、Java、C/C++、C#、Ruby、Kotlin、Swift、PHP、Vue、Svelte、Astro、Terraform、SQL、Jupyter Notebookなどが含まれます。

注意点

  • 小さな単一ファイル変更では、グラフの情報が過剰になる場合がある
  • 言語によって解析精度に差がある
  • 影響候補には、実際には関係しないファイルが含まれる場合がある
  • 埋め込み検索で外部APIを選ぶと、完全なローカル処理ではなくなる
  • インストールコマンドはAIツール側の設定ファイルを書き換える場合がある

類似手段との違い

LSPは定義ジャンプや診断に強く、grepは識別子が分かっている調査に向いています。code-review-graphは、複数ファイルをまたぐ依存関係や変更の波及先をAIへ渡す用途に寄っています。

既存のLSPやgrepを置き換えるより、AIレビュー時の補助情報として組み合わせる使い方が現実的です。

向いている人

  • 大規模リポジトリをAIでレビューしている
  • モノレポで変更影響の確認範囲が広い
  • 複数のAIコーディングツールを併用している
  • PRレビュー時に関連テストや依存先を自動で出したい
  • ソースコードをローカル中心で解析したい

小規模プロジェクトや、LSPとgrepだけで十分な環境では、導入とインデックス管理の手間が上回る可能性があります。

参照情報