| name | code-review |
| description | 代码自审技能,开发者自查代码质量、安全性、架构一致性和规范合规 |
代码审查技能
何时使用
- 开发完成后,Developer 进行代码自审
- 变更开发时,审查变更代码是否超出设计的影响范围
输出格式
按 process_templates/code_review.md 模板输出。
输出规范
代码审查报告必须包含以下字段:
| 字段 | 必填 | 说明 |
|---|
| Result | 是 | approved / changes_required / rejected |
| Date | 是 | 审查日期 |
| Reviewer | 是 | Developer(自审) |
| 审查范围 | 是 | 审查的文件列表和代码行数 |
| Checklist | 是 | 各检查项的通过状态 |
| Findings | 是 | 发现的问题列表(可为空) |
审查步骤
1. 架构一致性检查
- 代码结构是否与
architecture.md 中的模块划分一致
- 模块间依赖方向是否与架构图方向一致
- 是否有跨层调用或违反分层原则的代码
- (变更模式)变更是否超出
requirements.md 影响分析的范围
2. 功能正确性
- 是否实现了
requirements.md 中的功能需求
- 是否处理了边界条件
- 是否有逻辑错误
3. 代码质量
3a. 命名与可读性
- 命名是否清晰(变量、函数、类、文件)
- 函数/方法是否简短(建议不超过 50 行)
- 注释是否充分(公共接口必须有注释)
3b. 冗余性检查
3c. 重复性检查(DRY 原则)
3d. 可复用性检查
4. 安全审查
- 是否有 SQL 注入风险(参数化查询)
- 是否有 XSS 风险(输出转义)
- 敏感信息是否硬编码(密码、密钥、Token)
- 输入是否校验(类型、长度、格式)
- 文件操作是否有路径遍历风险
5. 测试就绪检查
- 是否为关键功能编写了单元测试
- 代码是否可测试(依赖是否可注入/可 mock)
- 注意:深度测试覆盖由 Tester 负责,此处仅检查可测试性
6. 性能与资源安全
职责边界:本节关注影响正确性和稳定性的性能问题(资源泄漏、阻塞、OOM),
§7 则关注可维护性和效率的优化建议。
- 是否有 N+1 查询问题
- 是否有不必要的循环或递归
- 资源是否正确释放(连接、文件句柄、锁)
- 大数据量场景是否有分页或流式处理
7. 代码优化与简化
职责边界:本节关注代码的可维护性和效率改进(逻辑简化、算法优化、语言特性利用),
§6 则关注影响正确性的性能缺陷。
对已实现的代码进行优化审查,按严重程度标记:
- MUST:必须修改,影响正确性或可维护性
- SHOULD:建议修改,明显改善代码质量
- NICE:可选优化,锦上添花
7a. 逻辑简化
7b. 数据结构与算法优化
7c. 语言特性利用
7d. 代码结构优化
8. 编码风格一致性检查
检查基线选择:
- 项目已有风格配置文件(
.editorconfig / .eslintrc / pyproject.toml 等)→ 以配置为准
- 变更模式下,逆向设计书已识别风格基线 → 以基线为准
- 无明确风格时 → 按 Google Style Guide 检查(参考
copilot-instructions.md 中的「Google Style Guide 语言对照表」)
检查项:
9. 静态检查验证
执行要求:
- 对新增/变更的代码文件执行 Linter 和静态分析工具
- Linter 结果不允许有 Error 级别问题
- 静态分析工具不允许引入新的高严重度(High/Critical)问题
工具参考:详见 copilot-instructions.md 中的「Linter / 静态分析工具对照表」。
检查项:
审查结论
- approved:全部 9 项检查通过,代码质量达标,可提交测试
- changes_required:存在需修改的问题
- 必须列出所有问题及修改建议
- Developer 修改后重新自审,直到通过
- rejected:存在严重设计问题,需回退给 Architect
异常处理
- 审查结论为
changes_required 时:Developer 修改代码后重新执行自审流程
- 审查结论为
rejected 时:设置 workflow_state.json 的 status: rollback,说明原因