@zeyue0329/xiaoma-cli 1.0.44 → 1.0.46

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.
@@ -84,7 +84,7 @@ commands:
84
84
  - perform-market-research: 使用任务 create-doc 和 market-research-tmpl.yaml
85
85
  - research-prompt {topic}: 执行任务 create-deep-research-prompt.md
86
86
  - analyze-requirement {req_file}: 基于需求文档进行RAG增强的需求分析 (运行任务 requirement-analysis-with-rag.md)
87
- - generate-rag-questions {req_file}: 根据需求文档生成知识库查询问题清单 (使用模板 rag-questions-tmpl.yaml)
87
+ - generate-rag-questions {req_file}: 根据需求文档生成知识库查询问题清单,保存到docs/rag/_questions.md (运行任务 generate-rag-questions.md)
88
88
  - land-knowledge: 将知识库返回的内容结构化存储到docs/rag目录 (使用模板 rag-knowledge-tmpl.yaml)
89
89
  - create-prd-from-rag: 基于docs/rag知识和需求文档生成PRD (使用任务 create-doc 和 prd-tmpl.yaml)
90
90
  - yolo: 切换 Yolo 模式
@@ -99,6 +99,7 @@ dependencies:
99
99
  - create-doc.md
100
100
  - document-project.md
101
101
  - facilitate-brainstorming-session.md
102
+ - generate-rag-questions.md
102
103
  - requirement-analysis-with-rag.md
103
104
  templates:
104
105
  - brainstorming-output-tmpl.yaml
@@ -1111,6 +1112,321 @@ Generate structured document with these sections:
1111
1112
  - Respect their process and timing
1112
1113
  ==================== END: .xiaoma-core/tasks/facilitate-brainstorming-session.md ====================
1113
1114
 
1115
+ ==================== START: .xiaoma-core/tasks/generate-rag-questions.md ====================
1116
+ # 生成知识库查询问题清单任务
1117
+
1118
+ ## 任务概述
1119
+
1120
+ 根据需求文档(req.txt)生成结构化的知识库查询问题清单,并保存到项目的 `docs/rag/` 目录下。
1121
+
1122
+ ## 输入
1123
+
1124
+ - **req_file**: 需求文档路径(默认: req.txt)
1125
+
1126
+ ## 输出
1127
+
1128
+ - **输出目录**: `docs/rag/`
1129
+ - **主文件**: `docs/rag/_questions.md` - 完整的问题清单
1130
+ - **解析结果**: `docs/rag/_requirement-parsing.yaml` - 需求解析结果
1131
+
1132
+ ## 执行流程
1133
+
1134
+ ### 步骤 1: 环境准备
1135
+
1136
+ ```yaml
1137
+ 执行动作:
1138
+ - 检查需求文档是否存在
1139
+ - 如果 docs/rag/ 目录不存在,创建该目录
1140
+ - 如果目录已存在,询问用户是否覆盖现有文件
1141
+ ```
1142
+
1143
+ ### 步骤 2: 读取需求文档
1144
+
1145
+ ```yaml
1146
+ 执行动作:
1147
+ - 读取指定的需求文档 {req_file}
1148
+ - 如果文件不存在,提示用户并终止
1149
+ - 显示文档摘要信息(字数、段落数等)
1150
+ ```
1151
+
1152
+ ### 步骤 3: 需求文档深度解析
1153
+
1154
+ 按照 `rag-questions-tmpl.yaml` 模板的第一阶段进行解析,提取以下要素:
1155
+
1156
+ ```yaml
1157
+ 解析内容:
1158
+ 业务领域:
1159
+ - 主领域识别
1160
+ - 子领域/模块识别
1161
+
1162
+ 功能点:
1163
+ - 功能名称和描述
1164
+ - 输入/输出定义
1165
+ - 涉及的实体
1166
+
1167
+ 用户角色:
1168
+ - 角色名称
1169
+ - 操作列表
1170
+ - 权限级别
1171
+
1172
+ 数据实体:
1173
+ - 实体名称和属性
1174
+ - 实体间关系(一对一/一对多/多对一/多对多)
1175
+ - 关联字段
1176
+
1177
+ 业务流程:
1178
+ - 流程名称和触发条件
1179
+ - 步骤详情(序号、名称、执行者、前置步骤、触发条件、输入/输出数据)
1180
+ - 异常分支
1181
+
1182
+ 技术组件:
1183
+ - 组件名称
1184
+ - 用途描述
1185
+
1186
+ 模糊点:
1187
+ - 位置标记
1188
+ - 内容描述
1189
+ - 可能的理解方式
1190
+ ```
1191
+
1192
+ **交互点**: 展示解析结果,请用户确认或补充修正
1193
+
1194
+ ### 步骤 4: 生成问题清单
1195
+
1196
+ 基于解析结果,按照 `rag-questions-tmpl.yaml` 模板生成四类问题:
1197
+
1198
+ #### A. 业务知识问题
1199
+ - A1-业务规则详解(P0)
1200
+ - A2-业务流程详解(P0)- 重点:步骤间关联、节点详情
1201
+ - A3-数据关联关系详解(P0)- 重点:一对一/一对多/多对多
1202
+ - A4-边界情况与异常处理(P1)
1203
+
1204
+ #### B. 技术知识问题
1205
+ - B1-整体项目技术架构(P0)
1206
+ - B2-中间件使用规范(P0)- 要求提供代码Demo
1207
+ - B3-Java编码规范(P0)
1208
+ - B4-SQL规范(P0)
1209
+ - B5-数据模型(P0)
1210
+ - B6-接口规范(P1)
1211
+ - B7-代码实现模式(P1)
1212
+
1213
+ #### C. 历史追溯问题
1214
+ - C1-历史需求(P1)
1215
+ - C2-决策记录(P2)
1216
+ - C3-已知问题(P1)
1217
+
1218
+ #### D. 约束条件问题
1219
+ - D1-技术约束(P1)
1220
+ - D2-安全合规(P0)
1221
+ - D3-性能要求(P1)
1222
+ - D4-团队规范(P2)
1223
+
1224
+ **交互点**: 展示生成的问题清单,请用户确认或调整
1225
+
1226
+ ### 步骤 5: 问题优先级排序
1227
+
1228
+ ```yaml
1229
+ 优先级规则:
1230
+ P0_阻塞级:
1231
+ - 缺失会导致完全无法理解需求
1232
+ - 涉及核心业务规则
1233
+ - 影响架构决策
1234
+ - 涉及安全合规
1235
+
1236
+ P1_重要级:
1237
+ - 影响需求完整性
1238
+ - 涉及边界情况处理
1239
+ - 影响实现方案选择
1240
+ - 涉及性能要求
1241
+
1242
+ P2_补充级:
1243
+ - 有助于优化实现
1244
+ - 提供额外上下文
1245
+ - 历史参考信息
1246
+ ```
1247
+
1248
+ ### 步骤 6: 保存问题清单
1249
+
1250
+ 将生成的问题清单保存到 `docs/rag/_questions.md`,格式如下:
1251
+
1252
+ ```markdown
1253
+ # 知识库查询问题清单
1254
+
1255
+ ## 元信息
1256
+ - 源文档: {req_file}
1257
+ - 生成时间: {timestamp}
1258
+ - 总问题数: {total_count}
1259
+ - P0问题: {p0_count} | P1问题: {p1_count} | P2问题: {p2_count}
1260
+
1261
+ ---
1262
+
1263
+ ## P0 阻塞级问题(必须回答)
1264
+
1265
+ ### A. 业务知识
1266
+
1267
+ #### 1. [A1-001] {问题标题}
1268
+ - **关联需求**: "{相关需求描述}"
1269
+ - **预期答案类型**: {答案类型}
1270
+ - **子问题**:
1271
+ - {子问题1}
1272
+ - {子问题2}
1273
+ - ...
1274
+
1275
+ ### B. 技术知识
1276
+
1277
+ #### 1. [B1-001] {问题标题}
1278
+ - **关联需求**: "{相关需求描述}"
1279
+ - **预期答案类型**: {答案类型}
1280
+ - **子问题**:
1281
+ - {子问题1}
1282
+ - {子问题2}
1283
+ - ...
1284
+ - **注意**: 请提供相关代码示例
1285
+
1286
+ ---
1287
+
1288
+ ## P1 重要级问题(强烈建议回答)
1289
+
1290
+ ...
1291
+
1292
+ ---
1293
+
1294
+ ## P2 补充级问题(可选回答)
1295
+
1296
+ ...
1297
+
1298
+ ---
1299
+
1300
+ ## 下一步操作指引
1301
+
1302
+ 完成问题清单生成后,请按以下步骤继续:
1303
+
1304
+ 1. **查询知识库**: 将上述问题发送给知识库MCP获取答案
1305
+ 2. **知识落地**: 使用 `*land-knowledge` 命令将答案保存到 `docs/rag/` 对应子目录
1306
+ 3. **生成PRD**: 使用 `*create-prd-from-rag` 命令基于知识生成PRD文档
1307
+ ```
1308
+
1309
+ ### 步骤 7: 保存解析结果
1310
+
1311
+ 将需求解析结果保存到 `docs/rag/_requirement-parsing.yaml`:
1312
+
1313
+ ```yaml
1314
+ # 需求解析结果
1315
+ # 生成时间: {timestamp}
1316
+ # 源文档: {req_file}
1317
+
1318
+ requirement_parsing:
1319
+ business_domain: {domain}
1320
+ sub_domains: [{sub_domains}]
1321
+
1322
+ features:
1323
+ - name: {feature_name}
1324
+ description: {description}
1325
+ input: {input}
1326
+ output: {output}
1327
+ entities: [{entities}]
1328
+
1329
+ roles:
1330
+ - name: {role_name}
1331
+ actions: [{actions}]
1332
+ permission_level: {level}
1333
+
1334
+ entities:
1335
+ - name: {entity_name}
1336
+ attributes: [{attributes}]
1337
+ relationships:
1338
+ - target: {target_entity}
1339
+ type: {one-to-one|one-to-many|many-to-one|many-to-many}
1340
+ field: {field_name}
1341
+
1342
+ processes:
1343
+ - name: {process_name}
1344
+ trigger: {trigger_condition}
1345
+ steps:
1346
+ - index: {n}
1347
+ name: {step_name}
1348
+ actor: {actor}
1349
+ previous_step: {prev}
1350
+ trigger_from_previous: {condition}
1351
+ input_data: {input}
1352
+ output_data: {output}
1353
+ data_changes: {changes}
1354
+ exception_branches: [{branches}]
1355
+
1356
+ tech_components:
1357
+ - name: {component}
1358
+ purpose: {purpose}
1359
+
1360
+ ambiguities:
1361
+ - location: {loc}
1362
+ content: {content}
1363
+ interpretations: [{interpretations}]
1364
+ ```
1365
+
1366
+ ### 步骤 8: 生成目录结构
1367
+
1368
+ 创建后续知识落地所需的目录结构:
1369
+
1370
+ ```bash
1371
+ docs/rag/
1372
+ ├── _questions.md # 问题清单(本任务生成)
1373
+ ├── _requirement-parsing.yaml # 需求解析结果(本任务生成)
1374
+ ├── _index.md # 知识索引(后续生成)
1375
+ ├── business/ # 业务知识目录
1376
+ ├── technical/ # 技术知识目录
1377
+ │ ├── middleware/ # 中间件规范
1378
+ │ ├── coding-standards/ # 编码规范
1379
+ │ └── sql-standards/ # SQL规范
1380
+ ├── history/ # 历史信息目录
1381
+ └── constraints/ # 约束条件目录
1382
+ ```
1383
+
1384
+ ### 步骤 9: 完成提示
1385
+
1386
+ ```yaml
1387
+ 完成输出:
1388
+ - 显示生成的文件列表和路径
1389
+ - 显示问题统计信息(各类别数量)
1390
+ - 提供下一步操作建议
1391
+ ```
1392
+
1393
+ ---
1394
+
1395
+ ## 交互模式说明
1396
+
1397
+ 本任务支持两种模式:
1398
+
1399
+ ### 交互模式(默认)
1400
+ - 每个关键步骤后暂停,等待用户确认
1401
+ - 允许用户调整解析结果和问题清单
1402
+ - 适合首次使用或复杂需求
1403
+
1404
+ ### YOLO模式
1405
+ - 一次性完成所有步骤
1406
+ - 自动使用默认值
1407
+ - 适合熟悉流程后快速生成
1408
+
1409
+ 可通过 `*yolo` 命令切换模式。
1410
+
1411
+ ---
1412
+
1413
+ ## 依赖模板
1414
+
1415
+ - `rag-questions-tmpl.yaml` - 问题生成模板
1416
+
1417
+ ## 输出文件
1418
+
1419
+ | 文件 | 路径 | 说明 |
1420
+ |------|------|------|
1421
+ | 问题清单 | `docs/rag/_questions.md` | 完整的知识库查询问题 |
1422
+ | 解析结果 | `docs/rag/_requirement-parsing.yaml` | 需求文档解析的结构化结果 |
1423
+
1424
+ ## 后续命令
1425
+
1426
+ - `*land-knowledge` - 将知识库返回的内容结构化存储
1427
+ - `*create-prd-from-rag` - 基于RAG知识生成PRD
1428
+ ==================== END: .xiaoma-core/tasks/generate-rag-questions.md ====================
1429
+
1114
1430
  ==================== START: .xiaoma-core/tasks/requirement-analysis-with-rag.md ====================
1115
1431
  <!-- Powered by XiaoMa™ Core -->
1116
1432
 
@@ -2445,10 +2761,10 @@ sections:
2445
2761
 
2446
2762
  ==================== START: .xiaoma-core/templates/rag-questions-tmpl.yaml ====================
2447
2763
  template:
2448
- id: rag-questions-template-v1
2764
+ id: rag-questions-template-v2
2449
2765
  name: 知识库问题生成模板
2450
- version: 1.0
2451
- description: 基于需求文档(req.txt)生成知识库MCP查询问题
2766
+ version: 2.0
2767
+ description: 基于需求文档(req.txt)生成知识库MCP查询问题,包含详细的技术架构、编码规范、中间件、业务流程等维度
2452
2768
  output:
2453
2769
  format: markdown
2454
2770
  filename: docs/rag-questions.md
@@ -2465,7 +2781,7 @@ workflow:
2465
2781
 
2466
2782
  sections:
2467
2783
  - id: requirement-parsing
2468
- title: 第一阶段:需求文档解析
2784
+ title: 第一阶段:需求文档深度解析
2469
2785
  instruction: |
2470
2786
  读取并深度分析 req.txt 文档,提取以下要素:
2471
2787
 
@@ -2483,13 +2799,18 @@ sections:
2483
2799
 
2484
2800
  4. **数据实体识别**
2485
2801
  - 涉及哪些数据对象?(如:订单、商品、用户)
2486
- - 数据之间的关系是什么?
2802
+ - 数据之间的关系是什么?(一对一、一对多、多对多)
2487
2803
 
2488
2804
  5. **业务流程识别**
2489
2805
  - 描述了什么业务流程?
2490
2806
  - 流程的起点、终点、关键步骤是什么?
2807
+ - 每个步骤之间的触发条件和数据传递是什么?
2808
+
2809
+ 6. **技术关键词识别**
2810
+ - 需求中提及了哪些技术组件?(如:消息队列、缓存、定时任务)
2811
+ - 涉及哪些外部系统集成?
2491
2812
 
2492
- 6. **模糊点标记**
2813
+ 7. **模糊点标记**
2493
2814
  - 哪些描述不够清晰?
2494
2815
  - 哪些内容有多种理解方式?
2495
2816
  output:
@@ -2505,25 +2826,50 @@ sections:
2505
2826
  描述: {{description}}
2506
2827
  输入: {{input}}
2507
2828
  输出: {{output}}
2829
+ 涉及实体: [{{entities}}]
2508
2830
  {{/each}}
2509
2831
 
2510
2832
  用户角色:
2511
2833
  {{#each roles}}
2512
2834
  - 角色: {{name}}
2513
2835
  操作: [{{actions}}]
2836
+ 权限级别: {{permission_level}}
2514
2837
  {{/each}}
2515
2838
 
2516
2839
  数据实体:
2517
2840
  {{#each entities}}
2518
2841
  - 实体: {{name}}
2519
2842
  属性: [{{attributes}}]
2520
- 关系: {{relationships}}
2843
+ 关系:
2844
+ {{#each relationships}}
2845
+ - 目标实体: {{target}}
2846
+ 关系类型: {{type}} # 一对一/一对多/多对一/多对多
2847
+ 关联字段: {{field}}
2848
+ {{/each}}
2521
2849
  {{/each}}
2522
2850
 
2523
2851
  业务流程:
2524
2852
  {{#each processes}}
2525
- - 流程: {{name}}
2526
- 步骤: [{{steps}}]
2853
+ - 流程名称: {{name}}
2854
+ 触发条件: {{trigger}}
2855
+ 步骤:
2856
+ {{#each steps}}
2857
+ - 序号: {{index}}
2858
+ 名称: {{name}}
2859
+ 执行者: {{actor}}
2860
+ 前置步骤: {{previous_step}}
2861
+ 触发条件: {{trigger_from_previous}}
2862
+ 输入数据: {{input_data}}
2863
+ 输出数据: {{output_data}}
2864
+ 数据变更: {{data_changes}}
2865
+ {{/each}}
2866
+ 异常分支: [{{exception_branches}}]
2867
+ {{/each}}
2868
+
2869
+ 技术组件:
2870
+ {{#each tech_components}}
2871
+ - 组件: {{name}}
2872
+ 用途: {{purpose}}
2527
2873
  {{/each}}
2528
2874
 
2529
2875
  模糊点:
@@ -2543,74 +2889,501 @@ sections:
2543
2889
  2. 优先生成阻塞性问题(缺失会导致无法继续)
2544
2890
  3. 问题应覆盖:业务、技术、历史、约束 四个维度
2545
2891
  4. 避免开放性过强的问题
2892
+ 5. 技术问题需要求提供代码示例
2893
+ 6. 业务流程问题需要追问每个节点的详细信息
2546
2894
  sections:
2895
+
2896
+ # ==================== A. 业务知识问题(增强版)====================
2547
2897
  - id: business-questions
2548
2898
  title: A. 业务知识问题
2549
2899
  instruction: |
2550
2900
  针对业务领域和流程生成问题,重点关注:
2551
- - 业务规则和约束
2552
- - 业务流程细节
2553
- - 边界情况处理
2901
+ - 业务规则和约束的完整定义
2902
+ - 业务流程的每个步骤详情
2903
+ - 步骤间的关联关系和数据流转
2904
+ - 数据实体间的关联关系
2905
+ - 边界情况和异常处理
2554
2906
  - 用户权限和角色
2555
2907
  question_templates:
2556
- - category: A1-业务规则
2557
- templates:
2558
- - "[{entity}]有哪些业务规则?如:状态流转、必填约束、取值范围"
2559
- - "[{process}]流程中,[{step}]步骤的具体业务规则是什么?"
2560
- - "[{role}]角色在[{operation}]操作上有什么权限限制?"
2561
- - "[{entity}]和[{related_entity}]之间的业务关联规则是什么?"
2562
2908
 
2563
- - category: A2-业务流程
2909
+ - category: A1-业务规则详解
2910
+ priority: P0
2911
+ description: 深入了解业务规则的完整定义
2564
2912
  templates:
2565
- - "[{process}]的完整流程是什么?包括正常流程和异常流程"
2566
- - "触发[{process}]的条件有哪些?"
2567
- - "[{process}]流程中有哪些人工审批或确认节点?"
2568
- - "[{process}]失败后的补偿或回退机制是什么?"
2569
-
2570
- - category: A3-边界情况
2913
+ - question: "[{entity}]实体有哪些业务规则?请详细说明:"
2914
+ sub_questions:
2915
+ - "状态有哪些?状态流转规则是什么?哪些状态可以互相转换?"
2916
+ - "必填字段有哪些?每个必填字段的校验规则是什么?"
2917
+ - "字段的取值范围和格式要求是什么?"
2918
+ - "是否有唯一性约束?唯一性的范围是什么(全局/租户/用户)?"
2919
+ - "是否有软删除?软删除的业务规则是什么?"
2920
+ - "创建/修改/删除操作的前置条件是什么?"
2921
+
2922
+ - question: "[{entity}]和[{related_entity}]之间的业务关联规则是什么?"
2923
+ sub_questions:
2924
+ - "关联关系的业务含义是什么?"
2925
+ - "关联是否必须存在?可以为空吗?"
2926
+ - "删除主实体时,关联实体如何处理?(级联删除/置空/禁止删除)"
2927
+ - "关联实体的生命周期如何与主实体绑定?"
2928
+
2929
+ - question: "[{role}]角色在[{operation}]操作上的权限规则是什么?"
2930
+ sub_questions:
2931
+ - "该角色可以操作哪些数据范围?(全部/本部门/本人)"
2932
+ - "操作需要哪些前置审批或确认?"
2933
+ - "操作是否有时间窗口限制?"
2934
+ - "操作失败时的提示信息应该是什么?"
2935
+
2936
+ - category: A2-业务流程详解
2937
+ priority: P0
2938
+ description: 深入了解业务流程的每个步骤和节点间关系
2571
2939
  templates:
2572
- - "[{operation}]操作在什么情况下会失败?失败后如何处理?"
2573
- - "[{entity}]存在并发操作时,系统如何处理冲突?"
2574
- - "[{data}]数据量很大时,有什么限制或分页规则?"
2575
- - "[{scenario}]场景下的异常处理逻辑是什么?"
2576
-
2940
+ - question: "[{process}]业务流程的完整定义是什么?"
2941
+ sub_questions:
2942
+ - "流程的触发条件是什么?由谁/什么事件触发?"
2943
+ - "流程的正常结束条件是什么?"
2944
+ - "流程的异常结束条件有哪些?"
2945
+ - "流程是否支持取消/撤销?取消后如何回滚?"
2946
+ - "流程的超时处理机制是什么?"
2947
+
2948
+ - question: "[{process}]流程中,步骤[{step_a}]到步骤[{step_b}]的详细信息?"
2949
+ sub_questions:
2950
+ - "从[{step_a}]到[{step_b}]的触发条件是什么?"
2951
+ - "[{step_a}]完成后,需要传递哪些数据给[{step_b}]?"
2952
+ - "数据传递的格式和校验规则是什么?"
2953
+ - "[{step_a}]失败时,是否阻塞[{step_b}]?还是走其他分支?"
2954
+ - "这两个步骤之间是否有时间约束?(如必须在N分钟内完成)"
2955
+
2956
+ - question: "[{process}]流程的第[{n}]个步骤[{step_name}]的详细执行逻辑是什么?"
2957
+ sub_questions:
2958
+ - "该步骤的执行者是谁?(系统自动/人工操作/外部系统)"
2959
+ - "该步骤的输入数据有哪些?数据来源是什么?"
2960
+ - "该步骤的处理逻辑是什么?涉及哪些业务规则?"
2961
+ - "该步骤会产生/修改哪些数据?"
2962
+ - "该步骤完成的标志是什么?如何判定成功/失败?"
2963
+ - "该步骤失败后的重试机制是什么?"
2964
+ - "该步骤是否需要记录日志/审计?记录哪些信息?"
2965
+
2966
+ - question: "[{process}]流程中有哪些并行/分支节点?"
2967
+ sub_questions:
2968
+ - "哪些步骤可以并行执行?并行执行的条件是什么?"
2969
+ - "并行步骤的汇合点在哪里?汇合的条件是什么(全部完成/任一完成)?"
2970
+ - "有哪些条件分支?每个分支的触发条件是什么?"
2971
+ - "分支是否会重新汇合?汇合点在哪里?"
2972
+
2973
+ - question: "[{process}]流程的异常处理机制是什么?"
2974
+ sub_questions:
2975
+ - "每个步骤可能出现的异常有哪些?"
2976
+ - "异常发生后的处理策略是什么?(重试/跳过/终止/人工处理)"
2977
+ - "异常是否需要通知?通知谁?通知方式是什么?"
2978
+ - "流程中断后如何恢复?是否支持断点续传?"
2979
+
2980
+ - category: A3-数据关联关系详解
2981
+ priority: P0
2982
+ description: 深入了解数据实体间的关联关系
2983
+ templates:
2984
+ - question: "[{entity_a}]和[{entity_b}]的数据关联关系详情?"
2985
+ sub_questions:
2986
+ - "关联类型是什么?(一对一/一对多/多对一/多对多)"
2987
+ - "关联是通过什么字段建立的?外键在哪一方?"
2988
+ - "关联是否必须?能否存在孤立记录?"
2989
+ - "关联的建立时机是什么?创建时/后续关联?"
2990
+ - "关联可以修改吗?修改的业务场景是什么?"
2991
+ - "解除关联的条件是什么?解除后数据如何处理?"
2992
+
2993
+ - question: "[{entity}]的一对多关联详情?"
2994
+ sub_questions:
2995
+ - "一个[{entity}]最多可以关联多少个[{related_entity}]?"
2996
+ - "是否有最小关联数量要求?"
2997
+ - "关联顺序是否重要?如何维护顺序?"
2998
+ - "批量添加/删除关联的业务规则是什么?"
2999
+
3000
+ - question: "[{entity}]涉及的多对多关联详情?"
3001
+ sub_questions:
3002
+ - "多对多关联是否有中间表?中间表存储哪些额外信息?"
3003
+ - "关联的创建和删除权限由谁控制?"
3004
+ - "关联是否有时效性?过期如何处理?"
3005
+
3006
+ - category: A4-边界情况与异常处理
3007
+ priority: P1
3008
+ description: 深入了解边界情况的处理逻辑
3009
+ templates:
3010
+ - question: "[{operation}]操作的边界情况有哪些?"
3011
+ sub_questions:
3012
+ - "并发执行时如何处理?是否需要加锁?锁的粒度是什么?"
3013
+ - "数据不存在时如何处理?"
3014
+ - "数据已被其他操作锁定时如何处理?"
3015
+ - "操作超时时如何处理?"
3016
+ - "部分成功时如何处理?是否支持事务回滚?"
3017
+
3018
+ - question: "[{entity}]数据量很大时的处理规则?"
3019
+ sub_questions:
3020
+ - "列表查询的分页规则是什么?默认每页多少条?最大每页多少条?"
3021
+ - "是否支持批量操作?批量操作的最大数量是多少?"
3022
+ - "大数据量导出的限制是什么?是否需要异步处理?"
3023
+ - "历史数据的归档策略是什么?"
3024
+
3025
+ # ==================== B. 技术知识问题(增强版)====================
2577
3026
  - id: technical-questions
2578
3027
  title: B. 技术知识问题
2579
3028
  instruction: |
2580
3029
  针对技术实现生成问题,重点关注:
2581
- - 现有系统架构
3030
+ - 整体项目技术架构
3031
+ - 中间件使用规范和代码示例
3032
+ - Java编码规范
3033
+ - SQL规范
2582
3034
  - 数据模型设计
2583
3035
  - 接口规范
2584
3036
  - 代码实现模式
2585
3037
  question_templates:
2586
- - category: B1-系统架构
2587
- templates:
2588
- - "[{module}]模块的技术架构是什么?与其他模块如何交互?"
2589
- - "系统中有哪些公共服务或组件可以复用于[{feature}]?"
2590
- - "[{functionality}]功能应该放在哪个服务/模块中实现?"
2591
- - "系统的缓存策略是什么?[{data}]数据需要缓存吗?"
2592
3038
 
2593
- - category: B2-数据模型
3039
+ - category: B1-整体项目技术架构
3040
+ priority: P0
3041
+ description: 了解项目的整体技术架构和技术栈
2594
3042
  templates:
2595
- - "[{entity}]在数据库中的表结构是什么?包含哪些字段?"
2596
- - "[{entity_a}]和[{entity_b}]的数据库关系是怎样的?外键设计?"
2597
- - "与[{domain}]相关的枚举值或字典表有哪些?"
2598
- - "[{entity}]的历史记录/审计日志如何存储?"
2599
-
2600
- - category: B3-接口规范
3043
+ - question: "项目的整体技术架构是什么?"
3044
+ sub_questions:
3045
+ - "项目采用什么架构模式?(单体/微服务/SOA/DDD)"
3046
+ - "系统分为哪些层次?每层的职责是什么?"
3047
+ - "各层之间如何交互?调用方式是什么?"
3048
+ - "请提供架构图或架构说明文档"
3049
+
3050
+ - question: "项目的技术栈详情是什么?"
3051
+ sub_questions:
3052
+ - "后端框架:使用什么框架?版本是多少?(如Spring Boot版本)"
3053
+ - "数据库:使用什么数据库?版本是多少?是否有读写分离?"
3054
+ - "缓存:使用什么缓存?(Redis/Memcached等)版本是多少?"
3055
+ - "消息队列:使用什么MQ?(RabbitMQ/Kafka/RocketMQ等)版本是多少?"
3056
+ - "搜索引擎:是否使用?使用什么?(Elasticsearch等)"
3057
+ - "文件存储:使用什么存储?(本地/OSS/MinIO等)"
3058
+ - "日志系统:使用什么日志框架和日志收集系统?"
3059
+ - "监控系统:使用什么监控?(Prometheus/Grafana等)"
3060
+
3061
+ - question: "项目的模块划分是什么?"
3062
+ sub_questions:
3063
+ - "项目包含哪些Maven/Gradle模块?各模块的职责是什么?"
3064
+ - "模块之间的依赖关系是什么?"
3065
+ - "公共模块有哪些?提供什么能力?"
3066
+ - "请提供模块结构图或模块说明"
3067
+
3068
+ - question: "项目的包结构规范是什么?"
3069
+ sub_questions:
3070
+ - "Controller层的包路径和命名规范?"
3071
+ - "Service层的包路径和命名规范?"
3072
+ - "DAO/Repository层的包路径和命名规范?"
3073
+ - "Entity/Model层的包路径和命名规范?"
3074
+ - "DTO/VO层的包路径和命名规范?"
3075
+ - "工具类的包路径和命名规范?"
3076
+ - "配置类的包路径和命名规范?"
3077
+ - "请提供包结构示例"
3078
+
3079
+ - category: B2-中间件使用规范
3080
+ priority: P0
3081
+ description: 了解各中间件的使用规范和代码示例
2601
3082
  templates:
2602
- - "现有的[{module}]模块提供了哪些API接口?"
2603
- - "[{operation}]操作的接口入参和出参规范是什么?"
2604
- - "系统的统一错误码和响应格式是什么?"
2605
- - "[{external_system}]的集成接口协议和数据格式是什么?"
2606
-
2607
- - category: B4-代码实现
3083
+ - question: "项目中Redis的使用规范是什么?"
3084
+ sub_questions:
3085
+ - "Redis的连接配置在哪里?如何获取RedisTemplate?"
3086
+ - "Key的命名规范是什么?前缀规则是什么?"
3087
+ - "不同业务场景使用哪种数据结构?(String/Hash/List/Set/ZSet)"
3088
+ - "缓存的过期时间策略是什么?"
3089
+ - "如何处理缓存穿透、缓存击穿、缓存雪崩?"
3090
+ - "分布式锁如何实现?使用什么工具?(Redisson等)"
3091
+ - "请提供Redis操作的代码示例,包括:"
3092
+ - " - 字符串缓存的存取示例"
3093
+ - " - Hash结构的存取示例"
3094
+ - " - 分布式锁的使用示例"
3095
+ - " - 缓存注解(@Cacheable等)的使用示例"
3096
+
3097
+ - question: "项目中消息队列的使用规范是什么?"
3098
+ sub_questions:
3099
+ - "使用什么消息队列?配置在哪里?"
3100
+ - "Exchange/Topic的命名规范是什么?"
3101
+ - "Queue的命名规范是什么?"
3102
+ - "消息体的格式规范是什么?(JSON结构定义)"
3103
+ - "消息的可靠性如何保证?(确认机制、持久化、重试)"
3104
+ - "消费者的幂等性如何保证?"
3105
+ - "死信队列如何处理?"
3106
+ - "请提供消息队列的代码示例,包括:"
3107
+ - " - 生产者发送消息的示例"
3108
+ - " - 消费者接收消息的示例"
3109
+ - " - 延迟消息的发送示例"
3110
+ - " - 消息确认和重试的示例"
3111
+
3112
+ - question: "项目中定时任务的使用规范是什么?"
3113
+ sub_questions:
3114
+ - "使用什么定时任务框架?(Spring @Scheduled/XXL-Job/Quartz等)"
3115
+ - "定时任务的配置在哪里?"
3116
+ - "分布式环境下如何保证任务只执行一次?"
3117
+ - "任务执行失败如何处理?是否有重试机制?"
3118
+ - "任务执行日志如何记录?"
3119
+ - "请提供定时任务的代码示例,包括:"
3120
+ - " - 简单定时任务的定义示例"
3121
+ - " - 带参数定时任务的示例"
3122
+ - " - 分布式锁定时任务的示例"
3123
+
3124
+ - question: "项目中Elasticsearch的使用规范是什么?(如果使用)"
3125
+ sub_questions:
3126
+ - "ES的连接配置在哪里?"
3127
+ - "索引的命名规范是什么?"
3128
+ - "Mapping的定义规范是什么?"
3129
+ - "数据同步策略是什么?(同步/异步/Canal等)"
3130
+ - "请提供ES操作的代码示例,包括:"
3131
+ - " - 索引创建的示例"
3132
+ - " - 文档的CRUD示例"
3133
+ - " - 复杂查询的示例"
3134
+
3135
+ - question: "项目中文件存储的使用规范是什么?"
3136
+ sub_questions:
3137
+ - "使用什么文件存储?配置在哪里?"
3138
+ - "文件路径/Key的命名规范是什么?"
3139
+ - "文件大小限制是什么?"
3140
+ - "支持哪些文件类型?"
3141
+ - "文件访问权限如何控制?"
3142
+ - "请提供文件上传/下载的代码示例"
3143
+
3144
+ - question: "项目中是否使用其他中间件?使用规范是什么?"
3145
+ sub_questions:
3146
+ - "是否使用分布式配置中心?(Nacos/Apollo等)如何使用?"
3147
+ - "是否使用服务注册发现?如何使用?"
3148
+ - "是否使用链路追踪?如何使用?"
3149
+ - "是否使用限流熔断?(Sentinel等)如何使用?"
3150
+ - "请提供相关代码示例"
3151
+
3152
+ - category: B3-Java编码规范
3153
+ priority: P0
3154
+ description: 了解项目的Java编码规范和最佳实践
2608
3155
  templates:
2609
- - "类似[{feature}]的功能在现有代码中是如何实现的?"
2610
- - "系统中处理[{technical_concern}]的通用模式是什么?"
2611
- - "[{framework}]框架在项目中的使用规范和最佳实践是什么?"
2612
- - "现有代码中有哪些工具类或辅助方法可以用于[{task}]?"
2613
-
3156
+ - question: "项目的Java编码规范是什么?"
3157
+ sub_questions:
3158
+ - "遵循什么编码规范?(阿里巴巴规范/Google规范/自定义)"
3159
+ - "是否有规范文档?请提供链接或内容"
3160
+
3161
+ - question: "类和接口的命名规范是什么?"
3162
+ sub_questions:
3163
+ - "Controller类的命名规范?后缀是什么?"
3164
+ - "Service接口和实现类的命名规范?"
3165
+ - "DAO/Mapper/Repository的命名规范?"
3166
+ - "Entity/PO的命名规范?"
3167
+ - "DTO的命名规范?请求和响应如何区分?"
3168
+ - "VO的命名规范?"
3169
+ - "枚举类的命名规范?"
3170
+ - "常量类的命名规范?"
3171
+ - "工具类的命名规范?"
3172
+ - "异常类的命名规范?"
3173
+ - "请提供各类型的命名示例"
3174
+
3175
+ - question: "方法的命名规范是什么?"
3176
+ sub_questions:
3177
+ - "查询单个对象的方法命名?(get/find/query/select)"
3178
+ - "查询列表的方法命名?"
3179
+ - "查询分页的方法命名?"
3180
+ - "新增的方法命名?(add/insert/create/save)"
3181
+ - "修改的方法命名?(update/modify/edit)"
3182
+ - "删除的方法命名?(delete/remove)"
3183
+ - "批量操作的方法命名?"
3184
+ - "布尔判断的方法命名?(is/has/can/should)"
3185
+ - "请提供方法命名示例"
3186
+
3187
+ - question: "注释规范是什么?"
3188
+ sub_questions:
3189
+ - "类注释的格式要求?必须包含哪些内容?"
3190
+ - "方法注释的格式要求?参数和返回值如何描述?"
3191
+ - "字段注释的格式要求?"
3192
+ - "是否使用Swagger注解?格式要求是什么?"
3193
+ - "TODO/FIXME注释的格式要求?"
3194
+ - "请提供注释示例"
3195
+
3196
+ - question: "异常处理规范是什么?"
3197
+ sub_questions:
3198
+ - "项目有哪些自定义异常类?何时使用?"
3199
+ - "异常应该在哪一层捕获和处理?"
3200
+ - "业务异常和系统异常如何区分?"
3201
+ - "异常信息如何记录日志?"
3202
+ - "全局异常处理器是如何实现的?"
3203
+ - "请提供异常处理的代码示例"
3204
+
3205
+ - question: "日志打印规范是什么?"
3206
+ sub_questions:
3207
+ - "使用什么日志框架?(SLF4J+Logback等)"
3208
+ - "不同级别日志(DEBUG/INFO/WARN/ERROR)的使用场景?"
3209
+ - "日志内容应该包含哪些信息?"
3210
+ - "敏感信息如何脱敏?"
3211
+ - "请求入参出参如何记录?"
3212
+ - "请提供日志打印的代码示例"
3213
+
3214
+ - question: "Controller层的编码规范是什么?"
3215
+ sub_questions:
3216
+ - "URL路径的命名规范?RESTful还是其他风格?"
3217
+ - "请求方法的使用规范?(GET/POST/PUT/DELETE)"
3218
+ - "参数接收方式的规范?(@RequestParam/@RequestBody/@PathVariable)"
3219
+ - "响应格式的统一规范?"
3220
+ - "参数校验如何实现?使用什么注解?"
3221
+ - "请提供Controller的代码模板"
3222
+
3223
+ - question: "Service层的编码规范是什么?"
3224
+ sub_questions:
3225
+ - "是否必须定义接口?接口和实现类的关系?"
3226
+ - "事务注解如何使用?事务传播行为如何选择?"
3227
+ - "Service之间如何调用?是否允许循环依赖?"
3228
+ - "复杂业务逻辑如何拆分?"
3229
+ - "请提供Service的代码模板"
3230
+
3231
+ - question: "DAO层的编码规范是什么?"
3232
+ sub_questions:
3233
+ - "使用什么ORM框架?(MyBatis/MyBatis-Plus/JPA等)"
3234
+ - "Mapper接口的编写规范?"
3235
+ - "XML文件还是注解方式?"
3236
+ - "动态SQL的编写规范?"
3237
+ - "请提供DAO的代码模板"
3238
+
3239
+ - category: B4-SQL规范
3240
+ priority: P0
3241
+ description: 了解项目的SQL编写规范
3242
+ templates:
3243
+ - question: "项目的SQL编写规范是什么?"
3244
+ sub_questions:
3245
+ - "是否有SQL规范文档?请提供链接或内容"
3246
+
3247
+ - question: "表设计规范是什么?"
3248
+ sub_questions:
3249
+ - "表名的命名规范?前缀规则?"
3250
+ - "字段名的命名规范?(驼峰/下划线)"
3251
+ - "主键的设计规范?(自增/UUID/雪花ID)"
3252
+ - "是否必须有创建时间/更新时间/创建人/更新人字段?"
3253
+ - "是否必须有逻辑删除字段?"
3254
+ - "是否必须有版本号字段(乐观锁)?"
3255
+ - "字段类型的选择规范?"
3256
+ - "字段长度的设计规范?"
3257
+ - "索引的命名和设计规范?"
3258
+ - "请提供建表语句的模板"
3259
+
3260
+ - question: "SQL查询规范是什么?"
3261
+ sub_questions:
3262
+ - "SELECT是否禁止使用*?"
3263
+ - "WHERE条件的编写规范?"
3264
+ - "JOIN的使用规范?最多允许关联几张表?"
3265
+ - "子查询的使用规范?"
3266
+ - "ORDER BY的使用规范?"
3267
+ - "LIMIT的使用规范?深分页如何处理?"
3268
+ - "请提供查询SQL的示例"
3269
+
3270
+ - question: "SQL更新规范是什么?"
3271
+ sub_questions:
3272
+ - "UPDATE是否必须带WHERE条件?"
3273
+ - "批量更新的写法规范?"
3274
+ - "是否使用乐观锁?如何使用?"
3275
+ - "请提供更新SQL的示例"
3276
+
3277
+ - question: "SQL性能规范是什么?"
3278
+ sub_questions:
3279
+ - "索引的使用规范?如何避免索引失效?"
3280
+ - "大表查询的规范?"
3281
+ - "慢SQL的定义标准?如何优化?"
3282
+ - "EXPLAIN的使用规范?"
3283
+ - "请提供SQL优化的示例"
3284
+
3285
+ - category: B5-数据模型
3286
+ priority: P0
3287
+ description: 了解数据库表结构和数据模型
3288
+ templates:
3289
+ - question: "[{entity}]对应的数据库表结构是什么?"
3290
+ sub_questions:
3291
+ - "表名是什么?"
3292
+ - "包含哪些字段?每个字段的类型、长度、约束?"
3293
+ - "主键是什么?主键生成策略是什么?"
3294
+ - "有哪些索引?索引类型是什么?"
3295
+ - "有哪些外键约束?(如果有)"
3296
+ - "请提供完整的DDL语句"
3297
+
3298
+ - question: "[{entity_a}]和[{entity_b}]的数据库关联设计是什么?"
3299
+ sub_questions:
3300
+ - "关联类型是什么?(一对一/一对多/多对多)"
3301
+ - "外键在哪张表?外键字段名是什么?"
3302
+ - "是否有中间表?中间表结构是什么?"
3303
+ - "关联查询的SQL怎么写?"
3304
+ - "请提供关联查询的示例SQL"
3305
+
3306
+ - question: "[{domain}]领域的ER图是什么?"
3307
+ sub_questions:
3308
+ - "涉及哪些表?"
3309
+ - "表之间的关系是什么?"
3310
+ - "请提供ER图或表关系说明"
3311
+
3312
+ - category: B6-接口规范
3313
+ priority: P1
3314
+ description: 了解API接口设计规范
3315
+ templates:
3316
+ - question: "项目的API接口规范是什么?"
3317
+ sub_questions:
3318
+ - "API风格是什么?(RESTful/RPC/GraphQL)"
3319
+ - "URL设计规范是什么?"
3320
+ - "版本控制如何实现?"
3321
+ - "认证授权如何实现?"
3322
+ - "请提供API设计规范文档"
3323
+
3324
+ - question: "接口请求规范是什么?"
3325
+ sub_questions:
3326
+ - "请求头的规范?必须包含哪些Header?"
3327
+ - "请求体的格式?(JSON/Form)"
3328
+ - "分页参数的规范?参数名是什么?"
3329
+ - "排序参数的规范?"
3330
+ - "请提供请求示例"
3331
+
3332
+ - question: "接口响应规范是什么?"
3333
+ sub_questions:
3334
+ - "统一响应格式是什么?包含哪些字段?"
3335
+ - "成功响应的格式?"
3336
+ - "错误响应的格式?"
3337
+ - "分页响应的格式?"
3338
+ - "错误码的设计规范?"
3339
+ - "请提供响应示例"
3340
+
3341
+ - question: "现有的[{module}]模块提供了哪些API接口?"
3342
+ sub_questions:
3343
+ - "接口列表是什么?"
3344
+ - "每个接口的URL、方法、参数、响应是什么?"
3345
+ - "请提供Swagger文档或接口文档链接"
3346
+
3347
+ - category: B7-代码实现模式
3348
+ priority: P1
3349
+ description: 了解项目中的通用代码实现模式
3350
+ templates:
3351
+ - question: "项目中通用的CRUD实现模式是什么?"
3352
+ sub_questions:
3353
+ - "是否有通用的BaseController/BaseService?"
3354
+ - "是否使用代码生成器?如何使用?"
3355
+ - "请提供标准CRUD的代码示例"
3356
+
3357
+ - question: "项目中分页查询的实现模式是什么?"
3358
+ sub_questions:
3359
+ - "使用什么分页插件?(PageHelper/MyBatis-Plus等)"
3360
+ - "分页参数如何接收?"
3361
+ - "分页结果如何封装?"
3362
+ - "请提供分页查询的代码示例"
3363
+
3364
+ - question: "项目中复杂查询的实现模式是什么?"
3365
+ sub_questions:
3366
+ - "多条件动态查询如何实现?"
3367
+ - "多表关联查询如何实现?"
3368
+ - "请提供复杂查询的代码示例"
3369
+
3370
+ - question: "项目中事务处理的实现模式是什么?"
3371
+ sub_questions:
3372
+ - "本地事务如何使用?"
3373
+ - "分布式事务如何处理?使用什么方案?"
3374
+ - "请提供事务处理的代码示例"
3375
+
3376
+ - question: "项目中有哪些通用工具类?"
3377
+ sub_questions:
3378
+ - "日期时间处理工具类?"
3379
+ - "字符串处理工具类?"
3380
+ - "JSON处理工具类?"
3381
+ - "加密解密工具类?"
3382
+ - "文件处理工具类?"
3383
+ - "HTTP请求工具类?"
3384
+ - "请提供工具类的使用示例"
3385
+
3386
+ # ==================== C. 历史追溯问题 ====================
2614
3387
  - id: history-questions
2615
3388
  title: C. 历史追溯问题
2616
3389
  instruction: |
@@ -2620,23 +3393,42 @@ sections:
2620
3393
  - 已知问题和债务
2621
3394
  question_templates:
2622
3395
  - category: C1-历史需求
3396
+ priority: P1
2623
3397
  templates:
2624
- - "之前有没有类似[{feature}]的需求?实现情况如何?"
2625
- - "[{module}]模块最近有什么变更?变更原因是什么?"
2626
- - "[{feature}]功能的历史版本迭代情况是什么?"
3398
+ - question: "之前有没有类似[{feature}]的需求?"
3399
+ sub_questions:
3400
+ - "实现情况如何?是否上线?"
3401
+ - "实现过程中遇到了什么问题?"
3402
+ - "有什么经验教训可以借鉴?"
3403
+ - "相关代码在哪里?"
3404
+
3405
+ - question: "[{module}]模块最近有什么变更?"
3406
+ sub_questions:
3407
+ - "变更的内容是什么?"
3408
+ - "变更的原因是什么?"
3409
+ - "变更后是否有问题?"
2627
3410
 
2628
3411
  - category: C2-决策记录
3412
+ priority: P2
2629
3413
  templates:
2630
- - "[{technical_choice}]为什么选择当前的实现方式?"
2631
- - "[{architecture_decision}]的架构决策背景是什么?"
2632
- - "有没有被否决的[{alternative}]方案?为什么被否决?"
3414
+ - question: "[{technical_choice}]为什么选择当前的实现方式?"
3415
+ sub_questions:
3416
+ - "决策的背景是什么?"
3417
+ - "考虑过哪些备选方案?"
3418
+ - "选择当前方案的理由是什么?"
3419
+ - "这个决策有什么限制或trade-off?"
2633
3420
 
2634
3421
  - category: C3-已知问题
3422
+ priority: P1
2635
3423
  templates:
2636
- - "[{module}]模块有哪些已知的问题或技术债务?"
2637
- - "[{feature}]功能有没有用户反馈的问题或改进建议?"
2638
- - "与[{domain}]相关的性能或稳定性问题有哪些?"
2639
-
3424
+ - question: "[{module}]模块有哪些已知的问题或技术债务?"
3425
+ sub_questions:
3426
+ - "问题的具体描述是什么?"
3427
+ - "问题的影响范围是什么?"
3428
+ - "是否有计划修复?"
3429
+ - "新功能开发需要注意什么?"
3430
+
3431
+ # ==================== D. 约束条件问题 ====================
2640
3432
  - id: constraint-questions
2641
3433
  title: D. 约束条件问题
2642
3434
  instruction: |
@@ -2647,28 +3439,79 @@ sections:
2647
3439
  - 团队规范
2648
3440
  question_templates:
2649
3441
  - category: D1-技术约束
3442
+ priority: P1
2650
3443
  templates:
2651
- - "项目的技术栈限制有哪些?必须使用什么框架/库?"
2652
- - "[{technical_approach}]方案在当前技术栈下是否可行?"
2653
- - "项目对[{resource}]资源的使用有什么限制?"
3444
+ - question: "项目的技术栈限制有哪些?"
3445
+ sub_questions:
3446
+ - "必须使用什么框架/库?不能使用什么?"
3447
+ - "JDK版本要求是什么?"
3448
+ - "是否有第三方库的版本要求?"
3449
+ - "是否有禁止使用的技术或方案?"
3450
+
3451
+ - question: "[{technical_approach}]方案在当前技术栈下是否可行?"
3452
+ sub_questions:
3453
+ - "是否与现有技术兼容?"
3454
+ - "是否需要引入新的依赖?"
3455
+ - "团队是否有相关经验?"
2654
3456
 
2655
3457
  - category: D2-安全合规
3458
+ priority: P0
2656
3459
  templates:
2657
- - "[{data_type}]数据的安全存储和传输要求是什么?"
2658
- - "[{operation}]操作需要哪些权限验证?"
2659
- - "项目需要满足哪些合规要求?(如GDPR、等保)"
3460
+ - question: "[{data_type}]数据的安全要求是什么?"
3461
+ sub_questions:
3462
+ - "数据的敏感级别是什么?"
3463
+ - "存储时是否需要加密?用什么算法?"
3464
+ - "传输时是否需要加密?"
3465
+ - "是否需要脱敏?脱敏规则是什么?"
3466
+ - "数据的访问权限如何控制?"
3467
+ - "数据的保留期限是多久?"
3468
+
3469
+ - question: "项目的安全规范是什么?"
3470
+ sub_questions:
3471
+ - "SQL注入如何防范?"
3472
+ - "XSS如何防范?"
3473
+ - "CSRF如何防范?"
3474
+ - "接口防刷如何实现?"
3475
+ - "敏感操作是否需要二次确认?"
3476
+
3477
+ - question: "项目需要满足哪些合规要求?"
3478
+ sub_questions:
3479
+ - "是否需要满足等保要求?什么级别?"
3480
+ - "是否涉及个人隐私数据?需要满足什么要求?"
3481
+ - "是否有审计日志要求?记录哪些内容?"
2660
3482
 
2661
3483
  - category: D3-性能要求
3484
+ priority: P1
2662
3485
  templates:
2663
- - "[{interface}]接口的响应时间要求是什么?"
2664
- - "[{process}]流程的并发处理能力要求是多少?"
2665
- - "系统的可用性SLA要求是什么?"
3486
+ - question: "项目的性能要求是什么?"
3487
+ sub_questions:
3488
+ - "接口响应时间要求?P99要求?"
3489
+ - "并发量要求?峰值并发是多少?"
3490
+ - "吞吐量要求?"
3491
+ - "可用性要求?99.9%还是99.99%?"
3492
+
3493
+ - question: "[{interface}]接口的性能要求是什么?"
3494
+ sub_questions:
3495
+ - "响应时间要求是多少?"
3496
+ - "预期的调用频率是多少?"
3497
+ - "是否需要限流?限流规则是什么?"
2666
3498
 
2667
3499
  - category: D4-团队规范
3500
+ priority: P2
2668
3501
  templates:
2669
- - "团队的代码规范和风格指南是什么?"
2670
- - "代码审查的标准和流程是什么?"
2671
- - "测试覆盖率和测试类型的要求是什么?"
3502
+ - question: "团队的开发流程是什么?"
3503
+ sub_questions:
3504
+ - "分支管理策略是什么?(GitFlow等)"
3505
+ - "代码审查流程是什么?"
3506
+ - "上线流程是什么?"
3507
+ - "环境有哪些?(dev/test/staging/prod)"
3508
+
3509
+ - question: "团队的测试要求是什么?"
3510
+ sub_questions:
3511
+ - "单元测试覆盖率要求?"
3512
+ - "是否需要集成测试?"
3513
+ - "是否需要性能测试?"
3514
+ - "测试用例的编写规范?"
2672
3515
 
2673
3516
  - id: question-prioritization
2674
3517
  title: 第三阶段:问题优先级排序
@@ -2679,11 +3522,13 @@ sections:
2679
3522
  - 缺失会导致完全无法理解需求
2680
3523
  - 涉及核心业务规则
2681
3524
  - 影响架构决策
3525
+ - 涉及安全合规
2682
3526
 
2683
3527
  **P1 - 重要级**(强烈建议回答)
2684
3528
  - 影响需求完整性
2685
3529
  - 涉及边界情况处理
2686
3530
  - 影响实现方案选择
3531
+ - 涉及性能要求
2687
3532
 
2688
3533
  **P2 - 补充级**(可选回答)
2689
3534
  - 有助于优化实现
@@ -2704,40 +3549,57 @@ sections:
2704
3549
 
2705
3550
  ## P0 阻塞级问题(必须回答)
2706
3551
 
2707
- ### 业务知识
3552
+ ### A. 业务知识
2708
3553
  {{#each p0_business}}
2709
- {{index}}. [{{id}}] {{question}}
2710
- - 关联需求: "{{related_requirement}}"
2711
- - 预期答案: {{expected_answer_type}}
3554
+ #### {{index}}. [{{id}}] {{question}}
3555
+ - 关联需求: "{{related_requirement}}"
3556
+ - 预期答案类型: {{expected_answer_type}}
3557
+ - 子问题:
3558
+ {{#each sub_questions}}
3559
+ - {{this}}
3560
+ {{/each}}
2712
3561
  {{/each}}
2713
3562
 
2714
- ### 技术知识
3563
+ ### B. 技术知识
2715
3564
  {{#each p0_technical}}
2716
- {{index}}. [{{id}}] {{question}}
2717
- - 关联需求: "{{related_requirement}}"
2718
- - 预期答案: {{expected_answer_type}}
3565
+ #### {{index}}. [{{id}}] {{question}}
3566
+ - 关联需求: "{{related_requirement}}"
3567
+ - 预期答案类型: {{expected_answer_type}}
3568
+ - 子问题:
3569
+ {{#each sub_questions}}
3570
+ - {{this}}
3571
+ {{/each}}
3572
+ - **注意**: 请提供相关代码示例
2719
3573
  {{/each}}
2720
3574
 
2721
3575
  ---
2722
3576
 
2723
3577
  ## P1 重要级问题(强烈建议回答)
2724
3578
 
2725
- ### 业务知识
3579
+ ### A. 业务知识
2726
3580
  {{#each p1_business}}
2727
- {{index}}. [{{id}}] {{question}}
2728
- - 关联需求: "{{related_requirement}}"
3581
+ #### {{index}}. [{{id}}] {{question}}
3582
+ - 关联需求: "{{related_requirement}}"
3583
+ - 子问题:
3584
+ {{#each sub_questions}}
3585
+ - {{this}}
3586
+ {{/each}}
2729
3587
  {{/each}}
2730
3588
 
2731
- ### 技术知识
3589
+ ### B. 技术知识
2732
3590
  {{#each p1_technical}}
2733
- {{index}}. [{{id}}] {{question}}
2734
- - 关联需求: "{{related_requirement}}"
3591
+ #### {{index}}. [{{id}}] {{question}}
3592
+ - 关联需求: "{{related_requirement}}"
3593
+ - 子问题:
3594
+ {{#each sub_questions}}
3595
+ - {{this}}
3596
+ {{/each}}
2735
3597
  {{/each}}
2736
3598
 
2737
- ### 历史追溯
3599
+ ### C. 历史追溯
2738
3600
  {{#each p1_history}}
2739
- {{index}}. [{{id}}] {{question}}
2740
- - 关联需求: "{{related_requirement}}"
3601
+ #### {{index}}. [{{id}}] {{question}}
3602
+ - 关联需求: "{{related_requirement}}"
2741
3603
  {{/each}}
2742
3604
 
2743
3605
  ---
@@ -2745,7 +3607,7 @@ sections:
2745
3607
  ## P2 补充级问题(可选回答)
2746
3608
 
2747
3609
  {{#each p2_questions}}
2748
- {{index}}. [{{id}}] {{question}}
3610
+ #### {{index}}. [{{id}}] {{question}}
2749
3611
  {{/each}}
2750
3612
 
2751
3613
  - id: knowledge-landing
@@ -2755,29 +3617,48 @@ sections:
2755
3617
  output:
2756
3618
  structure: |
2757
3619
  docs/rag/
2758
- ├── _index.md # 知识索引(自动生成)
2759
- ├── _questions.md # 问题清单(本模板输出)
3620
+ ├── _index.md # 知识索引(自动生成)
3621
+ ├── _questions.md # 问题清单(本模板输出)
2760
3622
 
2761
- ├── business/ # 业务知识
2762
- │ ├── domain-{{domain}}.md # 领域知识
2763
- │ ├── rules-{{topic}}.md # 业务规则
2764
- │ ├── process-{{name}}.md # 业务流程
2765
- └── roles.md # 角色权限
3623
+ ├── business/ # 业务知识
3624
+ │ ├── domain-{{domain}}.md # 领域知识
3625
+ │ ├── rules-{{topic}}.md # 业务规则
3626
+ │ ├── process-{{name}}.md # 业务流程(含详细步骤和关联关系)
3627
+ ├── data-relations.md # 数据关联关系
3628
+ │ └── roles.md # 角色权限
2766
3629
 
2767
- ├── technical/ # 技术知识
2768
- │ ├── architecture.md # 系统架构
2769
- │ ├── data-model.md # 数据模型
2770
- │ ├── api-{{module}}.md # 接口规范
2771
- └── patterns.md # 代码模式
3630
+ ├── technical/ # 技术知识
3631
+ │ ├── architecture.md # 整体技术架构
3632
+ │ ├── tech-stack.md # 技术栈详情
3633
+ │ ├── module-structure.md # 模块结构
3634
+ ├── middleware/ # 中间件规范
3635
+ │ │ ├── redis.md # Redis使用规范和代码示例
3636
+ │ │ ├── mq.md # 消息队列规范和代码示例
3637
+ │ │ ├── scheduler.md # 定时任务规范和代码示例
3638
+ │ │ ├── elasticsearch.md # ES规范和代码示例
3639
+ │ │ └── file-storage.md # 文件存储规范
3640
+ │ ├── coding-standards/ # 编码规范
3641
+ │ │ ├── java-naming.md # Java命名规范
3642
+ │ │ ├── java-coding.md # Java编码规范
3643
+ │ │ ├── exception.md # 异常处理规范
3644
+ │ │ ├── logging.md # 日志规范
3645
+ │ │ └── layer-standards.md # 分层规范(Controller/Service/DAO)
3646
+ │ ├── sql-standards/ # SQL规范
3647
+ │ │ ├── table-design.md # 表设计规范
3648
+ │ │ ├── query-standards.md # 查询规范
3649
+ │ │ └── performance.md # SQL性能规范
3650
+ │ ├── data-model.md # 数据模型(表结构)
3651
+ │ ├── api-{{module}}.md # 接口规范
3652
+ │ └── patterns.md # 代码模式和示例
2772
3653
 
2773
- ├── history/ # 历史信息
2774
- │ ├── related-features.md # 相关功能
2775
- │ └── decisions.md # 决策记录
3654
+ ├── history/ # 历史信息
3655
+ │ ├── related-features.md # 相关功能
3656
+ │ └── decisions.md # 决策记录
2776
3657
 
2777
- └── constraints/ # 约束条件
2778
- ├── technical.md # 技术约束
2779
- ├── security.md # 安全要求
2780
- └── performance.md # 性能要求
3658
+ └── constraints/ # 约束条件
3659
+ ├── technical.md # 技术约束
3660
+ ├── security.md # 安全要求
3661
+ └── performance.md # 性能要求
2781
3662
 
2782
3663
  file_template: |
2783
3664
  # {{title}}
@@ -2794,6 +3675,17 @@ sections:
2794
3675
  ## 详细内容
2795
3676
  {{content}}
2796
3677
 
3678
+ ## 代码示例(如适用)
3679
+ {{#if code_examples}}
3680
+ {{#each code_examples}}
3681
+ ### {{title}}
3682
+ ```{{language}}
3683
+ {{code}}
3684
+ ```
3685
+ **说明**: {{description}}
3686
+ {{/each}}
3687
+ {{/if}}
3688
+
2797
3689
  ## 需求关联
2798
3690
  - 关联需求点: {{related_requirement}}
2799
3691
  - 影响分析: {{impact_analysis}}
@@ -2814,6 +3706,8 @@ elicitation:
2814
3706
  - "添加更多问题"
2815
3707
  - "删除不相关问题"
2816
3708
  - "修改问题措辞"
3709
+ - "添加子问题"
3710
+ - "要求提供代码示例"
2817
3711
  - "进入下一阶段"
2818
3712
  ==================== END: .xiaoma-core/templates/rag-questions-tmpl.yaml ====================
2819
3713