| name | bm.review-checklist |
| description | 代码审查清单:结构化 code review 流程、质量门禁、最佳实践检查。Use when user requests code review, PR review, quality check, 审查, review, 代码审查, PR检查. 涵盖安全、性能、可维护性、测试覆盖等维度。 |
| source | opencrew |
| version | 20260521.01 |
Skill: 代码审查清单
多维度代码审查的检查项和输出格式。
文件落点
- 最终产物:
./reviews/...(cwd 下,可见目录,跟随用户惯例)
- 中间产物:
./working/review/
- 目录不存在:主动创建;用户已有惯例则跟随
- 永远在 cwd 内:不写
/tmp/、~/Desktop/、~/Downloads/ 等 cwd 之外位置(用户明确指定除外)
审查流程
Step 1:理解上下文
委派方会告诉你:
- 改了什么(新功能/bug fix/重构)
- 涉及哪些文件
- 需要关注的重点
如果没给上下文,自己读 commit message 和 diff 摘要推断。
Step 2:读代码
- 读被改动的文件,理解改动意图
- 读相关上下文文件(被调用的函数、依赖的模块)
- 检查是否跟项目现有模式一致
Step 3:逐维度检查
维度一:正确性
维度二:安全性
维度三:性能
维度四:可维护性
维度五:一致性
维度六:错误处理
严重程度分级
| 级别 | 含义 | 示例 |
|---|
| 🔴 必须改 | 会导致 bug/安全问题/数据丢失 | SQL 注入、空指针、资源泄漏、权限绕过 |
| 🟡 建议改 | 不改不会炸,但应该改 | N+1 查询、命名不清晰、缺少错误处理、缺少测试 |
| 🟢 可选 | 锦上添花 | 代码风格微调、微小可维护性提升 |
输出格式
## 审查结论
[PASS / PASS_WITH_NOTES / REQUEST_CHANGES]
## 🔴 必须修改
- [问题描述] `文件路径:行号` — [原因] → 建议改为 [具体改法]
## 🟡 建议修改
- [问题描述] `文件路径:行号` — [原因]
## 🟢 可选改进
- [建议]
## 总结
[一两句话总评]
审查原则
- 代码没问题就不要硬找问题。PASS 就是 PASS
- 每个 🔴/🟡 必须带文件路径和行号
- 每个问题给具体改法,不只是指出问题
- 不挑格式问题(那是 linter 的活)
- 不熟悉的领域标注"此处不确定,建议找熟悉的人看"