一、概述
review 是 Claude Code 内置的一项核心技能(Skill),专门用于审查 Pull Request(PR)。当开发者在终端中调用 /review 命令时,Claude Code 会自动分析当前分支上的待审变更,基于代码库上下文给出全面的审查意见。这项功能将 AI 代码审查能力直接集成到命令行工作流中,无需切换工具或离开终端环境。
review 技能的设计目标是帮助开发团队在代码合入前发现潜在问题,提升代码质量,同时减轻人工审查的负担。它不仅可以检测代码缺陷和安全漏洞,还能评估代码风格、架构合理性以及测试覆盖度等方面。
二、技能介绍与调用方式
review 技能作为一个全局可用的 Slash Command(斜杠命令),在任何对话中都可以直接调用。其调用方式极为简洁,只需在 Claude Code 命令行中输入以下命令:
/review
Claude Code 会自动检测当前 Git 分支相对于其基准分支(通常是 main 或 master)的差异,获取所有待审查的变更内容。无需额外指定分支名称或文件路径,工具会自动推断审查范围。
调用前提:当前工作目录必须是一个 Git 仓库,且当前分支与基准分支之间存在待审查的差异(即尚未合入的提交)。如果当前分支没有未合入的变更,review 技能会提示无变更可审查。
三、功能与目的
review 技能的核心目的是高效审查 Pull Request,确保代码质量。它围绕以下几个关键目标展开:
- 缺陷检测:自动发现代码中的逻辑错误、边界条件处理不当、空指针引用等常见编程错误。
- 安全隐患:识别潜在的安全漏洞,如 SQL 注入、XSS 攻击、不安全的认证方式、敏感信息硬编码等。
- 代码质量评估:检查代码是否符合项目规范,是否存在重复代码、过长函数、过度耦合等设计问题。
- 测试覆盖评估:分析新增代码是否有对应的单元测试或集成测试,评估测试的充分性。
- 可维护性分析:评估代码的可读性、注释质量、命名规范以及未来扩展的便利性。
- 性能考量:识别可能的性能瓶颈,如不必要的循环、大对象重复创建、数据库查询优化等。
通过这些维度的全面审查,review 技能帮助开发团队在代码合入前捕获尽可能多的问题,将代码审查从被动的人工检查转变为主动的 AI 辅助质量保障。
四、工作原理(与 gh CLI 的集成)
review 技能在底层与 GitHub CLI(gh)深度集成,利用 gh 命令获取 PR 相关的元数据和上下文信息。其工作流程如下:
- 检测基准分支:Claude Code 通过 Git 命令自动识别当前分支的基准分支(如 main、master 或 develop),确定审查范围。
- 获取变更差异:使用 git diff 命令获取当前分支与基准分支之间的所有文件变更,包括新增、修改和删除的代码行。
- 关联 PR 上下文:如果当前分支存在关联的 Pull Request(通过 gh pr view 检测),review 技能会获取 PR 的标题、描述、评论和讨论历史,作为审查的额外上下文。
- 读取代码库上下文:除了变更内容本身,Claude Code 还会读取项目中相关文件(如被修改函数的定义、依赖接口等),确保审查意见基于完整的代码库理解。
- 生成审查报告:基于以上所有信息,Claude Code 综合分析变更的影响、风险和收益,输出结构化的审查意见。
以下是通过 gh CLI 手动获取 PR 信息的示例命令,这些命令在 review 技能内部自动执行:
# 查看当前分支关联的 PR
gh pr view
# 获取 PR 的详细变更
gh pr diff
# 查看 PR 上的评论
gh pr view --comments
五、审查内容详解
review 技能会对 Pull Request 进行全方面的审查,涵盖以下几个核心维度:
5.1 变更逻辑分析
深入分析每一处代码变更的逻辑正确性,判断是否有边界条件遗漏、状态转换错误、数据结构使用不当等问题。Claude Code 会基于对代码库整体架构的理解,评估变更是否可能引入回归问题。
5.2 代码规范与风格
检查代码是否符合项目的编码规范,包括命名约定、缩进风格、注释规范等。虽然 review 技能不会替代 linter,但它能从语义层面发现格式工具无法捕捉的风格问题,如不一致的抽象层次、不合理的职责划分等。
5.3 依赖与接口变更
特别关注新增或修改的 API 接口、外部依赖、配置项等,评估其向后兼容性以及可能对其他模块产生的影响。对于接口变更,review 会检查调用方是否已同步更新。
5.4 测试完整性
分析新增代码是否有对应的测试覆盖,判断测试用例是否覆盖了关键路径、边界条件和异常情况。如果发现代码变更量较大但测试缺失,会给出明确的改进建议。
审查深度提示:review 技能的审查深度取决于代码库的大小和变更的复杂度。对于大型代码库的复杂 PR,建议在调用 /review 前先确保 Claude Code 已经加载了足够的代码库上下文(通过对话或索引),以获得更准确的审查结果。
六、审查输出格式
review 技能的输出是一份结构化的审查报告,通常包含以下几个部分:
- 总体评价:对 PR 的总体质量给出概括性评价,包括变更的合理性和潜在风险等级。
- 文件级审查:按文件逐一列出审查意见,每个意见标注问题类型(如 Bug、安全、风格、性能等)和严重程度。
- 具体建议:针对发现的问题给出具体的修改建议,并附上参考代码示例。
- 积极反馈:也会标注出代码中做得好的部分,鼓励良好的编码实践。
- 改进优先级:按照严重程度对问题排序,帮助开发者优先处理最关键的问题。
审查输出的典型格式示例如下:
## PR 审查报告: feature/add-login
### 总体评价
本次 PR 实现了用户登录功能,整体结构清晰,但存在 2 个中
等风险问题和 3 个建议优化项。
### src/auth/login.ts
- [高风险] 第 45 行: 密码错误时返回 "用户不存在" 信息,
存在用户枚举风险。建议返回通用错误信息。
- [中等] 第 78 行: Token 未设置过期时间。建议添加
expiresIn 参数。
### 积极反馈
- 测试覆盖率达到 85%,覆盖了主要登录流程。
- 错误处理逻辑完善,使用了统一的错误码体系。
七、使用场景
review 技能适用于多种团队协作和代码审查场景:
- 日常 PR 审查:开发者在提交 PR 后、请求队友审查前,先用 /review 自我审查一遍,提前发现并修复问题。
- 快速反馈:团队 reviewer 在收到 PR 通知后,先用 /review 获取 AI 审查报告,作为人工审查的参考起点,提高审查效率。
- 新人代码审查:团队成员(尤其是新人)提交 PR 后,AI 审查可以帮助发现基础问题,减轻资深开发者的人工审查负担。
- 代码合入前检查:在 CI/CD 流程中集成 /review 命令,作为代码合入前的自动化质量门禁。
- 大规模重构审查:当代码变更量很大时,人工审查难以面面俱到,AI 审查可以作为补充手段覆盖更多细节。
- 跨时区协作:团队成员分布在不同的时区,AI 审查可以在人工 reviewer 上线前提供即时反馈。
注意:review 技能的审查意见仅供参考,不应完全替代人工审查。AI 审查虽然能发现许多问题,但对于业务逻辑的深层次理解、团队特有的编码约定、以及涉及产品决策的变更,仍需要人工 reviewer 的判断。最佳实践是将 AI 审查作为人工审查的前置步骤和辅助工具。
八、最佳实践
为充分发挥 review 技能的效果,以下是一些经过验证的最佳实践:
- 保持小 PR:尽量保持 Pull Request 的变更量在合理范围内(建议不超过 400 行),小 PR 的审查结果更准确、更有针对性。
- 先自审再调用:在调用 /review 之前,先确保自己的代码已经过基本自审和测试,避免 AI 报告过多琐碎问题影响审查效率。
- 提供足够上下文:如果 PR 涉及复杂的功能修改,建议先在与 Claude Code 的对话中描述修改的背景和目的,再调用 /review 获取更深入的审查。
- 结合人工审查:将 AI 审查报告作为人工审查的参考清单,人工 reviewer 重点关注 AI 报告中标记的高风险项以及 AI 难以判断的业务逻辑正确性。
- 定期审查审查质量:团队可以定期回顾 AI 审查报告的质量,评估其准确性和实用性,以此调整使用方式。
- 配置基准分支:确保 Git 仓库的默认分支设置正确,review 技能需要准确的基准分支来判断变更范围。
效率技巧:可以在提交 PR 之前先使用 git commit 完成本地提交,然后立即使用 /review 进行自审。发现的问题在推送前修复,可以避免 PR 上出现大量修改记录,保持 PR 历史的整洁。
九、核心要点总结
1. 便捷调用:/review 是一个 Slash Command,一键即可触发完整的 PR 审查流程。
2. 全自动审查:自动检测分支差异、获取 PR 上下文、生成结构化审查报告。
3. 多维度分析:覆盖缺陷检测、安全审计、代码质量、测试覆盖、性能评估等多个维度。
4. gh CLI 集成:底层深度集成 GitHub CLI,自动关联 PR 元数据增强审查准确性。
5. 辅助定位:AI 审查是人工审查的辅助工具,不能完全替代人工 reviewer 的判断。
6. 持续优化:配合小 PR、充分上下文和团队 review 文化,可获得最佳审查效果。
7. 广泛适用:适用于日常审查、新人指导、大规模重构、跨时区协作等多种场景。
review 技能是 Claude Code 在团队协作和代码质量保障方面最具实用价值的功能之一。它将 AI 代码审查能力无缝集成到命令行工作流中,帮助开发团队以更低的成本获得更高的代码质量保障。无论是个人开发者快速自审,还是团队进行高效协作审查,review 技能都能显著提升代码审查的效率和效果。