AgentSkillsCN

refine-requirement-docs

需求变更管理技能。当PRD发生变更时,自动分析影响范围并同步更新TDD和测试用例。当用户提到"需求变更"、"更新需求"、"同步文档"时使用此技能。

中文原作
SKILL.md
--- frontmatter
name: refine-requirement-docs
description: 需求变更管理技能。当PRD发生变更时,自动分析影响范围并同步更新TDD和测试用例。当用户提到"需求变更"、"更新需求"、"同步文档"时使用此技能。

需求变更管理技能

技能概述

当PRD发生变更时,AI辅助分析变更影响范围,自动识别需要同步更新的TDD和测试用例内容,生成变更影响报告并协助完成文档同步。


使用场景

何时使用

  • ✅ PRD内容发生变更
  • ✅ 新增功能点
  • ✅ 修改现有功能
  • ✅ 删除功能
  • ✅ 调整非功能需求

何时不使用

  • ❌ PRD尚未完成初稿
  • ❌ TDD和测试用例尚未创建
  • ❌ 仅修正错别字或格式

前置条件

必需条件

  1. PRD文档已存在
  2. PRD已发生变更(有修改内容)
  3. TDD文档已存在(可选但建议)
  4. 测试用例文档已存在(可选但建议)

使用步骤

步骤1:识别变更内容

AI操作

  1. 读取PRD最新版本
  2. 识别变更类型

变更类型分类

变更类型说明影响范围
新增功能增加新的功能点大 - 需要新增TDD设计和测试用例
修改功能修改现有功能逻辑中 - 需要更新TDD和测试用例
删除功能删除某个功能中 - 需要标记废弃
调整性能要求修改性能指标小 - 可能需要调整TDD优化方案
调整数据结构修改数据字段大 - 需要更新数据库设计和接口
调整交互设计修改页面或流程小 - 可能需要调整前端设计
格式修正修正错别字、格式无 - 无需同步

AI询问

code
检测到PRD发生变更,请确认变更类型:

1. 新增功能
2. 修改功能
3. 删除功能
4. 调整数据结构
5. 其他(请说明)

或者,我可以自动分析变更内容。是否继续?

步骤2:分析变更影响

AI分析内容

对TDD的影响

功能变更影响

  • 是否需要新增模块
  • 是否需要修改现有模块
  • 是否需要新增接口
  • 是否需要修改现有接口
  • 是否需要新增数据库表
  • 是否需要修改数据库表结构

非功能需求影响

  • 性能优化方案是否需要调整
  • 安全设计是否需要调整
  • 技术选型是否需要调整

对测试用例的影响

测试覆盖影响

  • 是否需要新增功能测试用例
  • 是否需要修改现有功能测试用例
  • 是否需要新增接口测试用例
  • 是否需要修改现有接口测试用例
  • 是否需要删除废弃测试用例

测试数据影响

  • 测试数据是否需要调整
  • 边界值是否需要重新定义

步骤3:生成变更影响报告

报告格式

markdown
# 需求变更影响分析报告

**需求名称**: {年月}-{需求名称}  
**分析时间**: 2026-02-09 10:00:00  
**PRD版本**: v1.0 → v1.1

---

## 📝 变更摘要

**变更类型**: 新增功能  
**变更描述**: 新增"密码重置"功能

**影响等级**: 🔴 高(需要同步TDD和测试用例)

---

## 📊 变更详情

### PRD变更内容

| 章节 | 变更类型 | 变更内容 |
|------|---------|---------|
| 2.2 核心功能详述 | 新增 | 新增"2.2.4 密码重置功能" |
| 5.1 数据字典 | 修改 | 用户表新增"reset_token"字段 |
| 6.1 功能验收 | 新增 | 新增密码重置验收标准 |

---

## 🔍 影响分析

### 对TDD的影响

**必须更新** (3项):

1. **新增认证模块功能**
   - 位置: 3.2 后端设计 → 认证服务
   - 操作: 新增 `resetPassword()` 方法
   - 优先级: 高

2. **新增数据库字段**
   - 位置: 4.1 表结构设计 → users表
   - 操作: 新增 `reset_token` 和 `reset_token_expire` 字段
   - 优先级: 高

3. **新增API接口**
   - 位置: 5.1 接口清单
   - 操作: 新增 `POST /api/auth/reset-password` 接口
   - 优先级: 高

**建议更新** (1项):

4. **更新ER图**
   - 位置: 4.2 数据库关系图
   - 操作: 更新users表字段
   - 优先级: 中

---

### 对测试用例的影响

**必须新增** (5个用例):

1. **功能测试用例**
   - 编号: TC-RESET-001 ~ TC-RESET-005
   - 描述: 密码重置流程测试(正向、异常、边界)
   - 优先级: 高

2. **接口测试用例**
   - 编号: TC-API-030 ~ TC-API-034
   - 描述: 密码重置接口测试
   - 优先级: 高

**建议更新** (2个用例):

3. **验收测试用例**
   - 编号: TC-ACC-010
   - 描述: 基于PRD新增的验收标准
   - 优先级: 中

---

## ✅ 建议行动

### 立即执行(高优先级)

1. **更新TDD文档**
  • 在认证服务中新增密码重置方法
  • 在users表中新增2个字段
  • 新增密码重置API接口(含完整示例)
  • 更新TDD版本号: v1.0 → v1.1
  • 更新PRD引用版本: v1.0 → v1.1
code

2. **更新测试用例文档**
  • 新增5个功能测试用例
  • 新增5个接口测试用例
  • 更新TCD版本号: v1.0 → v1.1
  • 更新PRD和TDD引用版本
code

3. **重新执行覆盖率分析**
  • 运行 analyze-coverage 技能
  • 确认覆盖率达到90%+
code

---

### 后续跟进(中优先级)

4. **更新ER图**
- 在TDD中更新数据库关系图

5. **补充验收测试**
- 新增对应PRD验收标准的测试用例

---

### 可选优化(低优先级)

6. **更新架构图**
- 如果认证模块架构有变化,更新架构图

---

## ⚠️ 风险提示

1. **版本不一致风险**
- PRD已更新到v1.1,但TDD和TCD仍是v1.0
- 建议立即同步更新,避免版本不一致

2. **测试覆盖率下降风险**
- 新增功能暂无测试用例
- 当前覆盖率可能低于90%

3. **开发中断风险**
- 如果开发已开始,需要评估变更影响
- 建议与技术负责人确认

---

## 📋 同步检查清单

完成文档同步后,使用此清单验证:

- [ ] TDD已更新所有必需内容
- [ ] 测试用例已新增所有必需用例
- [ ] 版本号已更新
- [ ] 版本引用关系正确
- [ ] 重新执行覆盖率分析
- [ ] 覆盖率达到90%+
- [ ] 通知相关方(技术负责人、测试负责人)

---

**分析完成时间**: 2026-02-09 10:05:00  
**分析耗时**: 3分钟

步骤4:协助文档同步

AI操作选项

选项1:自动同步(推荐)

AI询问

code
是否让我自动更新TDD和测试用例?

自动更新内容:
1. TDD: 新增密码重置模块、接口、数据库字段
2. 测试用例: 新增5个功能测试用例和5个接口测试用例
3. 更新版本号和版本引用

预计时间: 3-5分钟

是否继续? [是/否/让我手动更新]

AI执行

  1. 读取TDD文档
  2. 在对应章节插入新内容
  3. 更新版本号和元信息
  4. 保存TDD文档
  5. 读取测试用例文档
  6. 新增测试用例
  7. 更新版本号和元信息
  8. 保存测试用例文档
  9. 执行质量检查
  10. 重新执行覆盖率分析

选项2:提供修改建议

AI提供

code
以下是需要手动修改的位置和内容:

### TDD修改建议

**位置1**: 3.2 后端设计 → 认证服务
**操作**: 在 `login()` 和 `register()` 方法后新增:

```javascript
/**
 * 密码重置
 * @param email 用户邮箱
 * @param token 重置令牌
 * @param newPassword 新密码
 */
async resetPassword(email: string, token: string, newPassword: string) {
  // 验证token有效性
  // 更新用户密码
  // 删除重置令牌
}

位置2: 4.1 表结构设计 → users表 操作: 在表结构中新增字段:

字段名类型长度必填索引说明
reset_tokenVARCHAR64普通索引密码重置令牌
reset_token_expireDATETIME-令牌过期时间

[更多建议...]

code

---

#### 选项3:仅标记位置

**AI提供**:

以下位置需要更新:

TDD文档:

  • 第123行: 认证服务需要新增方法
  • 第245行: users表需要新增字段
  • 第367行: 接口清单需要新增接口

测试用例文档:

  • 第56行后: 新增密码重置功能测试
  • 第234行后: 新增密码重置接口测试

请手动完成更新。

code

---

### 步骤5:版本号管理

**版本更新规则**:

| 变更程度 | 版本号变化 | 说明 |
|---------|-----------|------|
| 格式修正 | 不变 | 如 v1.0 保持不变 |
| 小幅变更 | 次版本号+1 | 如 v1.0 → v1.1 |
| 大幅变更 | 主版本号+1 | 如 v1.0 → v2.0 |

**判断标准**:
- **小幅变更**: 新增1-2个功能点,不影响架构
- **大幅变更**: 新增模块、架构调整、删除核心功能

**AI自动更新**:
1. 更新PRD版本号
2. 更新TDD版本号(与PRD保持同步)
3. 更新TCD版本号(与PRD保持同步)
4. 更新版本历史表格
5. 更新文档间的版本引用

---

### 步骤6:执行验证

**AI自动执行**:

1. **文档质量检查**

运行质量检查... ✅ TDD质量评分: 92分 (优秀) ✅ TCD质量评分: 90分 (优秀)

code

2. **覆盖率分析**

运行覆盖率分析... ✅ PRD → TDD 覆盖率: 95% ✅ PRD → TCD 覆盖率: 92% ✅ TDD → TCD 覆盖率: 94%

code

3. **版本一致性检查**

检查版本引用... ✅ TDD引用PRD版本: v1.1 (正确) ✅ TCD引用PRD版本: v1.1 (正确) ✅ TCD引用TDD版本: v1.1 (正确)

code

---

### 步骤7:通知相关方

**AI生成通知**:

📢 需求变更通知

需求名称: 202602-移动端首页改版
变更类型: 新增功能
变更描述: 新增"密码重置"功能
影响等级: 🔴 高

文档更新情况:

  • ✅ PRD: v1.0 → v1.1
  • ✅ TDD: v1.0 → v1.1 (已同步)
  • ✅ TCD: v1.0 → v1.1 (已同步)

需要关注:

  1. 技术负责人: 审查TDD新增的设计
  2. 测试负责人: 审查测试用例的完整性
  3. 开发工程师: 如已开始开发,需评估影响

文档位置:

  • PRD: docs/需求文档/202602-移动端首页改版/product/PRD.md
  • TDD: docs/需求文档/202602-移动端首页改版/develop/TDD.md
  • TCD: docs/需求文档/202602-移动端首页改版/test/TCD.md

覆盖率报告:

  • 综合覆盖率: 93.6% ✅
code

---

## 变更类型处理策略

### 新增功能

**处理流程**:
1. 在PRD功能架构图中新增节点
2. 在PRD功能详述中新增章节
3. 在PRD验收标准中新增验收项
4. 在TDD模块划分中新增模块
5. 在TDD接口设计中新增接口
6. 在测试用例中新增对应测试
7. 更新版本号(次版本号+1)

**示例**:

PRD新增: 2.2.4 密码重置功能 TDD新增: 3.2.3 密码重置服务 TDD新增: 5.1 新增接口 TCD新增: TC-RESET-001~005

code

---

### 修改功能

**处理流程**:
1. 在PRD中修改对应功能描述
2. 在TDD中更新对应模块设计
3. 在TDD中更新对应接口
4. 在测试用例中修改对应用例
5. 更新版本号(次版本号+1)

**示例**:

PRD修改: 2.2.1 用户登录 (新增验证码) TDD修改: 3.2.1 登录服务 (增加验证码验证) TDD修改: 5.1 POST /api/auth/login (新增验证码参数) TCD修改: TC-LOGIN-001~005 (增加验证码场景)

code

---

### 删除功能

**处理流程**:
1. 在PRD中标记废弃(不删除)
2. 在TDD中标记废弃(不删除)
3. 在测试用例中标记废弃(不删除)
4. 在版本历史中记录删除原因
5. 更新版本号(次版本号+1或主版本号+1)

**示例**:

PRD标记: 2.2.3 第三方登录 (已废弃) TDD标记: 3.2.3 第三方登录服务 (已废弃) TCD标记: TC-3RD-001~005 (已废弃)

版本历史记录: v1.1: 废弃第三方登录功能,原因:成本高,使用率低

code

---

### 调整数据结构

**处理流程**:
1. 在PRD数据字典中修改字段
2. 在TDD数据库设计中修改表结构
3. 在TDD接口设计中修改相关接口
4. 在测试用例中修改相关测试数据
5. 评估影响等级(可能需要主版本号+1)

**示例**:

PRD修改: user_type 字段由整数改为字符串枚举 TDD修改: users.user_type VARCHAR(20) TDD修改: 所有涉及user_type的接口 TCD修改: 所有使用user_type的测试数据

code

---

### 调整非功能需求

**处理流程**:
1. 在PRD中修改性能/安全要求
2. 在TDD中调整优化/安全方案
3. 在测试用例中调整性能/安全测试
4. 更新版本号(次版本号+1)

**示例**:

PRD修改: 并发要求从500提升到1000 TDD调整: 增加缓存方案、数据库读写分离 TCD调整: 性能测试并发数从500改为1000

code

---

## 命令示例

### 示例1:基本用法

**用户**:

PRD发生了变更,帮我分析影响

code

**AI**:

正在分析PRD变更...

✅ 检测到PRD变更:

  • 新增功能: 密码重置
  • 修改数据: users表新增2个字段

生成变更影响报告中... [输出完整报告]

是否让我自动同步更新TDD和测试用例?

code

---

### 示例2:指定需求

**用户**:

分析"202602-移动端首页改版"的需求变更影响

code

**AI**:

定位需求: 202602-移动端首页改版 读取PRD v1.1... 对比PRD v1.0...

发现变更:

  1. 新增功能: 密码重置
  2. 修改字段: users表

分析影响... [继续执行]

code

---

### 示例3:自动同步

**用户**:

PRD更新了,自动同步所有文档

code

**AI**:

收到,开始自动同步...

步骤1: 分析变更 ✅ 步骤2: 生成影响报告 ✅ 步骤3: 更新TDD ✅ 步骤4: 更新测试用例 ✅ 步骤5: 更新版本号 ✅ 步骤6: 质量检查 ✅ 步骤7: 覆盖率分析 ✅

同步完成!

code

---

## 常见问题

### Q1: 什么程度的变更需要使用这个技能?
**A**: 
- 需要:新增、修改、删除功能,调整数据结构
- 不需要:修正错别字、调整格式

### Q2: 变更后版本号如何确定?
**A**: 
- 小幅变更(1-2个功能点):次版本号+1
- 大幅变更(架构调整):主版本号+1

### Q3: 变更后必须重新评审吗?
**A**: 
- 小幅变更:无需重新评审,通知相关方即可
- 大幅变更:必须重新评审

### Q4: 如果开发已经开始了怎么办?
**A**: 
- 与技术负责人评估影响
- 确定是否需要调整开发计划
- 更新开发任务

### Q5: 变更影响报告是否需要归档?
**A**: 
- 建议归档重大变更的报告
- 放在需求文件夹的 `changes/` 目录

---

## 检查清单

完成需求变更管理后,确认:

- [ ] 变更影响分析已完成
- [ ] 变更影响报告已生成
- [ ] TDD已同步更新(如需要)
- [ ] 测试用例已同步更新(如需要)
- [ ] 版本号已更新
- [ ] 版本引用关系正确
- [ ] 质量检查已执行
- [ ] 覆盖率分析已执行
- [ ] 覆盖率达到90%+
- [ ] 相关方已通知

---

## 相关资源

### 规则
- [协作流程规范](../../rules/doc-workflow/RULE.md)
- [文档质量检查规范](../../rules/doc-quality/RULE.md)

### 技能
- [生成TDD](../generate-tdd/SKILL.md)
- [生成测试用例](../generate-test/SKILL.md)
- [分析文档覆盖率](../analyze-coverage/SKILL.md)

---

## 最佳实践

### 1. 及时同步
变更发生后应立即分析影响并同步文档,避免版本不一致。

### 2. 保留变更记录
重大变更应生成变更影响报告并归档。

### 3. 通知相关方
变更完成后及时通知技术负责人和测试负责人。

### 4. 重新验证
同步更新后应重新执行覆盖率分析,确保质量。

### 5. 版本管理
严格遵循版本号规则,保持文档版本一致性。

---

**技能维护者**: [填写]  
**最后更新**: 2026-02-09  
**版本**: v1.0