トークンの無駄遣いをやめて、スマートなレビューを。
English | 简体中文 | 日本語 | 한국어 | हिन्दी
AIコーディングツールはタスクのたびにコードベース全体を再読み込みします。code-review-graph はその問題を解決します。Tree-sitter でコードの構造マップを構築し、変更を差分で追跡し、MCP を通じてAIアシスタントに必要最小限のコンテキストだけを提供します。
pip install code-review-graph # または: pipx install code-review-graph
code-review-graph install # 対応プラットフォームを自動検出して設定
code-review-graph build # コードベースを解析1つのコマンドですべてが完了します。install は使用中のAIコーディングツールを検出し、各ツールに適切なMCP設定を書き込み、プラットフォームルールにグラフ対応の指示を注入します。uvx と pip/pipx のどちらでインストールしたかを自動判別し、適切な設定を生成します。インストール後はエディタ/ツールを再起動してください。
特定のプラットフォームのみを設定する場合:
code-review-graph install --platform codex # Codexのみ設定
code-review-graph install --platform cursor # Cursorのみ設定
code-review-graph install --platform claude-code # Claude Codeのみ設定
code-review-graph install --platform kiro # Kiroのみ設定Python 3.10以上が必要です。最良の体験のためには uv のインストールを推奨します(MCP設定は利用可能な場合 uvx を使用し、そうでない場合は code-review-graph コマンドに直接フォールバックします)。
セットアップ後、プロジェクトを開いてAIアシスタントに聞いてみましょう:
Build the code review graph for this project
初回ビルドは500ファイルのプロジェクトで約10秒です。以降はファイル編集やgitコミットのたびにグラフが自動更新されます。
リポジトリはTree-sitterでASTに解析され、ノード(関数、クラス、インポート)とエッジ(呼び出し、継承、テストカバレッジ)のグラフとしてSQLiteに保存されます。レビュー時にはこのグラフを参照して、AIアシスタントが読むべきファイルの最小セットを算出します。
ファイルが変更されると、グラフは影響を受ける可能性のあるすべての呼び出し元、依存先、テストをトレースします。これが変更の「影響範囲(ブラストラディウス)」です。AIはプロジェクト全体をスキャンする代わりに、これらのファイルだけを読みます。
gitコミットやファイル保存のたびにフックが起動します。グラフは変更ファイルの差分を取り、SHA-256ハッシュで依存先を特定し、変更されたものだけを再解析します。2,900ファイルのプロジェクトでも2秒以内で再インデックスが完了します。
大規模モノレポこそトークンの無駄が最も深刻な場所です。グラフがノイズを除去し、27,700以上のファイルをレビューコンテキストから除外、実際に読むのは約15ファイルだけです。
すべての言語で関数、クラス、インポート、呼び出し箇所、継承、テスト検出の完全なTree-sitter文法をサポート。Zig、PowerShell、Julia、Svelte SFCにも対応。さらにJupyter/Databricksノートブック(.ipynb)の多言語セル対応(Python、R、SQL)やPerl XSファイル(.xs)も解析可能です。
すべての数値は6つの実際のオープンソースリポジトリ(合計13コミット)に対する自動評価ランナーの結果です。code-review-graph eval --all で再現可能です。生データは evaluate/reports/summary.md をご覧ください。
詳細なベンチマーク結果(トークン効率、影響精度、ビルド性能、既知の制限事項)については 英語版README を参照してください。
| 機能 | 詳細 |
|---|---|
| インクリメンタル更新 | 変更されたファイルのみを再解析。更新は2秒以内に完了。 |
| 23言語 + ノートブック | Python, TypeScript/TSX, JavaScript, Vue, Svelte, Go, Rust, Java, Scala, C#, Ruby, Kotlin, Swift, PHP, Solidity, C/C++, Dart, R, Perl, Lua, Zig, PowerShell, Julia, Jupyter/Databricks (.ipynb) |
| 影響範囲分析 | 変更によって影響を受ける関数、クラス、ファイルを正確に表示 |
| 自動更新フック | ファイル編集やgitコミットのたびに手動操作なしでグラフを更新 |
| セマンティック検索 | sentence-transformers、Google Gemini、MiniMax、またはOpenAI互換エンドポイント(本家OpenAI、Azure、new-api、LiteLLM、vLLM、LocalAI)によるオプションのベクトル埋め込み |
| インタラクティブ可視化 | D3.js力学レイアウトグラフ。検索、コミュニティ凡例切替、次数スケーリングノード対応 |
| ハブ・ブリッジ検出 | 最も接続の多いノードと媒介中心性によるアーキテクチャのボトルネックを発見 |
| サプライズスコアリング | 予期しない結合を検出:コミュニティ間、言語間、周辺からハブへのエッジ |
| ナレッジギャップ分析 | 孤立ノード、テストされていないホットスポット、薄いコミュニティ、構造的弱点を特定 |
| レビュー質問の自動生成 | グラフ分析(ブリッジ、ハブ、サプライズ)からレビュー質問を自動生成 |
| エッジ信頼度 | エッジに3段階の信頼度スコアリング(EXTRACTED/INFERRED/AMBIGUOUS)とfloatスコア |
| グラフ走査 | 任意のノードからBFS/DFSで自由に探索。深さとトークン予算を設定可能 |
| エクスポート形式 | GraphML(Gephi/yEd)、Neo4j Cypher、Obsidianボールト(ウィキリンク付き)、SVG静的グラフ |
| グラフ差分 | グラフのスナップショットを時系列で比較:ノード・エッジの追加/削除、コミュニティの変更 |
| トークンベンチマーク | ナイーブな全ファイル読み込みとグラフクエリのトークン数を質問ごとに比較 |
| メモリループ | Q&A結果をMarkdownとして保存し再取り込み。クエリからグラフが成長 |
| コミュニティ自動分割 | グラフの25%を超えるコミュニティはLeidenアルゴリズムで再帰的に分割 |
| 実行フロー | エントリーポイントからの呼び出しチェーンを重み付き重要度でソートしてトレース |
| コミュニティ検出 | Leidenアルゴリズムで関連コードをクラスタリング。大規模グラフ向け解像度スケーリング対応 |
| アーキテクチャ概要 | コミュニティ構造から自動生成されるアーキテクチャマップ(結合度警告付き) |
| リスクスコア付きレビュー | detect_changes が差分を影響する関数、フロー、テストギャップにマッピング |
| リファクタリングツール | リネームプレビュー、フレームワーク対応のデッドコード検出、コミュニティ駆動の提案 |
| Wiki生成 | コミュニティ構造からMarkdown Wikiを自動生成 |
| マルチリポジトリ管理 | 複数リポジトリを登録し、横断検索が可能 |
| MCPプロンプト | 5つのワークフローテンプレート:レビュー、アーキテクチャ、デバッグ、オンボーディング、マージ前チェック |
| 全文検索 | FTS5によるハイブリッド検索(キーワードとベクトル類似度の組み合わせ) |
| ローカルストレージ | .code-review-graph/ 内のSQLiteファイル。外部DB不要、クラウド依存なし。 |
| ウォッチモード | 作業中にグラフを継続的に更新 |
スラッシュコマンド
| コマンド | 説明 |
|---|---|
/code-review-graph:build-graph |
コードグラフのビルドまたは再ビルド |
/code-review-graph:review-delta |
最後のコミット以降の変更をレビュー |
/code-review-graph:review-pr |
影響範囲分析付きのフルPRレビュー |
CLIリファレンス
code-review-graph install # 全プラットフォームを自動検出して設定
code-review-graph install --platform <name> # 特定のプラットフォームのみ設定
code-review-graph build # コードベース全体を解析
code-review-graph update # インクリメンタル更新(変更ファイルのみ)
code-review-graph status # グラフの統計情報
code-review-graph watch # ファイル変更時に自動更新
code-review-graph visualize # インタラクティブHTMLグラフを生成
code-review-graph visualize --format graphml # GraphML形式でエクスポート
code-review-graph visualize --format svg # SVG形式でエクスポート
code-review-graph visualize --format obsidian # Obsidianボールトとしてエクスポート
code-review-graph visualize --format cypher # Neo4j Cypher形式でエクスポート
code-review-graph wiki # コミュニティからMarkdown Wikiを生成
code-review-graph detect-changes # リスクスコア付き変更影響分析
code-review-graph register <path> # マルチリポジトリレジストリにリポジトリを登録
code-review-graph unregister <id> # レジストリからリポジトリを削除
code-review-graph repos # 登録済みリポジトリの一覧表示
code-review-graph eval # 評価ベンチマークの実行
code-review-graph serve # MCPサーバーの起動28のMCPツール
グラフのビルド後、AIアシスタントがこれらのツールを自動的に使用します。
| ツール | 説明 |
|---|---|
build_or_update_graph_tool |
グラフのビルドまたはインクリメンタル更新 |
get_minimal_context_tool |
超コンパクトなコンテキスト(約100トークン) -- 最初にこれを呼び出す |
get_impact_radius_tool |
変更ファイルの影響範囲 |
get_review_context_tool |
構造サマリー付きトークン最適化レビューコンテキスト |
query_graph_tool |
呼び出し元、呼び出し先、テスト、インポート、継承のクエリ |
traverse_graph_tool |
任意のノードからトークン予算付きBFS/DFS走査 |
semantic_search_nodes_tool |
名前や意味でコードエンティティを検索 |
embed_graph_tool |
セマンティック検索用のベクトル埋め込みを計算 |
list_graph_stats_tool |
グラフのサイズと健全性 |
get_docs_section_tool |
ドキュメントセクションの取得 |
find_large_functions_tool |
行数閾値を超える関数/クラスの検出 |
list_flows_tool |
重要度順の実行フロー一覧 |
get_flow_tool |
単一の実行フローの詳細取得 |
get_affected_flows_tool |
変更ファイルに影響するフローの検出 |
list_communities_tool |
検出されたコードコミュニティの一覧 |
get_community_tool |
単一コミュニティの詳細取得 |
get_architecture_overview_tool |
コミュニティ構造からのアーキテクチャ概要 |
detect_changes_tool |
コードレビュー用のリスクスコア付き変更影響分析 |
get_hub_nodes_tool |
最も接続の多いノード(アーキテクチャのホットスポット)の検出 |
get_bridge_nodes_tool |
媒介中心性によるボトルネックの検出 |
get_knowledge_gaps_tool |
構造的弱点とテストされていないホットスポットの特定 |
get_surprising_connections_tool |
予期しないコミュニティ間結合の検出 |
get_suggested_questions_tool |
分析から自動生成されたレビュー質問 |
refactor_tool |
リネームプレビュー、デッドコード検出、提案 |
apply_refactor_tool |
プレビュー済みリファクタリングの適用 |
generate_wiki_tool |
コミュニティからMarkdown Wikiを生成 |
get_wiki_page_tool |
特定のWikiページの取得 |
list_repos_tool |
登録済みリポジトリの一覧 |
cross_repo_search_tool |
全登録リポジトリを横断検索 |
MCPプロンプト(5つのワークフローテンプレート):
review_changes, architecture_map, debug_issue, onboard_developer, pre_merge_check
設定
インデックス対象から除外するパスを指定するには、リポジトリルートに .code-review-graphignore ファイルを作成します:
generated/**
*.generated.ts
vendor/**
node_modules/**
注意:gitリポジトリでは追跡対象ファイルのみがインデックスされます(git ls-files)。そのため、gitignoreされたファイルは自動的にスキップされます。.code-review-graphignore は追跡対象ファイルの除外や、gitが利用できない環境で使用してください。
オプションの依存グループ:
pip install code-review-graph[embeddings] # ローカルベクトル埋め込み (sentence-transformers)
pip install code-review-graph[google-embeddings] # Google Gemini埋め込み
pip install code-review-graph[communities] # コミュニティ検出 (igraph)
pip install code-review-graph[eval] # 評価ベンチマーク (matplotlib)
pip install code-review-graph[wiki] # LLMサマリー付きWiki生成 (ollama)
pip install code-review-graph[all] # 全オプション依存OpenAI互換の埋め込み(本家OpenAI、Azure、または自前のゲートウェイ: new-api / LiteLLM / vLLM / LocalAI / Ollama openaiモード)は追加インストール不要です。環境変数を設定し、embed_graph に provider="openai" を渡すだけで動作します:
export CRG_OPENAI_BASE_URL=http://127.0.0.1:3000/v1 # または https://api.openai.com/v1
export CRG_OPENAI_API_KEY=sk-...
export CRG_OPENAI_MODEL=text-embedding-3-small # ゲートウェイが提供するモデル名
# 任意:
export CRG_OPENAI_DIMENSION=1536 # 次元を固定(v3モデルは次元削減対応)
export CRG_OPENAI_BATCH_SIZE=100 # バッチ上限が厳しいゲートウェイで下げる
# (例: Qwen text-embedding-v4 は上限10)base URLがlocalhost(127.0.0.1、localhost、0.0.0.0、::1)を指している場合、クラウドegress警告は自動的にスキップされます。
モデル選択のヒント。
-preview/-beta/-exp付きのmodel ID(例:google/gemini-embedding-2-preview)は長期運用には避けてください。preview モデルは重みが変更される(次元が変わると全ノード re-embed 必須)か、予告なく deprecate される可能性があります。安定版 GA モデル推奨:text-embedding-3-small/text-embedding-3-large(OpenAI)、Qwen/Qwen3-Embedding-8B(vLLM / LocalAI 自前ホスト経由)、またはgemini-embedding-001(ネイティブ Gemini provider 経由、GOOGLE_API_KEYが必要)。また注意:現状
code-review-graphは関数シグネチャのみを埋め込みます(ノードあたり約10トークン、例:"parse_file function (path: str) returns Tree")。長 context で関数 body を理解する能力で差をつけるモデル(Gemini 2 や Qwen3-8B の MTEB-code SOTA スコア)は、この入力長では小型モデルとの差がかなり縮まります。Body / docstring 埋め込みはフォローアップ拡張として追跡中です。
git clone https://github.com/tirth8205/code-review-graph.git
cd code-review-graph
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest新しい言語の追加
code_review_graph/parser.py を編集し、EXTENSION_TO_LANGUAGE に拡張子を追加します。合わせて _CLASS_TYPES、_FUNCTION_TYPES、_IMPORT_TYPES、_CALL_TYPES にノードタイプのマッピングを追加してください。テストフィクスチャを含めてPRを作成してください。
MIT。詳細は LICENSE を参照してください。
code-review-graph.com
pip install code-review-graph && code-review-graph install
Codex、Claude Code、Cursor、Windsurf、Zed、Continue、OpenCode、Antigravity、Kiroに対応








