@tea-agent/loop-agent 0.13.0 → 0.14.0

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.
Files changed (270) hide show
  1. package/AGENTS.md +157 -157
  2. package/CHANGELOG.md +73 -301
  3. package/README.md +338 -334
  4. package/bin/agent-worker.js +22 -22
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/commands/cursor-prompt.js +6 -6
  7. package/dist/commands/init.js +505 -505
  8. package/dist/commands/loop-benchmark.js +11 -11
  9. package/dist/commands/pi-reuse-benchmark.js +16 -16
  10. package/dist/executors/pi-event-serializer.js +33 -11
  11. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  12. package/dist/task/runtime.js +27 -27
  13. package/dist/worker/observe/spec-evidence.js +19 -10
  14. package/dist/worker/observe/static/api.js +46 -46
  15. package/dist/worker/observe/static/app.js +151 -150
  16. package/dist/worker/observe/static/constants.js +156 -148
  17. package/dist/worker/observe/static/copy.js +67 -67
  18. package/dist/worker/observe/static/dag-helpers.js +201 -172
  19. package/dist/worker/observe/static/dag-layout.d.ts +31 -31
  20. package/dist/worker/observe/static/dag-layout.js +83 -83
  21. package/dist/worker/observe/static/dag-model.js +72 -72
  22. package/dist/worker/observe/static/dom.js +122 -122
  23. package/dist/worker/observe/static/format-pool.d.ts +71 -0
  24. package/dist/worker/observe/static/format-pool.js +134 -67
  25. package/dist/worker/observe/static/format.js +317 -292
  26. package/dist/worker/observe/static/index.html +350 -308
  27. package/dist/worker/observe/static/kpi.js +100 -94
  28. package/dist/worker/observe/static/markdown-render.js +124 -0
  29. package/dist/worker/observe/static/relations.js +133 -133
  30. package/dist/worker/observe/static/router.js +93 -93
  31. package/dist/worker/observe/static/run-processing.js +148 -148
  32. package/dist/worker/observe/static/shell-chrome.js +74 -68
  33. package/dist/worker/observe/static/state.js +273 -267
  34. package/dist/worker/observe/static/styles.css +2504 -1902
  35. package/dist/worker/observe/static/views/batch.js +227 -227
  36. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  37. package/dist/worker/observe/static/views/dag-inspector.js +530 -627
  38. package/dist/worker/observe/static/views/dag.js +371 -371
  39. package/dist/worker/observe/static/views/dashboard.js +86 -100
  40. package/dist/worker/observe/static/views/failures.js +143 -143
  41. package/dist/worker/observe/static/views/feature.js +492 -492
  42. package/dist/worker/observe/static/views/pool.js +708 -350
  43. package/dist/worker/observe/static/views/run.js +453 -453
  44. package/dist/worker/observe/static/views/session-timeline.js +771 -219
  45. package/dist/worker/observe/static/views/shell.js +7 -7
  46. package/dist/worker/observe/static/views/task.js +314 -314
  47. package/dist/worker/observe/static/views/timeline.js +163 -163
  48. package/dist/workflows/dag/canvas-observer.js +275 -275
  49. package/docs/README.md +105 -104
  50. package/docs/agent-dag-recovery-playbook.md +195 -195
  51. package/docs/agent-dag-runner.md +67 -67
  52. package/docs/architecture/README.md +26 -26
  53. package/docs/architecture/dag-execution.md +140 -140
  54. package/docs/architecture/evolution.md +54 -54
  55. package/docs/architecture/facts-and-state.md +71 -71
  56. package/docs/architecture/runtime-boundaries.md +191 -191
  57. package/docs/architecture/system-overview.md +93 -93
  58. package/docs/architecture/worker-and-feature.md +85 -85
  59. package/docs/cursor-prompt-sidecar.md +36 -36
  60. package/docs/decisions/README.md +18 -18
  61. package/docs/design/README.md +167 -167
  62. package/docs/development-principles.md +73 -73
  63. package/docs/exec-plans/README.md +6 -6
  64. package/docs/exec-plans/active/README.md +2 -1
  65. package/docs/exec-plans/completed/README.md +105 -104
  66. package/docs/feature-workflow.md +414 -414
  67. package/docs/harness-methodology-debugging.md +153 -153
  68. package/docs/harness-methodology-tdd.md +130 -130
  69. package/docs/harness-methodology-verification.md +27 -27
  70. package/docs/init-surface.manifest.json +307 -307
  71. package/docs/loop-agent-harness.md +142 -142
  72. package/docs/production-readiness.md +96 -96
  73. package/docs/progress/README.md +59 -58
  74. package/docs/reports/README.md +123 -119
  75. package/docs/skills/README.md +7 -7
  76. package/docs/skills/vetted-skill-registry.md +29 -29
  77. package/docs/templates/adr.md +60 -60
  78. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  79. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  80. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  81. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  82. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  83. package/docs/templates/agent-dag-report.schema.json +473 -473
  84. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  85. package/docs/templates/agent-dag.base.json +190 -190
  86. package/docs/templates/agent-dag.final-verification.json +185 -185
  87. package/docs/templates/agent-dag.schema.json +411 -411
  88. package/docs/templates/agent-dag.supervised-implementation.json +620 -620
  89. package/docs/templates/backend-test-analysis.schema.json +44 -44
  90. package/docs/templates/backend-test-case-manifest.schema.json +190 -190
  91. package/docs/templates/backend-test-dag.classify.prompt.md +75 -75
  92. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +204 -204
  93. package/docs/templates/backend-test-dag.json +559 -559
  94. package/docs/templates/backend-test-dag.retrospect.prompt.md +139 -139
  95. package/docs/templates/backend-test-dag.review-cases.prompt.md +83 -83
  96. package/docs/templates/backend-test-execution.schema.json +133 -133
  97. package/docs/templates/backend-test-result.schema.json +99 -99
  98. package/docs/templates/exec-plan.md +64 -64
  99. package/docs/templates/feature-spec.md +53 -53
  100. package/docs/templates/frontend-design-contract.md +42 -42
  101. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -17
  102. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -16
  103. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -16
  104. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -16
  105. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -16
  106. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -16
  107. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -21
  108. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -29
  109. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -28
  110. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -28
  111. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -29
  112. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -27
  113. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -28
  114. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -28
  115. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -27
  116. package/docs/templates/frontend-eval/metrics.md +138 -138
  117. package/docs/templates/frontend-eval/smoke-targets.md +53 -53
  118. package/docs/templates/frontend-implementation-contract.schema.json +27 -27
  119. package/docs/templates/frontend-task-constraints.md +35 -35
  120. package/docs/templates/frontend-task-requirement.md +70 -70
  121. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -5
  122. package/docs/templates/frontend-test-dag.json +23 -23
  123. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -3
  124. package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -3
  125. package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -3
  126. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -3
  127. package/docs/templates/harness.schema.json +221 -221
  128. package/docs/templates/hybrid-dag.json +188 -188
  129. package/docs/templates/init-evolution-review.md +35 -35
  130. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  131. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  132. package/docs/templates/knowledge-sync-dag.json +178 -178
  133. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  134. package/docs/templates/product-line/AGENTS.md +8 -8
  135. package/docs/templates/product-line/README.md +9 -9
  136. package/docs/templates/product-line/acceptance.yaml +14 -14
  137. package/docs/templates/product-line/closeout.yaml +9 -9
  138. package/docs/templates/product-line/design.md +13 -13
  139. package/docs/templates/product-line/links.md +10 -10
  140. package/docs/templates/product-line/requirement.md +17 -17
  141. package/docs/templates/product-line/task-graph.yaml +15 -15
  142. package/docs/templates/product-line/task.yaml +64 -64
  143. package/docs/templates/product-line/test-plan.md +7 -7
  144. package/docs/templates/production-readiness-checklist.md +57 -57
  145. package/docs/templates/progress-log.md +17 -17
  146. package/docs/templates/project-start-checklist.md +9 -9
  147. package/docs/templates/qa-report.md +48 -48
  148. package/docs/templates/sprint-contract.md +29 -29
  149. package/docs/templates/worker-dogfood-evidence.md +80 -80
  150. package/docs/templates/worker-dogfood-setup.md +68 -68
  151. package/docs/verification-matrix.md +70 -70
  152. package/examples/decision-gate-agent-dag.json +173 -173
  153. package/examples/example-dag.json +46 -46
  154. package/examples/hybrid-loop-agent-dag.json +188 -188
  155. package/harness.json +66 -66
  156. package/package.json +88 -52
  157. package/scripts/check-product-line-docs.sh +29 -29
  158. package/scripts/check-task-pool-root.sh +32 -32
  159. package/scripts/kb-bootstrap-init-skeleton.sh +240 -240
  160. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  161. package/scripts/kb-graph-incremental-prepare.sh +5 -5
  162. package/scripts/kb-graph-materialize.mjs +105 -105
  163. package/scripts/kb-graph-materialize.sh +4 -4
  164. package/scripts/kb-graph-promote.mjs +164 -164
  165. package/scripts/kb-graph-promote.sh +4 -4
  166. package/scripts/kb-query.mjs +554 -554
  167. package/scripts/kb-query.sh +5 -5
  168. package/skills/agent-worker/SKILL.md +39 -39
  169. package/skills/agent-worker/references/agent-worker-operator.md +60 -60
  170. package/skills/ai-engineering-context/SKILL.md +48 -48
  171. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  172. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  173. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  174. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  175. package/skills/analyze-product-dependencies/references/example.md +76 -76
  176. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  177. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  178. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  179. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  180. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  181. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  182. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  183. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  184. package/skills/analyze-product-requirements/SKILL.md +90 -90
  185. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  186. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  187. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  188. package/skills/analyze-product-requirements/references/example.md +86 -86
  189. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  190. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  191. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  192. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  193. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  194. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  195. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  196. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  197. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  198. package/skills/browser-tools/SKILL.md +196 -196
  199. package/skills/browser-tools/browser-content.js +103 -103
  200. package/skills/browser-tools/browser-cookies.js +35 -35
  201. package/skills/browser-tools/browser-eval.js +53 -53
  202. package/skills/browser-tools/browser-hn-scraper.js +108 -108
  203. package/skills/browser-tools/browser-nav.js +44 -44
  204. package/skills/browser-tools/browser-pick.js +162 -162
  205. package/skills/browser-tools/browser-screenshot.js +34 -34
  206. package/skills/browser-tools/browser-start.js +86 -86
  207. package/skills/browser-tools/package-lock.json +2556 -2556
  208. package/skills/browser-tools/package.json +19 -19
  209. package/skills/code-review-core/SKILL.md +20 -20
  210. package/skills/codebase-scout/SKILL.md +19 -19
  211. package/skills/frontend-design-review/SKILL.md +66 -66
  212. package/skills/frontend-design-review/references/review-checklist.md +58 -58
  213. package/skills/frontend-implementation/SKILL.md +49 -49
  214. package/skills/frontend-implementation/references/code-standards.md +32 -32
  215. package/skills/frontend-implementation/references/design-spec.md +46 -46
  216. package/skills/frontend-implementation/references/node-contracts.md +27 -27
  217. package/skills/frontend-review/SKILL.md +59 -59
  218. package/skills/frontend-review/references/review-findings.md +47 -47
  219. package/skills/frontend-verification/SKILL.md +53 -53
  220. package/skills/frontend-verification/references/verification-checklist.md +68 -68
  221. package/skills/grill-me/SKILL.md +10 -10
  222. package/skills/grill-with-docs/SKILL.md +88 -88
  223. package/skills/grill-with-docs/adr-format.md +47 -47
  224. package/skills/grill-with-docs/context-format.md +60 -60
  225. package/skills/init-capability-evolution/SKILL.md +70 -70
  226. package/skills/loop-agent/SKILL.md +151 -151
  227. package/skills/loop-agent/references/README.md +67 -67
  228. package/skills/loop-agent/references/command-reference.md +527 -527
  229. package/skills/loop-agent/references/docs-converge.md +126 -126
  230. package/skills/loop-agent/references/harness-policy.md +263 -263
  231. package/skills/loop-agent/references/hybrid-dag.md +243 -243
  232. package/skills/loop-agent/references/learned/README.md +21 -21
  233. package/skills/loop-agent/references/long-running-loop.md +57 -57
  234. package/skills/loop-agent/references/model-routing.md +36 -36
  235. package/skills/loop-agent/references/multi-worktree.md +54 -54
  236. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  237. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  238. package/skills/loop-agent/references/pi-prompt.md +23 -23
  239. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  240. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  241. package/skills/loop-agent/references/task-workflow.md +89 -89
  242. package/skills/loop-agent/references/verification-and-failure-handling.md +141 -141
  243. package/skills/playwright-cli/SKILL.md +420 -420
  244. package/skills/playwright-cli/references/element-attributes.md +23 -23
  245. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  246. package/skills/playwright-cli/references/request-mocking.md +87 -87
  247. package/skills/playwright-cli/references/running-code.md +241 -241
  248. package/skills/playwright-cli/references/session-management.md +225 -225
  249. package/skills/playwright-cli/references/storage-state.md +275 -275
  250. package/skills/playwright-cli/references/test-generation.md +433 -433
  251. package/skills/playwright-cli/references/tracing.md +139 -139
  252. package/skills/playwright-cli/references/video-recording.md +143 -143
  253. package/skills/playwright-cli-case-generator/SKILL.md +74 -74
  254. package/skills/requesting-code-review/SKILL.md +101 -101
  255. package/skills/requesting-code-review/code-reviewer.md +168 -168
  256. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  257. package/skills/systematic-debugging/SKILL.md +296 -296
  258. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  259. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  260. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  261. package/skills/systematic-debugging/find-polluter.sh +63 -63
  262. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  263. package/skills/systematic-debugging/test-academic.md +14 -14
  264. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  265. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  266. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  267. package/skills/test-driven-development/SKILL.md +20 -20
  268. package/skills/using-git-worktrees/SKILL.md +215 -215
  269. package/skills/verification-before-completion/SKILL.md +154 -154
  270. package/skills/webapp-testing/SKILL.md +19 -19
@@ -1,90 +1,90 @@
1
- ---
2
- name: analyze-product-requirements
3
- description: 将自然语言需求或现有需求文档整理为冻结的澄清前分析、按需澄清记录和完整 Product Requirement,按 frontend、backend 或 both 范围生成精简用户故事、逐故事输出规范与 Given/When/Then 验收标准。用于需求分析、需求澄清、PRD 或用户故事拆分。
4
- ---
5
-
6
- # Analyze Product Requirements
7
-
8
- IRON LAW:`product-analysis.md` 只能生成一次。首次写入成功后,其正文、frontmatter 和文件路径在当前 requirement 的整个生命周期内都不可变;后续轮次禁止编辑、覆盖、追加、格式化、移动或删除该文件。澄清决策只能写入 `requirement-clarification.md`,并通过重新生成合并到 `product-requirement.md`。原始需求同样只读。
9
-
10
- 本 skill 只定义需求,不分析完整代码依赖或生成实现代码。可对用户提供的仓库做定向事实搜索,但不得输出文件级影响分析。
11
-
12
- ## 输入与产物
13
-
14
- - 必填:自然语言需求或原始需求文档路径。
15
- - 可选:`target=frontend|backend|both` 或 `--target frontend|backend|both`;两种写法等价,默认 `both`。
16
- - 可选:代码仓库、知识库、历史需求、API 文档、设计规范、业务规则、`project_root`、`requirement_id` 和 `output_dir`。
17
- - 默认目录:`<project-root>/docs/product-analysis/<requirement-id>/`。
18
- - 固定产物:该目录内的 `product-analysis.md`、`requirement-clarification.md`、`product-requirement.md`。
19
-
20
- ## Workflow
21
-
22
- - [ ] Step 0:确认输入与写入边界 ⛔ BLOCKING
23
- - [ ] 原始需求必须足以识别业务目标;输入文件只读。
24
- - [ ] 将 `target=<value>` 和 `--target <value>` 归一化为唯一 target;缺省时为 `both`,非法值或冲突的多个值必须停止。
25
- - [ ] 在生成前明确回显“分析范围:frontend | backend | both”;三个产物的 `analysis_scope` 必须等于该归一化 target,后续不得自动扩大范围。
26
- - [ ] 确定项目根:显式 `project_root` > 仓库根 > 当前项目根。
27
- - [ ] 确定 requirement ID:显式值 > 需求标题 slug > `YYYYMMDD-<summary-slug>`;仅小写字母、数字和单连字符。
28
- - [ ] 确定目录:显式 `output_dir` 必须等于项目根下 `docs/product-analysis/<requirement-id>`;否则使用该默认目录。
29
- - [ ] 创建目录,三个产物写入同一目录;元数据使用同一 `requirement_id` 和相对 `project_root: ../../..`。
30
- - [ ] 输出路径不得与原始需求路径相同;已有目录来源不同则停止,不得混写。
31
- - [ ] 目标目录已有 `product-analysis.md` 时,验证同源后只读加载并跳过 Step 1;无论 pending 或 complete,都不得对该文件执行任何写操作。
32
- - [ ] 已有同源 pending 任务只能继续更新 Clarification 和 Product Requirement;如 Product Analysis 需要更正,停止当前 requirement,使用新的 `requirement_id` 和目录重新开始。其他产物覆盖先确认。
33
- - [ ] Step 1:一次性生成并冻结 Product Analysis ⚠️ REQUIRED
34
- - [ ] 读取 `references/product-analysis-schema.md`。
35
- - [ ] 区分明确需求、推断需求和待确认问题。
36
- - [ ] 如提供仓库,只定向搜索可验证事实并记录 `CODE-FACT-*` 证据。
37
- - [ ] 仅按 target 生成精简故事骨架和逐故事初步输出规范:`frontend` 只生成 `FE-US-*`,`backend` 只生成 `BE-US-*`,`both` 才生成两端。
38
- - [ ] Product Analysis 只记录验收关注点,不创建正式 `AC-*` 或完整 Given/When/Then。
39
- - [ ] 有问题时使用 `ready-for-clarification`;无问题时使用 `no-clarification-required`。
40
- - [ ] 写入前完成全部分析内容,只允许一次创建;写入成功即冻结,当前及后续澄清轮次不得再调用写工具处理该路径。
41
- - [ ] Step 2:建立澄清决策树 ⚠️ REQUIRED
42
- - [ ] 读取 `references/clarification-and-knowledge.md` 和 `references/requirement-clarification-schema.md`。
43
- - [ ] 有问题时列出 3–6 个顶层 `BR-*` 分支,按依赖排序,从最基础分支开始。
44
- - [ ] 每轮先给推荐答案和理由,只问一个主要问题;可合并同一决策分支内紧密耦合的子项,但不得混合无关分支。
45
- - [ ] 用户回答后先复核当前回答是否足以形成明确、唯一、可执行且可验收的最终决策;不得仅因用户已经回答就标记为 confirmed。
46
- - [ ] 回答不完整、存在多种合理解释、依赖未定义概念、与原始需求或已有决策冲突,或无法自然合并到范围、规则、输出规范和 AC 时,当前问题仍未解决;下一轮必须优先针对该回答的具体模糊点继续澄清,不得跳到其他分支。
47
- - [ ] 后续追问必须指出上一轮回答中仍不明确的内容,并收窄为可直接确认的决策点;不得原样重复上一轮问题。
48
- - [ ] 当前回答明确后,再重新识别其他剩余模糊点和回答新引入的模糊点;仅在它们会影响范围、规则、输出或验收时进入下一轮,总轮数不得超过 3 轮。
49
- - [ ] 第 3 轮后不得继续提问;仍有 P0/P1 时保持 `pending` 并说明阻断项,仍有 P2 时仅可按已记录的默认行为与影响处理。
50
- - [ ] 能由代码或资料确认的事实自行回答并附证据,不把现状当作产品决策。
51
- - [ ] 完成一个分支后再进入下一个;不得遗留模糊的“视情况而定”。
52
- - [ ] 无需澄清时使用三章精简记录,不伪造 `BR-*`、`Q-*` 或 `DEC-Q-*`。
53
- - [ ] Step 3:记录 Requirement Clarification ⚠️ REQUIRED
54
- - [ ] 记录总澄清轮数,并为每个问题记录所属轮次、推荐答案、用户回答、最终决策、来源和目标位置;依赖、备选、代码证据和未确认影响仅在适用时记录。
55
- - [ ] P0/P1 未解决时保持 `pending`;P2 延后必须给出默认行为和影响。
56
- - [ ] Step 4:重新生成 Product Requirement ⛔ BLOCKING
57
- - [ ] 读取 `references/product-requirement-schema.md` 和 `references/acceptance-criteria.md`。
58
- - [ ] 基于原始需求、冻结的 Product Analysis 和 Clarification 重新生成,不做字符串回写。
59
- - [ ] 优先级:用户确认决策 > 原始明确需求 > 已确认默认值 > 模型推断;代码库事实只用于理解现状、发现冲突和辅助澄清,不构成独立需求来源。
60
- - [ ] 不得把 `CODE-FACT-*`、仓库路径、代码符号、模块结构、数据表或当前实现过程原样写入 Product Requirement;代码事实只有经用户确认或被原始需求明确要求时,才能转换为不含实现细节的产品规则,证据仍只保留在 Product Analysis 和 Clarification。
61
- - [ ] 把决策自然合并到范围、规则、故事、逐故事输出规范和 AC,并在决策追溯中登记。
62
- - [ ] 用户故事只描述角色/使用方、目标/能力、价值、入口/触发方式和 AC 引用;详细产品行为只写在同 ID 输出规范中,正式 AC 嵌入该输出规范。
63
- - [ ] target 为 `backend` 或 `both` 时,后端故事只定义 API 的业务能力、输入输出语义、权限和规则;具体方法、路径及 DTO 留给依赖 skill。
64
- - [ ] Step 5:验证并交付 ⛔ BLOCKING
65
- - [ ] 向 Product Analysis 和 Product Requirement 校验器传入归一化 target,再运行三个产物校验器和 validator matrix。
66
- - [ ] 确认 `product-analysis.md` 与进入澄清前的冻结版本完全一致。
67
- - [ ] 只有所有命令返回 0 才能声明完成。
68
-
69
- 完整格式示例按需读取 `references/example.md`;维护或 forward-test 时读取 `references/forward-test-cases.md`。不要为了执行校验而阅读脚本,直接运行。
70
-
71
- ## 完成规则
72
-
73
- - `no-clarification-required` 仍生成三个产物;Clarification 使用“澄清结论、来源、合并结果”三章精简结构。
74
- - `complete` Clarification 的全部分支必须 resolved,P0/P1 必须由用户确认,每个决策标记必须进入 Product Requirement 决策追溯。
75
- - Product Requirement 必须自包含;读者不得依赖聊天、Product Analysis 或 Clarification 才能理解需求。
76
- - Product Requirement 只描述目标产品行为,不记录代码库事实、证据位置或当前实现;不得出现 `CODE-FACT-*`、仓库文件路径、代码级类/函数/组件符号、模块调用关系、数据表名或实现算法。
77
- - 不得生成独立用户角色、验收标准汇总、前后端契约、Open Questions、测试建议或独立边界 case 章节。
78
-
79
- ## Validation
80
-
81
- 把 `<skill-root>` 解析为本 `SKILL.md` 所在目录,全部参数使用绝对路径:
82
-
83
- ```bash
84
- node <skill-root>/scripts/validate-product-analysis.mjs <product-analysis.md> --target <frontend|backend|both>
85
- node <skill-root>/scripts/validate-product-requirement.mjs <product-requirement.md> --target <frontend|backend|both>
86
- node <skill-root>/scripts/validate-requirement-clarification.mjs <product-analysis.md> <requirement-clarification.md> <product-requirement.md>
87
- node <skill-root>/scripts/test-validators.mjs
88
- ```
89
-
90
- 澄清中的中间产物可加 `--allow-pending`;通过 pending 校验不代表完成。
1
+ ---
2
+ name: analyze-product-requirements
3
+ description: 将自然语言需求或现有需求文档整理为冻结的澄清前分析、按需澄清记录和完整 Product Requirement,按 frontend、backend 或 both 范围生成精简用户故事、逐故事输出规范与 Given/When/Then 验收标准。用于需求分析、需求澄清、PRD 或用户故事拆分。
4
+ ---
5
+
6
+ # Analyze Product Requirements
7
+
8
+ IRON LAW:`product-analysis.md` 只能生成一次。首次写入成功后,其正文、frontmatter 和文件路径在当前 requirement 的整个生命周期内都不可变;后续轮次禁止编辑、覆盖、追加、格式化、移动或删除该文件。澄清决策只能写入 `requirement-clarification.md`,并通过重新生成合并到 `product-requirement.md`。原始需求同样只读。
9
+
10
+ 本 skill 只定义需求,不分析完整代码依赖或生成实现代码。可对用户提供的仓库做定向事实搜索,但不得输出文件级影响分析。
11
+
12
+ ## 输入与产物
13
+
14
+ - 必填:自然语言需求或原始需求文档路径。
15
+ - 可选:`target=frontend|backend|both` 或 `--target frontend|backend|both`;两种写法等价,默认 `both`。
16
+ - 可选:代码仓库、知识库、历史需求、API 文档、设计规范、业务规则、`project_root`、`requirement_id` 和 `output_dir`。
17
+ - 默认目录:`<project-root>/docs/product-analysis/<requirement-id>/`。
18
+ - 固定产物:该目录内的 `product-analysis.md`、`requirement-clarification.md`、`product-requirement.md`。
19
+
20
+ ## Workflow
21
+
22
+ - [ ] Step 0:确认输入与写入边界 ⛔ BLOCKING
23
+ - [ ] 原始需求必须足以识别业务目标;输入文件只读。
24
+ - [ ] 将 `target=<value>` 和 `--target <value>` 归一化为唯一 target;缺省时为 `both`,非法值或冲突的多个值必须停止。
25
+ - [ ] 在生成前明确回显“分析范围:frontend | backend | both”;三个产物的 `analysis_scope` 必须等于该归一化 target,后续不得自动扩大范围。
26
+ - [ ] 确定项目根:显式 `project_root` > 仓库根 > 当前项目根。
27
+ - [ ] 确定 requirement ID:显式值 > 需求标题 slug > `YYYYMMDD-<summary-slug>`;仅小写字母、数字和单连字符。
28
+ - [ ] 确定目录:显式 `output_dir` 必须等于项目根下 `docs/product-analysis/<requirement-id>`;否则使用该默认目录。
29
+ - [ ] 创建目录,三个产物写入同一目录;元数据使用同一 `requirement_id` 和相对 `project_root: ../../..`。
30
+ - [ ] 输出路径不得与原始需求路径相同;已有目录来源不同则停止,不得混写。
31
+ - [ ] 目标目录已有 `product-analysis.md` 时,验证同源后只读加载并跳过 Step 1;无论 pending 或 complete,都不得对该文件执行任何写操作。
32
+ - [ ] 已有同源 pending 任务只能继续更新 Clarification 和 Product Requirement;如 Product Analysis 需要更正,停止当前 requirement,使用新的 `requirement_id` 和目录重新开始。其他产物覆盖先确认。
33
+ - [ ] Step 1:一次性生成并冻结 Product Analysis ⚠️ REQUIRED
34
+ - [ ] 读取 `references/product-analysis-schema.md`。
35
+ - [ ] 区分明确需求、推断需求和待确认问题。
36
+ - [ ] 如提供仓库,只定向搜索可验证事实并记录 `CODE-FACT-*` 证据。
37
+ - [ ] 仅按 target 生成精简故事骨架和逐故事初步输出规范:`frontend` 只生成 `FE-US-*`,`backend` 只生成 `BE-US-*`,`both` 才生成两端。
38
+ - [ ] Product Analysis 只记录验收关注点,不创建正式 `AC-*` 或完整 Given/When/Then。
39
+ - [ ] 有问题时使用 `ready-for-clarification`;无问题时使用 `no-clarification-required`。
40
+ - [ ] 写入前完成全部分析内容,只允许一次创建;写入成功即冻结,当前及后续澄清轮次不得再调用写工具处理该路径。
41
+ - [ ] Step 2:建立澄清决策树 ⚠️ REQUIRED
42
+ - [ ] 读取 `references/clarification-and-knowledge.md` 和 `references/requirement-clarification-schema.md`。
43
+ - [ ] 有问题时列出 3–6 个顶层 `BR-*` 分支,按依赖排序,从最基础分支开始。
44
+ - [ ] 每轮先给推荐答案和理由,只问一个主要问题;可合并同一决策分支内紧密耦合的子项,但不得混合无关分支。
45
+ - [ ] 用户回答后先复核当前回答是否足以形成明确、唯一、可执行且可验收的最终决策;不得仅因用户已经回答就标记为 confirmed。
46
+ - [ ] 回答不完整、存在多种合理解释、依赖未定义概念、与原始需求或已有决策冲突,或无法自然合并到范围、规则、输出规范和 AC 时,当前问题仍未解决;下一轮必须优先针对该回答的具体模糊点继续澄清,不得跳到其他分支。
47
+ - [ ] 后续追问必须指出上一轮回答中仍不明确的内容,并收窄为可直接确认的决策点;不得原样重复上一轮问题。
48
+ - [ ] 当前回答明确后,再重新识别其他剩余模糊点和回答新引入的模糊点;仅在它们会影响范围、规则、输出或验收时进入下一轮,总轮数不得超过 3 轮。
49
+ - [ ] 第 3 轮后不得继续提问;仍有 P0/P1 时保持 `pending` 并说明阻断项,仍有 P2 时仅可按已记录的默认行为与影响处理。
50
+ - [ ] 能由代码或资料确认的事实自行回答并附证据,不把现状当作产品决策。
51
+ - [ ] 完成一个分支后再进入下一个;不得遗留模糊的“视情况而定”。
52
+ - [ ] 无需澄清时使用三章精简记录,不伪造 `BR-*`、`Q-*` 或 `DEC-Q-*`。
53
+ - [ ] Step 3:记录 Requirement Clarification ⚠️ REQUIRED
54
+ - [ ] 记录总澄清轮数,并为每个问题记录所属轮次、推荐答案、用户回答、最终决策、来源和目标位置;依赖、备选、代码证据和未确认影响仅在适用时记录。
55
+ - [ ] P0/P1 未解决时保持 `pending`;P2 延后必须给出默认行为和影响。
56
+ - [ ] Step 4:重新生成 Product Requirement ⛔ BLOCKING
57
+ - [ ] 读取 `references/product-requirement-schema.md` 和 `references/acceptance-criteria.md`。
58
+ - [ ] 基于原始需求、冻结的 Product Analysis 和 Clarification 重新生成,不做字符串回写。
59
+ - [ ] 优先级:用户确认决策 > 原始明确需求 > 已确认默认值 > 模型推断;代码库事实只用于理解现状、发现冲突和辅助澄清,不构成独立需求来源。
60
+ - [ ] 不得把 `CODE-FACT-*`、仓库路径、代码符号、模块结构、数据表或当前实现过程原样写入 Product Requirement;代码事实只有经用户确认或被原始需求明确要求时,才能转换为不含实现细节的产品规则,证据仍只保留在 Product Analysis 和 Clarification。
61
+ - [ ] 把决策自然合并到范围、规则、故事、逐故事输出规范和 AC,并在决策追溯中登记。
62
+ - [ ] 用户故事只描述角色/使用方、目标/能力、价值、入口/触发方式和 AC 引用;详细产品行为只写在同 ID 输出规范中,正式 AC 嵌入该输出规范。
63
+ - [ ] target 为 `backend` 或 `both` 时,后端故事只定义 API 的业务能力、输入输出语义、权限和规则;具体方法、路径及 DTO 留给依赖 skill。
64
+ - [ ] Step 5:验证并交付 ⛔ BLOCKING
65
+ - [ ] 向 Product Analysis 和 Product Requirement 校验器传入归一化 target,再运行三个产物校验器和 validator matrix。
66
+ - [ ] 确认 `product-analysis.md` 与进入澄清前的冻结版本完全一致。
67
+ - [ ] 只有所有命令返回 0 才能声明完成。
68
+
69
+ 完整格式示例按需读取 `references/example.md`;维护或 forward-test 时读取 `references/forward-test-cases.md`。不要为了执行校验而阅读脚本,直接运行。
70
+
71
+ ## 完成规则
72
+
73
+ - `no-clarification-required` 仍生成三个产物;Clarification 使用“澄清结论、来源、合并结果”三章精简结构。
74
+ - `complete` Clarification 的全部分支必须 resolved,P0/P1 必须由用户确认,每个决策标记必须进入 Product Requirement 决策追溯。
75
+ - Product Requirement 必须自包含;读者不得依赖聊天、Product Analysis 或 Clarification 才能理解需求。
76
+ - Product Requirement 只描述目标产品行为,不记录代码库事实、证据位置或当前实现;不得出现 `CODE-FACT-*`、仓库文件路径、代码级类/函数/组件符号、模块调用关系、数据表名或实现算法。
77
+ - 不得生成独立用户角色、验收标准汇总、前后端契约、Open Questions、测试建议或独立边界 case 章节。
78
+
79
+ ## Validation
80
+
81
+ 把 `<skill-root>` 解析为本 `SKILL.md` 所在目录,全部参数使用绝对路径:
82
+
83
+ ```bash
84
+ node <skill-root>/scripts/validate-product-analysis.mjs <product-analysis.md> --target <frontend|backend|both>
85
+ node <skill-root>/scripts/validate-product-requirement.mjs <product-requirement.md> --target <frontend|backend|both>
86
+ node <skill-root>/scripts/validate-requirement-clarification.mjs <product-analysis.md> <requirement-clarification.md> <product-requirement.md>
87
+ node <skill-root>/scripts/test-validators.mjs
88
+ ```
89
+
90
+ 澄清中的中间产物可加 `--allow-pending`;通过 pending 校验不代表完成。
@@ -1,4 +1,4 @@
1
- interface:
2
- display_name: "产品需求分析"
3
- short_description: "分析并按需澄清需求,生成故事、输出规范和验收标准"
4
- default_prompt: "使用 $analyze-product-requirements 分析并按需澄清需求,生成完整 Product Requirement。"
1
+ interface:
2
+ display_name: "产品需求分析"
3
+ short_description: "分析并按需澄清需求,生成故事、输出规范和验收标准"
4
+ default_prompt: "使用 $analyze-product-requirements 分析并按需澄清需求,生成完整 Product Requirement。"
@@ -1,91 +1,91 @@
1
- # 详细验收标准规则
2
-
3
- ## 目录
4
-
5
- - 基本要求
6
- - 分段最低要求
7
- - 前端示例
8
- - 后端示例
9
- - 不合格写法
10
-
11
- ## 基本要求
12
-
13
- 每条验收标准必须独立可执行、结果可观察,并使用 Given/When/Then。一个用户故事存在多个关键流程时,拆成多个 AC,不要把互不相关的行为塞入一条 AC。
14
-
15
- 每条 AC 必须说明:
16
-
17
- 1. Given:用户身份、权限、业务数据、系统状态和必要依赖。
18
- 2. When:具体操作、请求、事件或任务触发。
19
- 3. Then:明确的 UI、状态、字段值、状态码、数据变化或日志结果。
20
- 4. 异常场景:空数据、错误输入、无权限、超时、依赖失败及恢复方式。
21
- 5. 禁止行为:不得泄露、重复提交、产生脏数据、白屏或静默失败等。
22
-
23
- ## 分段最低要求
24
-
25
- - Given:至少 1 个具体条目。
26
- - When:至少 1 个具体条目。
27
- - Then:至少 2 个可观察条目。
28
- - 异常场景:至少 1 个条目;每个条目必须同时写明具体触发条件和可观察处理结果。
29
- - 四段总计:至少 6 个条目。
30
- - Then 或异常场景:至少包含一个禁止行为、失败保护、保留、恢复、重试或兜底结果。
31
-
32
- 不得在 AC 中使用“功能正常、应正常展示、展示正确、接口可用、数据正确、符合预期、妥善处理、合理处理”等模糊结果。
33
- 不得用“无异常情况”“没有需要处理的异常场景”“无需处理失败”等表述代替异常处理结果。
34
-
35
- ## 前端示例
36
-
37
- ```md
38
- #### AC-FE-001 展示退款处理中状态
39
-
40
- Given:
41
- - 用户已登录且订单属于当前用户。
42
- - 订单存在退款记录,refundStatus 为 processing。
43
-
44
- When:
45
- - 用户从订单列表进入该订单详情页。
46
-
47
- Then:
48
- - 退款进度模块展示“退款处理中”。
49
- - 展示 currentStep 和格式化后的 updatedAt。
50
- - 请求完成后 loading 状态消失。
51
- - 页面不得展示其他订单的退款数据。
52
-
53
- 异常场景:
54
- - 请求超时时展示失败提示和重试入口。
55
- - currentStep 缺失时展示“状态未知”,页面不得白屏。
56
- ```
57
-
58
- ## 后端示例
59
-
60
- ```md
61
- #### AC-BE-001 返回退款处理中状态
62
-
63
- Given:
64
- - 请求用户已认证且拥有目标订单。
65
- - 退款记录状态为 processing。
66
-
67
- When:
68
- - 调用 GET /orders/{orderId}/refund-status。
69
-
70
- Then:
71
- - HTTP 状态码为 200。
72
- - refundStatus 为 processing,failedReason 为 null。
73
- - currentStep 与退款记录一致,updatedAt 使用约定时间格式。
74
- - 响应不得包含内部错误堆栈或其他用户数据。
75
-
76
- 异常场景:
77
- - 订单不存在时返回 404 和标准错误结构。
78
- - 无权访问时返回 403,且不得泄露订单详情。
79
- ```
80
-
81
- ## 不合格写法
82
-
83
- 以下内容不能单独作为验收标准:
84
-
85
- - 功能正常。
86
- - 页面展示正确。
87
- - 接口可用。
88
- - 数据符合预期。
89
- - 异常情况正确处理。
90
-
91
- 必须将“正常、正确、可用、符合预期”替换为可核对的具体结果。
1
+ # 详细验收标准规则
2
+
3
+ ## 目录
4
+
5
+ - 基本要求
6
+ - 分段最低要求
7
+ - 前端示例
8
+ - 后端示例
9
+ - 不合格写法
10
+
11
+ ## 基本要求
12
+
13
+ 每条验收标准必须独立可执行、结果可观察,并使用 Given/When/Then。一个用户故事存在多个关键流程时,拆成多个 AC,不要把互不相关的行为塞入一条 AC。
14
+
15
+ 每条 AC 必须说明:
16
+
17
+ 1. Given:用户身份、权限、业务数据、系统状态和必要依赖。
18
+ 2. When:具体操作、请求、事件或任务触发。
19
+ 3. Then:明确的 UI、状态、字段值、状态码、数据变化或日志结果。
20
+ 4. 异常场景:空数据、错误输入、无权限、超时、依赖失败及恢复方式。
21
+ 5. 禁止行为:不得泄露、重复提交、产生脏数据、白屏或静默失败等。
22
+
23
+ ## 分段最低要求
24
+
25
+ - Given:至少 1 个具体条目。
26
+ - When:至少 1 个具体条目。
27
+ - Then:至少 2 个可观察条目。
28
+ - 异常场景:至少 1 个条目;每个条目必须同时写明具体触发条件和可观察处理结果。
29
+ - 四段总计:至少 6 个条目。
30
+ - Then 或异常场景:至少包含一个禁止行为、失败保护、保留、恢复、重试或兜底结果。
31
+
32
+ 不得在 AC 中使用“功能正常、应正常展示、展示正确、接口可用、数据正确、符合预期、妥善处理、合理处理”等模糊结果。
33
+ 不得用“无异常情况”“没有需要处理的异常场景”“无需处理失败”等表述代替异常处理结果。
34
+
35
+ ## 前端示例
36
+
37
+ ```md
38
+ #### AC-FE-001 展示退款处理中状态
39
+
40
+ Given:
41
+ - 用户已登录且订单属于当前用户。
42
+ - 订单存在退款记录,refundStatus 为 processing。
43
+
44
+ When:
45
+ - 用户从订单列表进入该订单详情页。
46
+
47
+ Then:
48
+ - 退款进度模块展示“退款处理中”。
49
+ - 展示 currentStep 和格式化后的 updatedAt。
50
+ - 请求完成后 loading 状态消失。
51
+ - 页面不得展示其他订单的退款数据。
52
+
53
+ 异常场景:
54
+ - 请求超时时展示失败提示和重试入口。
55
+ - currentStep 缺失时展示“状态未知”,页面不得白屏。
56
+ ```
57
+
58
+ ## 后端示例
59
+
60
+ ```md
61
+ #### AC-BE-001 返回退款处理中状态
62
+
63
+ Given:
64
+ - 请求用户已认证且拥有目标订单。
65
+ - 退款记录状态为 processing。
66
+
67
+ When:
68
+ - 调用 GET /orders/{orderId}/refund-status。
69
+
70
+ Then:
71
+ - HTTP 状态码为 200。
72
+ - refundStatus 为 processing,failedReason 为 null。
73
+ - currentStep 与退款记录一致,updatedAt 使用约定时间格式。
74
+ - 响应不得包含内部错误堆栈或其他用户数据。
75
+
76
+ 异常场景:
77
+ - 订单不存在时返回 404 和标准错误结构。
78
+ - 无权访问时返回 403,且不得泄露订单详情。
79
+ ```
80
+
81
+ ## 不合格写法
82
+
83
+ 以下内容不能单独作为验收标准:
84
+
85
+ - 功能正常。
86
+ - 页面展示正确。
87
+ - 接口可用。
88
+ - 数据符合预期。
89
+ - 异常情况正确处理。
90
+
91
+ 必须将“正常、正确、可用、符合预期”替换为可核对的具体结果。
@@ -1,56 +1,56 @@
1
- # 澄清、代码事实与合成规则
2
-
3
- ## 1. 知识库与代码事实
4
-
5
- 未执行知识检索时明确记录 `not-integrated`/`not-executed`,不得声称“未命中”或模拟记录。
6
-
7
- 提供代码仓库时只做定向事实搜索:认证、权限、状态枚举、相似能力、字段类型、统一错误结构。事实使用 `CODE-FACT-*`,包含事实、证据位置和需求影响。代码只能回答现状,不能替代用户决定目标需求。
8
-
9
- 知识或代码与需求冲突时:保留来源证据、生成澄清问题、用户裁决前不选边。
10
-
11
- ## 2. 决策树式访谈
12
-
13
- 1. 从 Product Analysis 的推断、问题、输出规范和高风险默认值提取 3–6 个顶层 `BR-*` 分支。
14
- 2. 标注分支依赖,从范围、权限、核心流程、数据语义等基础决策开始。
15
- 3. 每轮只处理一个主要问题:先给推荐答案和理由,再提问并等待回答。同分支、同依赖链的子项可合并,不相关问题不得换装为一题。
16
- 4. 收到回答后重新识别剩余模糊点;仅在它们会影响范围、输出或验收时开启下一轮。
17
- 5. 一次助手提问与用户回答记为一轮,总轮数不得超过 3。第 3 轮后仍有 P0/P1 时保持 pending 并阻断 Product Requirement complete;P2 按已记录的默认行为和影响处理。
18
- 6. 所有分支解决后,用一段话总结关键决策。
19
-
20
- ### 回答复核
21
-
22
- 收到用户回答后,先判断它是否直接覆盖当前问题的关键决策点、是否只有一种合理的产品解释、是否足以写成明确的范围/规则/输出行为/验收结果、是否与原始明确需求或已有决策冲突,以及是否引入新的未定义概念、例外条件或依赖关系。全部满足时才形成最终决策并标记为 confirmed。
23
-
24
- 任一条件不满足时:
25
-
26
- - 保留用户原始回答,`最终决策` 写“未形成”并说明具体模糊点。
27
- - P0/P1 使用 `pending-blocking`;P2 使用 `pending-non-blocking`,同时记录默认行为和未确认影响。
28
- - 下一轮优先继续当前分支,明确指出上一轮回答仍不清晰的部分,并将问题收窄为可直接确认的决策点;不得原样重复问题或跳到其他分支。
29
- - 不得把模型推断、推荐答案或代码现状当作用户确认。
30
-
31
- 当前问题明确后,再扫描其他未解决问题和本次回答新引入的模糊点。只有会改变范围、权限、核心流程、数据语义、输出行为或验收结果的问题才继续澄清;不影响产品行为的措辞和下游技术细节不消耗澄清轮次。
32
-
33
- 问题等级:
34
-
35
- - P0:改变范围、权限、关键流程、数据语义或验收结果;必须由用户明确确认。
36
- - P1:可以推荐默认值,但必须经用户确认。
37
- - P2:可延后,但必须给出当前默认行为、影响和后续确认入口。
38
-
39
- 没有问题时跳过交互访谈,不伪造分支、问题或决策标记,但仍生成完整 Clarification 检查记录。
40
-
41
- ## 3. 合成规则
42
-
43
- Product Analysis 冻结不回写。`最终决策` 是合成最终需求的规范化事实;`目标位置` 指向需求范围、业务规则、故事、输出规范或 AC。
44
-
45
- 三个产物必须写入同一 `<project-root>/docs/product-analysis/<requirement-id>/`。同目录来源使用相对路径,避免把个人机器绝对路径写入可交接产物。
46
-
47
- 生成 Product Requirement 时:
48
-
49
- - 用户确认的推断转为正式需求。
50
- - 用户否定的推断删除或进入非目标。
51
- - 确认的默认值进入规则和故事。
52
- - 代码库事实只用于解释现状、识别冲突和支持澄清,不作为独立需求来源;未经用户确认且未被原始需求明确要求的代码现状不得进入 Product Requirement。
53
- - 需要合并的代码事实必须转换为目标产品语言,只保留用户可感知的行为、业务规则和验收结果;`CODE-FACT-*`、证据路径、代码符号、模块结构、数据表和实现过程继续留在 Product Analysis 或 Clarification。
54
- - 决策影响故事时重新生成故事与 AC,不只在决策列表堆积答案。
55
- - `DEC-Q-*` 在决策追溯中登记,并能定位到正式章节。
56
- - 无需澄清时不生成任何 `DEC-Q-*`,说明需求直接来源于原始需求。
1
+ # 澄清、代码事实与合成规则
2
+
3
+ ## 1. 知识库与代码事实
4
+
5
+ 未执行知识检索时明确记录 `not-integrated`/`not-executed`,不得声称“未命中”或模拟记录。
6
+
7
+ 提供代码仓库时只做定向事实搜索:认证、权限、状态枚举、相似能力、字段类型、统一错误结构。事实使用 `CODE-FACT-*`,包含事实、证据位置和需求影响。代码只能回答现状,不能替代用户决定目标需求。
8
+
9
+ 知识或代码与需求冲突时:保留来源证据、生成澄清问题、用户裁决前不选边。
10
+
11
+ ## 2. 决策树式访谈
12
+
13
+ 1. 从 Product Analysis 的推断、问题、输出规范和高风险默认值提取 3–6 个顶层 `BR-*` 分支。
14
+ 2. 标注分支依赖,从范围、权限、核心流程、数据语义等基础决策开始。
15
+ 3. 每轮只处理一个主要问题:先给推荐答案和理由,再提问并等待回答。同分支、同依赖链的子项可合并,不相关问题不得换装为一题。
16
+ 4. 收到回答后重新识别剩余模糊点;仅在它们会影响范围、输出或验收时开启下一轮。
17
+ 5. 一次助手提问与用户回答记为一轮,总轮数不得超过 3。第 3 轮后仍有 P0/P1 时保持 pending 并阻断 Product Requirement complete;P2 按已记录的默认行为和影响处理。
18
+ 6. 所有分支解决后,用一段话总结关键决策。
19
+
20
+ ### 回答复核
21
+
22
+ 收到用户回答后,先判断它是否直接覆盖当前问题的关键决策点、是否只有一种合理的产品解释、是否足以写成明确的范围/规则/输出行为/验收结果、是否与原始明确需求或已有决策冲突,以及是否引入新的未定义概念、例外条件或依赖关系。全部满足时才形成最终决策并标记为 confirmed。
23
+
24
+ 任一条件不满足时:
25
+
26
+ - 保留用户原始回答,`最终决策` 写“未形成”并说明具体模糊点。
27
+ - P0/P1 使用 `pending-blocking`;P2 使用 `pending-non-blocking`,同时记录默认行为和未确认影响。
28
+ - 下一轮优先继续当前分支,明确指出上一轮回答仍不清晰的部分,并将问题收窄为可直接确认的决策点;不得原样重复问题或跳到其他分支。
29
+ - 不得把模型推断、推荐答案或代码现状当作用户确认。
30
+
31
+ 当前问题明确后,再扫描其他未解决问题和本次回答新引入的模糊点。只有会改变范围、权限、核心流程、数据语义、输出行为或验收结果的问题才继续澄清;不影响产品行为的措辞和下游技术细节不消耗澄清轮次。
32
+
33
+ 问题等级:
34
+
35
+ - P0:改变范围、权限、关键流程、数据语义或验收结果;必须由用户明确确认。
36
+ - P1:可以推荐默认值,但必须经用户确认。
37
+ - P2:可延后,但必须给出当前默认行为、影响和后续确认入口。
38
+
39
+ 没有问题时跳过交互访谈,不伪造分支、问题或决策标记,但仍生成完整 Clarification 检查记录。
40
+
41
+ ## 3. 合成规则
42
+
43
+ Product Analysis 冻结不回写。`最终决策` 是合成最终需求的规范化事实;`目标位置` 指向需求范围、业务规则、故事、输出规范或 AC。
44
+
45
+ 三个产物必须写入同一 `<project-root>/docs/product-analysis/<requirement-id>/`。同目录来源使用相对路径,避免把个人机器绝对路径写入可交接产物。
46
+
47
+ 生成 Product Requirement 时:
48
+
49
+ - 用户确认的推断转为正式需求。
50
+ - 用户否定的推断删除或进入非目标。
51
+ - 确认的默认值进入规则和故事。
52
+ - 代码库事实只用于解释现状、识别冲突和支持澄清,不作为独立需求来源;未经用户确认且未被原始需求明确要求的代码现状不得进入 Product Requirement。
53
+ - 需要合并的代码事实必须转换为目标产品语言,只保留用户可感知的行为、业务规则和验收结果;`CODE-FACT-*`、证据路径、代码符号、模块结构、数据表和实现过程继续留在 Product Analysis 或 Clarification。
54
+ - 决策影响故事时重新生成故事与 AC,不只在决策列表堆积答案。
55
+ - `DEC-Q-*` 在决策追溯中登记,并能定位到正式章节。
56
+ - 无需澄清时不生成任何 `DEC-Q-*`,说明需求直接来源于原始需求。