# Requirements Stepwise Review

> 结构化多轮需求评审能力；将评审拆解为"完整性→一致性→可测试性"三个独立轮次，每轮聚焦单一维度，适用于需求评审、PRD 检查、需求对齐等场景

- Skill: `signjing/requirements-stepwise-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add signjing/requirements-stepwise-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/signjing/requirements-stepwise-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- License: MIT
- Author: signjing (https://skillmd.com/u/signjing)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/signjing/requirements-stepwise-review

---


# 需求分步评审

## 任务目标
对需求文档进行系统化、结构化评审，通过三轮独立评审逐步深入，每轮聚焦单一维度，避免评审遗漏和维度混淆。

## 评审原则
- 严格按轮次推进，禁止跨轮次分析
- 每轮评审必须穷尽该维度的检查要点
- 问题描述需具体，引用原文位置
- 模糊描述视为问题，不放过"大概""可能"类表述

---

## 第一轮：完整性评审

### 评审重点
检查需求文档是否覆盖所有必要内容，识别遗漏和缺失。

### 检查清单

**场景覆盖**
- 用户故事/用例是否完整？是否遗漏了主流程以外的分支场景？
- 异常流程、错误处理是否有描述？
- 系统边界是否清晰定义？

**边界条件**
- 最大/最小值、阈值是否明确？
- 空值、零值、边界值场景是否覆盖？
- 并发、压力、容量上限是否有说明？

**接口定义**
- API 接口的请求/响应参数是否完整？
- 参数类型、必填/可选、格式要求是否清晰？
- 错误码定义是否覆盖所有异常情况？

**数据定义**
- 核心数据实体是否都有描述？
- 字段含义、取值范围、默认值是否明确？
- 关联关系、依赖关系是否说明？

### 输出格式
```
【完整性问题】

[场景遗漏]
- 问题描述：<具体缺失的场景>
- 涉及章节：<文档位置>
- 建议补充：<具体补充建议>

[边界模糊]
- 问题描述：<未明确的边界条件>
- 涉及章节：<文档位置>
- 建议补充：<具体补充建议>

[接口缺失]
- 问题描述：<缺失的接口或参数>
- 涉及章节：<文档位置>
- 建议补充：<具体补充建议>

[数据缺失]
- 问题描述：<未定义的数据或字段>
- 涉及章节：<文档位置>
- 建议补充：<具体补充建议>
```

---

## 第二轮：一致性评审

### 评审重点
检查需求文档内部是否存在矛盾、冲突或不一致。

### 检查清单

**描述一致性**
- 同一功能在不同章节的描述是否一致？
- 功能名称、术语使用是否统一？
- 时序/流程描述与状态机定义是否匹配？

**数据一致性**
- 同一字段在不同地方的定义是否相同？
- 数据来源和计算逻辑是否自洽？
- 枚举值、状态码定义是否唯一？

**约束一致性**
- 不同章节对同一约束的描述是否矛盾？
- 性能要求、响应时间等指标是否一致？
- 安全要求、权限定义是否统一？

**引用一致性**
- 图表、流程图与文字描述是否对应？
- 上下游接口依赖描述是否一致？
- 版本号、编号等标识是否正确？

### 输出格式
```
【一致性问题】

[描述冲突]
- 问题描述：<冲突的具体内容>
- 冲突位置：
  - 位置A：<章节A的描述>
  - 位置B：<章节B的描述>
- 判定依据：<判定为冲突的理由>
- 建议统一：<统一的建议方案>

[数据矛盾]
- 问题描述：<矛盾的数据定义>
- 矛盾位置：
  - 位置A：<章节A的定义>
  - 位置B：<章节B的定义>
- 建议统一：<统一的建议方案>

[约束冲突]
- 问题描述：<冲突的约束条件>
- 冲突位置：<两个冲突的位置>
- 建议统一：<统一的建议方案>
```

---

## 第三轮：可测试性评审

### 评审重点
检查需求描述是否足够具体、量化、可验证。

### 检查清单

**量化程度**
- 性能指标是否有明确数值？（如：响应时间 < 200ms）
- 成功率、错误率是否有可测量的标准？
- 数据量级、并发量是否具体？（如：支持 1000 QPS）

**可验证性**
- 描述是否可以被明确的测试用例验证？
- 是否存在"用户友好""体验良好"等主观描述？
- 是否存在"适度""合理"等模糊形容词？

**边界清晰度**
- 边界条件是否有明确的通过/失败判定标准？
- 异常场景的预期行为是否可描述？
- 状态转换是否有明确触发条件和结果？

**独立性**
- 每个需求点是否可以独立测试？
- 是否存在无法隔离的耦合需求？
- 前置条件、依赖关系是否明确？

### 输出格式
```
【可测试性问题】

[模糊描述]
- 问题描述：<不可量化的描述原文>
- 涉及章节：<文档位置>
- 模糊原因：<为什么无法测试>
- 量化建议：<如何改为可测试的描述>

[主观表述]
- 问题描述：<主观性表述原文>
- 涉及章节：<文档位置>
- 问题分析：<为什么不可测试>
- 客观化建议：<改为客观可验证的描述>

[判定标准缺失]
- 问题描述：<缺少判定标准的需求>
- 涉及章节：<文档位置>
- 缺失内容：<缺少什么判定条件>
- 补充建议：<如何补充判定标准>

[耦合问题]
- 问题描述：<难以独立测试的需求>
- 涉及章节：<文档位置>
- 耦合关系：<与哪些需求耦合>
- 拆分建议：<如何拆分为独立需求>
```

---

## 使用示例

### 示例 1：功能需求评审

**场景/输入**：用户提供了一份电商订单模块的需求文档

**执行流程**：
1. 第一轮完整性评审：检查场景覆盖、边界条件、接口定义、数据定义
2. 第二轮一致性评审：检查描述冲突、数据矛盾、约束冲突
3. 第三轮可测试性评审：检查模糊描述、主观表述、判定标准

**预期产出**：
```
【完整性问题】
[场景遗漏]
- 问题描述：缺少订单取消后的库存释放场景
- 涉及章节：3.2 订单状态流转
- 建议补充：增加"已支付订单取消"的库存返还逻辑

[边界模糊]
- 问题描述：未明确单笔订单商品数量上限
- 涉及章节：2.1 商品加入购物车
- 建议补充：单笔订单商品种类不超过 99 件

...

【一致性问题】
[描述冲突]
- 问题描述：订单金额计算逻辑矛盾
- 冲突位置：
  - 位置A：3.1 订单金额 = 商品总价 + 运费
  - 位置B：3.3 订单金额 = 商品总价（已含运费）
- 判定依据：位置A和位置B对运费是否计入订单金额定义不一致
- 建议统一：统一为"商品总价（已含运费），运费不再单独计算"

...

【可测试性问题】
[模糊描述]
- 问题描述："页面加载速度要快"
- 涉及章节：4.1 性能要求
- 模糊原因：无法量化验证
- 量化建议：改为"首页加载时间 < 1.5秒（4G网络下）"
```

### 示例 2：接口需求评审

**场景/输入**：用户提供了一份支付接口的需求文档

**执行要点**：
- 完整性：检查所有支付渠道的接口定义是否完整
- 一致性：检查不同渠道的接口参数、返回值格式是否统一
- 可测试性：检查错误码定义、响应时间要求是否可量化

### 示例 3：需求片段评审

**场景/输入**：用户提供需求片段进行局部评审

**执行要点**：
- 明确告知用户这是局部评审，完整性评审受限
- 一致性和可测试性可正常执行
- 提醒用户需要关联上下文才能做完整评审

---

## 注意事项
- 每轮评审必须独立完成后再进入下一轮
- 问题数量不限，穷尽检查是核心原则
- 建议补充应具体可操作，避免泛泛而谈
- 当发现上一轮次影响后续评审时，在对应轮次中标注"与第X轮相关"

