需求变更管理技能
技能概述
当PRD发生变更时,AI辅助分析变更影响范围,自动识别需要同步更新的TDD和测试用例内容,生成变更影响报告并协助完成文档同步。
使用场景
何时使用
- •✅ PRD内容发生变更
- •✅ 新增功能点
- •✅ 修改现有功能
- •✅ 删除功能
- •✅ 调整非功能需求
何时不使用
- •❌ PRD尚未完成初稿
- •❌ TDD和测试用例尚未创建
- •❌ 仅修正错别字或格式
前置条件
必需条件
- •PRD文档已存在
- •PRD已发生变更(有修改内容)
- •TDD文档已存在(可选但建议)
- •测试用例文档已存在(可选但建议)
使用步骤
步骤1:识别变更内容
AI操作:
- •读取PRD最新版本
- •识别变更类型
变更类型分类:
| 变更类型 | 说明 | 影响范围 |
|---|---|---|
| 新增功能 | 增加新的功能点 | 大 - 需要新增TDD设计和测试用例 |
| 修改功能 | 修改现有功能逻辑 | 中 - 需要更新TDD和测试用例 |
| 删除功能 | 删除某个功能 | 中 - 需要标记废弃 |
| 调整性能要求 | 修改性能指标 | 小 - 可能需要调整TDD优化方案 |
| 调整数据结构 | 修改数据字段 | 大 - 需要更新数据库设计和接口 |
| 调整交互设计 | 修改页面或流程 | 小 - 可能需要调整前端设计 |
| 格式修正 | 修正错别字、格式 | 无 - 无需同步 |
AI询问:
检测到PRD发生变更,请确认变更类型: 1. 新增功能 2. 修改功能 3. 删除功能 4. 调整数据结构 5. 其他(请说明) 或者,我可以自动分析变更内容。是否继续?
步骤2:分析变更影响
AI分析内容:
对TDD的影响
功能变更影响:
- • 是否需要新增模块
- • 是否需要修改现有模块
- • 是否需要新增接口
- • 是否需要修改现有接口
- • 是否需要新增数据库表
- • 是否需要修改数据库表结构
非功能需求影响:
- • 性能优化方案是否需要调整
- • 安全设计是否需要调整
- • 技术选型是否需要调整
对测试用例的影响
测试覆盖影响:
- • 是否需要新增功能测试用例
- • 是否需要修改现有功能测试用例
- • 是否需要新增接口测试用例
- • 是否需要修改现有接口测试用例
- • 是否需要删除废弃测试用例
测试数据影响:
- • 测试数据是否需要调整
- • 边界值是否需要重新定义
步骤3:生成变更影响报告
报告格式:
# 需求变更影响分析报告
**需求名称**: {年月}-{需求名称}
**分析时间**: 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
2. **更新测试用例文档**
- • 新增5个功能测试用例
- • 新增5个接口测试用例
- • 更新TCD版本号: v1.0 → v1.1
- • 更新PRD和TDD引用版本
3. **重新执行覆盖率分析**
- • 运行 analyze-coverage 技能
- • 确认覆盖率达到90%+
--- ### 后续跟进(中优先级) 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询问:
是否让我自动更新TDD和测试用例? 自动更新内容: 1. TDD: 新增密码重置模块、接口、数据库字段 2. 测试用例: 新增5个功能测试用例和5个接口测试用例 3. 更新版本号和版本引用 预计时间: 3-5分钟 是否继续? [是/否/让我手动更新]
AI执行:
- •读取TDD文档
- •在对应章节插入新内容
- •更新版本号和元信息
- •保存TDD文档
- •读取测试用例文档
- •新增测试用例
- •更新版本号和元信息
- •保存测试用例文档
- •执行质量检查
- •重新执行覆盖率分析
选项2:提供修改建议
AI提供:
以下是需要手动修改的位置和内容:
### 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_token | VARCHAR | 64 | 否 | 普通索引 | 密码重置令牌 |
| reset_token_expire | DATETIME | - | 否 | 否 | 令牌过期时间 |
[更多建议...]
--- #### 选项3:仅标记位置 **AI提供**:
以下位置需要更新:
TDD文档:
- • 第123行: 认证服务需要新增方法
- • 第245行: users表需要新增字段
- • 第367行: 接口清单需要新增接口
测试用例文档:
- • 第56行后: 新增密码重置功能测试
- • 第234行后: 新增密码重置接口测试
请手动完成更新。
--- ### 步骤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分 (优秀)
2. **覆盖率分析**
运行覆盖率分析... ✅ PRD → TDD 覆盖率: 95% ✅ PRD → TCD 覆盖率: 92% ✅ TDD → TCD 覆盖率: 94%
3. **版本一致性检查**
检查版本引用... ✅ TDD引用PRD版本: v1.1 (正确) ✅ TCD引用PRD版本: v1.1 (正确) ✅ TCD引用TDD版本: v1.1 (正确)
--- ### 步骤7:通知相关方 **AI生成通知**:
📢 需求变更通知
需求名称: 202602-移动端首页改版
变更类型: 新增功能
变更描述: 新增"密码重置"功能
影响等级: 🔴 高
文档更新情况:
- •✅ PRD: v1.0 → v1.1
- •✅ TDD: v1.0 → v1.1 (已同步)
- •✅ TCD: v1.0 → v1.1 (已同步)
需要关注:
- •技术负责人: 审查TDD新增的设计
- •测试负责人: 审查测试用例的完整性
- •开发工程师: 如已开始开发,需评估影响
文档位置:
- •PRD: docs/需求文档/202602-移动端首页改版/product/PRD.md
- •TDD: docs/需求文档/202602-移动端首页改版/develop/TDD.md
- •TCD: docs/需求文档/202602-移动端首页改版/test/TCD.md
覆盖率报告:
- •综合覆盖率: 93.6% ✅
--- ## 变更类型处理策略 ### 新增功能 **处理流程**: 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
--- ### 修改功能 **处理流程**: 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 (增加验证码场景)
--- ### 删除功能 **处理流程**: 1. 在PRD中标记废弃(不删除) 2. 在TDD中标记废弃(不删除) 3. 在测试用例中标记废弃(不删除) 4. 在版本历史中记录删除原因 5. 更新版本号(次版本号+1或主版本号+1) **示例**:
PRD标记: 2.2.3 第三方登录 (已废弃)
TDD标记: 3.2.3 第三方登录服务 (已废弃)
TCD标记: TC-3RD-001~005 (已废弃)
版本历史记录: v1.1: 废弃第三方登录功能,原因:成本高,使用率低
--- ### 调整数据结构 **处理流程**: 1. 在PRD数据字典中修改字段 2. 在TDD数据库设计中修改表结构 3. 在TDD接口设计中修改相关接口 4. 在测试用例中修改相关测试数据 5. 评估影响等级(可能需要主版本号+1) **示例**:
PRD修改: user_type 字段由整数改为字符串枚举 TDD修改: users.user_type VARCHAR(20) TDD修改: 所有涉及user_type的接口 TCD修改: 所有使用user_type的测试数据
--- ### 调整非功能需求 **处理流程**: 1. 在PRD中修改性能/安全要求 2. 在TDD中调整优化/安全方案 3. 在测试用例中调整性能/安全测试 4. 更新版本号(次版本号+1) **示例**:
PRD修改: 并发要求从500提升到1000 TDD调整: 增加缓存方案、数据库读写分离 TCD调整: 性能测试并发数从500改为1000
--- ## 命令示例 ### 示例1:基本用法 **用户**:
PRD发生了变更,帮我分析影响
**AI**:
正在分析PRD变更...
✅ 检测到PRD变更:
- •新增功能: 密码重置
- •修改数据: users表新增2个字段
生成变更影响报告中... [输出完整报告]
是否让我自动同步更新TDD和测试用例?
--- ### 示例2:指定需求 **用户**:
分析"202602-移动端首页改版"的需求变更影响
**AI**:
定位需求: 202602-移动端首页改版 读取PRD v1.1... 对比PRD v1.0...
发现变更:
- •新增功能: 密码重置
- •修改字段: users表
分析影响... [继续执行]
--- ### 示例3:自动同步 **用户**:
PRD更新了,自动同步所有文档
**AI**:
收到,开始自动同步...
步骤1: 分析变更 ✅ 步骤2: 生成影响报告 ✅ 步骤3: 更新TDD ✅ 步骤4: 更新测试用例 ✅ 步骤5: 更新版本号 ✅ 步骤6: 质量检查 ✅ 步骤7: 覆盖率分析 ✅
同步完成!
--- ## 常见问题 ### 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