JetBrains Code Review
前置条件
- 先加载
jetbrains-ide-mcp,遵循其projectPath、工具路由和降级规则。 - 读取 Git status/diff,确认本轮真实修改范围。
- 用户指定审查范围时,以用户范围为准。
Review Process
1. 确定初始范围
默认从 git diff --name-only 中的代码文件开始。排除纯生成物、二进制文件和用户未要求审查的无关文件。
不能机械地把审查范围永久限制在改动文件。如果 diff 涉及以下内容,扩展到直接受影响的调用方或模块:
- 公开符号、方法签名或类型变化
- 接口、抽象类、泛型约束或继承关系变化
- 跨模块 API 或配置键变化
- 依赖、构建配置或数据库 schema 变化
使用 search_symbol、get_symbol_info、引用搜索和构建结果确定影响范围,不做全仓无目的扫描。
2. 运行 IDE Inspection
对审查范围内的改动文件调用:
get_file_problems(errorsOnly=false)
记录文件、行号、严重程度和原始描述。工具调用失败不是代码问题,必须单独处理。
3. 构建和测试
- 调用
build_project验证受影响文件、模块或整个项目。 - 行为变化时运行相关测试或运行配置。
- Python 等解释型项目若只有 limited build diagnostics,以 Inspection、测试和项目原生命令补充验证。
- 依赖发生变化时调用
get_project_dependencies,并核对项目依赖文件的 diff。
4. 判断问题来源
只根据证据分类:
- 本轮直接引入:问题落在 diff 新增/修改行,或能由本轮修改稳定复现。
- 本轮影响:问题位于其他文件,但构建、引用关系或复现证据表明由本轮 API/类型变化触发。
- 既有问题:修改前基线、历史输出或其他明确证据证明问题已存在。
- 来源未确认:无法从 diff、基线或复现证据确认来源。
未修改文件中的问题不自动等于既有问题。没有证据时不要声称“本轮引入”或“既有”。
5. 输出报告
## 代码审查报告
### ERROR(阻塞)
- path/File.java:42 — 类型不匹配 — String expected, got int
来源:本轮直接引入 / 本轮影响 / 既有问题 / 来源未确认
证据:对应 diff、构建输出或复现步骤
### WARNING(建议修复)
- path/File.java:15 — 过时 API — 使用了已弃用方法
来源:本轮直接引入
证据:修改行位于当前 diff
### 验证
- IDE Inspection:检查 X 个文件
- Build:通过 / 失败
- Tests:命令或运行配置及结果
### 结论
- 阻塞:X 条
- 非阻塞:Y 条
- 来源未确认:Z 条
没有问题时也列出实际执行过的 Inspection、构建和测试,不能只写“检查通过”。
修复后的复查
修复后重新运行对应文件的 get_file_problems(errorsOnly=false)、构建和相关测试。需要继续修复时调用 jetbrains-code-fix。