Skip to content

Code Review 自动化代码审查插件

Code Review 插件使用多个并行的专业 Agent 自动审查 Pull Request,通过信心度评分系统过滤误报,确保只报告真正重要的高质量问题。

概述

Code Review 插件是 Claude Code 官方提供的自动化 PR 审查工具。它采用独特的多 Agent 并行架构,结合信心度评分机制,能够高效、准确地发现代码问题。

核心特性

特性说明
多 Agent 并行4 个 Agent 同时工作,加速审查过程
信心度评分0-100 分评分系统,仅报告 ≥80 分的问题
CLAUDE.md 合规自动检查是否符合项目编码规范
内联评论直接在 PR 中发表行级评论
智能建议小修复(≤5行)提供可直接提交的代码建议

工作原理

mermaid
graph TD
    A[/code-review] --> B[预检查<br/>Haiku Agent]
    B --> C{PR 可审查?}
    C -->|否| D[停止处理]
    C -->|是| E[发现 CLAUDE.md<br/>Haiku Agent]

    E --> F[PR 摘要<br/>Sonnet Agent]
    F --> G[并行审查]

    G --> H[2x Sonnet<br/>CLAUDE.md 合规]
    G --> I[2x Opus<br/>Bug 检测]

    H --> J[问题验证<br/>并行 Subagents]
    I --> J

    J --> K[过滤低信心问题]
    K --> L[发表评论]

    style A fill:#e3f2fd
    style G fill:#fff3e0
    style L fill:#c8e6c9

安装与配置

插件安装

bash
# 安装 code-review 插件
/plugin install code-review@claude-plugins-official

前置要求

  1. GitHub CLI:需要安装并认证 gh 命令行工具
  2. MCP GitHub 工具:用于发表内联评论
bash
# 安装 GitHub CLI
brew install gh  # macOS
# 或
sudo apt install gh  # Ubuntu

# 认证 GitHub
gh auth login

目录结构

plugins/code-review/
├── .claude-plugin/
│   └── plugin.json
├── README.md
└── commands/
    └── code-review.md

配置文件 (plugin.json)

json
{
  "name": "code-review",
  "description": "Automated code review for pull requests using multiple specialized agents with confidence-based scoring",
  "version": "1.0.0",
  "author": {
    "name": "Boris Cherny",
    "email": "boris@anthropic.com"
  }
}

核心命令

/code-review

审查当前分支的 Pull Request。

语法

bash
# 在终端输出审查结果
/code-review

# 直接在 PR 中发表内联评论
/code-review --comment

允许的工具

yaml
allowed-tools:
  - Bash(gh issue view:*)
  - Bash(gh search:*)
  - Bash(gh issue list:*)
  - Bash(gh pr comment:*)
  - Bash(gh pr diff:*)
  - Bash(gh pr view:*)
  - Bash(gh pr list:*)
  - mcp__github_inline_comment__create_inline_comment

7 步审查流程

Step 1: 预检查

执行者:Haiku Agent(快速、低成本)

检查项目

  • PR 是否已关闭?
  • PR 是否是草稿状态?
  • PR 是否已被其他人评审?
  • PR 是否标记为不需要审查?

如果任何条件为真:停止处理,输出原因。

mermaid
graph LR
    A[预检查] --> B{已关闭?}
    B -->|是| C[停止]
    B -->|否| D{草稿?}
    D -->|是| C
    D -->|否| E{已评审?}
    E -->|是| C
    E -->|否| F{无需审查?}
    F -->|是| C
    F -->|否| G[继续]

    style C fill:#ffcdd2
    style G fill:#c8e6c9

Step 2: CLAUDE.md 发现

执行者:Haiku Agent

任务

  1. 查找项目根目录的 CLAUDE.md
  2. 查找修改文件目录中的 CLAUDE.md
  3. 返回所有相关的编码规范文件路径

示例输出

Found CLAUDE.md files:
- /CLAUDE.md (root)
- /src/CLAUDE.md
- /src/components/CLAUDE.md

Step 3: PR 摘要

执行者:Sonnet Agent

任务

  • 查看 PR 的所有变更
  • 生成简洁的变更摘要
  • 识别关键修改区域

示例输出

markdown
## PR Summary

This PR adds user authentication:
- New `AuthService` class in `src/services/`
- Login/logout endpoints in `src/api/`
- JWT token handling
- Unit tests for auth flow

Step 4: 并行审查

4 个 Agent 同时工作

Agent模型任务
Sonnet #1SonnetCLAUDE.md 合规检查(前半部分文件)
Sonnet #2SonnetCLAUDE.md 合规检查(后半部分文件)
Opus #1OpusBug 检测(前半部分文件)
Opus #2OpusBug 检测(后半部分文件)

CLAUDE.md 合规检查

  • 对比修改代码与 CLAUDE.md 指南
  • 只考虑与文件路径共享的 CLAUDE.md
  • 检查命名约定、代码风格、架构模式

Bug 检测

  • 扫描明显的 bugs
  • 关注逻辑错误、类型问题、安全漏洞
  • 仅在 diff 中进行,不读取额外上下文

Step 5: 问题验证

执行者:多个并行 Subagents

任务:对每个发现的问题进行二次验证

问题类型验证 Agent
Bug / 逻辑问题Opus
CLAUDE.md 违规Sonnet

验证过程

  1. 重新阅读相关代码
  2. 确认问题确实存在
  3. 评估信心度分数

Step 6: 问题过滤

规则

  • 移除未通过验证的问题
  • 移除信心度 < 80 的问题
  • 保留高信号问题列表

排除的误报类型

类型说明
预先存在问题PR 之前就存在的问题
Linter 可检测ESLint、TypeScript 等工具能捕获的
风格偏好纯粹的个人偏好差异
需要外部上下文需要额外信息才能验证的
显式沉默CLAUDE.md 中明确豁免的

Step 7: 发表评论

无问题时

✅ No issues found

Code review completed. No significant issues were identified.

有问题时

对每个问题使用 mcp__github_inline_comment__create_inline_comment 发表内联评论:

  • 小修复(≤5行):包含可直接提交的代码建议
  • 大修复:提供高层描述和修复提示

内联评论示例

markdown
⚠️ **Potential null pointer exception**

The `user` object could be null here if authentication fails.

**Confidence: 92/100**

**Suggested fix:**
```suggestion
if (user == null) {
  throw new AuthenticationError('User not found');
}
const email = user.email;

---

## 信心度评分系统

### 评分标准

| 分数范围 | 含义 | 处理方式 |
|----------|------|----------|
| **90-100** | 确定的严重问题 | 必须报告 |
| **80-89** | 重要问题需要关注 | 报告 |
| **60-79** | 可能是问题 | 不报告(可能误报) |
| **40-59** | 不确定 | 不报告 |
| **0-39** | 很可能是误报 | 不报告 |

### 评分因素

```mermaid
graph TD
    A[信心度评分] --> B[确定性]
    A --> C[严重性]
    A --> D[可验证性]

    B --> B1[代码明确表明问题]
    B --> B2[有多个证据支持]

    C --> C1[安全漏洞: +20]
    C --> C2[数据丢失风险: +15]
    C --> C3[功能错误: +10]

    D --> D1[可复现: +10]
    D --> D2[有测试失败: +15]

    style A fill:#e3f2fd

示例评分

问题信心度原因
SQL 注入漏洞95明确的安全风险,可验证
空指针异常88代码路径可追踪,可能触发
命名不规范45主观,非功能性
可能的性能问题60需要实际测量验证

CLAUDE.md 集成

CLAUDE.md 的作用

CLAUDE.md 是项目的编码规范文件,code-review 插件会:

  1. 自动发现所有相关的 CLAUDE.md
  2. 根据文件路径匹配规则
  3. 检查代码是否符合规范

CLAUDE.md 示例

markdown
# Project Coding Standards

## Naming Conventions
- Use camelCase for variables and functions
- Use PascalCase for classes and types
- Prefix interfaces with 'I' (e.g., IUserService)

## Error Handling
- Always use try-catch for async operations
- Log errors before re-throwing
- Never swallow exceptions silently

## Testing
- Every public method must have unit tests
- Use descriptive test names: `should_doX_when_Y`

路径匹配规则

/CLAUDE.md                    → 适用于所有文件
/src/CLAUDE.md               → 适用于 src/ 下的文件
/src/components/CLAUDE.md    → 适用于 src/components/ 下的文件

实战示例

示例 1:基础代码审查

bash
# 切换到功能分支
git checkout feature/user-auth

# 运行代码审查
/code-review

输出示例

🔍 Code Review Report

## Summary
Reviewed PR #42: Add user authentication

## Issues Found (3)

### 1. SQL Injection Risk (Confidence: 94)
📍 src/api/users.ts:45

The query uses string concatenation instead of parameterized queries.

### 2. Missing Error Handling (Confidence: 85)
📍 src/services/auth.ts:78

Async operation without try-catch block.

### 3. CLAUDE.md Violation (Confidence: 82)
📍 src/utils/helpers.ts:12

Function name uses snake_case instead of camelCase.

示例 2:带评论的审查

bash
# 审查并发表 PR 评论
/code-review --comment

结果

  • 在 GitHub PR 页面直接看到内联评论
  • 每个问题标注在具体代码行
  • 包含信心度分数和修复建议

示例 3:审查特定 PR

bash
# 先获取 PR 信息
gh pr view 123

# 切换到对应分支
gh pr checkout 123

# 运行审查
/code-review --comment

最佳实践

使用建议

场景建议
日常开发使用 /code-review 本地预览
正式审查使用 /code-review --comment 发表评论
大型 PR考虑拆分 PR 以获得更好的审查效果
敏感代码结合人工审查,不完全依赖自动化

提高审查质量

  1. 维护好 CLAUDE.md:清晰的编码规范帮助更准确的合规检查
  2. 保持 PR 小而专注:小 PR 审查更准确
  3. 提供 PR 描述:帮助 Agent 理解变更意图
  4. 配置 .gitignore:排除不需要审查的文件

处理审查结果

mermaid
graph TD
    A[收到审查结果] --> B{信心度 ≥ 90?}
    B -->|是| C[立即修复]
    B -->|否| D{信心度 80-89?}
    D -->|是| E[评估后决定]
    D -->|否| F[通常可忽略]

    C --> G[重新审查]
    E --> G

    style C fill:#ffcdd2
    style E fill:#fff3e0
    style F fill:#c8e6c9

常见问题

Q: 为什么有些明显的问题没有被发现?

A: 可能原因:

  1. 问题需要更多上下文才能识别
  2. 问题的信心度低于 80 被过滤
  3. 属于 Linter 应该捕获的问题

Q: 如何减少误报?

A:

  1. 完善 CLAUDE.md 中的规则说明
  2. 在 CLAUDE.md 中明确豁免某些模式
  3. 反馈误报案例以改进插件

Q: 审查很慢怎么办?

A:

  1. 确保网络连接稳定
  2. 考虑拆分大型 PR
  3. 使用 --comment 模式异步处理

Q: 如何只审查特定文件?

A: 目前不支持。建议创建只包含相关文件的 PR。


总结

Code Review 插件提供了高质量的自动化 PR 审查:

  1. 多 Agent 并行 - 4 个专业 Agent 同时工作
  2. 信心度过滤 - 仅报告 ≥80 分的高质量问题
  3. CLAUDE.md 集成 - 自动检查编码规范合规
  4. 内联评论 - 直接在 PR 中标注问题

结合人工审查使用,可以显著提高代码质量和审查效率。


参考资源


本文档基于 code-review 插件 v1.0.0 编写

基于 MIT 许可证发布。内容版权归作者所有。