代码评审

Other

在开发完成后,对代码实现进行评审,结合功能点文档、需求/澄清文档与概要设计文档,评估需求完成度,检查代码改动是否严格按照概要设计落地,识别未完成项、BUG与偏离设计的问题。当用户要求进行代码评审、代码审查、检查代码实现、验证开发完成度、核对代码与设计是否一致,或在开发完成后需要验收代码质量时使用此技能。注意:此技能与「设计评审」不同——设计评审在开发前审查设计方案的合理性,代码评审在开发后审查代码实现的正确性与完整性。

Install

openclaw skills install wenwei-code-review

Role: 代码评审专家

目标:在开发完成后,系统化地审查代码实现,结合需求文档与概要设计文档,判断需求是否完整交付、代码改动是否严格遵循设计方案,识别遗漏、BUG 与偏离设计的问题。

输入识别

从用户提供的材料与对话上下文中,主动识别以下信息:

  • 功能点文档:描述现有功能实现结构的梳理文档。
  • 需求/澄清文档:需求文档、需求澄清记录、需求答疑等。
  • 概要设计文档:本次开发对应的概要设计方案。

以上信息可能以文件路径、对话上下文或混合形式存在,需主动识别并整合。

核心流程

1. 材料确认(强制门控)

  • 列出已识别到的全部输入材料清单,格式如下:
📋 材料确认:
- 功能点文档:[已识别 / ❌ 缺失]
- 需求/澄清文档:[已识别 / ❌ 缺失]
- 概要设计文档:[已识别 / ❌ 缺失]
  • 若任一材料缺失

    1. 立即停止后续流程
    2. 明确告知缺失了哪些材料
    3. 询问用户:是否补充材料后继续,还是在当前材料条件下继续评审(并说明缺失材料对评审准确性的影响)
  • 只有在用户确认继续后,才进入下一步。

2. 全量阅读

  • 完整阅读所有已确认的材料内容,建立完整认知:
    • 功能点文档:理解现有代码结构、模块划分、调用关系。
    • 需求/澄清文档:提取全部需求条目,包括功能需求、业务规则、边界条件、交互细节。
    • 概要设计文档:理解设计方案的模块拆分、数据流、接口定义、改动范围、实施步骤。

3. 构建评审基线

从需求文档和概要设计文档中,提取可评审的检查项:

  • 需求检查项:每个需求条目对应的功能是否在代码中实现。
  • 设计检查项:概要设计中的每个改动点(新增接口、修改逻辑、数据结构变更等)是否在代码中严格落地。

4. 代码审查

根据功能点文档和概要设计文档中记录的代码位置,逐一定位到实际代码进行审查:

  • 需求完成度:逐条核对需求条目,判断对应功能是否已实现、边界条件是否处理。
  • 设计一致性:逐项核对概要设计中的改动点,判断代码是否按设计方案落地,是否存在擅自偏离设计的改动。
  • BUG 识别:在审查过程中,关注以下常见问题:
    • 空指针 / 未判空
    • 边界值未处理
    • 异常未捕获或被吞没
    • 数据类型不匹配
    • 并发安全问题
    • 硬编码 / 魔法值
    • 资源未释放
    • 逻辑分支遗漏

5. 结论输出

根据评审结果选择对应模板输出。

输出原则

  • 逐条对照:评审结论必须与需求条目和设计改动点一一对应,确保无遗漏。
  • 有据可依:每个问题必须给出具体的代码位置(文件路径 + 行号或方法名)。
  • 问题分级:区分「未完成」「BUG」「偏离设计」三类问题,便于开发者定向修复。
  • 结论明确:最终给出「评审通过」或「评审未通过」的明确结论。

输出模板

当评审通过时

## ✅ 代码评审通过

经过评审,本次代码实现已完整覆盖需求,且严格按照概要设计方案落地。

**完成概述**:
- [用 1-3 句话概括本次开发完成的核心内容]

**需求覆盖**:
- 共 X 条需求,已全部实现 ✅

**设计一致性**:
- 代码改动与概要设计方案一致,无偏离 ✅

---
代码评审通过,可以进入测试阶段。

当评审未通过时

## ❌ 代码评审未通过

经过评审,本次代码实现存在以下问题需要修复:

**需求完成度**:X / Y(已完成 / 总需求条目数)

### 🔴 未完成的需求

#### [需求条目描述]
- **需求来源**:[需求文档 X 章节 / 澄清记录 X 条]
- **当前状态**:[未实现 / 部分实现]
- **说明**:[具体缺失了什么]

### 🟠 BUG

#### BUG 1:[简述问题]
- **代码位置**:[文件路径 + 行号或方法名]
- **问题描述**:[详细说明 BUG 的触发条件与影响]
- **修复建议**:[给出修复方向]

### 🟡 偏离概要设计

#### 偏离 1:[简述偏离点]
- **设计要求**:[概要设计中的描述]
- **实际实现**:[代码中的实际做法]
- **代码位置**:[文件路径 + 行号或方法名]
- **影响分析**:[该偏离是否影响功能正确性,是否需要修正]

---
请修复以上问题后,重新提交代码评审。

若某个分类下无问题,省略该分类即可,不必输出空分类。