tirth8205/code-review-graph
Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.
code‑review‑graph – AIに優しいコード知識グラフでレビューのトークン使用量を約63倍削減
何であるか – Tree‑sitterでリポジトリを解析し、その結果得られる抽象構文木(AST)情報をSQLiteグラフに格納し、Model Context Protocol (MCP) をサポートする任意のAI駆動型コーディングアシスタントに、そのグラフの小さな、関連性に焦点を当てたスライスを提供するPythonパッケージです。目的は、コードベース全体を読み込むという単純なアプローチを、変更によって影響を受ける可能性のあるファイル、関数、テストのみを返すブレースト・レディウスクエリに置き換えることです。
なぜ重要か – 大規模なプロジェクトには数十万ものソーストークンが含まれる場合があります。その全コーパスをLLMに供給すると、1回のリクエストあたり数千トークンのコストが発生し、レビューのサイクルが遅くなります。65倍程度(一般的なリポジトリで)のトークン削減により、数千トークンで同じ質問に答えることで、アシスタントはより高速かつ低コストで、幻覚のリスクも低く動作できます。
コアとなるアイデア
| ステップ | 内容 |
|---|---|
| 解析 | サポートされているすべての言語(Python、JS/TS、Go、Rust、Java、C/C++… およびノートブック)に対してTree‑sitterパーサーを実行します。関数、クラス、インポート、呼び出し元、テスト定義などのノードを抽出し、グラフノードとエッジ(呼び出し、継承、インポート関係)として書き込みます。 |
| 保存 | すべてのノード/エッジはローカルのSQLiteデータベースに保存されます。任意のSemantic Search用に、ベクトル埋め込み(sentence‑transformers、Gemini、MiniMax、Voyage AI、またはOpenAI互換エンドポイント)を追加可能です。 |
| 更新 | プリコミットフック、ウォッチモードのデーモン、または手動の code-review-graph build コマンドにより、SHA‑256ハッシュが変更されたファイルのみをインクリメンタルに再解析し、影響を受けるサブグラフを更新します。 |
| クエリ | AIツールがレビューのコンテキストを要求すると、MCPサーバーはブレースト・レディウスクエリを実行します。変更されたファイルから開始して、呼び出し/インポートエッジをたどり、依存するファイルと関連するテストを追加し、最小限のソーススニペットと少量の構造的メタデータを返します。 |
クイックスタート(READMEから)
pip install code-review-graph # または pipx install
code-review-graph install # AIコーディングツールを自動検出、MCPエントリを書き込み、フック/スキルをインストール
code-review-graph build # リポジトリの初期解析
install は、Codex、Claude Code、Cursor、Zed、Continue、GitHub Copilot、Gemini CLIなど、多数のサポートプラットフォームを検出し、適切なMCP設定を注入することで、アシスタントがグラフを自動的に利用できるようにします。
また、クリーンにアンインストールすることも可能です:
code-review-graph uninstall --dry-run # プレビュー
code-review-graph uninstall --yes # プロンプトなしで適用
主な機能(READMEに記載)
- インクリメンタルな更新 – 変更されたファイルのみを再解析。3 kファイルのリポジトリで2ファイルを編集する場合、約2.5 秒で完了。
- 広範な言語カバレッジ – 30種類以上の言語に加え、Jupyter/Databricksノートブックをサポート。PHP/LaravelおよびJava/Spring向けのフレームワーク対応解析も可能。
- フレームワーク対応エッジ – Laravelルート、Bladeテンプレート、Spring DI呼び出し、WebFluxルート、Temporalワークフローなど。
- ブレースト・レディウス分析 – 変更によって影響を受ける可能性のある最小のファイル/関数/テストのセットを返します。
- MCP互換サーバー – Model Context Protocolを理解するあらゆるアシスタントと連携可能。
- GitHub Action – CIで同じ分析を実行し、リスクスコア付きの固定コメントをPRに投稿可能。
fail-on-riskでマージをブロックすることも可能。 - セマンティック検索 – sentence‑transformers、Gemini、MiniMax、Voyage AIなど、さまざまなプロバイダーからのオプションのベクトル埋め込みで、より豊富なキーワード検索が可能。
- カスタム言語サポート – 未知の拡張子を既存のTree‑sitter文法にマッピングするための
languages.tomlを追加可能。
ベンチマーク(READMEから)
- トークン削減 – 6つのオープンソースリポジトリ(fastapi、flaskなど)で、質問あたりの平均約63倍のトークン削減。最良ケースでは358倍。
- 影響分析の品質 – グラフから導出された真実(ground truth)と比較して、平均F1は約0.69(再現率は構成上1.0、精度は見逃しを防ぐために意図的に低く設定)。
- ビルド統計 – 一般的なリポジトリ(約6 kノード、30 kエッジ)は、クリーンチェックアウトで約40 秒でビルド可能。
制限事項(認識済み)
- 「再現率=1.0」という指標は循環的であるため、真実データは同じグラフから導出されている。
- 小さな、単一ファイルの編集では、グラフのペイロードが単にファイルを読むよりも大きくなることがある。
- 検索ランキングはまだ改善の余地あり。一部のクエリ(例:Expressモジュール)ではヒットしないことがある。
- フロー検出はPythonおよびPHP/Laravelで最も強力だが、JavaScriptおよびGoは改善が必要。
- 分析は意図的に保守的であるため、大規模な依存関係グラフでは精度が低くなることがある。
どの人にとって役立つか?
- 大規模なコードベースで本当に関連する部分だけを表示させたい、LLMベースのコードレビュー・アシスタントに頼る開発者。
- AI支援CIチェックを実行し、決定論的でオフラインの方法でリスクスコア付きのレビュー・コンテキストを計算したいチーム。
- 新しいMCP互換エージェントを開発するツールメーカー;提供されたサーバーを任意のエディタやCLIに組み込むことができる。
詳細を学ぶには
- 完全な使い方ガイド:
docs/USAGE.md - コマンドリファレンス:
docs/COMMANDS.md - GitHub Actionの詳細:
docs/GITHUB_ACTION.md - ベンチマークの再現手順:
docs/REPRODUCING.md - コミュニティ:バッジバー内のDiscordリンク、ウェブサイトは code‑review‑graph.com です。
結論 – code‑review‑graph は、言語に配慮した、インクリメンタルに更新されるコードグラフを構築し、MCP経由で公開する本格的なオープンソースAIツールプロジェクトです。これにより、LLMベースのレビュアーは、はるかに小さく、より正確なコンテキストで作業できるようになります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト