datai/datai-scenes/datai-scene-salesforce/docs/skill/0004-define-requirements.md
DESKTOP-368IV5S\Kris 55b053346d docs(salesforce): 新增技能文档和优化代码
- 新增 11 个技能文档,指导 AI 完成特定开发任务
- 新增参考代码文件,用于代码分析和重构
- 优化 DataiIntegrationBatchServiceImpl.java,提取常量到 SalesforceConstants.java
- 移动 SessionManager.java 到 auth 模块
- 更新 docs/index.md,添加技能文档索引

主要变更:
- 新增技能文档:Bootstrap、SSOT Hub、信息架构、需求定义、架构决策、提示词资产化、上下文锚定、执行记录、变更归档、闭环复盘、测试提交
- 提取常量:批次处理、状态值、字段名、日志消息等
- 优化代码:改进代码结构和可读性

Related:
- Prompts: docs/prompts/03-创建工作流提示词.md
- Prompts: docs/prompts/07生成技能书提示词.md
2026-01-15 14:09:15 +08:00

311 lines
7.6 KiB
Markdown
Raw 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.

---
name: 0004-define-requirements
description: 需求定义与入库,创建需求文档并更新索引
---
# 技能:需求定义与入库 (Define Requirements)
## 元数据 (Metadata)
- **name**: define-requirements
- **description**: 需求定义与入库,创建需求文档并更新索引
- **version**: 1.0.0
- **author**: SSOT Architect
- **lastUpdated**: 2026-01-15
## 触发与定位 (Triggers & Scope)
### 触发条件 (Triggers)
当以下情况发生时AI 应当"觉醒"本技能:
1. **新功能需求**: 用户提出新的功能需求
2. **Bug 修复需求**: 用户报告 Bug 并要求修复
3. **性能优化需求**: 用户要求优化系统性能
4. **技术债务清理**: 用户要求清理技术债务
5. **工作流阶段 1**: 用户进入工作流的"需求定义与入库"阶段
### 定位范围 (Scope)
- **适用模块**: 所有 Datai 项目模块
- **影响文件**: `docs/requirements/REQ-XXX.md`, `docs/index.md`
- **相关技能**: skill-architecture-decision, skill-prompt-engineering
## 核心指令集 (Instructions)
### 架构约束 (Architecture Constraints)
1. **需求文档命名规范**:
- 格式: `REQ-XXX.md`
- XXX: 三位数字,从 001 开始递增
- 示例: `REQ-001.md`, `REQ-002.md`
2. **需求文档必须包含**:
- 需求编号和标题
- 需求类型(功能/非功能)
- 优先级(高/中/低)
- 用户故事
- 验收标准AC
- 相关文档链接
- 状态Draft/In Progress/Completed
3. **必须同步更新 docs/index.md**:
- 将新需求添加到"需求文档"表格
- 标记需求状态
- 包含需求描述和更新日期
### 业务逻辑 SOP (Business Logic SOP)
#### 步骤 1: 解析用户原始需求
```markdown
## 需求解析
### 原始需求
[用户提供的原始需求描述]
### 需求类型
- [ ] 功能需求
- [ ] 非功能需求(性能/安全/可用性等)
### 优先级
- [ ]
- [ ]
- [ ]
### 影响范围
- [ ] 前端
- [ ] 后端
- [ ] 数据库
- [ ] API
- [ ] 文档
```
#### 步骤 2: 编写用户故事
```markdown
## 用户故事
### 用户角色
[目标用户角色]
### 用户目标
[用户想要达成的目标]
### 用户价值
[用户为什么需要这个功能]
### 用户故事格式
作为一个 [用户角色]
我想要 [用户目标]
以便于 [用户价值]。
```
#### 步骤 3: 定义验收标准AC
```markdown
## 验收标准 (Acceptance Criteria)
### 功能验收标准
- [ ] AC1: [具体的验收标准]
- [ ] AC2: [具体的验收标准]
- [ ] AC3: [具体的验收标准]
### 非功能验收标准
- [ ] 性能要求: [具体的性能指标]
- [ ] 安全要求: [具体的安全要求]
- [ ] 可用性要求: [具体的可用性要求]
### 测试用例
| 用例编号 | 用例描述 | 预期结果 |
|----------|----------|----------|
| TC-001 | [测试用例描述] | [预期结果] |
| TC-002 | [测试用例描述] | [预期结果] |
```
#### 步骤 4: 创建需求文档
```markdown
---
name: REQ-001
description: [需求描述]
---
# 需求: [需求标题]
## 元数据 (Metadata)
- **需求编号**: REQ-001
- **需求标题**: [需求标题]
- **需求类型**: [功能需求/非功能需求]
- **优先级**: [高/中/低]
- **状态**: [Draft/In Progress/Completed]
- **创建日期**: YYYY-MM-DD
- **最后更新**: YYYY-MM-DD
- **创建人**: [创建人姓名]
- **负责人**: [负责人姓名]
## 需求描述 (Description)
### 背景
[需求背景和上下文]
### 问题陈述
[当前存在的问题]
### 目标
[需求要达成的目标]
## 用户故事 (User Story)
作为一个 [用户角色]
我想要 [用户目标]
以便于 [用户价值]。
## 验收标准 (Acceptance Criteria)
### 功能验收标准
- [ ] AC1: [具体的验收标准]
- [ ] AC2: [具体的验收标准]
- [ ] AC3: [具体的验收标准]
### 非功能验收标准
- [ ] 性能要求: [具体的性能指标]
- [ ] 安全要求: [具体的安全要求]
- [ ] 可用性要求: [具体的可用性要求]
## 技术要求 (Technical Requirements)
### 技术栈
- [ ] Java 17/21
- [ ] Spring Boot 3.x
- [ ] MyBatis Plus
- [ ] Salesforce API
### 接口要求
- [ ] REST API
- [ ] SOAP API
- [ ] GraphQL API
### 数据库要求
- [ ] MySQL
- [ ] PostgreSQL
- [ ] Oracle
## 依赖关系 (Dependencies)
### 前置需求
- [REQ-XXX](./REQ-XXX.md) - [前置需求描述]
### 后续需求
- [REQ-XXX](./REQ-XXX.md) - [后续需求描述]
### 外部依赖
- [外部系统/服务] - [依赖描述]
## 相关文档 (Related Documents)
- [设计文档](../design/DES-XXX.md)
- [ADR 文档](../decisions/adr/ADR-XXX.md)
- [提示词文档](../prompts/PROMPT-XXX.md)
## 变更历史 (Change History)
| 日期 | 版本 | 变更内容 | 变更人 |
|------|------|----------|--------|
| YYYY-MM-DD | 1.0.0 | 初始版本 | [姓名] |
```
#### 步骤 5: 更新 docs/index.md
```markdown
### 📝 需求文档 (Requirements)
| 文档 | 状态 | 描述 | 更新日期 |
|------|------|------|----------|
| [REQ-001](requirements/REQ-001.md) | 🔄 In Progress | [需求描述] | 2026-01-15 |
```
### 工具调用 (Tool Usage)
1. **需求编号生成工具**:
- 使用 `Grep` 工具搜索 `docs/requirements/` 目录
- 查找最大的 REQ 编号
- 生成新的 REQ 编号
2. **文件创建工具**:
- 使用 `Write` 工具创建需求文档
- 确保文件路径正确
3. **索引更新工具**:
- 使用 `Read` 工具读取 `docs/index.md`
- 使用 `SearchReplace` 工具更新索引
## 错误陷阱与验证 (Anti-Patterns & Checklist)
### 常见错误 (Anti-Patterns)
1. **错误**: 需求描述过于模糊
- **后果**: 无法准确理解需求,导致开发偏差
- **修正**: 使用具体的、可量化的描述
2. **错误**: 验收标准不完整
- **后果**: 无法验证需求是否满足
- **修正**: 确保每个功能点都有对应的验收标准
3. **错误**: 忘记更新 docs/index.md
- **后果**: 产生孤儿文件,违反 SSOT 原则
- **修正**: 创建需求文档后必须更新索引
4. **错误**: 用户故事格式不规范
- **后果**: 难以理解用户需求
- **修正**: 使用标准格式:作为一个...我想要...以便于...
5. **错误**: 缺少非功能需求
- **后果**: 系统性能、安全性等无法保证
- **修正**: 必须包含性能、安全、可用性等非功能需求
### 验收清单 (Acceptance Checklist)
- [ ] 需求文档已创建
- [ ] 需求编号符合规范
- [ ] 需求类型已明确
- [ ] 优先级已设定
- [ ] 用户故事已编写
- [ ] 验收标准已定义
- [ ] 技术要求已明确
- [ ] 依赖关系已列出
- [ ] docs/index.md 已更新
- [ ] 相关文档已链接
### Correct vs Incorrect 对比
#### Correct 示例
```markdown
## 用户故事
作为一个系统管理员,
我想要批量导入用户数据,
以便于快速初始化系统用户。
## 验收标准
- [ ] AC1: 支持 CSV 格式的批量导入
- [ ] AC2: 单次导入最多支持 1000 条记录
- [ ] AC3: 导入失败时提供详细的错误信息
- [ ] AC4: 导入耗时不超过 30 秒1000 条记录)
```
#### Incorrect 示例
```markdown
## 用户故事
用户想要批量导入数据。
## 验收标准
- [ ] 支持批量导入
- [ ] 导入速度快
```
**问题**: 用户故事格式不规范,验收标准不具体、不可量化。
## 相关文档 (Related Documents)
- [工作流提示词](../prompts/03-创建工作流提示词.md#阶段-1-需求定义与入库-requirements)
- [架构决策技能](./0005-architecture-decision.md)
- [提示词资产化技能](./0006-prompt-engineering.md)
- [需求模板](../prompts/03-创建工作流提示词.md#阶段-1-需求定义与入库-requirements)