Skip to content

代码审查流程

PR 审查和代码质量把关的 Skill 编排参考。核心原则:审查者只读不改,修复者只改不审——避免同一个人/会话既当裁判又当运动员。

适用场景

  • PR / MR 代码审查
  • 重构后的质量回归检查
  • 功能开发完成后的自我审查
  • 跨团队 code review 规范化

核心理念

理念说明
Judge/Fix 分离审查和修复在不同会话中进行,避免自我合理化
多维度覆盖不只看逻辑正确性,还看安全、性能、可维护性、测试覆盖
置信度过滤只报告高置信度的问题,不做「可能有问题」的噪音式 review
Fix-First审查意见不是「你应该改成 X」,而是「这里有问题,理由是 Y」

前置准备

Skill来源安装方式说明
code-review-and-qualityaddyosmani/agent-skillsnpx skills add addyosmani/agent-skills --skill code-review-and-quality生产级代码审查
code-simplificationaddyosmani/agent-skillsnpx skills add addyosmani/agent-skills --skill code-simplification代码简化和可读性优化
code-reviewcode-reviewnpx skills add --skill code-reviewPR 审查 Skill
requesting-code-reviewsuperpowers预装(Claude Code 插件)完成任务后请求审查
receiving-code-reviewsuperpowers预装(Claude Code 插件)收到审查反馈后的处理流程
code-reviewereverything-claude-codenpx skills add affaan-m/everything-claude-code --skill code-reviewer多维度代码审查 Agent

审查与修复的分离

最有效的 AI 代码审查方式是在独立会话中进行。审查者不应看到代码编写过程,只看到最终产出。这避免了「理解作者意图后合理化问题」的偏差。

完整流程

Phase 1: 变更理解 — 知道审什么

先搞清楚这次变更的范围和目的,再开始审查。

步骤Skill / 命令作用备注
1.1git diff查看完整变更范围了解涉及哪些文件和模块
1.2PR 描述阅读 PR 描述,理解变更目的没有 PR 描述的不审
1.3关联上下文查看相关 issue、PRD、设计文档确保理解「为什么改」

Phase 2: 多维度审查 — 分层扫描

从快到慢,分层审查代码变更。

步骤Skill / 命令作用备注
2.1静态分析Lint + Type Check(自动化门禁)应在 CI 中自动运行
2.2/code-review-and-quality逻辑正确性、边界条件、错误处理聚焦高置信度问题
2.3安全审查检查注入、XSS、敏感数据泄露、认证绕过涉及用户输入的代码必查
2.4性能审查N+1 查询、不必要的渲染、内存泄漏涉及数据库或循环的代码必查
2.5测试审查新增代码是否有对应测试?测试质量如何?没有测试的功能代码 = 审查不通过

审查维度权重参考:

维度权重关注点
正确性30%逻辑错误、边界条件、竞态条件
安全性25%注入、XSS、权限、敏感数据
可维护性20%命名、结构、重复、耦合度
性能15%查询效率、渲染性能、资源使用
测试覆盖10%有无测试、测试质量、边界覆盖

Phase 3: 反馈输出 — 结构化意见

审查意见应该是结构化的,不是散文。

步骤Skill / 命令作用备注
3.1分级标注每条意见标注严重级别:Blocker / Warning / NitBlocker 必须修复,Nit 可忽略
3.2定位准确指出具体文件和行号不要说「某处可能有问题」
3.3说明理由解释为什么是问题,不只是「改成 X」帮助作者理解,而不是服从

审查意见模板:

markdown
### [Blocker] SQL 注入风险 — `src/api/users.ts:42`
**问题**: 用户输入直接拼接到 SQL 查询中
**理由**: 攻击者可通过构造恶意输入执行任意 SQL
**建议**: 使用参数化查询

Phase 4: 修复 — 在独立会话中处理

收到审查反馈后,在新会话中处理。

步骤Skill / 命令作用备注
4.1/receiving-code-review理解每条反馈,区分有效建议和误判不要盲目接受所有意见
4.2逐条处理Blocker 必须修复;Warning 评估后决定;Nit 可选修复后运行测试确认
4.3/code-simplification如果 review 指出可读性问题,简化相关代码只改被指出的部分,不要顺手重构
4.4重新提交修复后 push,请求 re-review只 review 新改动,不重复审查已通过部分

快速参考

审查方(独立会话):
git diff → /code-review-and-quality → 输出结构化意见

修复方(独立会话):
/receiving-code-review → 逐条修复 → 运行测试 → 重新提交

涉及的 Skills