@zeyue0329/xiaoma-cli 1.0.46 → 1.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/workspace.xml +5 -1
- package/dist/agents/analyst.txt +1117 -151
- package/dist/teams/team-all.txt +1117 -151
- package/dist/teams/team-fullstack-with-database.txt +1117 -151
- package/dist/teams/team-fullstack.txt +1117 -151
- package/dist/teams/team-no-ui.txt +1117 -151
- package/package.json +1 -1
- package/xiaoma-core/tasks/requirement-analysis-with-rag.md +1117 -151
package/dist/teams/team-all.txt
CHANGED
|
@@ -4976,206 +4976,880 @@ docs/rag/
|
|
|
4976
4976
|
==================== END: .xiaoma-core/tasks/generate-rag-questions.md ====================
|
|
4977
4977
|
|
|
4978
4978
|
==================== START: .xiaoma-core/tasks/requirement-analysis-with-rag.md ====================
|
|
4979
|
-
<!-- Powered by XiaoMa™ Core -->
|
|
4980
|
-
|
|
4981
4979
|
# 基于知识库的需求分析任务
|
|
4982
4980
|
|
|
4983
4981
|
## Purpose
|
|
4984
4982
|
|
|
4985
|
-
通过结合外部需求文档(req.txt)和知识库(RAG/MCP)
|
|
4983
|
+
通过结合外部需求文档(req.txt)和知识库(RAG/MCP)进行深度需求分析,输出结构化的需求分析报告,为后续PM智能体生成PRD提供完整输入。
|
|
4986
4984
|
|
|
4987
4985
|
## Workflow Overview
|
|
4988
4986
|
|
|
4989
4987
|
```
|
|
4990
|
-
req.txt → 问题生成 → 知识库查询 → 知识落地(docs/rag/) →
|
|
4988
|
+
req.txt → 深度解析 → 问题生成 → 知识库查询 → 知识落地(docs/rag/) → 需求分析报告
|
|
4991
4989
|
```
|
|
4992
4990
|
|
|
4993
|
-
##
|
|
4991
|
+
## 输出文件
|
|
4994
4992
|
|
|
4995
|
-
|
|
4993
|
+
| 阶段 | 输出文件 | 路径 |
|
|
4994
|
+
|------|----------|------|
|
|
4995
|
+
| 需求解析 | 解析结果 | `docs/rag/_requirement-parsing.yaml` |
|
|
4996
|
+
| 问题生成 | 问题清单 | `docs/rag/_questions.md` |
|
|
4997
|
+
| 知识落地 | 知识索引 | `docs/rag/_index.md` |
|
|
4998
|
+
| 知识落地 | 分类知识 | `docs/rag/{category}/*.md` |
|
|
4999
|
+
| 需求分析 | 分析报告 | `docs/rag/_analysis-report.md` |
|
|
4996
5000
|
|
|
4997
|
-
|
|
5001
|
+
## 职责边界
|
|
4998
5002
|
|
|
4999
5003
|
```yaml
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5004
|
+
本任务职责:
|
|
5005
|
+
- 需求文档深度解析
|
|
5006
|
+
- 知识库问题生成与查询
|
|
5007
|
+
- 知识文档落地与组织
|
|
5008
|
+
- 需求分析报告生成
|
|
5009
|
+
|
|
5010
|
+
不在本任务职责范围:
|
|
5011
|
+
- PRD文档生成(由PM智能体负责)
|
|
5012
|
+
- 用户故事编写(由SM智能体负责)
|
|
5013
|
+
- 任务拆解与排期(由SM智能体负责)
|
|
5014
|
+
|
|
5015
|
+
下游交接:
|
|
5016
|
+
交接对象: PM智能体
|
|
5017
|
+
交接物: docs/rag/ 目录下的完整知识文档和分析报告
|
|
5018
|
+
交接命令: "*create-prd docs/rag/"
|
|
5009
5019
|
```
|
|
5010
5020
|
|
|
5011
|
-
|
|
5021
|
+
---
|
|
5012
5022
|
|
|
5013
|
-
|
|
5023
|
+
## Phase 1: 需求文档深度解析
|
|
5014
5024
|
|
|
5015
|
-
|
|
5025
|
+
### 1.1 环境准备
|
|
5026
|
+
|
|
5027
|
+
```yaml
|
|
5028
|
+
执行动作:
|
|
5029
|
+
- 检查需求文档 {req_file} 是否存在
|
|
5030
|
+
- 创建 docs/rag/ 目录结构(如不存在)
|
|
5031
|
+
- 如目录已存在,询问用户是否覆盖
|
|
5032
|
+
```
|
|
5033
|
+
|
|
5034
|
+
### 1.2 需求文档深度解析
|
|
5035
|
+
|
|
5036
|
+
读取并分析需求文档,提取以下关键信息:
|
|
5037
|
+
|
|
5038
|
+
```yaml
|
|
5039
|
+
解析维度:
|
|
5016
5040
|
|
|
5017
|
-
|
|
5041
|
+
业务领域:
|
|
5042
|
+
- 主领域: 需求所属的业务领域(如:订单管理、用户管理、支付系统)
|
|
5043
|
+
- 子领域: 涉及的子模块或子系统
|
|
5044
|
+
|
|
5045
|
+
功能点:
|
|
5046
|
+
- 功能名称: 具体功能的名称
|
|
5047
|
+
- 功能描述: 功能的详细描述
|
|
5048
|
+
- 输入: 功能的输入数据
|
|
5049
|
+
- 输出: 功能的输出数据
|
|
5050
|
+
- 涉及实体: 功能涉及的数据实体
|
|
5051
|
+
|
|
5052
|
+
用户角色:
|
|
5053
|
+
- 角色名称: 用户类型
|
|
5054
|
+
- 操作列表: 该角色可执行的操作
|
|
5055
|
+
- 权限级别: 角色的权限范围
|
|
5056
|
+
|
|
5057
|
+
数据实体:
|
|
5058
|
+
- 实体名称: 数据对象名称
|
|
5059
|
+
- 属性列表: 实体包含的属性
|
|
5060
|
+
- 关系定义:
|
|
5061
|
+
- 目标实体: 关联的实体
|
|
5062
|
+
- 关系类型: 一对一/一对多/多对一/多对多
|
|
5063
|
+
- 关联字段: 建立关联的字段
|
|
5064
|
+
- 关联规则: 关联的业务规则
|
|
5018
5065
|
|
|
5019
|
-
|
|
5066
|
+
业务流程:
|
|
5067
|
+
- 流程名称: 业务流程的名称
|
|
5068
|
+
- 触发条件: 流程的启动条件
|
|
5069
|
+
- 步骤详情:
|
|
5070
|
+
- 序号: 步骤顺序
|
|
5071
|
+
- 名称: 步骤名称
|
|
5072
|
+
- 执行者: 系统自动/人工操作/外部系统
|
|
5073
|
+
- 前置步骤: 依赖的上一个步骤
|
|
5074
|
+
- 触发条件: 从前置步骤到本步骤的触发条件
|
|
5075
|
+
- 输入数据: 本步骤的输入
|
|
5076
|
+
- 输出数据: 本步骤的输出
|
|
5077
|
+
- 数据变更: 本步骤对数据的修改
|
|
5078
|
+
- 异常分支: 异常情况的处理分支
|
|
5020
5079
|
|
|
5021
|
-
|
|
5080
|
+
技术组件:
|
|
5081
|
+
- 组件名称: 需求中提及的技术组件(消息队列、缓存、定时任务等)
|
|
5082
|
+
- 用途描述: 组件的使用目的
|
|
5083
|
+
|
|
5084
|
+
集成点:
|
|
5085
|
+
- 外部系统: 需要集成的外部系统
|
|
5086
|
+
- 集成方式: API/MQ/文件等
|
|
5087
|
+
|
|
5088
|
+
约束条件:
|
|
5089
|
+
- 技术约束: 技术栈限制
|
|
5090
|
+
- 业务约束: 业务规则限制
|
|
5091
|
+
- 时间约束: 时间要求
|
|
5092
|
+
|
|
5093
|
+
模糊点:
|
|
5094
|
+
- 位置: 模糊内容在文档中的位置
|
|
5095
|
+
- 内容: 模糊的具体内容
|
|
5096
|
+
- 可能理解: 多种可能的理解方式
|
|
5022
5097
|
```
|
|
5098
|
+
|
|
5099
|
+
**交互点**: 展示解析结果,保存到 `docs/rag/_requirement-parsing.yaml`,请用户确认或补充
|
|
5100
|
+
|
|
5101
|
+
---
|
|
5102
|
+
|
|
5103
|
+
## Phase 2: 知识库问题生成
|
|
5104
|
+
|
|
5105
|
+
基于解析结果,生成结构化的知识库查询问题。
|
|
5106
|
+
|
|
5107
|
+
### 类别 A: 业务知识问题
|
|
5108
|
+
|
|
5109
|
+
#### A1. 业务规则详解 (P0)
|
|
5110
|
+
|
|
5111
|
+
```yaml
|
|
5023
5112
|
问题模板:
|
|
5024
|
-
- "
|
|
5025
|
-
|
|
5026
|
-
- "
|
|
5027
|
-
- "
|
|
5113
|
+
- question: "[{entity}]实体有哪些业务规则?"
|
|
5114
|
+
sub_questions:
|
|
5115
|
+
- "状态有哪些?状态流转规则是什么?哪些状态可以互相转换?"
|
|
5116
|
+
- "必填字段有哪些?每个必填字段的校验规则是什么?"
|
|
5117
|
+
- "字段的取值范围和格式要求是什么?"
|
|
5118
|
+
- "是否有唯一性约束?唯一性的范围是什么(全局/租户/用户)?"
|
|
5119
|
+
- "是否有软删除?软删除的业务规则是什么?"
|
|
5120
|
+
- "创建/修改/删除操作的前置条件是什么?"
|
|
5121
|
+
|
|
5122
|
+
- question: "[{entity}]和[{related_entity}]之间的业务关联规则是什么?"
|
|
5123
|
+
sub_questions:
|
|
5124
|
+
- "关联关系的业务含义是什么?"
|
|
5125
|
+
- "关联是否必须存在?可以为空吗?"
|
|
5126
|
+
- "删除主实体时,关联实体如何处理?(级联删除/置空/禁止删除)"
|
|
5127
|
+
- "关联实体的生命周期如何与主实体绑定?"
|
|
5128
|
+
|
|
5129
|
+
- question: "[{role}]角色在[{operation}]操作上的权限规则是什么?"
|
|
5130
|
+
sub_questions:
|
|
5131
|
+
- "该角色可以操作哪些数据范围?(全部/本部门/本人)"
|
|
5132
|
+
- "操作需要哪些前置审批或确认?"
|
|
5133
|
+
- "操作是否有时间窗口限制?"
|
|
5134
|
+
- "操作失败时的提示信息应该是什么?"
|
|
5028
5135
|
```
|
|
5029
5136
|
|
|
5030
|
-
#### A2.
|
|
5031
|
-
|
|
5137
|
+
#### A2. 业务流程详解 (P0)
|
|
5138
|
+
|
|
5139
|
+
```yaml
|
|
5032
5140
|
问题模板:
|
|
5033
|
-
- "
|
|
5034
|
-
|
|
5035
|
-
- "
|
|
5141
|
+
- question: "[{process}]业务流程的完整定义是什么?"
|
|
5142
|
+
sub_questions:
|
|
5143
|
+
- "流程的触发条件是什么?由谁/什么事件触发?"
|
|
5144
|
+
- "流程的正常结束条件是什么?"
|
|
5145
|
+
- "流程的异常结束条件有哪些?"
|
|
5146
|
+
- "流程是否支持取消/撤销?取消后如何回滚?"
|
|
5147
|
+
- "流程的超时处理机制是什么?"
|
|
5148
|
+
|
|
5149
|
+
- question: "[{process}]流程中,步骤[{step_a}]到步骤[{step_b}]的详细信息?"
|
|
5150
|
+
sub_questions:
|
|
5151
|
+
- "从[{step_a}]到[{step_b}]的触发条件是什么?"
|
|
5152
|
+
- "[{step_a}]完成后,需要传递哪些数据给[{step_b}]?"
|
|
5153
|
+
- "数据传递的格式和校验规则是什么?"
|
|
5154
|
+
- "[{step_a}]失败时,是否阻塞[{step_b}]?还是走其他分支?"
|
|
5155
|
+
- "这两个步骤之间是否有时间约束?(如必须在N分钟内完成)"
|
|
5156
|
+
|
|
5157
|
+
- question: "[{process}]流程的第[{n}]个步骤[{step_name}]的详细执行逻辑是什么?"
|
|
5158
|
+
sub_questions:
|
|
5159
|
+
- "该步骤的执行者是谁?(系统自动/人工操作/外部系统)"
|
|
5160
|
+
- "该步骤的输入数据有哪些?数据来源是什么?"
|
|
5161
|
+
- "该步骤的处理逻辑是什么?涉及哪些业务规则?"
|
|
5162
|
+
- "该步骤会产生/修改哪些数据?"
|
|
5163
|
+
- "该步骤完成的标志是什么?如何判定成功/失败?"
|
|
5164
|
+
- "该步骤失败后的重试机制是什么?"
|
|
5165
|
+
- "该步骤是否需要记录日志/审计?记录哪些信息?"
|
|
5166
|
+
|
|
5167
|
+
- question: "[{process}]流程中有哪些并行/分支节点?"
|
|
5168
|
+
sub_questions:
|
|
5169
|
+
- "哪些步骤可以并行执行?并行执行的条件是什么?"
|
|
5170
|
+
- "并行步骤的汇合点在哪里?汇合的条件是什么(全部完成/任一完成)?"
|
|
5171
|
+
- "有哪些条件分支?每个分支的触发条件是什么?"
|
|
5172
|
+
- "分支是否会重新汇合?汇合点在哪里?"
|
|
5173
|
+
|
|
5174
|
+
- question: "[{process}]流程的异常处理机制是什么?"
|
|
5175
|
+
sub_questions:
|
|
5176
|
+
- "每个步骤可能出现的异常有哪些?"
|
|
5177
|
+
- "异常发生后的处理策略是什么?(重试/跳过/终止/人工处理)"
|
|
5178
|
+
- "异常是否需要通知?通知谁?通知方式是什么?"
|
|
5179
|
+
- "流程中断后如何恢复?是否支持断点续传?"
|
|
5036
5180
|
```
|
|
5037
5181
|
|
|
5038
|
-
#### A3.
|
|
5182
|
+
#### A3. 数据关联关系详解 (P0)
|
|
5183
|
+
|
|
5184
|
+
```yaml
|
|
5185
|
+
问题模板:
|
|
5186
|
+
- question: "[{entity_a}]和[{entity_b}]的数据关联关系详情?"
|
|
5187
|
+
sub_questions:
|
|
5188
|
+
- "关联类型是什么?(一对一/一对多/多对一/多对多)"
|
|
5189
|
+
- "关联是通过什么字段建立的?外键在哪一方?"
|
|
5190
|
+
- "关联是否必须?能否存在孤立记录?"
|
|
5191
|
+
- "关联的建立时机是什么?创建时/后续关联?"
|
|
5192
|
+
- "关联可以修改吗?修改的业务场景是什么?"
|
|
5193
|
+
- "解除关联的条件是什么?解除后数据如何处理?"
|
|
5194
|
+
|
|
5195
|
+
- question: "[{entity}]的一对多关联详情?"
|
|
5196
|
+
sub_questions:
|
|
5197
|
+
- "一个[{entity}]最多可以关联多少个[{related_entity}]?"
|
|
5198
|
+
- "是否有最小关联数量要求?"
|
|
5199
|
+
- "关联顺序是否重要?如何维护顺序?"
|
|
5200
|
+
- "批量添加/删除关联的业务规则是什么?"
|
|
5201
|
+
|
|
5202
|
+
- question: "[{entity}]涉及的多对多关联详情?"
|
|
5203
|
+
sub_questions:
|
|
5204
|
+
- "多对多关联是否有中间表?中间表存储哪些额外信息?"
|
|
5205
|
+
- "关联的创建和删除权限由谁控制?"
|
|
5206
|
+
- "关联是否有时效性?过期如何处理?"
|
|
5039
5207
|
```
|
|
5208
|
+
|
|
5209
|
+
#### A4. 边界情况与异常处理 (P1)
|
|
5210
|
+
|
|
5211
|
+
```yaml
|
|
5040
5212
|
问题模板:
|
|
5041
|
-
- "[
|
|
5042
|
-
|
|
5043
|
-
- "
|
|
5213
|
+
- question: "[{operation}]操作的边界情况有哪些?"
|
|
5214
|
+
sub_questions:
|
|
5215
|
+
- "并发执行时如何处理?是否需要加锁?锁的粒度是什么?"
|
|
5216
|
+
- "数据不存在时如何处理?"
|
|
5217
|
+
- "数据已被其他操作锁定时如何处理?"
|
|
5218
|
+
- "操作超时时如何处理?"
|
|
5219
|
+
- "部分成功时如何处理?是否支持事务回滚?"
|
|
5220
|
+
|
|
5221
|
+
- question: "[{entity}]数据量很大时的处理规则?"
|
|
5222
|
+
sub_questions:
|
|
5223
|
+
- "列表查询的分页规则是什么?默认每页多少条?最大每页多少条?"
|
|
5224
|
+
- "是否支持批量操作?批量操作的最大数量是多少?"
|
|
5225
|
+
- "大数据量导出的限制是什么?是否需要异步处理?"
|
|
5226
|
+
- "历史数据的归档策略是什么?"
|
|
5044
5227
|
```
|
|
5045
5228
|
|
|
5046
5229
|
---
|
|
5047
5230
|
|
|
5048
|
-
### 类别 B:
|
|
5231
|
+
### 类别 B: 技术知识问题
|
|
5049
5232
|
|
|
5050
|
-
#### B1.
|
|
5051
|
-
|
|
5233
|
+
#### B1. 整体项目技术架构 (P0)
|
|
5234
|
+
|
|
5235
|
+
```yaml
|
|
5052
5236
|
问题模板:
|
|
5053
|
-
- "
|
|
5054
|
-
|
|
5055
|
-
- "
|
|
5056
|
-
- "
|
|
5237
|
+
- question: "项目的整体技术架构是什么?"
|
|
5238
|
+
sub_questions:
|
|
5239
|
+
- "项目采用什么架构模式?(单体/微服务/SOA/DDD)"
|
|
5240
|
+
- "系统分为哪些层次?每层的职责是什么?"
|
|
5241
|
+
- "各层之间如何交互?调用方式是什么?"
|
|
5242
|
+
- "请提供架构图或架构说明文档"
|
|
5243
|
+
|
|
5244
|
+
- question: "项目的技术栈详情是什么?"
|
|
5245
|
+
sub_questions:
|
|
5246
|
+
- "后端框架:使用什么框架?版本是多少?(如Spring Boot版本)"
|
|
5247
|
+
- "数据库:使用什么数据库?版本是多少?是否有读写分离?"
|
|
5248
|
+
- "缓存:使用什么缓存?(Redis/Memcached等)版本是多少?"
|
|
5249
|
+
- "消息队列:使用什么MQ?(RabbitMQ/Kafka/RocketMQ等)版本是多少?"
|
|
5250
|
+
- "搜索引擎:是否使用?使用什么?(Elasticsearch等)"
|
|
5251
|
+
- "文件存储:使用什么存储?(本地/OSS/MinIO等)"
|
|
5252
|
+
- "日志系统:使用什么日志框架和日志收集系统?"
|
|
5253
|
+
- "监控系统:使用什么监控?(Prometheus/Grafana等)"
|
|
5254
|
+
|
|
5255
|
+
- question: "项目的模块划分是什么?"
|
|
5256
|
+
sub_questions:
|
|
5257
|
+
- "项目包含哪些Maven模块?各模块的职责是什么?"
|
|
5258
|
+
- "模块之间的依赖关系是什么?"
|
|
5259
|
+
- "公共模块有哪些?提供什么能力?"
|
|
5260
|
+
- "请提供模块结构图或模块说明"
|
|
5261
|
+
|
|
5262
|
+
- question: "项目的包结构规范是什么?"
|
|
5263
|
+
sub_questions:
|
|
5264
|
+
- "Controller层的包路径和命名规范?"
|
|
5265
|
+
- "Application层的包路径和命名规范?"
|
|
5266
|
+
- "Service层的包路径和命名规范?"
|
|
5267
|
+
- "DAO/Repository层的包路径和命名规范?"
|
|
5268
|
+
- "Entity/Model层的包路径和命名规范?"
|
|
5269
|
+
- "DTO/VO层的包路径和命名规范?"
|
|
5270
|
+
- "工具类的包路径和命名规范?"
|
|
5271
|
+
- "配置类的包路径和命名规范?"
|
|
5272
|
+
- "请提供包结构示例"
|
|
5057
5273
|
```
|
|
5058
5274
|
|
|
5059
|
-
#### B2.
|
|
5275
|
+
#### B2. 中间件使用规范 (P0) - 要求提供代码Demo
|
|
5276
|
+
|
|
5277
|
+
```yaml
|
|
5278
|
+
问题模板:
|
|
5279
|
+
- question: "项目中Redis的使用规范是什么?"
|
|
5280
|
+
sub_questions:
|
|
5281
|
+
- "Redis的连接配置在哪里?如何获取RedisTemplate?"
|
|
5282
|
+
- "Key的命名规范是什么?前缀规则是什么?"
|
|
5283
|
+
- "不同业务场景使用哪种数据结构?(String/Hash/List/Set/ZSet)"
|
|
5284
|
+
- "缓存的过期时间策略是什么?"
|
|
5285
|
+
- "如何处理缓存穿透、缓存击穿、缓存雪崩?"
|
|
5286
|
+
- "分布式锁如何实现?使用什么工具?(Redisson等)"
|
|
5287
|
+
code_examples_required:
|
|
5288
|
+
- "字符串缓存的存取示例"
|
|
5289
|
+
- "Hash结构的存取示例"
|
|
5290
|
+
- "分布式锁的使用示例"
|
|
5291
|
+
- "缓存注解(@Cacheable等)的使用示例"
|
|
5292
|
+
|
|
5293
|
+
- question: "项目中消息队列的使用规范是什么?"
|
|
5294
|
+
sub_questions:
|
|
5295
|
+
- "使用什么消息队列?配置在哪里?"
|
|
5296
|
+
- "Topic的命名规范是什么?"
|
|
5297
|
+
- "Queue的命名规范是什么?"
|
|
5298
|
+
- "消息体的格式规范是什么?(JSON结构定义)"
|
|
5299
|
+
- "消息的可靠性如何保证?(确认机制、持久化、重试)"
|
|
5300
|
+
- "消费者的幂等性如何保证?"
|
|
5301
|
+
- "死信队列如何处理?"
|
|
5302
|
+
code_examples_required:
|
|
5303
|
+
- "生产者发送消息的示例"
|
|
5304
|
+
- "消费者接收消息的示例"
|
|
5305
|
+
- "延迟消息的发送示例"
|
|
5306
|
+
- "消息确认和重试的示例"
|
|
5307
|
+
|
|
5308
|
+
- question: "项目中定时任务的使用规范是什么?"
|
|
5309
|
+
sub_questions:
|
|
5310
|
+
- "使用什么定时任务框架?(Spring @Scheduled/XXL-Job/Quartz等)"
|
|
5311
|
+
- "定时任务的配置在哪里?"
|
|
5312
|
+
- "分布式环境下如何保证任务只执行一次?"
|
|
5313
|
+
- "任务执行失败如何处理?是否有重试机制?"
|
|
5314
|
+
- "任务执行日志如何记录?"
|
|
5315
|
+
code_examples_required:
|
|
5316
|
+
- "简单定时任务的定义示例"
|
|
5317
|
+
- "带参数定时任务的示例"
|
|
5318
|
+
- "分布式锁定时任务的示例"
|
|
5319
|
+
|
|
5320
|
+
- question: "项目中Elasticsearch的使用规范是什么?(如果使用)"
|
|
5321
|
+
sub_questions:
|
|
5322
|
+
- "ES的连接配置在哪里?"
|
|
5323
|
+
- "索引的命名规范是什么?"
|
|
5324
|
+
- "Mapping的定义规范是什么?"
|
|
5325
|
+
- "数据同步策略是什么?(同步/异步/Canal等)"
|
|
5326
|
+
code_examples_required:
|
|
5327
|
+
- "索引创建的示例"
|
|
5328
|
+
- "文档的CRUD示例"
|
|
5329
|
+
- "复杂查询的示例"
|
|
5330
|
+
|
|
5331
|
+
- question: "项目中文件存储的使用规范是什么?"
|
|
5332
|
+
sub_questions:
|
|
5333
|
+
- "使用什么文件存储?配置在哪里?"
|
|
5334
|
+
- "文件路径/Key的命名规范是什么?"
|
|
5335
|
+
- "文件大小限制是什么?"
|
|
5336
|
+
- "支持哪些文件类型?"
|
|
5337
|
+
- "文件访问权限如何控制?"
|
|
5338
|
+
code_examples_required:
|
|
5339
|
+
- "文件上传的代码示例"
|
|
5340
|
+
- "文件下载的代码示例"
|
|
5341
|
+
|
|
5342
|
+
- question: "项目中是否使用其他中间件?使用规范是什么?"
|
|
5343
|
+
sub_questions:
|
|
5344
|
+
- "是否使用分布式配置中心?(Nacos/Apollo等)如何使用?"
|
|
5345
|
+
- "是否使用服务注册发现?如何使用?"
|
|
5346
|
+
- "是否使用链路追踪?如何使用?"
|
|
5347
|
+
- "是否使用限流熔断?(Sentinel等)如何使用?"
|
|
5348
|
+
code_examples_required:
|
|
5349
|
+
- "配置读取的示例"
|
|
5350
|
+
- "服务调用的示例"
|
|
5351
|
+
- "限流配置的示例"
|
|
5060
5352
|
```
|
|
5353
|
+
|
|
5354
|
+
#### B3. Java编码规范 (P0)
|
|
5355
|
+
|
|
5356
|
+
```yaml
|
|
5061
5357
|
问题模板:
|
|
5062
|
-
- "
|
|
5063
|
-
|
|
5064
|
-
- "
|
|
5358
|
+
- question: "项目的Java编码规范是什么?"
|
|
5359
|
+
sub_questions:
|
|
5360
|
+
- "遵循什么编码规范?(阿里巴巴规范/Google规范/自定义)"
|
|
5361
|
+
- "是否有规范文档?请提供链接或内容"
|
|
5362
|
+
|
|
5363
|
+
- question: "类和接口的命名规范是什么?"
|
|
5364
|
+
sub_questions:
|
|
5365
|
+
- "Controller类的命名规范?后缀是什么?"
|
|
5366
|
+
- "Service接口和实现类的命名规范?"
|
|
5367
|
+
- "DAO/Mapper/Repository的命名规范?"
|
|
5368
|
+
- "Entity/PO的命名规范?"
|
|
5369
|
+
- "DTO的命名规范?请求和响应如何区分?"
|
|
5370
|
+
- "VO的命名规范?"
|
|
5371
|
+
- "枚举类的命名规范?"
|
|
5372
|
+
- "常量类的命名规范?"
|
|
5373
|
+
- "工具类的命名规范?"
|
|
5374
|
+
- "异常类的命名规范?"
|
|
5375
|
+
code_examples_required:
|
|
5376
|
+
- "各类型的命名示例"
|
|
5377
|
+
|
|
5378
|
+
- question: "方法的命名规范是什么?"
|
|
5379
|
+
sub_questions:
|
|
5380
|
+
- "查询单个对象的方法命名?(get/find/query/select)"
|
|
5381
|
+
- "查询列表的方法命名?"
|
|
5382
|
+
- "查询分页的方法命名?"
|
|
5383
|
+
- "新增的方法命名?(add/insert/create/save)"
|
|
5384
|
+
- "修改的方法命名?(update/modify/edit)"
|
|
5385
|
+
- "删除的方法命名?(delete/remove)"
|
|
5386
|
+
- "批量操作的方法命名?"
|
|
5387
|
+
- "布尔判断的方法命名?(is/has/can/should)"
|
|
5388
|
+
code_examples_required:
|
|
5389
|
+
- "方法命名示例"
|
|
5390
|
+
|
|
5391
|
+
- question: "注释规范是什么?"
|
|
5392
|
+
sub_questions:
|
|
5393
|
+
- "类注释的格式要求?必须包含哪些内容?"
|
|
5394
|
+
- "方法注释的格式要求?参数和返回值如何描述?"
|
|
5395
|
+
- "字段注释的格式要求?"
|
|
5396
|
+
- "是否使用Swagger注解?格式要求是什么?"
|
|
5397
|
+
- "TODO/FIXME注释的格式要求?"
|
|
5398
|
+
code_examples_required:
|
|
5399
|
+
- "注释示例"
|
|
5400
|
+
|
|
5401
|
+
- question: "异常处理规范是什么?"
|
|
5402
|
+
sub_questions:
|
|
5403
|
+
- "项目有哪些自定义异常类?何时使用?"
|
|
5404
|
+
- "异常应该在哪一层捕获和处理?"
|
|
5405
|
+
- "业务异常和系统异常如何区分?"
|
|
5406
|
+
- "异常信息如何记录日志?"
|
|
5407
|
+
- "全局异常处理器是如何实现的?"
|
|
5408
|
+
code_examples_required:
|
|
5409
|
+
- "异常处理的代码示例"
|
|
5410
|
+
|
|
5411
|
+
- question: "日志打印规范是什么?"
|
|
5412
|
+
sub_questions:
|
|
5413
|
+
- "使用什么日志框架?(SLF4J+Logback等)"
|
|
5414
|
+
- "不同级别日志(DEBUG/INFO/WARN/ERROR)的使用场景?"
|
|
5415
|
+
- "日志内容应该包含哪些信息?"
|
|
5416
|
+
- "敏感信息如何脱敏?"
|
|
5417
|
+
- "请求入参出参如何记录?"
|
|
5418
|
+
code_examples_required:
|
|
5419
|
+
- "日志打印的代码示例"
|
|
5420
|
+
|
|
5421
|
+
- question: "Controller层的编码规范是什么?"
|
|
5422
|
+
sub_questions:
|
|
5423
|
+
- "URL路径的命名规范?RESTful还是其他风格?"
|
|
5424
|
+
- "请求方法的使用规范?(GET/POST/PUT/DELETE)"
|
|
5425
|
+
- "参数接收方式的规范?(@RequestParam/@RequestBody/@PathVariable)"
|
|
5426
|
+
- "响应格式的统一规范?"
|
|
5427
|
+
- "参数校验如何实现?使用什么注解?"
|
|
5428
|
+
code_examples_required:
|
|
5429
|
+
- "Controller的代码模板"
|
|
5430
|
+
|
|
5431
|
+
- question: "Service层的编码规范是什么?"
|
|
5432
|
+
sub_questions:
|
|
5433
|
+
- "是否必须定义接口?接口和实现类的关系?"
|
|
5434
|
+
- "事务注解如何使用?事务传播行为如何选择?"
|
|
5435
|
+
- "Service之间如何调用?是否允许循环依赖?"
|
|
5436
|
+
- "复杂业务逻辑如何拆分?"
|
|
5437
|
+
code_examples_required:
|
|
5438
|
+
- "Service的代码模板"
|
|
5439
|
+
|
|
5440
|
+
- question: "DAO层的编码规范是什么?"
|
|
5441
|
+
sub_questions:
|
|
5442
|
+
- "使用什么ORM框架?(MyBatis/MyBatis-Plus/JPA等)"
|
|
5443
|
+
- "Mapper接口的编写规范?"
|
|
5444
|
+
- "XML文件还是注解方式?"
|
|
5445
|
+
- "动态SQL的编写规范?"
|
|
5446
|
+
code_examples_required:
|
|
5447
|
+
- "DAO的代码模板"
|
|
5065
5448
|
```
|
|
5066
5449
|
|
|
5067
|
-
####
|
|
5450
|
+
#### B4. SQL规范 (P0)
|
|
5451
|
+
|
|
5452
|
+
```yaml
|
|
5453
|
+
问题模板:
|
|
5454
|
+
- question: "项目的SQL编写规范是什么?"
|
|
5455
|
+
sub_questions:
|
|
5456
|
+
- "是否有SQL规范文档?请提供链接或内容"
|
|
5457
|
+
|
|
5458
|
+
- question: "表设计规范是什么?"
|
|
5459
|
+
sub_questions:
|
|
5460
|
+
- "表名的命名规范?前缀规则?"
|
|
5461
|
+
- "字段名的命名规范?(驼峰/下划线)"
|
|
5462
|
+
- "主键的设计规范?(自增/UUID/雪花ID)"
|
|
5463
|
+
- "是否必须有创建时间/更新时间/创建人/更新人字段?"
|
|
5464
|
+
- "是否必须有逻辑删除字段?"
|
|
5465
|
+
- "是否必须有版本号字段(乐观锁)?"
|
|
5466
|
+
- "字段类型的选择规范?"
|
|
5467
|
+
- "字段长度的设计规范?"
|
|
5468
|
+
- "索引的命名和设计规范?"
|
|
5469
|
+
code_examples_required:
|
|
5470
|
+
- "建表语句的模板"
|
|
5471
|
+
|
|
5472
|
+
- question: "SQL查询规范是什么?"
|
|
5473
|
+
sub_questions:
|
|
5474
|
+
- "SELECT是否禁止使用*?"
|
|
5475
|
+
- "WHERE条件的编写规范?"
|
|
5476
|
+
- "JOIN的使用规范?最多允许关联几张表?"
|
|
5477
|
+
- "子查询的使用规范?"
|
|
5478
|
+
- "ORDER BY的使用规范?"
|
|
5479
|
+
- "LIMIT的使用规范?深分页如何处理?"
|
|
5480
|
+
code_examples_required:
|
|
5481
|
+
- "查询SQL的示例"
|
|
5482
|
+
|
|
5483
|
+
- question: "SQL更新规范是什么?"
|
|
5484
|
+
sub_questions:
|
|
5485
|
+
- "UPDATE是否必须带WHERE条件?"
|
|
5486
|
+
- "批量更新的写法规范?"
|
|
5487
|
+
- "是否使用乐观锁?如何使用?"
|
|
5488
|
+
code_examples_required:
|
|
5489
|
+
- "更新SQL的示例"
|
|
5490
|
+
|
|
5491
|
+
- question: "SQL性能规范是什么?"
|
|
5492
|
+
sub_questions:
|
|
5493
|
+
- "索引的使用规范?如何避免索引失效?"
|
|
5494
|
+
- "大表查询的规范?"
|
|
5495
|
+
- "慢SQL的定义标准?如何优化?"
|
|
5496
|
+
- "EXPLAIN的使用规范?"
|
|
5497
|
+
code_examples_required:
|
|
5498
|
+
- "SQL优化的示例"
|
|
5068
5499
|
```
|
|
5500
|
+
|
|
5501
|
+
#### B5. 数据模型 (P0)
|
|
5502
|
+
|
|
5503
|
+
```yaml
|
|
5069
5504
|
问题模板:
|
|
5070
|
-
- "[
|
|
5071
|
-
|
|
5072
|
-
- "
|
|
5505
|
+
- question: "[{entity}]对应的数据库表结构是什么?"
|
|
5506
|
+
sub_questions:
|
|
5507
|
+
- "表名是什么?"
|
|
5508
|
+
- "包含哪些字段?每个字段的类型、长度、约束?"
|
|
5509
|
+
- "主键是什么?主键生成策略是什么?"
|
|
5510
|
+
- "有哪些索引?索引类型是什么?"
|
|
5511
|
+
- "有哪些外键约束?(如果有)"
|
|
5512
|
+
code_examples_required:
|
|
5513
|
+
- "完整的DDL语句"
|
|
5514
|
+
|
|
5515
|
+
- question: "[{entity_a}]和[{entity_b}]的数据库关联设计是什么?"
|
|
5516
|
+
sub_questions:
|
|
5517
|
+
- "关联类型是什么?(一对一/一对多/多对多)"
|
|
5518
|
+
- "外键在哪张表?外键字段名是什么?"
|
|
5519
|
+
- "是否有中间表?中间表结构是什么?"
|
|
5520
|
+
code_examples_required:
|
|
5521
|
+
- "关联查询的示例SQL"
|
|
5522
|
+
|
|
5523
|
+
- question: "[{domain}]领域的ER图是什么?"
|
|
5524
|
+
sub_questions:
|
|
5525
|
+
- "涉及哪些表?"
|
|
5526
|
+
- "表之间的关系是什么?"
|
|
5527
|
+
- "请提供ER图或表关系说明"
|
|
5073
5528
|
```
|
|
5074
5529
|
|
|
5075
|
-
####
|
|
5530
|
+
#### B6. 接口规范 (P1)
|
|
5531
|
+
|
|
5532
|
+
```yaml
|
|
5533
|
+
问题模板:
|
|
5534
|
+
- question: "项目的API接口规范是什么?"
|
|
5535
|
+
sub_questions:
|
|
5536
|
+
- "API风格是什么?(RESTful/RPC/GraphQL)"
|
|
5537
|
+
- "URL设计规范是什么?"
|
|
5538
|
+
- "版本控制如何实现?"
|
|
5539
|
+
- "认证授权如何实现?"
|
|
5540
|
+
- "请提供API设计规范文档"
|
|
5541
|
+
|
|
5542
|
+
- question: "接口请求规范是什么?"
|
|
5543
|
+
sub_questions:
|
|
5544
|
+
- "请求头的规范?必须包含哪些Header?"
|
|
5545
|
+
- "请求体的格式?(JSON/Form)"
|
|
5546
|
+
- "分页参数的规范?参数名是什么?"
|
|
5547
|
+
- "排序参数的规范?"
|
|
5548
|
+
code_examples_required:
|
|
5549
|
+
- "请求示例"
|
|
5550
|
+
|
|
5551
|
+
- question: "接口响应规范是什么?"
|
|
5552
|
+
sub_questions:
|
|
5553
|
+
- "统一响应格式是什么?包含哪些字段?"
|
|
5554
|
+
- "成功响应的格式?"
|
|
5555
|
+
- "错误响应的格式?"
|
|
5556
|
+
- "分页响应的格式?"
|
|
5557
|
+
- "错误码的设计规范?"
|
|
5558
|
+
code_examples_required:
|
|
5559
|
+
- "响应示例"
|
|
5560
|
+
|
|
5561
|
+
- question: "现有的[{module}]模块提供了哪些API接口?"
|
|
5562
|
+
sub_questions:
|
|
5563
|
+
- "接口列表是什么?"
|
|
5564
|
+
- "每个接口的URL、方法、参数、响应是什么?"
|
|
5565
|
+
- "请提供Swagger文档或接口文档链接"
|
|
5076
5566
|
```
|
|
5567
|
+
|
|
5568
|
+
#### B7. 代码实现模式 (P1)
|
|
5569
|
+
|
|
5570
|
+
```yaml
|
|
5077
5571
|
问题模板:
|
|
5078
|
-
- "
|
|
5079
|
-
|
|
5080
|
-
- "
|
|
5572
|
+
- question: "项目中通用的CRUD实现模式是什么?"
|
|
5573
|
+
sub_questions:
|
|
5574
|
+
- "是否有通用的BaseController/BaseService?"
|
|
5575
|
+
- "是否使用代码生成器?如何使用?"
|
|
5576
|
+
code_examples_required:
|
|
5577
|
+
- "标准CRUD的代码示例"
|
|
5578
|
+
|
|
5579
|
+
- question: "项目中分页查询的实现模式是什么?"
|
|
5580
|
+
sub_questions:
|
|
5581
|
+
- "使用什么分页插件?(PageHelper/MyBatis-Plus等)"
|
|
5582
|
+
- "分页参数如何接收?"
|
|
5583
|
+
- "分页结果如何封装?"
|
|
5584
|
+
code_examples_required:
|
|
5585
|
+
- "分页查询的代码示例"
|
|
5586
|
+
|
|
5587
|
+
- question: "项目中复杂查询的实现模式是什么?"
|
|
5588
|
+
sub_questions:
|
|
5589
|
+
- "多条件动态查询如何实现?"
|
|
5590
|
+
- "多表关联查询如何实现?"
|
|
5591
|
+
code_examples_required:
|
|
5592
|
+
- "复杂查询的代码示例"
|
|
5593
|
+
|
|
5594
|
+
- question: "项目中事务处理的实现模式是什么?"
|
|
5595
|
+
sub_questions:
|
|
5596
|
+
- "本地事务如何使用?"
|
|
5597
|
+
- "分布式事务如何处理?使用什么方案?"
|
|
5598
|
+
code_examples_required:
|
|
5599
|
+
- "事务处理的代码示例"
|
|
5600
|
+
|
|
5601
|
+
- question: "项目中有哪些通用工具类?"
|
|
5602
|
+
sub_questions:
|
|
5603
|
+
- "日期时间处理工具类?"
|
|
5604
|
+
- "字符串处理工具类?"
|
|
5605
|
+
- "JSON处理工具类?"
|
|
5606
|
+
- "加密解密工具类?"
|
|
5607
|
+
- "文件处理工具类?"
|
|
5608
|
+
- "HTTP请求工具类?"
|
|
5609
|
+
code_examples_required:
|
|
5610
|
+
- "工具类的使用示例"
|
|
5081
5611
|
```
|
|
5082
5612
|
|
|
5083
5613
|
---
|
|
5084
5614
|
|
|
5085
|
-
### 类别 C:
|
|
5615
|
+
### 类别 C: 历史追溯问题
|
|
5086
5616
|
|
|
5087
|
-
#### C1.
|
|
5088
|
-
|
|
5617
|
+
#### C1. 历史需求 (P1)
|
|
5618
|
+
|
|
5619
|
+
```yaml
|
|
5089
5620
|
问题模板:
|
|
5090
|
-
- "之前有没有类似[
|
|
5091
|
-
|
|
5092
|
-
- "
|
|
5621
|
+
- question: "之前有没有类似[{feature}]的需求?"
|
|
5622
|
+
sub_questions:
|
|
5623
|
+
- "实现情况如何?是否上线?"
|
|
5624
|
+
- "实现过程中遇到了什么问题?"
|
|
5625
|
+
- "有什么经验教训可以借鉴?"
|
|
5626
|
+
- "相关代码在哪里?"
|
|
5627
|
+
|
|
5628
|
+
- question: "[{module}]模块最近有什么变更?"
|
|
5629
|
+
sub_questions:
|
|
5630
|
+
- "变更的内容是什么?"
|
|
5631
|
+
- "变更的原因是什么?"
|
|
5632
|
+
- "变更后是否有问题?"
|
|
5093
5633
|
```
|
|
5094
5634
|
|
|
5095
|
-
#### C2. 决策记录
|
|
5635
|
+
#### C2. 决策记录 (P2)
|
|
5636
|
+
|
|
5637
|
+
```yaml
|
|
5638
|
+
问题模板:
|
|
5639
|
+
- question: "[{technical_choice}]为什么选择当前的实现方式?"
|
|
5640
|
+
sub_questions:
|
|
5641
|
+
- "决策的背景是什么?"
|
|
5642
|
+
- "考虑过哪些备选方案?"
|
|
5643
|
+
- "选择当前方案的理由是什么?"
|
|
5644
|
+
- "这个决策有什么限制或trade-off?"
|
|
5096
5645
|
```
|
|
5646
|
+
|
|
5647
|
+
#### C3. 已知问题 (P1)
|
|
5648
|
+
|
|
5649
|
+
```yaml
|
|
5097
5650
|
问题模板:
|
|
5098
|
-
- "[
|
|
5099
|
-
|
|
5651
|
+
- question: "[{module}]模块有哪些已知的问题或技术债务?"
|
|
5652
|
+
sub_questions:
|
|
5653
|
+
- "问题的具体描述是什么?"
|
|
5654
|
+
- "问题的影响范围是什么?"
|
|
5655
|
+
- "是否有计划修复?"
|
|
5656
|
+
- "新功能开发需要注意什么?"
|
|
5100
5657
|
```
|
|
5101
5658
|
|
|
5102
5659
|
---
|
|
5103
5660
|
|
|
5104
|
-
### 类别 D:
|
|
5661
|
+
### 类别 D: 约束条件问题
|
|
5105
5662
|
|
|
5106
|
-
#### D1.
|
|
5663
|
+
#### D1. 技术约束 (P1)
|
|
5664
|
+
|
|
5665
|
+
```yaml
|
|
5666
|
+
问题模板:
|
|
5667
|
+
- question: "项目的技术栈限制有哪些?"
|
|
5668
|
+
sub_questions:
|
|
5669
|
+
- "必须使用什么框架/库?不能使用什么?"
|
|
5670
|
+
- "JDK版本要求是什么?"
|
|
5671
|
+
- "是否有第三方库的版本要求?"
|
|
5672
|
+
- "是否有禁止使用的技术或方案?"
|
|
5673
|
+
|
|
5674
|
+
- question: "[{technical_approach}]方案在当前技术栈下是否可行?"
|
|
5675
|
+
sub_questions:
|
|
5676
|
+
- "是否与现有技术兼容?"
|
|
5677
|
+
- "是否需要引入新的依赖?"
|
|
5678
|
+
- "团队是否有相关经验?"
|
|
5107
5679
|
```
|
|
5680
|
+
|
|
5681
|
+
#### D2. 安全合规 (P0)
|
|
5682
|
+
|
|
5683
|
+
```yaml
|
|
5108
5684
|
问题模板:
|
|
5109
|
-
- "
|
|
5110
|
-
|
|
5111
|
-
- "
|
|
5685
|
+
- question: "[{data_type}]数据的安全要求是什么?"
|
|
5686
|
+
sub_questions:
|
|
5687
|
+
- "数据的敏感级别是什么?"
|
|
5688
|
+
- "存储时是否需要加密?用什么算法?"
|
|
5689
|
+
- "传输时是否需要加密?"
|
|
5690
|
+
- "是否需要脱敏?脱敏规则是什么?"
|
|
5691
|
+
- "数据的访问权限如何控制?"
|
|
5692
|
+
- "数据的保留期限是多久?"
|
|
5693
|
+
|
|
5694
|
+
- question: "项目的安全规范是什么?"
|
|
5695
|
+
sub_questions:
|
|
5696
|
+
- "SQL注入如何防范?"
|
|
5697
|
+
- "XSS如何防范?"
|
|
5698
|
+
- "CSRF如何防范?"
|
|
5699
|
+
- "接口防刷如何实现?"
|
|
5700
|
+
- "敏感操作是否需要二次确认?"
|
|
5701
|
+
|
|
5702
|
+
- question: "项目需要满足哪些合规要求?"
|
|
5703
|
+
sub_questions:
|
|
5704
|
+
- "是否需要满足等保要求?什么级别?"
|
|
5705
|
+
- "是否涉及个人隐私数据?需要满足什么要求?"
|
|
5706
|
+
- "是否有审计日志要求?记录哪些内容?"
|
|
5112
5707
|
```
|
|
5113
5708
|
|
|
5114
|
-
####
|
|
5709
|
+
#### D3. 性能要求 (P1)
|
|
5710
|
+
|
|
5711
|
+
```yaml
|
|
5712
|
+
问题模板:
|
|
5713
|
+
- question: "项目的性能要求是什么?"
|
|
5714
|
+
sub_questions:
|
|
5715
|
+
- "接口响应时间要求?P99要求?"
|
|
5716
|
+
- "并发量要求?峰值并发是多少?"
|
|
5717
|
+
- "吞吐量要求?"
|
|
5718
|
+
- "可用性要求?99.9%还是99.99%?"
|
|
5719
|
+
|
|
5720
|
+
- question: "[{interface}]接口的性能要求是什么?"
|
|
5721
|
+
sub_questions:
|
|
5722
|
+
- "响应时间要求是多少?"
|
|
5723
|
+
- "预期的调用频率是多少?"
|
|
5724
|
+
- "是否需要限流?限流规则是什么?"
|
|
5115
5725
|
```
|
|
5726
|
+
|
|
5727
|
+
#### D4. 团队规范 (P2)
|
|
5728
|
+
|
|
5729
|
+
```yaml
|
|
5116
5730
|
问题模板:
|
|
5117
|
-
- "
|
|
5118
|
-
|
|
5119
|
-
- "
|
|
5731
|
+
- question: "团队的开发流程是什么?"
|
|
5732
|
+
sub_questions:
|
|
5733
|
+
- "分支管理策略是什么?(GitFlow等)"
|
|
5734
|
+
- "代码审查流程是什么?"
|
|
5735
|
+
- "上线流程是什么?"
|
|
5736
|
+
- "环境有哪些?(dev/test/staging/prod)"
|
|
5737
|
+
|
|
5738
|
+
- question: "团队的测试要求是什么?"
|
|
5739
|
+
sub_questions:
|
|
5740
|
+
- "单元测试覆盖率要求?"
|
|
5741
|
+
- "是否需要集成测试?"
|
|
5742
|
+
- "是否需要性能测试?"
|
|
5743
|
+
- "测试用例的编写规范?"
|
|
5120
5744
|
```
|
|
5121
5745
|
|
|
5122
5746
|
---
|
|
5123
5747
|
|
|
5124
5748
|
## Phase 3: 问题生成执行流程
|
|
5125
5749
|
|
|
5126
|
-
### 3.1
|
|
5750
|
+
### 3.1 执行步骤
|
|
5127
5751
|
|
|
5128
5752
|
```yaml
|
|
5129
5753
|
执行步骤:
|
|
5130
5754
|
步骤1_解析需求:
|
|
5131
5755
|
输入: req.txt
|
|
5132
|
-
动作:
|
|
5133
|
-
输出:
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5756
|
+
动作: 按Phase 1要求深度解析需求文档
|
|
5757
|
+
输出: docs/rag/_requirement-parsing.yaml
|
|
5758
|
+
交互: 请用户确认解析结果
|
|
5759
|
+
|
|
5760
|
+
步骤2_生成问题:
|
|
5761
|
+
输入: 需求解析结果
|
|
5762
|
+
动作: 根据Phase 2模板生成具体问题,填充实际内容
|
|
5763
|
+
输出: 问题清单(含主问题和子问题)
|
|
5764
|
+
交互: 请用户确认或调整问题
|
|
5765
|
+
|
|
5766
|
+
步骤3_优先级排序:
|
|
5767
|
+
输入: 问题清单
|
|
5768
|
+
动作: 按P0/P1/P2规则排序
|
|
5769
|
+
规则:
|
|
5770
|
+
P0_阻塞级:
|
|
5771
|
+
- 缺失会导致完全无法理解需求
|
|
5772
|
+
- 涉及核心业务规则和数据关联
|
|
5773
|
+
- 影响架构决策
|
|
5774
|
+
- 涉及安全合规
|
|
5775
|
+
P1_重要级:
|
|
5776
|
+
- 影响需求完整性
|
|
5777
|
+
- 涉及边界情况处理
|
|
5778
|
+
- 影响实现方案选择
|
|
5779
|
+
- 涉及性能要求
|
|
5780
|
+
P2_补充级:
|
|
5781
|
+
- 有助于优化实现
|
|
5782
|
+
- 提供额外上下文
|
|
5783
|
+
- 历史参考信息
|
|
5784
|
+
输出: 排序后的问题清单
|
|
5785
|
+
|
|
5786
|
+
步骤4_保存问题清单:
|
|
5787
|
+
输入: 排序后的问题清单
|
|
5788
|
+
动作: 保存到 docs/rag/_questions.md
|
|
5789
|
+
输出: 问题清单文件
|
|
5790
|
+
|
|
5791
|
+
步骤5_创建目录结构:
|
|
5792
|
+
动作: 创建知识落地所需的目录
|
|
5793
|
+
输出: docs/rag/ 目录结构
|
|
5150
5794
|
```
|
|
5151
5795
|
|
|
5152
5796
|
### 3.2 问题清单输出格式
|
|
5153
5797
|
|
|
5798
|
+
保存到 `docs/rag/_questions.md`:
|
|
5799
|
+
|
|
5154
5800
|
```markdown
|
|
5155
5801
|
# 知识库查询问题清单
|
|
5156
5802
|
|
|
5157
|
-
##
|
|
5158
|
-
-
|
|
5159
|
-
- 生成时间: {
|
|
5160
|
-
-
|
|
5803
|
+
## 元信息
|
|
5804
|
+
- 源文档: {req_file}
|
|
5805
|
+
- 生成时间: {timestamp}
|
|
5806
|
+
- 总问题数: {total_count}
|
|
5807
|
+
- P0问题: {p0_count} | P1问题: {p1_count} | P2问题: {p2_count}
|
|
5808
|
+
|
|
5809
|
+
---
|
|
5161
5810
|
|
|
5162
|
-
## P0
|
|
5811
|
+
## P0 阻塞级问题(必须回答)
|
|
5812
|
+
|
|
5813
|
+
### A. 业务知识
|
|
5814
|
+
|
|
5815
|
+
#### 1. [A1-001] {问题标题}
|
|
5816
|
+
- **关联需求**: "{相关需求描述}"
|
|
5817
|
+
- **预期答案类型**: {答案类型}
|
|
5818
|
+
- **子问题**:
|
|
5819
|
+
- {子问题1}
|
|
5820
|
+
- {子问题2}
|
|
5821
|
+
- ...
|
|
5822
|
+
|
|
5823
|
+
### B. 技术知识
|
|
5824
|
+
|
|
5825
|
+
#### 1. [B1-001] {问题标题}
|
|
5826
|
+
- **关联需求**: "{相关需求描述}"
|
|
5827
|
+
- **预期答案类型**: {答案类型}
|
|
5828
|
+
- **子问题**:
|
|
5829
|
+
- {子问题1}
|
|
5830
|
+
- {子问题2}
|
|
5831
|
+
- ...
|
|
5832
|
+
- **注意**: 请提供相关代码示例
|
|
5163
5833
|
|
|
5164
|
-
|
|
5165
|
-
1. [A1-001] {{具体问题}}
|
|
5166
|
-
- 关联需求点: {{需求中的相关描述}}
|
|
5167
|
-
- 预期答案类型: {{期望获得的信息类型}}
|
|
5834
|
+
---
|
|
5168
5835
|
|
|
5169
|
-
|
|
5170
|
-
2. [B1-001] {{具体问题}}
|
|
5171
|
-
- 关联需求点: {{需求中的相关描述}}
|
|
5172
|
-
- 预期答案类型: {{期望获得的信息类型}}
|
|
5836
|
+
## P1 重要级问题(强烈建议回答)
|
|
5173
5837
|
|
|
5174
|
-
## P1 重要级问题 (建议回答)
|
|
5175
5838
|
...
|
|
5176
5839
|
|
|
5177
|
-
|
|
5840
|
+
---
|
|
5841
|
+
|
|
5842
|
+
## P2 补充级问题(可选回答)
|
|
5843
|
+
|
|
5178
5844
|
...
|
|
5845
|
+
|
|
5846
|
+
---
|
|
5847
|
+
|
|
5848
|
+
## 下一步操作指引
|
|
5849
|
+
|
|
5850
|
+
1. **查询知识库**: 将上述问题发送给知识库MCP获取答案
|
|
5851
|
+
2. **知识落地**: 使用 `*land-knowledge` 命令将答案保存到 `docs/rag/` 对应子目录
|
|
5852
|
+
3. **生成PRD**: 使用 `*create-prd-from-rag` 命令基于知识生成PRD文档
|
|
5179
5853
|
```
|
|
5180
5854
|
|
|
5181
5855
|
---
|
|
@@ -5186,52 +5860,93 @@ req.txt → 问题生成 → 知识库查询 → 知识落地(docs/rag/) → 需
|
|
|
5186
5860
|
|
|
5187
5861
|
```
|
|
5188
5862
|
docs/rag/
|
|
5189
|
-
├── _index.md #
|
|
5863
|
+
├── _index.md # 知识索引(自动生成)
|
|
5864
|
+
├── _questions.md # 问题清单
|
|
5865
|
+
├── _requirement-parsing.yaml # 需求解析结果
|
|
5866
|
+
│
|
|
5190
5867
|
├── business/ # 业务知识
|
|
5191
|
-
│ ├── domain-
|
|
5192
|
-
│ ├──
|
|
5193
|
-
│
|
|
5868
|
+
│ ├── domain-{domain}.md # 领域知识
|
|
5869
|
+
│ ├── rules-{topic}.md # 业务规则
|
|
5870
|
+
│ ├── process-{name}.md # 业务流程(含详细步骤和关联关系)
|
|
5871
|
+
│ ├── data-relations.md # 数据关联关系(一对一/一对多/多对多)
|
|
5872
|
+
│ └── roles.md # 角色权限
|
|
5873
|
+
│
|
|
5194
5874
|
├── technical/ # 技术知识
|
|
5195
|
-
│ ├── architecture.md #
|
|
5196
|
-
│ ├──
|
|
5197
|
-
│ ├──
|
|
5198
|
-
│
|
|
5875
|
+
│ ├── architecture.md # 整体技术架构
|
|
5876
|
+
│ ├── tech-stack.md # 技术栈详情
|
|
5877
|
+
│ ├── module-structure.md # 模块结构
|
|
5878
|
+
│ ├── middleware/ # 中间件规范(含代码Demo)
|
|
5879
|
+
│ │ ├── redis.md # Redis使用规范和代码示例
|
|
5880
|
+
│ │ ├── mq.md # 消息队列规范和代码示例
|
|
5881
|
+
│ │ ├── scheduler.md # 定时任务规范和代码示例
|
|
5882
|
+
│ │ ├── elasticsearch.md # ES规范和代码示例
|
|
5883
|
+
│ │ └── file-storage.md # 文件存储规范
|
|
5884
|
+
│ ├── coding-standards/ # 编码规范
|
|
5885
|
+
│ │ ├── java-naming.md # Java命名规范
|
|
5886
|
+
│ │ ├── java-coding.md # Java编码规范
|
|
5887
|
+
│ │ ├── exception.md # 异常处理规范
|
|
5888
|
+
│ │ ├── logging.md # 日志规范
|
|
5889
|
+
│ │ └── layer-standards.md # 分层规范(Controller/Service/DAO)
|
|
5890
|
+
│ ├── sql-standards/ # SQL规范
|
|
5891
|
+
│ │ ├── table-design.md # 表设计规范
|
|
5892
|
+
│ │ ├── query-standards.md # 查询规范
|
|
5893
|
+
│ │ └── performance.md # SQL性能规范
|
|
5894
|
+
│ ├── data-model.md # 数据模型(表结构)
|
|
5895
|
+
│ ├── api-{module}.md # 接口规范
|
|
5896
|
+
│ └── patterns.md # 代码模式和示例
|
|
5897
|
+
│
|
|
5199
5898
|
├── history/ # 历史信息
|
|
5200
|
-
│ ├── related-
|
|
5899
|
+
│ ├── related-features.md # 相关功能
|
|
5201
5900
|
│ └── decisions.md # 决策记录
|
|
5901
|
+
│
|
|
5202
5902
|
└── constraints/ # 约束条件
|
|
5203
5903
|
├── technical.md # 技术约束
|
|
5204
|
-
|
|
5904
|
+
├── security.md # 安全要求
|
|
5905
|
+
└── performance.md # 性能要求
|
|
5205
5906
|
```
|
|
5206
5907
|
|
|
5207
5908
|
### 4.2 知识文档格式
|
|
5208
5909
|
|
|
5209
5910
|
```markdown
|
|
5210
|
-
# {
|
|
5911
|
+
# {知识标题}
|
|
5211
5912
|
|
|
5212
5913
|
## 元信息
|
|
5213
|
-
-
|
|
5214
|
-
-
|
|
5215
|
-
- 查询时间: {
|
|
5216
|
-
-
|
|
5914
|
+
- 查询问题: {原始问题}
|
|
5915
|
+
- 问题ID: {question_id}
|
|
5916
|
+
- 查询时间: {timestamp}
|
|
5917
|
+
- 数据来源: 知识库MCP
|
|
5217
5918
|
|
|
5218
5919
|
## 内容摘要
|
|
5219
|
-
{
|
|
5920
|
+
{一句话总结}
|
|
5220
5921
|
|
|
5221
5922
|
## 详细内容
|
|
5222
|
-
{
|
|
5923
|
+
{知识库返回的完整内容}
|
|
5223
5924
|
|
|
5224
|
-
##
|
|
5225
|
-
- 关联需求点: {{req.txt中的相关内容}}
|
|
5226
|
-
- 影响分析: {{这个知识如何影响需求实现}}
|
|
5925
|
+
## 代码示例(如适用)
|
|
5227
5926
|
|
|
5228
|
-
|
|
5229
|
-
|
|
5927
|
+
### {示例标题1}
|
|
5928
|
+
```java
|
|
5929
|
+
{代码内容}
|
|
5930
|
+
```
|
|
5931
|
+
**说明**: {代码说明}
|
|
5932
|
+
|
|
5933
|
+
### {示例标题2}
|
|
5934
|
+
```sql
|
|
5935
|
+
{SQL内容}
|
|
5936
|
+
```
|
|
5937
|
+
**说明**: {SQL说明}
|
|
5938
|
+
|
|
5939
|
+
## 需求关联
|
|
5940
|
+
- 关联需求点: {req.txt中的相关内容}
|
|
5941
|
+
- 影响分析: {这个知识如何影响需求实现}
|
|
5942
|
+
|
|
5943
|
+
## 衍生问题
|
|
5944
|
+
{基于此知识产生的新问题(如有)}
|
|
5230
5945
|
```
|
|
5231
5946
|
|
|
5232
5947
|
---
|
|
5233
5948
|
|
|
5234
|
-
## Phase 5:
|
|
5949
|
+
## Phase 5: 需求分析报告生成
|
|
5235
5950
|
|
|
5236
5951
|
### 5.1 分析输入整合
|
|
5237
5952
|
|
|
@@ -5239,6 +5954,7 @@ docs/rag/
|
|
|
5239
5954
|
分析输入:
|
|
5240
5955
|
主要输入:
|
|
5241
5956
|
- req.txt: 原始需求文档
|
|
5957
|
+
- docs/rag/_requirement-parsing.yaml: 需求解析结果
|
|
5242
5958
|
- docs/rag/*: 知识库查询结果
|
|
5243
5959
|
辅助输入:
|
|
5244
5960
|
- 项目简报(如存在): docs/brief.md
|
|
@@ -5251,8 +5967,8 @@ docs/rag/
|
|
|
5251
5967
|
分析维度:
|
|
5252
5968
|
功能分析:
|
|
5253
5969
|
- 核心功能拆解
|
|
5254
|
-
-
|
|
5255
|
-
-
|
|
5970
|
+
- 功能优先级排序(P0/P1/P2)
|
|
5971
|
+
- 功能依赖关系图
|
|
5256
5972
|
|
|
5257
5973
|
用户分析:
|
|
5258
5974
|
- 用户角色定义
|
|
@@ -5260,44 +5976,260 @@ docs/rag/
|
|
|
5260
5976
|
- 用户价值主张
|
|
5261
5977
|
|
|
5262
5978
|
技术分析:
|
|
5263
|
-
-
|
|
5264
|
-
-
|
|
5265
|
-
-
|
|
5979
|
+
- 技术可行性评估(基于技术架构和编码规范)
|
|
5980
|
+
- 与现有系统的兼容性(基于中间件和数据模型)
|
|
5981
|
+
- 技术风险识别与评估
|
|
5266
5982
|
|
|
5267
5983
|
业务分析:
|
|
5268
|
-
-
|
|
5984
|
+
- 业务规则验证(基于业务知识)
|
|
5269
5985
|
- 业务流程优化机会
|
|
5270
5986
|
- 业务价值量化
|
|
5271
5987
|
|
|
5988
|
+
数据分析:
|
|
5989
|
+
- 数据实体关系验证
|
|
5990
|
+
- 数据模型兼容性
|
|
5991
|
+
- 数据迁移需求
|
|
5992
|
+
|
|
5272
5993
|
差距分析:
|
|
5273
5994
|
- 现有能力 vs 需求能力
|
|
5274
5995
|
- 需要新增/修改的功能
|
|
5275
5996
|
- 需要新增/修改的数据
|
|
5997
|
+
|
|
5998
|
+
风险分析:
|
|
5999
|
+
- 技术风险清单
|
|
6000
|
+
- 业务风险清单
|
|
6001
|
+
- 依赖风险清单
|
|
6002
|
+
- 风险缓解建议
|
|
5276
6003
|
```
|
|
5277
6004
|
|
|
5278
|
-
### 5.3
|
|
6005
|
+
### 5.3 需求分析报告生成流程
|
|
5279
6006
|
|
|
5280
6007
|
```yaml
|
|
5281
|
-
|
|
6008
|
+
报告生成:
|
|
5282
6009
|
步骤1:
|
|
5283
6010
|
动作: 整合所有知识输入
|
|
6011
|
+
输入: docs/rag/ 目录下的所有知识文件
|
|
5284
6012
|
输出: 知识上下文汇总
|
|
5285
6013
|
|
|
5286
6014
|
步骤2:
|
|
5287
|
-
动作:
|
|
5288
|
-
输出:
|
|
6015
|
+
动作: 执行多维度需求分析(5.2)
|
|
6016
|
+
输出: 各维度分析结论
|
|
5289
6017
|
|
|
5290
6018
|
步骤3:
|
|
5291
|
-
动作:
|
|
5292
|
-
输出:
|
|
6019
|
+
动作: 识别待澄清问题
|
|
6020
|
+
输出: 待确认事项清单
|
|
5293
6021
|
|
|
5294
6022
|
步骤4:
|
|
5295
|
-
动作:
|
|
5296
|
-
输出:
|
|
6023
|
+
动作: 生成需求分析报告
|
|
6024
|
+
输出: docs/rag/_analysis-report.md
|
|
5297
6025
|
|
|
5298
6026
|
步骤5:
|
|
5299
|
-
动作:
|
|
5300
|
-
输出: docs/
|
|
6027
|
+
动作: 更新知识索引
|
|
6028
|
+
输出: docs/rag/_index.md (更新)
|
|
6029
|
+
```
|
|
6030
|
+
|
|
6031
|
+
### 5.4 需求分析报告模板
|
|
6032
|
+
|
|
6033
|
+
保存到 `docs/rag/_analysis-report.md`:
|
|
6034
|
+
|
|
6035
|
+
```markdown
|
|
6036
|
+
# 需求分析报告
|
|
6037
|
+
|
|
6038
|
+
## 元信息
|
|
6039
|
+
- 源需求文档: {req_file}
|
|
6040
|
+
- 分析时间: {timestamp}
|
|
6041
|
+
- 分析师: Analyst Agent
|
|
6042
|
+
- 报告版本: 1.0
|
|
6043
|
+
|
|
6044
|
+
---
|
|
6045
|
+
|
|
6046
|
+
## 1. 需求概述
|
|
6047
|
+
|
|
6048
|
+
### 1.1 需求背景
|
|
6049
|
+
{基于req.txt提取的背景信息}
|
|
6050
|
+
|
|
6051
|
+
### 1.2 核心目标
|
|
6052
|
+
{需求要达成的核心目标}
|
|
6053
|
+
|
|
6054
|
+
### 1.3 范围边界
|
|
6055
|
+
- **包含**: {明确包含的内容}
|
|
6056
|
+
- **不包含**: {明确排除的内容}
|
|
6057
|
+
|
|
6058
|
+
---
|
|
6059
|
+
|
|
6060
|
+
## 2. 功能分析
|
|
6061
|
+
|
|
6062
|
+
### 2.1 功能清单
|
|
6063
|
+
|
|
6064
|
+
| 序号 | 功能名称 | 优先级 | 描述 | 依赖功能 |
|
|
6065
|
+
|------|----------|--------|------|----------|
|
|
6066
|
+
| F001 | {功能名} | P0/P1/P2 | {描述} | {依赖} |
|
|
6067
|
+
|
|
6068
|
+
### 2.2 功能依赖关系
|
|
6069
|
+
|
|
6070
|
+
```mermaid
|
|
6071
|
+
graph TD
|
|
6072
|
+
F001 --> F002
|
|
6073
|
+
F002 --> F003
|
|
6074
|
+
```
|
|
6075
|
+
|
|
6076
|
+
### 2.3 功能优先级说明
|
|
6077
|
+
- **P0 (必须实现)**: {列表}
|
|
6078
|
+
- **P1 (重要)**: {列表}
|
|
6079
|
+
- **P2 (可选)**: {列表}
|
|
6080
|
+
|
|
6081
|
+
---
|
|
6082
|
+
|
|
6083
|
+
## 3. 用户分析
|
|
6084
|
+
|
|
6085
|
+
### 3.1 用户角色
|
|
6086
|
+
|
|
6087
|
+
| 角色 | 描述 | 主要操作 | 权限级别 |
|
|
6088
|
+
|------|------|----------|----------|
|
|
6089
|
+
| {角色名} | {描述} | {操作列表} | {权限} |
|
|
6090
|
+
|
|
6091
|
+
### 3.2 用户旅程
|
|
6092
|
+
{关键用户旅程描述}
|
|
6093
|
+
|
|
6094
|
+
---
|
|
6095
|
+
|
|
6096
|
+
## 4. 数据分析
|
|
6097
|
+
|
|
6098
|
+
### 4.1 数据实体清单
|
|
6099
|
+
|
|
6100
|
+
| 实体名称 | 描述 | 核心属性 | 关联实体 |
|
|
6101
|
+
|----------|------|----------|----------|
|
|
6102
|
+
| {实体名} | {描述} | {属性} | {关联} |
|
|
6103
|
+
|
|
6104
|
+
### 4.2 数据关系图
|
|
6105
|
+
|
|
6106
|
+
```mermaid
|
|
6107
|
+
erDiagram
|
|
6108
|
+
EntityA ||--o{ EntityB : contains
|
|
6109
|
+
```
|
|
6110
|
+
|
|
6111
|
+
### 4.3 与现有数据模型的兼容性
|
|
6112
|
+
- **可复用**: {已有实体/表}
|
|
6113
|
+
- **需新增**: {新实体/表}
|
|
6114
|
+
- **需修改**: {需变更的实体/表}
|
|
6115
|
+
|
|
6116
|
+
---
|
|
6117
|
+
|
|
6118
|
+
## 5. 技术分析
|
|
6119
|
+
|
|
6120
|
+
### 5.1 技术可行性评估
|
|
6121
|
+
|
|
6122
|
+
| 功能 | 可行性 | 依赖技术 | 风险等级 | 备注 |
|
|
6123
|
+
|------|--------|----------|----------|------|
|
|
6124
|
+
| {功能} | 高/中/低 | {技术} | 高/中/低 | {备注} |
|
|
6125
|
+
|
|
6126
|
+
### 5.2 与现有系统兼容性
|
|
6127
|
+
- **架构兼容**: {评估结论}
|
|
6128
|
+
- **中间件兼容**: {评估结论}
|
|
6129
|
+
- **编码规范兼容**: {评估结论}
|
|
6130
|
+
|
|
6131
|
+
### 5.3 技术实现建议
|
|
6132
|
+
{基于知识库获取的技术规范,给出实现建议}
|
|
6133
|
+
|
|
6134
|
+
---
|
|
6135
|
+
|
|
6136
|
+
## 6. 业务规则汇总
|
|
6137
|
+
|
|
6138
|
+
### 6.1 核心业务规则
|
|
6139
|
+
|
|
6140
|
+
| 规则ID | 规则名称 | 规则描述 | 来源 |
|
|
6141
|
+
|--------|----------|----------|------|
|
|
6142
|
+
| BR001 | {名称} | {描述} | 知识库/需求文档 |
|
|
6143
|
+
|
|
6144
|
+
### 6.2 业务流程
|
|
6145
|
+
|
|
6146
|
+
| 流程名称 | 触发条件 | 主要步骤 | 异常处理 |
|
|
6147
|
+
|----------|----------|----------|----------|
|
|
6148
|
+
| {流程名} | {条件} | {步骤} | {异常} |
|
|
6149
|
+
|
|
6150
|
+
---
|
|
6151
|
+
|
|
6152
|
+
## 7. 差距分析
|
|
6153
|
+
|
|
6154
|
+
### 7.1 能力差距
|
|
6155
|
+
|
|
6156
|
+
| 需求能力 | 现有能力 | 差距 | 解决方案 |
|
|
6157
|
+
|----------|----------|------|----------|
|
|
6158
|
+
| {需求} | {现有} | {差距} | {方案} |
|
|
6159
|
+
|
|
6160
|
+
### 7.2 新增/修改清单
|
|
6161
|
+
- **新增功能**: {列表}
|
|
6162
|
+
- **修改功能**: {列表}
|
|
6163
|
+
- **新增数据**: {列表}
|
|
6164
|
+
- **修改数据**: {列表}
|
|
6165
|
+
|
|
6166
|
+
---
|
|
6167
|
+
|
|
6168
|
+
## 8. 风险分析
|
|
6169
|
+
|
|
6170
|
+
### 8.1 风险清单
|
|
6171
|
+
|
|
6172
|
+
| 风险ID | 风险类型 | 风险描述 | 可能性 | 影响 | 缓解措施 |
|
|
6173
|
+
|--------|----------|----------|--------|------|----------|
|
|
6174
|
+
| R001 | 技术/业务/依赖 | {描述} | 高/中/低 | 高/中/低 | {措施} |
|
|
6175
|
+
|
|
6176
|
+
### 8.2 关键风险说明
|
|
6177
|
+
{高风险项的详细说明}
|
|
6178
|
+
|
|
6179
|
+
---
|
|
6180
|
+
|
|
6181
|
+
## 9. 待澄清事项
|
|
6182
|
+
|
|
6183
|
+
### 9.1 业务待澄清
|
|
6184
|
+
|
|
6185
|
+
| 序号 | 问题 | 上下文 | 建议选项 |
|
|
6186
|
+
|------|------|--------|----------|
|
|
6187
|
+
| Q001 | {问题} | {上下文} | {选项A/B/C} |
|
|
6188
|
+
|
|
6189
|
+
### 9.2 技术待澄清
|
|
6190
|
+
|
|
6191
|
+
| 序号 | 问题 | 上下文 | 建议选项 |
|
|
6192
|
+
|------|------|--------|----------|
|
|
6193
|
+
| Q001 | {问题} | {上下文} | {选项A/B/C} |
|
|
6194
|
+
|
|
6195
|
+
---
|
|
6196
|
+
|
|
6197
|
+
## 10. 知识库引用索引
|
|
6198
|
+
|
|
6199
|
+
| 知识文件 | 路径 | 主要内容 |
|
|
6200
|
+
|----------|------|----------|
|
|
6201
|
+
| {文件名} | docs/rag/{path} | {内容摘要} |
|
|
6202
|
+
|
|
6203
|
+
---
|
|
6204
|
+
|
|
6205
|
+
## 11. 下游交接清单
|
|
6206
|
+
|
|
6207
|
+
### 11.1 交接给PM智能体的输入
|
|
6208
|
+
|
|
6209
|
+
```yaml
|
|
6210
|
+
交接物清单:
|
|
6211
|
+
必读文件:
|
|
6212
|
+
- docs/rag/_analysis-report.md # 本报告
|
|
6213
|
+
- docs/rag/_requirement-parsing.yaml # 需求解析结果
|
|
6214
|
+
|
|
6215
|
+
知识文件目录:
|
|
6216
|
+
- docs/rag/business/ # 业务知识
|
|
6217
|
+
- docs/rag/technical/ # 技术知识
|
|
6218
|
+
- docs/rag/constraints/ # 约束条件
|
|
6219
|
+
|
|
6220
|
+
原始需求:
|
|
6221
|
+
- {req_file}
|
|
6222
|
+
|
|
6223
|
+
建议后续动作:
|
|
6224
|
+
- PM智能体执行: "*create-prd docs/rag/"
|
|
6225
|
+
- 重点关注: 待澄清事项(第9节)
|
|
6226
|
+
- 风险跟踪: 风险清单(第8节)
|
|
6227
|
+
```
|
|
6228
|
+
|
|
6229
|
+
---
|
|
6230
|
+
|
|
6231
|
+
*报告生成时间: {timestamp}*
|
|
6232
|
+
*Analyst Agent - XiaoMa Framework*
|
|
5301
6233
|
```
|
|
5302
6234
|
|
|
5303
6235
|
---
|
|
@@ -5316,18 +6248,52 @@ PRD生成:
|
|
|
5316
6248
|
参数:
|
|
5317
6249
|
req_file: 需求文档路径 (默认: req.txt)
|
|
5318
6250
|
rag_output: 知识输出路径 (默认: docs/rag/)
|
|
5319
|
-
prd_output: PRD输出路径 (默认: docs/prd.md)
|
|
5320
6251
|
skip_rag: 跳过知识库查询 (默认: false)
|
|
5321
6252
|
interactive: 交互模式 (默认: true)
|
|
5322
6253
|
```
|
|
5323
6254
|
|
|
5324
6255
|
### 交互模式流程
|
|
5325
6256
|
|
|
5326
|
-
1. **解析阶段**:
|
|
5327
|
-
2. **提问阶段**:
|
|
5328
|
-
3. **查询阶段**:
|
|
5329
|
-
4. **分析阶段**:
|
|
5330
|
-
5.
|
|
6257
|
+
1. **解析阶段**: 展示需求解析结果,保存到 `docs/rag/_requirement-parsing.yaml`,请用户确认
|
|
6258
|
+
2. **提问阶段**: 展示问题清单,保存到 `docs/rag/_questions.md`,请用户确认或调整
|
|
6259
|
+
3. **查询阶段**: 依次查询知识库,将返回结果保存到 `docs/rag/` 对应子目录
|
|
6260
|
+
4. **分析阶段**: 执行多维度需求分析,生成分析报告
|
|
6261
|
+
5. **完成阶段**: 输出 `docs/rag/_analysis-report.md`,提示用户交接给PM智能体
|
|
6262
|
+
|
|
6263
|
+
### 相关命令
|
|
6264
|
+
|
|
6265
|
+
| 命令 | 说明 |
|
|
6266
|
+
|------|------|
|
|
6267
|
+
| `*generate-rag-questions {req_file}` | 单独执行问题生成,保存到 `docs/rag/_questions.md` |
|
|
6268
|
+
| `*land-knowledge` | 将知识库返回内容保存到 `docs/rag/` 对应子目录 |
|
|
6269
|
+
| `*generate-analysis-report` | 基于 `docs/rag/` 知识生成需求分析报告 |
|
|
6270
|
+
|
|
6271
|
+
### YOLO模式
|
|
6272
|
+
|
|
6273
|
+
通过 `*yolo` 命令切换YOLO模式,一次性完成所有步骤,跳过中间确认环节。
|
|
6274
|
+
|
|
6275
|
+
---
|
|
6276
|
+
|
|
6277
|
+
## 任务完成标志
|
|
6278
|
+
|
|
6279
|
+
```yaml
|
|
6280
|
+
完成条件:
|
|
6281
|
+
必要输出:
|
|
6282
|
+
- docs/rag/_requirement-parsing.yaml # 需求解析结果
|
|
6283
|
+
- docs/rag/_questions.md # 问题清单
|
|
6284
|
+
- docs/rag/_index.md # 知识索引
|
|
6285
|
+
- docs/rag/_analysis-report.md # 需求分析报告
|
|
6286
|
+
- docs/rag/{category}/*.md # 分类知识文件
|
|
6287
|
+
|
|
6288
|
+
完成提示: |
|
|
6289
|
+
✅ 需求分析任务完成!
|
|
6290
|
+
|
|
6291
|
+
📁 输出目录: docs/rag/
|
|
6292
|
+
📋 分析报告: docs/rag/_analysis-report.md
|
|
6293
|
+
|
|
6294
|
+
🔄 下一步: 请将分析结果交接给PM智能体
|
|
6295
|
+
💡 执行命令: *create-prd docs/rag/
|
|
6296
|
+
```
|
|
5331
6297
|
==================== END: .xiaoma-core/tasks/requirement-analysis-with-rag.md ====================
|
|
5332
6298
|
|
|
5333
6299
|
==================== START: .xiaoma-core/templates/brainstorming-output-tmpl.yaml ====================
|