研发协作
在 Claude Code…
适用于需要在 Claude Code/MCP 环境中对代码库做增量审查、变更影响分析、降低 token 消耗的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 Claude Code 中审查大型代特定
解决思路
- 安装 Claude Code 插件:运行 `claude plugin marketplace add tirth8205/code-review-graph`,再运行 `claude plugin install code-review-graph@code-review-graph`,安装后重启 Claude Code。
- 用 pip 安装并注册 MCP:运行 `pip install code-review-graph`,再运行 `code-review-graph install` 把 MCP server 注册到 Claude Code;需要 Python 3.10+ 和 uv。
- 可选启用语义搜索:运行 `pip install code-review-graph[embeddings]`,启用基于 `sentence-transformers` 的向量嵌入,用于 `semantic_search_nodes_tool`。
- 初始建图:在 Claude Code 中打开项目并运行 `Build the code review graph for this project`。
- 初始建图 slash 命令:运行 `/code-review-graph:build-graph`。
- 首次构建会解析完整代码库,约 500 文件耗时 10 秒;之后每次保存文件和 git commit 会增量更新,约 2900 文件项目低于 2 秒。
- CLI 注册 MCP server:运行 `code-review-graph install`。
- CLI 全量构建图:运行 `code-review-graph build`。
- CLI 增量更新图:运行 `code-review-graph update`。
- CLI 查看图统计:运行 `code-review-graph status`。
- CLI 持续监听:运行 `code-review-graph watch`,保存文件时自动更新图。
- CLI 可视化:运行 `code-review-graph visualize`,生成交互式 D3.js HTML 可视化。
- CLI 手动启动 MCP server:运行 `code-review-graph serve`。
- Claude Code slash 命令 `/code-review-graph:build-graph`:从头构建或重建代码图。
- Claude Code slash 命令 `/code-review-graph:review-delta`:审查上次 commit 以来的变更。
- Claude Code slash 命令 `/code-review-graph:review-pr`:做带 blast-radius 分析的完整 PR 审查。
- MCP 工具 `build_or_update_graph_tool`:构建或增量更新图。
- MCP 工具 `get_impact_radius_tool`:查找变更影响的所有文件和函数。
- MCP 工具 `get_review_context_tool`:返回 token 优化的审查结构摘要。
- MCP 工具 `query_graph_tool`:查询 callers、callees、tests、imports、inheritance。
- MCP 工具 `semantic_search_nodes_tool`:按名称或含义搜索代码实体。
- MCP 工具 `embed_graph_tool`:为语义搜索计算向量嵌入。
- MCP 工具 `list_graph_stats_tool`:查看图大小和健康统计。
- MCP 工具 `get_docs_section_tool`:获取文档章节。
- MCP 工具 `find_large_functions_tool`:查找超过行数阈值的函数和类。
- 忽略路径:在仓库根创建 `.code-review-graphignore`。
- 写入忽略模式示例:`generated/**`、`*.generated.ts`、`vendor/**`、`node_modules/**`、`dist/**`、`__pycache__/**`、`*.pyc`、`migrations/**`。
- 图在 build 和 update 时会跳过 `.code-review-graphignore` 中的路径。
- Python API 全量构建:使用 `from code_review_graph import GraphBuilder`,`builder = GraphBuilder(repo_path=...)`,`stats = builder.build()`,打印 `stats['nodes']` 和 `stats['edges']`。
- Python API 增量更新:调用 `builder.update()`,打印 `update_stats['files_updated']`。
- Python API 查询调用者:使用 `GraphQuery(repo_path=...)`,调用 `query.get_callers("authenticate_user")`。
- Python API 查询被调用者:调用 `query.get_callees("process_payment")`。
- Python API 查询覆盖测试:调用 `query.get_tests_for("payments/processor.py")`。
- Python API 查询继承链:调用 `query.get_inheritance("AdminUser")`。
- Python API 影响半径分析:使用 `ImpactAnalyzer(repo_path=...)`,调用 `analyzer.get_impact_radius("auth/models.py")`,获取 direct_callers、transitive_dependents、test_files、blast_radius_size。
- Python API 多文件影响分析:把 changed_files 列表传给 `analyzer.get_impact_radius(changed_files)`,例如来自 git diff。
- Python API 语义搜索:安装 embeddings 后,使用 `SemanticSearch(repo_path=...)`,先 `search.embed()`,再 `search.search("rate limiting middleware", top_k=5)`,打印 node、file、score。
- Python API 查找大函数:使用 `GraphQuery(repo_path=...)`,调用 `query.find_large_functions(threshold=50)`,打印 name、file、lines。
- 审查当前分支变更:运行 `/code-review-graph:review-delta`;Claude 会调用 `build_or_update_graph_tool` 同步编辑。
- 审查当前分支变更后续步骤:Claude 调用 `get_impact_radius_tool` 分析变更文件。
- 审查当前分支变更后续步骤:Claude 调用 `get_review_context_tool` 获取紧凑结构摘要。
- 审查当前分支变更后续步骤:只审查相关约 15 个文件,而不是整个代码库。
- 开发时持续监听:终端 1 运行 `code-review-graph watch`。
- 开发时持续监听:终端 2 正常运行开发工作流。
- 任意文件保存会触发只对该文件及其依赖的增量重解析。
- pre-commit hook:在 `.git/hooks/pre-commit` 中写 `#!/bin/sh` 和 `code-review-graph update`。
- 可视化依赖图:运行 `code-review-graph visualize`,在浏览器打开交互式 D3.js force-directed 图。
- 在可视化中切换边类型:calls、imports、inheritance、test coverage。
- 在可视化中按名称搜索节点。
- 检查图健康:运行 `code-review-graph status`,查看 graph 路径、节点数、边数、语言分布、最后更新时间。
- 确认支持语言:Python、TypeScript、JavaScript、Vue、Go、Rust、Java、C#、Ruby、Kotlin、Swift、PHP、Solidity、C/C++。
- 每种支持语言通过 Tree-sitter 解析 functions、classes、imports、call sites、inheritance chains、test detection。
- 添加新语言:编辑 `code_review_graph/parser.py`。
- 添加扩展名映射:在 `EXTENSION_TO_LANGUAGE` 中增加如 `.ex -> elixir`、`.exs -> elixir`。
- 添加 AST 节点类型映射:为 `elixir` 设置 `_CLASS_TYPES` 为 `defmodule`。
- 设置 `_FUNCTION_TYPES` 为 `def`、`defp`。
- 设置 `_IMPORT_TYPES` 为 `alias`、`import`、`use`、`require`。
- 设置 `_CALL_TYPES` 为 `call`。
- 在 `tests/fixtures/elixir/` 添加测试 fixture 并开 PR。
- 图存储:本地 `.code-review-graph/graph.db` SQLite,无外部数据库、无云依赖、数据不离开本机。
- 不想提交图:执行 `echo .code-review-graph/ >> .gitignore`。
- 想共享预构建图:提交 `.code-review-graph/`,节省每位开发者约 10 秒初始构建。
- 图过期时:运行 `code-review-graph update` 增量重解析变更文件。
- 如果看起来错误:运行 `code-review-graph build` 从头完整重建。
- MCP server 不连接:运行 `code-review-graph install` 重新注册。
- 验证 MCP 注册:运行 `claude mcp list`,然后重启 Claude Code。
- 找不到 uv:运行 `curl -LsSf https://astral.sh/uv/install.sh | sh` 或 `pip install uv`。
- 语义搜索不工作:运行 `pip install code-review-graph[embeddings]`。
- 计算嵌入:运行 `code-review-graph embed`,或通过 Claude 调用 `embed_graph_tool`。
- 某语言未被解析:检查文件扩展名在 `EXTENSION_TO_LANGUAGE` 中且对应 Tree-sitter grammar 已安装。
- 查看检测语言:运行 `code-review-graph status`。
- 首次构建慢是预期行为:Tree-sitter 会解析每个文件;500 文件约 10 秒;后续 `update` 通过 SHA-256 哈希比较只重解析变更文件,通常低于 2 秒。
- Token 减少流程:每次 review 或 coding task,Claude 调用 `get_impact_radius_tool` 并传入变更文件。
- 沿 call edges、import edges、test edges 追踪 blast radius,找到所有受影响的 node。
- `get_review_context_tool` 返回 156–207 token 的结构摘要,包含 callers、dependents、test coverage gaps、dependency chains。
- Claude 只读取 blast radius 中约 15 个文件,而不是整个代码库。
- 预期效果:Next.js monorepo 27732 文件,无图约 739K tokens,有图约 15K tokens,约 49× 减少。
适用边界 · 注意事项
- 未使用 Claude Code/MCP,或无法安装 code-review-graph、Python 3.10+、uv 的环境。
- 代码库很小或只是一次性任务,建图与维护成本可能高于收益。
- 项目语言不在支持列表且尚未为其添加 Tree-sitter grammar 映射时,无法获得完整解析。