datai/docs/archive/prompts/010-metadata-retrieve-deploy-split-requirements.md

201 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Prompt - 拆分Salesforce元数据拉取和部署子需求
## 输入引用
引用相关的 docs 文档链接:
- [REQ-010.md](../requirements/REQ-010.md) - Salesforce元数据拉取和部署主需求文档
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- [001-元数据模块设计](../reference-code/metadata/001-元数据模块设计) - 数据库设计和模块架构
- [002-元数据拉取参考网页地址](../reference-code/metadata/002-元数据拉取参考网页地址) - 官方文档和开源项目参考
- [003-元数据拉取和部署数据库设计推荐](../reference-code/metadata/003-元数据拉取和部署数据库设计推荐) - 数据库设计推荐
- [004-元数据部署网页资料链接地址](../reference-code/metadata/004-元数据部署网页资料链接地址) - 部署相关参考资料
## Context Maps
强制列出本次 Prompt 依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: [集成核心](node_integration_core) - 提供与Salesforce的各种连接方式
- **相关节点**: [SessionManager](node_session_manager_detail) - 会话管理,提供登录服务
- **相关节点**: [集成任务](node_integration_task) - 处理Salesforce的定时同步任务
- **相关节点**: [通用常量](node_common_constant) - Salesforce相关常量定义
## 目标
将 REQ-010 "Salesforce元数据拉取和部署" 需求拆分为多个可独立开发、测试和部署的子需求。每个子需求应该:
- 具有明确的范围和边界
- 可以独立完成并验证
- 遵循项目的现有架构和设计模式
- 具有清晰的依赖关系
- 包含完整的验收标准
## 输出格式
输出格式为 Markdown 文档,每个子需求包含以下结构:
```markdown
## 子需求 N: [子需求名称]
### 需求信息
- **子需求编号**: REQ-010-N
- **父需求**: REQ-010
- **需求类型**: [功能需求 | 数据需求 | 接口需求]
- **优先级**: [高 | 中 | 低]
- **预计工作量**: [人天]
### 需求描述
简要描述子需求的目标和范围
### 功能范围
列出子需求包含的具体功能点
### 验收标准
列出具体的验收标准,每个标准应该是可测试的
### 依赖关系
- **前置依赖**: 列出依赖的其他子需求
- **被依赖**: 列出依赖此子需求的其他子需求
### 技术要点
列出实现此子需求需要关注的技术点
### 数据库设计
列出需要创建或修改的数据库表
### API接口
列出需要创建或修改的API接口
### 风险点
列出实现此子需求可能遇到的风险
```
## 约束
- **技术栈限制**: 必须基于现有的 Spring Boot 3 + Vue 3 技术栈
- **架构约束**: 必须遵循 Authentication.canvas 中定义的架构和调用关系
- **模块约束**: 必须在 `datai-salesforce-metadata` 模块下实现
- **数据库约束**: 必须使用 MyBatis Plus 作为持久层框架
- **认证约束**: 必须使用现有的认证模块和 SessionManager 进行会话管理
- **API约束**: 必须使用现有的集成核心功能进行 Salesforce API 调用
- **文档约束**: 每个子需求必须遵循 REQ-010 中定义的验收标准
- **依赖约束**: 子需求之间的依赖关系必须清晰,避免循环依赖
## Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
**具体规则**
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
- 必须使用 SessionManager 进行会话管理和自动重新登录
- 必须使用现有的认证模块进行 OAuth 认证
- 必须使用现有的集成核心功能进行 API 调用
- 必须遵循现有的异常处理机制
- 必须遵循现有的日志记录规范
## 拆分原则
1. **独立性原则**: 每个子需求应该可以独立开发、测试和部署
2. **优先级原则**: 优先拆分高优先级、低依赖的需求
3. **粒度原则**: 每个子需求的工作量控制在 3-5 人天
4. **完整性原则**: 每个子需求应该包含完整的 CRUD 操作
5. **可测试性原则**: 每个子需求应该有清晰的验收标准
## 建议的子需求拆分方向
基于 REQ-010 的 7 个详细需求,建议按以下方向拆分:
### 方向 1: 基础设施层(优先级:高)
- 子需求 1: 数据库表结构设计和创建
- 子需求 2: 基础实体类和 Mapper 创建
### 方向 2: 配置管理层(优先级:高)
- 子需求 3: Salesforce 组织配置管理
- 子需求 4: 元数据任务定义管理
### 方向 3: 元数据拉取层(优先级:高)
- 子需求 5: Metadata API 客户端封装
- 子需求 6: 元数据拉取核心功能
- 子需求 7: 文件存储和解压处理
### 方向 4: 元数据部署层(优先级:高)
- 子需求 8: 元数据部署核心功能
- 子需求 9: Quick Deploy 功能实现
- 子需求 10: Destructive Changes 功能实现
### 方向 5: 元数据管理层(优先级:中)
- 子需求 11: 元数据组件索引和查询
- 子需求 12: 文件哈希对比和增量检测
- 子需求 13: 版本回溯功能
### 方向 6: 监控和日志层(优先级:中)
- 子需求 14: 作业执行监控
- 子需求 15: 详细日志记录和查询
### 方向 7: 异常处理和优化(优先级:中)
- 子需求 16: 异常处理机制完善
- 子需求 17: 性能优化和限流处理
## 验收标准
定义验证输出质量的具体标准:
1. **完整性**: 所有子需求必须覆盖 REQ-010 的所有功能点
2. **独立性**: 每个子需求应该可以独立开发和测试
3. **可追溯性**: 每个子需求必须能够追溯到 REQ-010 的具体需求项
4. **可测试性**: 每个子需求必须有清晰的验收标准
5. **可行性**: 每个子需求的工作量评估应该合理
6. **依赖清晰**: 子需求之间的依赖关系必须清晰明确
7. **技术可行**: 每个子需求的技术方案必须可行
8. **符合架构**: 每个子需求必须符合现有的项目架构
## 风险
识别使用此提示词可能带来的风险:
1. **拆分粒度风险**: 子需求拆分过细或过粗,影响开发效率
2. **依赖关系风险**: 子需求之间的依赖关系不清晰,导致开发阻塞
3. **工作量评估风险**: 工作量评估不准确,影响项目进度
4. **技术方案风险**: 某些子需求的技术方案可能存在技术难点
5. **优先级风险**: 子需求的优先级排序不合理,影响整体进度
## 使用指南
### 使用步骤
1. **准备工作**:
- 阅读 REQ-010.md 了解完整需求
- 阅读 Authentication.canvas 了解项目架构
- 阅读参考资料了解技术细节
2. **拆分过程**:
- 按照"建议的子需求拆分方向"进行拆分
- 为每个子需求填写完整的输出格式
- 确保每个子需求符合"拆分原则"
3. **验证检查**:
- 检查所有子需求是否覆盖 REQ-010 的所有功能点
- 检查每个子需求的验收标准是否清晰
- 检查子需求之间的依赖关系是否合理
- 检查工作量评估是否合理
4. **输出结果**:
- 生成完整的子需求拆分文档
- 保存为独立的 Markdown 文件(如 `010-metadata-retrieve-deploy-sub-requirements.md`
### 注意事项
- 拆分时要考虑团队的技术能力和资源情况
- 优先拆分高优先级、低依赖的需求
- 每个子需求的工作量应该控制在 3-5 人天
- 子需求之间的依赖关系要尽量减少
- 每个子需求应该有明确的交付物
## 使用记录
| 日期 | 使用场景 | 输入参数 | 输出结果 | 反馈 | 改进措施 |
|------|---------|---------|---------|------|----------|
| 2026-01-17 | 拆分 REQ-010 子需求 | REQ-010.md, Authentication.canvas, 参考资料 | 生成子需求拆分文档 | - | - |