@tea-agent/loop-agent 0.26.0 → 0.26.1

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 (170) hide show
  1. package/CHANGELOG.md +1032 -1020
  2. package/README.md +8 -3
  3. package/bin/loop-agent.js +21 -21
  4. package/dist/cli/command-definitions.js +25 -10
  5. package/dist/cli/help.js +4 -3
  6. package/dist/cli/program.js +43 -17
  7. package/dist/commands/cursor-prompt.js +6 -6
  8. package/dist/commands/import-prd.js +7 -2
  9. package/dist/commands/init.js +7 -5
  10. package/dist/commands/loop-benchmark.js +11 -11
  11. package/dist/commands/pi-reuse-benchmark.js +16 -16
  12. package/dist/commands/task-source-prepare.js +468 -0
  13. package/dist/executors/dag-pi-executor.js +40 -5
  14. package/dist/executors/shell-write-guard.js +161 -25
  15. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  16. package/dist/task/source-prepare/build-draft.js +215 -0
  17. package/dist/task/source-prepare/completeness.js +195 -0
  18. package/dist/task/source-prepare/index.js +7 -0
  19. package/dist/task/source-prepare/parse-intent.js +373 -0
  20. package/dist/task/source-prepare/path-policy.js +197 -0
  21. package/dist/task/source-prepare/prepare.js +506 -0
  22. package/dist/task/source-prepare/reference-integrity.js +274 -0
  23. package/dist/task/source-prepare/types.js +7 -0
  24. package/dist/worker/observe/static/copy.js +67 -67
  25. package/dist/worker/observe/static/dag-layout.d.ts +31 -31
  26. package/dist/worker/observe/static/dag-layout.js +83 -83
  27. package/dist/worker/observe/static/dom.js +220 -220
  28. package/dist/worker/observe/static/relations.js +133 -133
  29. package/dist/worker/observe/static/router.js +93 -93
  30. package/dist/worker/observe/static/run-processing.js +148 -148
  31. package/dist/worker/observe/static/views/batch.js +227 -227
  32. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  33. package/dist/worker/observe/static/views/failures.js +143 -143
  34. package/dist/worker/observe/static/views/feature.js +492 -492
  35. package/dist/worker/observe/static/views/run.js +453 -453
  36. package/dist/worker/observe/static/views/shell.js +7 -7
  37. package/dist/worker/observe/static/views/timeline.js +163 -163
  38. package/dist/workflows/dag/canvas-observer.js +275 -275
  39. package/docs/skills/README.md +7 -7
  40. package/docs/templates/adr.md +60 -60
  41. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  42. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  43. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  44. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  45. package/docs/templates/agent-dag-report.schema.json +473 -473
  46. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  47. package/docs/templates/backend-test-result.schema.json +99 -99
  48. package/docs/templates/feature-spec.md +53 -53
  49. package/docs/templates/frontend-design-contract.md +42 -42
  50. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -17
  51. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -16
  52. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -16
  53. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -16
  54. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -16
  55. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -16
  56. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -21
  57. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -29
  58. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -28
  59. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -28
  60. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -29
  61. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -27
  62. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -28
  63. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -28
  64. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -27
  65. package/docs/templates/frontend-eval/metrics.md +138 -138
  66. package/docs/templates/frontend-eval/smoke-targets.md +53 -53
  67. package/docs/templates/frontend-task-constraints.md +35 -35
  68. package/docs/templates/frontend-task-requirement.md +70 -70
  69. package/docs/templates/init-evolution-review.md +35 -35
  70. package/docs/templates/init-managed-agents.md +10 -5
  71. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  72. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  73. package/docs/templates/knowledge-sync-dag.json +178 -178
  74. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  75. package/docs/templates/product-line/closeout.yaml +9 -9
  76. package/docs/templates/product-line/design.md +13 -13
  77. package/docs/templates/product-line/links.md +10 -10
  78. package/docs/templates/product-line/requirement.md +17 -17
  79. package/docs/templates/product-line/test-plan.md +7 -7
  80. package/docs/templates/production-readiness-checklist.md +57 -57
  81. package/docs/templates/project-start-checklist.md +9 -9
  82. package/docs/templates/qa-report.md +48 -48
  83. package/docs/templates/sprint-contract.md +29 -29
  84. package/docs/templates/worker-dogfood-evidence.md +80 -80
  85. package/docs/templates/worker-dogfood-setup.md +68 -68
  86. package/package.json +1 -1
  87. package/scripts/kb-bootstrap-init-skeleton.sh +0 -0
  88. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  89. package/scripts/kb-graph-materialize.mjs +105 -105
  90. package/scripts/kb-graph-promote.mjs +164 -164
  91. package/scripts/kb-query.mjs +554 -554
  92. package/skills/ai-engineering-context/SKILL.md +48 -48
  93. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  94. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  95. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  96. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  97. package/skills/analyze-product-dependencies/references/example.md +76 -76
  98. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  99. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  100. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  101. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  102. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  103. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  104. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  105. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  106. package/skills/analyze-product-requirements/SKILL.md +90 -90
  107. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  108. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  109. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  110. package/skills/analyze-product-requirements/references/example.md +86 -86
  111. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  112. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  113. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  114. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  115. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  116. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  117. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  118. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  119. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  120. package/skills/browser-tools/browser-content.js +103 -103
  121. package/skills/browser-tools/browser-cookies.js +35 -35
  122. package/skills/browser-tools/browser-eval.js +53 -53
  123. package/skills/browser-tools/browser-hn-scraper.js +108 -108
  124. package/skills/browser-tools/browser-nav.js +44 -44
  125. package/skills/browser-tools/browser-pick.js +162 -162
  126. package/skills/browser-tools/browser-screenshot.js +34 -34
  127. package/skills/browser-tools/browser-start.js +86 -86
  128. package/skills/browser-tools/package-lock.json +2556 -2556
  129. package/skills/browser-tools/package.json +19 -19
  130. package/skills/code-review-core/SKILL.md +20 -20
  131. package/skills/codebase-scout/SKILL.md +19 -19
  132. package/skills/grill-me/SKILL.md +10 -10
  133. package/skills/loop-agent/SKILL.md +5 -2
  134. package/skills/loop-agent/references/README.md +67 -67
  135. package/skills/loop-agent/references/command-reference.md +17 -15
  136. package/skills/loop-agent/references/docs-converge.md +126 -126
  137. package/skills/loop-agent/references/harness-policy.md +3 -4
  138. package/skills/loop-agent/references/learned/README.md +21 -21
  139. package/skills/loop-agent/references/long-running-loop.md +57 -57
  140. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  141. package/skills/loop-agent/references/pi-prompt.md +23 -23
  142. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  143. package/skills/loop-agent/references/post-implementation-and-patterns.md +1 -1
  144. package/skills/loop-agent/references/source-and-plan-practice.md +3 -2
  145. package/skills/loop-agent/references/task-workflow.md +7 -5
  146. package/skills/playwright-cli/SKILL.md +420 -420
  147. package/skills/playwright-cli/references/element-attributes.md +23 -23
  148. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  149. package/skills/playwright-cli/references/request-mocking.md +87 -87
  150. package/skills/playwright-cli/references/running-code.md +241 -241
  151. package/skills/playwright-cli/references/session-management.md +225 -225
  152. package/skills/playwright-cli/references/storage-state.md +275 -275
  153. package/skills/playwright-cli/references/test-generation.md +433 -433
  154. package/skills/playwright-cli/references/tracing.md +139 -139
  155. package/skills/playwright-cli/references/video-recording.md +143 -143
  156. package/skills/requesting-code-review/SKILL.md +101 -101
  157. package/skills/requesting-code-review/code-reviewer.md +168 -168
  158. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  159. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  160. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  161. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  162. package/skills/systematic-debugging/find-polluter.sh +63 -63
  163. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  164. package/skills/systematic-debugging/test-academic.md +14 -14
  165. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  166. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  167. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  168. package/skills/using-git-worktrees/SKILL.md +215 -215
  169. package/skills/verification-before-completion/SKILL.md +154 -154
  170. package/skills/webapp-testing/SKILL.md +19 -19
@@ -1,86 +1,86 @@
1
- # V3 完整流程示例
2
-
3
- 需求:登录用户在个人资料页修改昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
4
-
5
- ## Product Analysis 关键结构
6
-
7
- ```md
8
- ---
9
- artifact_version: "3.0"
10
- artifact_type: product-analysis
11
- requirement_id: profile-nickname
12
- project_root: ../../..
13
- analysis_scope: frontend
14
- analysis_status: no-clarification-required
15
- source_requirement: inline
16
- repository_root: none
17
- ---
18
-
19
- ## 6. 初步前端用户故事
20
- ### FE-US-001 修改昵称
21
- - 角色:已登录用户
22
- - 目标:修改自己的展示昵称
23
- - 价值:保持个人资料准确
24
- - 入口:个人资料页
25
- - 验收关注点:合法值可保存;非法值不可提交;失败时保留输入
26
-
27
- ## 7. 初步前端输出规范
28
- ### FE-US-001 修改昵称
29
- - 页面/组件:个人资料页、昵称编辑表单
30
- - 展示内容:当前昵称、字符计数、校验提示
31
- - 交互动作:编辑、保存、取消、重试
32
- - UI 状态:normal、dirty、loading、success、error、disabled
33
- - 表单校验:昵称长度为 2–20 个字符
34
- - 权限可见性:仅当前登录用户
35
- - 边界处理:保存失败时保留输入,不得静默失败
36
- ```
37
-
38
- Product Analysis 不创建正式 AC。
39
-
40
- ## 无需澄清记录
41
-
42
- ```md
43
- ## 1. 澄清结论
44
- - 状态:no-clarification-required
45
- - 原因:范围、权限、数据语义和验收结果已经明确。
46
- ## 2. 来源
47
- - Product Analysis:./product-analysis.md
48
- ## 3. 合并结果
49
- - Product Requirement 根据明确需求生成,无额外决策标记。
50
- ```
51
-
52
- ## Product Requirement 故事、规范与 AC
53
-
54
- ```md
55
- ## 5. 前端用户故事
56
- ### FE-US-001 修改昵称
57
- - 角色:已登录用户
58
- - 目标:修改自己的展示昵称
59
- - 价值:保持个人资料准确
60
- - 入口:个人资料页
61
- - 验收标准:AC-FE-001
62
-
63
- ## 6. 前端输出规范
64
- ### FE-US-001 修改昵称
65
- - 页面/组件:个人资料页、昵称编辑表单
66
- - 展示内容:当前昵称、字符计数、校验提示
67
- - 交互动作:编辑、保存、取消、重试
68
- - UI 状态:normal、dirty、loading、success、error、disabled
69
- - 表单校验:昵称长度为 2–20 个字符
70
- - 权限可见性:仅当前登录用户
71
- - 边界处理:失败时保留输入,不得静默失败
72
-
73
- #### AC-FE-001 保存合法昵称
74
- Given:
75
- - 用户已登录并打开个人资料页。
76
- When:
77
- - 用户输入合法昵称并点击保存。
78
- Then:
79
- - 页面提交昵称修改请求。
80
- - 保存成功后展示新昵称。
81
- - 保存期间按钮保持 disabled。
82
- 异常场景:
83
- - 保存失败时保留输入并提供重试入口。
84
- ```
85
-
86
- 故事与输出规范使用同一 ID;故事只引用 AC,AC 正文只在对应输出规范中出现一次。
1
+ # V3 完整流程示例
2
+
3
+ 需求:登录用户在个人资料页修改昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
4
+
5
+ ## Product Analysis 关键结构
6
+
7
+ ```md
8
+ ---
9
+ artifact_version: "3.0"
10
+ artifact_type: product-analysis
11
+ requirement_id: profile-nickname
12
+ project_root: ../../..
13
+ analysis_scope: frontend
14
+ analysis_status: no-clarification-required
15
+ source_requirement: inline
16
+ repository_root: none
17
+ ---
18
+
19
+ ## 6. 初步前端用户故事
20
+ ### FE-US-001 修改昵称
21
+ - 角色:已登录用户
22
+ - 目标:修改自己的展示昵称
23
+ - 价值:保持个人资料准确
24
+ - 入口:个人资料页
25
+ - 验收关注点:合法值可保存;非法值不可提交;失败时保留输入
26
+
27
+ ## 7. 初步前端输出规范
28
+ ### FE-US-001 修改昵称
29
+ - 页面/组件:个人资料页、昵称编辑表单
30
+ - 展示内容:当前昵称、字符计数、校验提示
31
+ - 交互动作:编辑、保存、取消、重试
32
+ - UI 状态:normal、dirty、loading、success、error、disabled
33
+ - 表单校验:昵称长度为 2–20 个字符
34
+ - 权限可见性:仅当前登录用户
35
+ - 边界处理:保存失败时保留输入,不得静默失败
36
+ ```
37
+
38
+ Product Analysis 不创建正式 AC。
39
+
40
+ ## 无需澄清记录
41
+
42
+ ```md
43
+ ## 1. 澄清结论
44
+ - 状态:no-clarification-required
45
+ - 原因:范围、权限、数据语义和验收结果已经明确。
46
+ ## 2. 来源
47
+ - Product Analysis:./product-analysis.md
48
+ ## 3. 合并结果
49
+ - Product Requirement 根据明确需求生成,无额外决策标记。
50
+ ```
51
+
52
+ ## Product Requirement 故事、规范与 AC
53
+
54
+ ```md
55
+ ## 5. 前端用户故事
56
+ ### FE-US-001 修改昵称
57
+ - 角色:已登录用户
58
+ - 目标:修改自己的展示昵称
59
+ - 价值:保持个人资料准确
60
+ - 入口:个人资料页
61
+ - 验收标准:AC-FE-001
62
+
63
+ ## 6. 前端输出规范
64
+ ### FE-US-001 修改昵称
65
+ - 页面/组件:个人资料页、昵称编辑表单
66
+ - 展示内容:当前昵称、字符计数、校验提示
67
+ - 交互动作:编辑、保存、取消、重试
68
+ - UI 状态:normal、dirty、loading、success、error、disabled
69
+ - 表单校验:昵称长度为 2–20 个字符
70
+ - 权限可见性:仅当前登录用户
71
+ - 边界处理:失败时保留输入,不得静默失败
72
+
73
+ #### AC-FE-001 保存合法昵称
74
+ Given:
75
+ - 用户已登录并打开个人资料页。
76
+ When:
77
+ - 用户输入合法昵称并点击保存。
78
+ Then:
79
+ - 页面提交昵称修改请求。
80
+ - 保存成功后展示新昵称。
81
+ - 保存期间按钮保持 disabled。
82
+ 异常场景:
83
+ - 保存失败时保留输入并提供重试入口。
84
+ ```
85
+
86
+ 故事与输出规范使用同一 ID;故事只引用 AC,AC 正文只在对应输出规范中出现一次。
@@ -1,66 +1,66 @@
1
- # Forward-Test Cases
2
-
3
- 在独立 agent 中逐个执行,不提供预期正文,只核对不变量。
4
-
5
- ## Case 1:无需澄清
6
-
7
- ```text
8
- Use $analyze-product-requirements --target frontend.
9
- 需求:登录用户在个人资料页修改自己的昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
10
- ```
11
-
12
- 核对:三个产物都在 `<project-root>/docs/product-analysis/<requirement-id>/`;三者 `analysis_scope` 均为 `frontend`;Product Analysis 为 `no-clarification-required` 且不含正式 AC;Clarification 使用三章精简结构且没有 BR/Q/DEC;Product Requirement 为 complete;故事与同 ID 输出规范一一对应。
13
-
14
- ## Case 2:需要逐题澄清
15
-
16
- ```text
17
- Use $analyze-product-requirements target=both.
18
- 需求:管理员可以导出用户数据。
19
- ```
20
-
21
- 核对:先列 3–6 个分支;从管理员角色和敏感字段范围开始;每轮先推荐再只问一个主要问题;收到回答后重新识别模糊点;`clarification_rounds` 和问题轮次一致且最多为 3。第 3 轮后仍有 P0/P1 时保持 pending,不再提问、不自行补全;不得回写 Product Analysis。
22
-
23
- ## Case 3:后端 API 业务需求
24
-
25
- ```text
26
- Use $analyze-product-requirements target=backend.
27
- 需求:登录用户查询自己订单的退款状态,失败时看到可理解原因,内部错误不得泄露。
28
- ```
29
-
30
- 核对:BE 故事只保留能力、使用方、价值、触发方式和 AC 引用;同 ID 输出规范明确输入输出语义、权限和规则;不虚构最终 URL、HTTP 方法、DTO 或代码落点。
31
-
32
- ## Case 4:非 API 后端任务
33
-
34
- ```text
35
- Use $analyze-product-requirements target=backend.
36
- 需求:每天归档 90 天前已完成通知,重复执行不得重复归档。
37
- ```
38
-
39
- 核对:触发方式明确为定时任务;包含批次、幂等、并发和失败恢复;不会把它误标为 API。
40
-
41
- ## Case 5:回答仍然模糊
42
-
43
- ```text
44
- Use $analyze-product-requirements target=both.
45
- 需求:管理员可以导出用户数据。
46
- 第一轮询问导出字段范围时,用户回答:敏感字段按实际情况处理。
47
- ```
48
-
49
- 核对:不得把该回答标记为 confirmed;保留原始回答,最终决策写“未形成”并说明无法确定的字段;当前分支保持 unresolved;下一轮继续当前分支并明确指出手机号、邮箱等字段仍未确定,给出可直接确认的推荐方案;不得跳到文件格式或导出入口。
50
-
51
- ## Case 6:下一轮消除模糊
52
-
53
- ```text
54
- 沿用 Case 5。下一轮用户回答:导出邮箱,不导出手机号和身份证号。
55
- ```
56
-
57
- 核对:形成唯一字段规则并标记 confirmed;最终决策明确列出包含和排除字段;当前分支 resolved;重新扫描其他剩余问题和该回答新引入的模糊点;仅在仍会影响范围、规则、输出或验收时进入下一轮。
58
-
59
- ## Case 7:代码事实不得泄漏到最终需求
60
-
61
- ```text
62
- Use $analyze-product-requirements target=backend,并提供一个仓库。
63
- 需求:仅管理员可以导出用户数据。仓库中现有权限判断位于 src/auth/permission.ts,使用 role=admin。
64
- ```
65
-
66
- 核对:Product Analysis 可记录 `CODE-FACT-*`、证据路径和现状;Clarification 可引用该证据辅助判断,但不得把现状自动视为目标决策;Product Requirement 只写“仅管理员可以导出用户数据”等产品规则,不包含 `CODE-FACT-*`、`src/auth/permission.ts`、`role=admin`、代码符号、模块结构或当前实现过程。
1
+ # Forward-Test Cases
2
+
3
+ 在独立 agent 中逐个执行,不提供预期正文,只核对不变量。
4
+
5
+ ## Case 1:无需澄清
6
+
7
+ ```text
8
+ Use $analyze-product-requirements --target frontend.
9
+ 需求:登录用户在个人资料页修改自己的昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
10
+ ```
11
+
12
+ 核对:三个产物都在 `<project-root>/docs/product-analysis/<requirement-id>/`;三者 `analysis_scope` 均为 `frontend`;Product Analysis 为 `no-clarification-required` 且不含正式 AC;Clarification 使用三章精简结构且没有 BR/Q/DEC;Product Requirement 为 complete;故事与同 ID 输出规范一一对应。
13
+
14
+ ## Case 2:需要逐题澄清
15
+
16
+ ```text
17
+ Use $analyze-product-requirements target=both.
18
+ 需求:管理员可以导出用户数据。
19
+ ```
20
+
21
+ 核对:先列 3–6 个分支;从管理员角色和敏感字段范围开始;每轮先推荐再只问一个主要问题;收到回答后重新识别模糊点;`clarification_rounds` 和问题轮次一致且最多为 3。第 3 轮后仍有 P0/P1 时保持 pending,不再提问、不自行补全;不得回写 Product Analysis。
22
+
23
+ ## Case 3:后端 API 业务需求
24
+
25
+ ```text
26
+ Use $analyze-product-requirements target=backend.
27
+ 需求:登录用户查询自己订单的退款状态,失败时看到可理解原因,内部错误不得泄露。
28
+ ```
29
+
30
+ 核对:BE 故事只保留能力、使用方、价值、触发方式和 AC 引用;同 ID 输出规范明确输入输出语义、权限和规则;不虚构最终 URL、HTTP 方法、DTO 或代码落点。
31
+
32
+ ## Case 4:非 API 后端任务
33
+
34
+ ```text
35
+ Use $analyze-product-requirements target=backend.
36
+ 需求:每天归档 90 天前已完成通知,重复执行不得重复归档。
37
+ ```
38
+
39
+ 核对:触发方式明确为定时任务;包含批次、幂等、并发和失败恢复;不会把它误标为 API。
40
+
41
+ ## Case 5:回答仍然模糊
42
+
43
+ ```text
44
+ Use $analyze-product-requirements target=both.
45
+ 需求:管理员可以导出用户数据。
46
+ 第一轮询问导出字段范围时,用户回答:敏感字段按实际情况处理。
47
+ ```
48
+
49
+ 核对:不得把该回答标记为 confirmed;保留原始回答,最终决策写“未形成”并说明无法确定的字段;当前分支保持 unresolved;下一轮继续当前分支并明确指出手机号、邮箱等字段仍未确定,给出可直接确认的推荐方案;不得跳到文件格式或导出入口。
50
+
51
+ ## Case 6:下一轮消除模糊
52
+
53
+ ```text
54
+ 沿用 Case 5。下一轮用户回答:导出邮箱,不导出手机号和身份证号。
55
+ ```
56
+
57
+ 核对:形成唯一字段规则并标记 confirmed;最终决策明确列出包含和排除字段;当前分支 resolved;重新扫描其他剩余问题和该回答新引入的模糊点;仅在仍会影响范围、规则、输出或验收时进入下一轮。
58
+
59
+ ## Case 7:代码事实不得泄漏到最终需求
60
+
61
+ ```text
62
+ Use $analyze-product-requirements target=backend,并提供一个仓库。
63
+ 需求:仅管理员可以导出用户数据。仓库中现有权限判断位于 src/auth/permission.ts,使用 role=admin。
64
+ ```
65
+
66
+ 核对:Product Analysis 可记录 `CODE-FACT-*`、证据路径和现状;Clarification 可引用该证据辅助判断,但不得把现状自动视为目标决策;Product Requirement 只写“仅管理员可以导出用户数据”等产品规则,不包含 `CODE-FACT-*`、`src/auth/permission.ts`、`role=admin`、代码符号、模块结构或当前实现过程。
@@ -1,32 +1,32 @@
1
- # Product Analysis V3 输出契约
2
-
3
- Product Analysis 是澄清前快照,只允许一次创建。首次写入后,正文、frontmatter 和路径全部冻结;需要更正时使用新的 `requirement_id`。
4
-
5
- ```yaml
6
- ---
7
- artifact_version: "3.0"
8
- artifact_type: product-analysis
9
- requirement_id: <lowercase-slug>
10
- project_root: ../../..
11
- analysis_scope: frontend | backend | both
12
- analysis_status: ready-for-clarification | no-clarification-required
13
- source_requirement: <路径或 inline>
14
- repository_root: <路径或 none>
15
- ---
16
- ```
17
-
18
- 文件固定为 `<project-root>/docs/product-analysis/<requirement-id>/product-analysis.md`。
19
-
20
- 固定章节:原始需求、需求概述、业务目标、需求分析、外部事实。需求分析包含明确需求、推断需求、待确认问题、初步非目标;外部事实包含知识库事实、代码库事实。
21
-
22
- 按 scope 追加“初步前端用户故事/初步前端输出规范”或“初步后端用户故事/初步后端输出规范”。不得生成独立用户角色或验收标准汇总。
23
-
24
- 前端故事字段:角色、目标、价值、入口、验收关注点。
25
-
26
- 后端故事字段:系统能力、使用方、业务价值、触发方式、验收关注点。触发方式使用 API、定时任务、事件、消息、内部调用或数据迁移。
27
-
28
- 每个故事必须恰好存在一个同 ID 输出规范。前端输出规范字段:页面/组件、展示内容、交互动作、UI 状态、表单校验、权限可见性、边界处理。后端输出规范字段:输入语义、输出语义、数据读写、权限规则、业务规则、安全要求、幂等与并发、错误与边界。
29
-
30
- Product Analysis 只记录验收关注点,不得出现正式 `AC-FE-*`、`AC-BE-*` 或 Given/When/Then 块。
31
-
32
- `no-clarification-required` 的待确认问题明确写“无”和理由,不得出现问题标记、优先级或问句;`ready-for-clarification` 至少包含一个带优先级或问号的问题。
1
+ # Product Analysis V3 输出契约
2
+
3
+ Product Analysis 是澄清前快照,只允许一次创建。首次写入后,正文、frontmatter 和路径全部冻结;需要更正时使用新的 `requirement_id`。
4
+
5
+ ```yaml
6
+ ---
7
+ artifact_version: "3.0"
8
+ artifact_type: product-analysis
9
+ requirement_id: <lowercase-slug>
10
+ project_root: ../../..
11
+ analysis_scope: frontend | backend | both
12
+ analysis_status: ready-for-clarification | no-clarification-required
13
+ source_requirement: <路径或 inline>
14
+ repository_root: <路径或 none>
15
+ ---
16
+ ```
17
+
18
+ 文件固定为 `<project-root>/docs/product-analysis/<requirement-id>/product-analysis.md`。
19
+
20
+ 固定章节:原始需求、需求概述、业务目标、需求分析、外部事实。需求分析包含明确需求、推断需求、待确认问题、初步非目标;外部事实包含知识库事实、代码库事实。
21
+
22
+ 按 scope 追加“初步前端用户故事/初步前端输出规范”或“初步后端用户故事/初步后端输出规范”。不得生成独立用户角色或验收标准汇总。
23
+
24
+ 前端故事字段:角色、目标、价值、入口、验收关注点。
25
+
26
+ 后端故事字段:系统能力、使用方、业务价值、触发方式、验收关注点。触发方式使用 API、定时任务、事件、消息、内部调用或数据迁移。
27
+
28
+ 每个故事必须恰好存在一个同 ID 输出规范。前端输出规范字段:页面/组件、展示内容、交互动作、UI 状态、表单校验、权限可见性、边界处理。后端输出规范字段:输入语义、输出语义、数据读写、权限规则、业务规则、安全要求、幂等与并发、错误与边界。
29
+
30
+ Product Analysis 只记录验收关注点,不得出现正式 `AC-FE-*`、`AC-BE-*` 或 Given/When/Then 块。
31
+
32
+ `no-clarification-required` 的待确认问题明确写“无”和理由,不得出现问题标记、优先级或问句;`ready-for-clarification` 至少包含一个带优先级或问号的问题。
@@ -1,33 +1,33 @@
1
- # Product Requirement V3 输出契约
2
-
3
- Product Requirement 是澄清后的完整需求文档和下游唯一需求事实源。
4
-
5
- ```yaml
6
- ---
7
- artifact_version: "3.0"
8
- artifact_type: product-requirement
9
- requirement_id: <lowercase-slug>
10
- project_root: ../../..
11
- requirement_status: pending | complete
12
- analysis_scope: frontend | backend | both
13
- source_requirement: <路径或 inline>
14
- source_product_analysis: ./product-analysis.md
15
- source_clarification: ./requirement-clarification.md
16
- ---
17
- ```
18
-
19
- 固定章节:需求概述、业务目标、需求范围、业务规则、决策追溯。需求范围包含已确认需求、非目标、默认假设、未决事项。不得生成独立用户角色或验收标准汇总。
20
-
21
- Product Requirement 只描述目标产品行为,不承载代码侦察记录。不得包含 `CODE-FACT-*`、仓库文件路径、代码级类/函数/组件符号、模块调用关系、数据表名、证据位置、当前实现过程或实现算法。产品层的页面或组件名称仍可用于描述用户可见输出。代码库事实只可在经用户确认或被原始需求明确要求后,转换为不含实现细节的产品规则;原始证据保留在 Product Analysis 或 Clarification。
22
-
23
- 按 scope 追加前端/后端用户故事和同域输出规范。
24
-
25
- 前端故事字段:角色、目标、价值、入口、验收标准。后端故事字段:系统能力、使用方、业务价值、触发方式、验收标准。
26
-
27
- 每个故事必须恰好存在一个同 ID 输出规范。前端规范字段:页面/组件、展示内容、交互动作、UI 状态、表单校验、权限可见性、边界处理。后端规范字段:输入语义、输出语义、数据读写、权限规则、业务规则、安全要求、幂等与并发、错误与边界。
28
-
29
- 正式 `AC-FE-*` 或 `AC-BE-*` 作为四级标题嵌入对应输出规范。故事的验收标准引用必须与该规范中的 AC 完全一致;AC 遵循 `acceptance-criteria.md`。
30
-
31
- 后端触发方式明确写 API、定时任务、事件、消息、内部调用或数据迁移,供下游判断 API 适用性。
32
-
33
- `complete` 不得包含未解决 P0/P1。真实未决项以 `P0:`、`P1:` 或 `P2:` 开头。澄清决策使用 `DEC-Q-*` 在决策追溯中登记并定位到正式章节。
1
+ # Product Requirement V3 输出契约
2
+
3
+ Product Requirement 是澄清后的完整需求文档和下游唯一需求事实源。
4
+
5
+ ```yaml
6
+ ---
7
+ artifact_version: "3.0"
8
+ artifact_type: product-requirement
9
+ requirement_id: <lowercase-slug>
10
+ project_root: ../../..
11
+ requirement_status: pending | complete
12
+ analysis_scope: frontend | backend | both
13
+ source_requirement: <路径或 inline>
14
+ source_product_analysis: ./product-analysis.md
15
+ source_clarification: ./requirement-clarification.md
16
+ ---
17
+ ```
18
+
19
+ 固定章节:需求概述、业务目标、需求范围、业务规则、决策追溯。需求范围包含已确认需求、非目标、默认假设、未决事项。不得生成独立用户角色或验收标准汇总。
20
+
21
+ Product Requirement 只描述目标产品行为,不承载代码侦察记录。不得包含 `CODE-FACT-*`、仓库文件路径、代码级类/函数/组件符号、模块调用关系、数据表名、证据位置、当前实现过程或实现算法。产品层的页面或组件名称仍可用于描述用户可见输出。代码库事实只可在经用户确认或被原始需求明确要求后,转换为不含实现细节的产品规则;原始证据保留在 Product Analysis 或 Clarification。
22
+
23
+ 按 scope 追加前端/后端用户故事和同域输出规范。
24
+
25
+ 前端故事字段:角色、目标、价值、入口、验收标准。后端故事字段:系统能力、使用方、业务价值、触发方式、验收标准。
26
+
27
+ 每个故事必须恰好存在一个同 ID 输出规范。前端规范字段:页面/组件、展示内容、交互动作、UI 状态、表单校验、权限可见性、边界处理。后端规范字段:输入语义、输出语义、数据读写、权限规则、业务规则、安全要求、幂等与并发、错误与边界。
28
+
29
+ 正式 `AC-FE-*` 或 `AC-BE-*` 作为四级标题嵌入对应输出规范。故事的验收标准引用必须与该规范中的 AC 完全一致;AC 遵循 `acceptance-criteria.md`。
30
+
31
+ 后端触发方式明确写 API、定时任务、事件、消息、内部调用或数据迁移,供下游判断 API 适用性。
32
+
33
+ `complete` 不得包含未解决 P0/P1。真实未决项以 `P0:`、`P1:` 或 `P2:` 开头。澄清决策使用 `DEC-Q-*` 在决策追溯中登记并定位到正式章节。
@@ -1,35 +1,35 @@
1
- # Requirement Clarification V3 输出契约
2
-
3
- ```yaml
4
- ---
5
- artifact_version: "3.0"
6
- artifact_type: requirement-clarification
7
- requirement_id: <lowercase-slug>
8
- project_root: ../../..
9
- analysis_scope: frontend | backend | both
10
- clarification_status: pending | complete
11
- clarification_rounds: 0 | 1 | 2 | 3
12
- source_product_analysis: ./product-analysis.md
13
- target_product_requirement: ./product-requirement.md
14
- ---
15
- ```
16
-
17
- 文件与 Product Analysis、Product Requirement 位于同一需求目录。
18
-
19
- ## 无需澄清
20
-
21
- 只生成三个章节:澄清结论、来源、合并结果。`clarification_rounds` 必须为 `0`。澄清结论写明 `no-clarification-required` 和理由;不得生成 `BR-*`、`Q-*`、`DEC-Q-*`。
22
-
23
- ## 需要澄清
24
-
25
- 固定章节:澄清来源、决策分支、问题记录、决策索引。定义 3–6 个 `BR-*` 分支,表格包含分支 ID、名称、优先级、依赖和状态。
26
-
27
- 问题核心字段:澄清轮次、分支、优先级、影响范围、推荐答案、推荐理由、用户回答、最终决策、决策来源、状态、决策标记、目标位置。`clarification_rounds` 必须为 `1`–`3`,每个问题的澄清轮次不得超过该值。
28
-
29
- 条件字段:有前置依赖时写依赖问题;存在真实备选时写备选方案;决策来源为 `code-evidence` 时写代码证据;状态为 `pending-non-blocking` 时写未确认影响。
30
-
31
- 状态使用 confirmed、default-confirmed、pending-blocking、pending-non-blocking;决策来源使用 user、source-requirement、code-evidence、confirmed-default。决策标记必须为 `DEC-Q-*`。
32
-
33
- `complete` 要求全部分支 resolved;P0/P1 必须由用户明确回答并使用 confirmed/user;P2 可确认、使用已确认默认值,或在写明影响后延后。complete 时每个决策标记必须出现在 Product Requirement 的决策追溯中。
34
-
35
- 每轮在用户回答后重新识别模糊点,有必要才再澄清。最多 3 轮;第 3 轮后仍有 P0/P1 时产物必须保持 `pending`,不得继续追问或自行填补决策。
1
+ # Requirement Clarification V3 输出契约
2
+
3
+ ```yaml
4
+ ---
5
+ artifact_version: "3.0"
6
+ artifact_type: requirement-clarification
7
+ requirement_id: <lowercase-slug>
8
+ project_root: ../../..
9
+ analysis_scope: frontend | backend | both
10
+ clarification_status: pending | complete
11
+ clarification_rounds: 0 | 1 | 2 | 3
12
+ source_product_analysis: ./product-analysis.md
13
+ target_product_requirement: ./product-requirement.md
14
+ ---
15
+ ```
16
+
17
+ 文件与 Product Analysis、Product Requirement 位于同一需求目录。
18
+
19
+ ## 无需澄清
20
+
21
+ 只生成三个章节:澄清结论、来源、合并结果。`clarification_rounds` 必须为 `0`。澄清结论写明 `no-clarification-required` 和理由;不得生成 `BR-*`、`Q-*`、`DEC-Q-*`。
22
+
23
+ ## 需要澄清
24
+
25
+ 固定章节:澄清来源、决策分支、问题记录、决策索引。定义 3–6 个 `BR-*` 分支,表格包含分支 ID、名称、优先级、依赖和状态。
26
+
27
+ 问题核心字段:澄清轮次、分支、优先级、影响范围、推荐答案、推荐理由、用户回答、最终决策、决策来源、状态、决策标记、目标位置。`clarification_rounds` 必须为 `1`–`3`,每个问题的澄清轮次不得超过该值。
28
+
29
+ 条件字段:有前置依赖时写依赖问题;存在真实备选时写备选方案;决策来源为 `code-evidence` 时写代码证据;状态为 `pending-non-blocking` 时写未确认影响。
30
+
31
+ 状态使用 confirmed、default-confirmed、pending-blocking、pending-non-blocking;决策来源使用 user、source-requirement、code-evidence、confirmed-default。决策标记必须为 `DEC-Q-*`。
32
+
33
+ `complete` 要求全部分支 resolved;P0/P1 必须由用户明确回答并使用 confirmed/user;P2 可确认、使用已确认默认值,或在写明影响后延后。complete 时每个决策标记必须出现在 Product Requirement 的决策追溯中。
34
+
35
+ 每轮在用户回答后重新识别模糊点,有必要才再澄清。最多 3 轮;第 3 轮后仍有 P0/P1 时产物必须保持 `pending`,不得继续追问或自行填补决策。