coding-agent-harness 1.0.1 → 1.0.4

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 (262) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/CONTRIBUTING.md +98 -0
  3. package/README.en-US.md +14 -0
  4. package/README.md +230 -80
  5. package/README.zh-CN.md +290 -0
  6. package/SKILL.md +132 -198
  7. package/docs-release/README.md +80 -9
  8. package/docs-release/architecture/overview.md +298 -28
  9. package/docs-release/architecture/overview.zh-CN.md +292 -0
  10. package/docs-release/assets/dashboard-overview.png +0 -0
  11. package/docs-release/assets/harness-architecture.svg +163 -0
  12. package/docs-release/assets/harness-workflow.svg +64 -0
  13. package/docs-release/guides/agent-installation.en-US.md +237 -0
  14. package/docs-release/guides/agent-installation.md +149 -27
  15. package/docs-release/guides/contributing.md +100 -0
  16. package/docs-release/guides/contributing.zh-CN.md +99 -0
  17. package/docs-release/guides/document-audience-and-surfaces.en-US.md +113 -0
  18. package/docs-release/guides/document-audience-and-surfaces.md +113 -0
  19. package/docs-release/guides/full-legacy-migration-subagent-strategy.md +334 -0
  20. package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +334 -0
  21. package/docs-release/guides/legacy-migration-agent-prompt.md +373 -0
  22. package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +350 -0
  23. package/docs-release/guides/migration-playbook.en-US.md +324 -0
  24. package/docs-release/guides/migration-playbook.md +328 -0
  25. package/docs-release/guides/parent-control-repository-pattern.en-US.md +254 -0
  26. package/docs-release/guides/parent-control-repository-pattern.md +254 -0
  27. package/docs-release/guides/preset-development.md +214 -0
  28. package/docs-release/guides/repository-operating-models.en-US.md +197 -0
  29. package/docs-release/guides/repository-operating-models.md +197 -0
  30. package/docs-release/guides/task-state-machine.en-US.md +207 -0
  31. package/docs-release/guides/task-state-machine.md +214 -0
  32. package/docs-release/intl/README.md +15 -0
  33. package/docs-release/intl/de-DE.md +18 -0
  34. package/docs-release/intl/en-US.md +18 -0
  35. package/docs-release/intl/es-ES.md +18 -0
  36. package/docs-release/intl/fr-FR.md +18 -0
  37. package/docs-release/intl/ja-JP.md +18 -0
  38. package/docs-release/intl/ko-KR.md +18 -0
  39. package/docs-release/intl/zh-CN.md +18 -0
  40. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/brief.md +13 -0
  41. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
  42. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/lesson_candidates.md +24 -0
  43. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +1 -1
  44. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/task_plan.md +4 -2
  45. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/{visual_roadmap.md → visual_map.md} +9 -1
  46. package/package.json +10 -3
  47. package/presets/legacy-migration/checks/preset-check.mjs +3 -0
  48. package/presets/legacy-migration/preset.yaml +134 -0
  49. package/presets/legacy-migration/scripts/plan-work-queue.mjs +4 -0
  50. package/presets/legacy-migration/scripts/scaffold-task-contracts.mjs +4 -0
  51. package/presets/legacy-migration/templates/execution_strategy.append.md +18 -0
  52. package/presets/legacy-migration/templates/findings.seed.md +17 -0
  53. package/presets/legacy-migration/templates/review.seed.md +12 -0
  54. package/presets/legacy-migration/templates/task_plan.append.md +9 -0
  55. package/presets/legacy-migration/templates/visual_map.append.md +12 -0
  56. package/presets/legacy-migration/workbench/dashboard-panels.yaml +2 -0
  57. package/presets/legacy-migration/workbench/migration-queue.schema.json +23 -0
  58. package/presets/lesson-sedimentation/preset.yaml +23 -0
  59. package/presets/lesson-sedimentation/templates/prompt.md +23 -0
  60. package/presets/module/preset.yaml +25 -0
  61. package/presets/module/templates/execution_strategy.append.md +8 -0
  62. package/presets/module/templates/task_plan.append.md +17 -0
  63. package/presets/standard-task/preset.yaml +31 -0
  64. package/presets/standard-task/templates/task_plan.append.md +7 -0
  65. package/references/adversarial-review-standard.md +2 -2
  66. package/references/agents-md-pattern.md +5 -5
  67. package/references/delivery-operating-model-standard.md +3 -3
  68. package/references/docs-directory-standard.md +53 -10
  69. package/references/external-source-intake-standard.md +75 -0
  70. package/references/harness-ledger.md +53 -94
  71. package/references/legacy-12-phase-bootstrap.md +41 -0
  72. package/references/lessons-governance.md +100 -88
  73. package/references/module-parallel-standard.md +14 -14
  74. package/references/planning-loop.md +51 -7
  75. package/references/project-onboarding-audit.md +10 -0
  76. package/references/pull-request-standard.md +118 -0
  77. package/references/repo-governance-standard.md +12 -1
  78. package/references/review-routing-standard.md +7 -1
  79. package/references/ssot-governance.md +67 -59
  80. package/references/taskr-gap-analysis.md +600 -0
  81. package/references/testing-standard.md +50 -0
  82. package/references/walkthrough-closeout.md +10 -9
  83. package/scripts/check-harness.mjs +111 -331
  84. package/scripts/commands/dashboard-command.mjs +67 -0
  85. package/scripts/commands/migration-command.mjs +96 -0
  86. package/scripts/commands/preset-command.mjs +73 -0
  87. package/scripts/commands/task-command.mjs +327 -0
  88. package/scripts/harness.mjs +106 -20
  89. package/scripts/lib/capability-registry.mjs +591 -0
  90. package/scripts/lib/check-module-parallel.mjs +237 -0
  91. package/scripts/lib/check-profiles.mjs +418 -0
  92. package/scripts/lib/check-task-contracts.mjs +47 -0
  93. package/scripts/lib/core-shared.mjs +196 -0
  94. package/scripts/lib/dashboard-data.mjs +412 -0
  95. package/scripts/lib/dashboard-workbench.mjs +257 -0
  96. package/scripts/lib/dashboard-writer.mjs +107 -4
  97. package/scripts/lib/git-status-summary.mjs +46 -0
  98. package/scripts/lib/governance-index-generator.mjs +174 -0
  99. package/scripts/lib/governance-sync.mjs +514 -0
  100. package/scripts/lib/governance-table-boundary.mjs +175 -0
  101. package/scripts/lib/harness-core.mjs +15 -1318
  102. package/scripts/lib/lesson-maintenance.mjs +152 -0
  103. package/scripts/lib/markdown-utils.mjs +158 -0
  104. package/scripts/lib/migration-planner.mjs +478 -0
  105. package/scripts/lib/migration-support.mjs +312 -0
  106. package/scripts/lib/preset-audit-contracts.mjs +37 -0
  107. package/scripts/lib/preset-engine.mjs +497 -0
  108. package/scripts/lib/preset-registry.mjs +627 -0
  109. package/scripts/lib/preset-resource-contracts.mjs +83 -0
  110. package/scripts/lib/review-confirm-git-gate.mjs +248 -0
  111. package/scripts/lib/status-dashboard-renderer.mjs +102 -0
  112. package/scripts/lib/subagent-authorization-audit.mjs +196 -0
  113. package/scripts/lib/task-completion-consistency.mjs +16 -0
  114. package/scripts/lib/task-index.mjs +93 -0
  115. package/scripts/lib/task-lesson-candidates.mjs +242 -0
  116. package/scripts/lib/task-lesson-sedimentation.mjs +326 -0
  117. package/scripts/lib/task-lifecycle/review-confirm.mjs +101 -0
  118. package/scripts/lib/task-lifecycle/review-gates.mjs +70 -0
  119. package/scripts/lib/task-lifecycle/text-utils.mjs +24 -0
  120. package/scripts/lib/task-lifecycle.mjs +649 -0
  121. package/scripts/lib/task-review-model.mjs +469 -0
  122. package/scripts/lib/task-scanner.mjs +576 -0
  123. package/scripts/lib/task-tombstone-commands.mjs +140 -0
  124. package/scripts/postinstall.mjs +14 -0
  125. package/skills/preset-creator/SKILL.md +179 -0
  126. package/skills/preset-creator/references/complex-task-skeleton/README.md +31 -0
  127. package/skills/preset-creator/references/complex-task-skeleton/artifacts/INDEX.md +12 -0
  128. package/skills/preset-creator/references/complex-task-skeleton/brief.md +32 -0
  129. package/skills/preset-creator/references/complex-task-skeleton/execution_strategy.md +71 -0
  130. package/skills/preset-creator/references/complex-task-skeleton/findings.md +24 -0
  131. package/skills/preset-creator/references/complex-task-skeleton/lesson_candidates.md +70 -0
  132. package/skills/preset-creator/references/complex-task-skeleton/long-running-task-contract.md +76 -0
  133. package/skills/preset-creator/references/complex-task-skeleton/progress.md +33 -0
  134. package/skills/preset-creator/references/complex-task-skeleton/references/INDEX.md +13 -0
  135. package/skills/preset-creator/references/complex-task-skeleton/review.md +107 -0
  136. package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +111 -0
  137. package/{templates/planning/visual_roadmap.md → skills/preset-creator/references/complex-task-skeleton/visual_map.md} +24 -2
  138. package/skills/preset-creator/references/preset-package-skeleton.md +296 -0
  139. package/templates/AGENTS.md.template +51 -36
  140. package/templates/architecture/Architecture-SSoT.md +21 -0
  141. package/templates/architecture/README.md +49 -0
  142. package/templates/architecture/critical-flows.md +22 -0
  143. package/templates/architecture/local-repo-context.md +20 -0
  144. package/templates/architecture/service-catalog.md +17 -0
  145. package/templates/architecture/services/service-template.md +31 -0
  146. package/templates/architecture/system-map.md +22 -0
  147. package/templates/dashboard/assets/app-src/00-state.js +42 -0
  148. package/templates/dashboard/assets/app-src/10-router.js +77 -0
  149. package/templates/dashboard/assets/app-src/20-overview.js +241 -0
  150. package/templates/dashboard/assets/app-src/30-tasks.js +409 -0
  151. package/templates/dashboard/assets/app-src/35-task-detail.js +246 -0
  152. package/templates/dashboard/assets/app-src/40-modules.js +58 -0
  153. package/templates/dashboard/assets/app-src/45-review.js +347 -0
  154. package/templates/dashboard/assets/app-src/50-migration.js +183 -0
  155. package/templates/dashboard/assets/app-src/60-shared.js +61 -0
  156. package/templates/dashboard/assets/app-src/90-bindings.js +524 -0
  157. package/templates/dashboard/assets/app.css +3107 -300
  158. package/templates/dashboard/assets/app.css.manifest.json +9 -0
  159. package/templates/dashboard/assets/app.js +2068 -306
  160. package/templates/dashboard/assets/app.manifest.json +12 -0
  161. package/templates/dashboard/assets/css-src/00-foundation.css +342 -0
  162. package/templates/dashboard/assets/css-src/10-panels-flow.css +236 -0
  163. package/templates/dashboard/assets/css-src/20-briefs-controls.css +398 -0
  164. package/templates/dashboard/assets/css-src/30-task-index.css +739 -0
  165. package/templates/dashboard/assets/css-src/35-review-workspace.css +507 -0
  166. package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +427 -0
  167. package/templates/dashboard/assets/css-src/50-responsive-overrides.css +551 -0
  168. package/templates/dashboard/assets/i18n.js +531 -44
  169. package/templates/dashboard/assets/mermaid-renderer.js +58 -8
  170. package/templates/development/README.md +52 -0
  171. package/templates/development/codebase-map.md +11 -0
  172. package/templates/development/cross-repo-debugging.md +18 -0
  173. package/templates/development/external-context/service-template.md +33 -0
  174. package/templates/development/external-source-packs/README.md +24 -0
  175. package/templates/development/external-source-packs/digest-template.md +28 -0
  176. package/templates/development/local-setup.md +16 -0
  177. package/templates/development/stubs-and-mocks.md +11 -0
  178. package/templates/integrations/README.md +40 -0
  179. package/templates/integrations/api-contract.md +42 -0
  180. package/templates/integrations/event-contract.md +46 -0
  181. package/templates/integrations/third-party/vendor-template.md +42 -0
  182. package/templates/integrations/webhook-contract.md +41 -0
  183. package/templates/ledger/Harness-Ledger.md +13 -25
  184. package/templates/lessons/lesson-arch-process-change.md +1 -1
  185. package/templates/lessons/lesson-new-doc.md +1 -1
  186. package/templates/lessons/lesson-ref-change.md +1 -1
  187. package/templates/planning/brief.md +32 -0
  188. package/templates/planning/execution_strategy.md +31 -0
  189. package/templates/planning/lesson_candidates.md +70 -0
  190. package/templates/planning/long-running-task-contract.md +7 -0
  191. package/templates/planning/module_brief.md +25 -0
  192. package/templates/planning/module_session_prompt.md +6 -0
  193. package/templates/planning/optional/artifacts/INDEX.md +3 -3
  194. package/templates/planning/optional/references/INDEX.md +3 -3
  195. package/templates/planning/review.md +59 -0
  196. package/templates/planning/task_plan.md +40 -15
  197. package/templates/planning/visual_map.md +50 -0
  198. package/templates/reference/docs-library-standard.md +31 -0
  199. package/templates/reference/execution-workflow-standard.md +5 -2
  200. package/templates/reference/external-source-intake-standard.md +82 -0
  201. package/templates/reference/harness-ledger-standard.md +1 -0
  202. package/templates/reference/pull-request-standard.md +80 -0
  203. package/templates/reference/repo-governance-standard.md +8 -5
  204. package/templates/reference/review-routing-standard.md +6 -0
  205. package/templates/reference/walkthrough-standard.md +3 -1
  206. package/templates/verifier/verifier-output.md +1 -1
  207. package/templates/walkthrough/walkthrough-template.md +2 -2
  208. package/templates-zh-CN/AGENTS.md.template +73 -70
  209. package/templates-zh-CN/architecture/Architecture-SSoT.md +21 -0
  210. package/templates-zh-CN/architecture/README.md +51 -0
  211. package/templates-zh-CN/architecture/critical-flows.md +24 -0
  212. package/templates-zh-CN/architecture/local-repo-context.md +20 -0
  213. package/templates-zh-CN/architecture/service-catalog.md +17 -0
  214. package/templates-zh-CN/architecture/services/service-template.md +31 -0
  215. package/templates-zh-CN/architecture/system-map.md +22 -0
  216. package/templates-zh-CN/development/README.md +54 -0
  217. package/templates-zh-CN/development/codebase-map.md +11 -0
  218. package/templates-zh-CN/development/cross-repo-debugging.md +18 -0
  219. package/templates-zh-CN/development/external-context/service-template.md +33 -0
  220. package/templates-zh-CN/development/external-source-packs/README.md +24 -0
  221. package/templates-zh-CN/development/external-source-packs/digest-template.md +28 -0
  222. package/templates-zh-CN/development/local-setup.md +16 -0
  223. package/templates-zh-CN/development/stubs-and-mocks.md +11 -0
  224. package/templates-zh-CN/integrations/README.md +42 -0
  225. package/templates-zh-CN/integrations/api-contract.md +42 -0
  226. package/templates-zh-CN/integrations/event-contract.md +46 -0
  227. package/templates-zh-CN/integrations/third-party/vendor-template.md +42 -0
  228. package/templates-zh-CN/integrations/webhook-contract.md +41 -0
  229. package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
  230. package/templates-zh-CN/planning/brief.md +32 -0
  231. package/templates-zh-CN/planning/execution_strategy.md +30 -0
  232. package/templates-zh-CN/planning/lesson_candidates.md +70 -0
  233. package/templates-zh-CN/planning/long-running-task-contract.md +1 -1
  234. package/templates-zh-CN/planning/module_brief.md +25 -0
  235. package/templates-zh-CN/planning/module_plan.md +2 -2
  236. package/templates-zh-CN/planning/module_session_prompt.md +4 -3
  237. package/templates-zh-CN/planning/review.md +59 -1
  238. package/templates-zh-CN/planning/task_plan.md +37 -11
  239. package/templates-zh-CN/planning/{visual_roadmap.md → visual_map.md} +21 -2
  240. package/templates-zh-CN/reference/adversarial-review-standard.md +1 -1
  241. package/templates-zh-CN/reference/docs-library-standard.md +36 -1
  242. package/templates-zh-CN/reference/execution-workflow-standard.md +10 -2
  243. package/templates-zh-CN/reference/external-source-intake-standard.md +82 -0
  244. package/templates-zh-CN/reference/harness-ledger-standard.md +7 -4
  245. package/templates-zh-CN/reference/pull-request-standard.md +106 -0
  246. package/templates-zh-CN/reference/repo-governance-standard.md +4 -1
  247. package/templates-zh-CN/reference/review-routing-standard.md +8 -1
  248. package/templates-zh-CN/reference/walkthrough-standard.md +6 -5
  249. package/templates-zh-CN/walkthrough/Closeout-SSoT.md +2 -2
  250. package/templates-zh-CN/walkthrough/walkthrough-template.md +2 -2
  251. package/scripts/smoke-dashboard.mjs +0 -70
  252. package/scripts/test-harness.mjs +0 -483
  253. package/templates/ssot/Feature-SSoT.md +0 -43
  254. package/templates/ssot/Lessons-SSoT.md +0 -44
  255. package/templates-zh-CN/dashboard/assets/app.css +0 -399
  256. package/templates-zh-CN/dashboard/assets/app.js +0 -435
  257. package/templates-zh-CN/dashboard/assets/i18n.js +0 -47
  258. package/templates-zh-CN/dashboard/assets/markdown-reader.js +0 -116
  259. package/templates-zh-CN/dashboard/assets/mermaid-renderer.js +0 -59
  260. package/templates-zh-CN/dashboard/index.html +0 -18
  261. package/templates-zh-CN/ssot/Feature-SSoT.md +0 -49
  262. package/templates-zh-CN/ssot/Lessons-SSoT.md +0 -49
@@ -13,6 +13,35 @@
13
13
  - 范围外:[明确不审查的内容;如无写“无”]
14
14
  - 来源材料:[task plan、diff、commit、PR、测试输出、运行证据]
15
15
 
16
+ ## Agent Review Submission(Agent 提交审查)
17
+
18
+ 本节由 agent 或 coordinator 在审查材料包准备好时填写。它只表示“提交待审”,不表示人工批准。
19
+
20
+ | Field | Value |
21
+ | --- | --- |
22
+ | Submission ID | [由 task-review 生成] |
23
+ | Submitted At | [timestamp] |
24
+ | Submitted By | [agent 或 coordinator 身份] |
25
+ | Task Key | {{TASK_ID}} |
26
+ | Materials Checklist Hash | [由 task-review 生成;只作信息记录,不作为手工门禁] |
27
+ | Evidence Summary | [测试、diff、运行和审查材料证据] |
28
+ | Open Findings Count | [数字] |
29
+ | Scanner Version | [生成时的 scanner 版本] |
30
+
31
+ ### Material Checklist(材料清单)
32
+
33
+ | Material | Required? | Status | Evidence |
34
+ | --- | --- | --- | --- |
35
+ | Brief | yes / no | present / missing / incomplete | [路径或原因] |
36
+ | Task plan | yes / no | present / missing / incomplete | [路径或原因] |
37
+ | Progress and evidence | yes / no | present / missing / incomplete | [路径或原因] |
38
+ | Visual map | yes / no | present / missing / incomplete | [路径或原因] |
39
+ | Lesson candidate decision | yes / no | present / missing / incomplete | [路径或原因] |
40
+ | Walkthrough or closeout link | yes / no | present / missing / incomplete | [路径或原因] |
41
+
42
+ Scanner 会根据必需文件、章节、证据和这个严格提交块派生 `materialsReady`。如果材料未齐,任务应进入缺材料队列,而不是人工审查确认队列。
43
+ 如果存在开放的 P0/P1/P2 阻塞发现,任务应进入阻塞队列,而不是人工审查确认队列。
44
+
16
45
  ## 信心挑战(Confidence Challenge)
17
46
 
18
47
  直接回答:你是否对当前计划、实现和策略有 100% 信心?
@@ -49,19 +78,48 @@
49
78
 
50
79
  [如果没有重要发现,明确写:本轮已检查上述证据,未发现阻塞目标的重要发现。]
51
80
 
81
+ ## Human Review Confirmation(人工审查确认)
82
+
83
+ 本节只能由人工 reviewer,或代表明确人工确认的命令 / workbench 动作填写。Agent 提交审查、自查、subagent 审查都不能满足这个门禁。
84
+
85
+ | Field | Value |
86
+ | --- | --- |
87
+ | Confirmation ID | [由 review-confirm 生成] |
88
+ | Confirmed At | [timestamp] |
89
+ | Reviewer | [人工 reviewer 姓名] |
90
+ | Reviewer Email | [邮箱,如可用] |
91
+ | Task Key | {{TASK_ID}} |
92
+ | Confirm Text | [必须匹配任务 ID 或命令要求的确认短语] |
93
+ | Evidence Checked | [review packet / tests / diff 摘要] |
94
+ | Commit SHA | [由 review-confirm 生成的确认提交 SHA] |
95
+ | Audit Status | committed / blocked |
96
+
97
+ 任务仍属于缺材料、阻塞或 Lessons 路由时,不要填写本节。`review-confirm` 与 Dashboard Workbench 必须在 Git dirty、提交身份缺失、hook 失败,或写入超出当前任务 `review.md` / `progress.md` 白名单时拒绝确认。
98
+
52
99
  ## 残余风险
53
100
 
54
101
  | Risk | Owner | Accepted? | Follow-up |
55
102
  | --- | --- | --- | --- |
56
103
  | [风险] | [负责人] | yes / no | [后续路径或“无”] |
57
104
 
105
+ ## Lifecycle Queue Routing(生命周期队列路由)
106
+
107
+ | Queue | Applies? | Reason | Exit condition |
108
+ | --- | --- | --- | --- |
109
+ | Review | yes / no | 已提交审查材料包,且可等待人工确认。 | 人工确认或退回。 |
110
+ | Missing Materials | yes / no | 必需文件、章节、证据或 review submission 缺失 / 不完整。 | Agent 补齐材料并重新提交审查。 |
111
+ | Blocked | yes / no | 存在 open blocking finding、非法状态转换、审计失败或需要人工 waiver。 | blocker 被修复、关闭或明确豁免。 |
112
+ | Lessons | yes / no | Lesson candidate 需要拒绝、留在任务内、dry-run promotion 或创建沉淀任务。 | 人工决定候选路由;除非明确批准,promotion 仍是单独维护任务。 |
113
+ | Confirmed / Finalized | yes / no | 已有人工确认;可能仍待结项或治理收口。 | Closeout、ledger 和 lesson routing 都完成。 |
114
+ | Soft-deleted / Superseded | yes / no | 任务有 tombstone、superseded-by、archive、duplicate 或 abandoned 状态。 | reopen 或作为只读审计历史保留。 |
115
+
58
116
  ## 后续路由(Follow-Up Routing)
59
117
 
60
118
  - 任务计划:[是否需要更新,路径或“无”]
61
119
  - Progress:[对应 `progress.md` 条目]
62
120
  - 发现记录:[是否需要写入 `findings.md`]
63
121
  - Regression SSoT:[新增 / 调整 / 无]
64
- - Lessons SSoT:[checked-created: L-YYYY-MM-DD-NNN / checked-none: 一句话原因]
122
+ - Lessons:[checked-created: L-YYYY-MM-DD-NNN / checked-candidate: LC-YYYYMMDD-NNN / queued-promotion: LC-YYYYMMDD-NNN / checked-none: 一句话原因]
65
123
  - 收口记录:[收口时引用路径]
66
124
 
67
125
  ## 最终信心依据(Final Confidence Basis)
@@ -1,5 +1,7 @@
1
1
  # [任务名称]
2
2
 
3
+ Task Contract: harness-task/v1
4
+
3
5
  ## 目标
4
6
 
5
7
  [用一句话说明本任务完成后应达到的状态。]
@@ -14,11 +16,15 @@
14
16
 
15
17
  | 预算 | 适用场景 | 必需结构 |
16
18
  | --- | --- | --- |
17
- | simple | 单 owner、无 subagent、证据深度为 L0/L1 | 使用标准任务文件即可 |
18
- | complex | 需要 L2/L3 证据、subagent/reviewer、外部参考、生成产物,或超过 5 个切片 | 只启用实际需要的可选索引 |
19
+ | simple | 单 owner、无 subagent、证据深度为 L0/L1、不需要正式 review gate | `brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
20
+ | standard | 常规功能、修复或文档改动 | `brief.md`、`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`findings.md`、`lesson_candidates.md`、`progress.md`、`review.md` |
21
+ | complex | 需要 L2/L3 证据、subagent/reviewer、外部参考、生成产物,或超过 5 个切片 | standard 文件,并额外创建 `references/INDEX.md` 与 `artifacts/INDEX.md` |
22
+
23
+ 选择预算:{{TASK_BUDGET}}
19
24
 
20
25
  可选子目录按触发条件创建,不作为默认脚手架:
21
26
 
27
+ - `lessons/LC-*.md`:进入 `needs-promotion` 的 lesson candidate 的任务本地详情文件。
22
28
  - `references/INDEX.md`:任务本地资料、外部链接、reviewer 输入包、跨仓上下文。
23
29
  - `artifacts/INDEX.md`:命令输出、截图、fixture、生成报告、审查记录等证据。
24
30
  - `slices/<slice-id>/`:多切片任务。每个切片使用 `brief.md`、`evidence.md`、`review.md`。
@@ -40,13 +46,34 @@
40
46
 
41
47
  ## 执行与可视化文件
42
48
 
43
- `execution_strategy.md` `visual_roadmap.md` 是本任务的同级合同文件,不嵌入 `task_plan.md`。这样 dashboard 和 checker 可以稳定读取。
44
-
45
- | 合同文件 | 是否必需 | 用途 |
46
- | --- | --- | --- |
47
- | `execution_strategy.md` | yes | 执行模式、subagent 使用、冲突控制、证据深度、交接规则 |
48
- | `visual_roadmap.md` | yes | Mermaid 路线图、阶段表、完成度、证据状态、阻塞风险 |
49
- | `review.md` | 按需 | 对抗性审查、release review、外部 reviewer 结论 |
49
+ 不要手工复制本模板来创建任务目录。必须使用 `harness new-task`,让所选预算自动
50
+ 创建正确文件集,并让 `harness check` 能按同一契约校验。
51
+
52
+ `execution_strategy.md` `visual_map.md` 是本任务的同级合同文件,不嵌入 `task_plan.md`。这样 dashboard 和 checker 可以稳定读取。
53
+
54
+ | 预算 | 必需文件 |
55
+ | --- | --- |
56
+ | simple | `brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
57
+ | standard | simple 文件,加 `execution_strategy.md`、`findings.md`、`lesson_candidates.md`、`review.md` |
58
+ | complex | standard 文件,加 `references/INDEX.md`、`artifacts/INDEX.md` |
59
+ | long-running 附加项 | 选择 `--long-running` 时额外创建 `long-running-task-contract.md` |
60
+
61
+ 文件职责:
62
+
63
+ | 合同文件 | 用途 |
64
+ | --- | --- |
65
+ | `brief.md` | 面向人和下一轮 agent 的任务摘要与上下文包 |
66
+ | `task_plan.md` | 目标、范围、预算、验收与执行决策 |
67
+ | `execution_strategy.md` | 执行模式、subagent 使用、冲突控制、证据深度、交接规则 |
68
+ | `visual_map.md` | 图表集合:阶段图、可选架构/时序/数据流/状态图、完成度、证据状态、阻塞风险 |
69
+ | `progress.md` | 执行日志、决策和交接 |
70
+ | `findings.md` | 发现、研究记录和未解决风险 |
71
+ | `lesson_candidates.md` | 任务本地教训候选队列。人工审查确认前必须接受无候选、拒绝候选,或排队 promotion |
72
+ | `lessons/LC-*.md` | 可选的任务本地 lesson 详情文件,趁源任务上下文还新鲜写出,并由 `Detail Artifact` 链接 |
73
+ | `review.md` | Agent Review Submission、对抗性审查、release review、外部 reviewer 结论 |
74
+ | `references/INDEX.md` | complex 任务的资料包和参考索引 |
75
+ | `artifacts/INDEX.md` | complex 任务的生成证据和产物索引 |
76
+ | `long-running-task-contract.md` | 连续执行权限、循环规则和停止条件 |
50
77
 
51
78
  旧任务可以保留历史嵌入式段落作为 fallback;新任务必须使用独立文件。
52
79
 
@@ -95,10 +122,9 @@
95
122
 
96
123
  ## 关联
97
124
 
98
- - 功能 SSoT 条目:[引用]
99
125
  - 相关 Regression Gate:[引用]
100
126
  - 审查报告:[路径 / 不适用]
101
- - Harness Ledger 条目:[完成时填写 / HL-...]
127
+ - Generated Ledger:由 lifecycle CLI / `harness governance rebuild` 重建
102
128
  - 前置任务:[引用;如无写“无”]
103
129
 
104
130
  ## 模块关联(启用模块并行时填写)
@@ -1,6 +1,14 @@
1
- # 可视化路线图
1
+ # Visual Map / 可视化图谱
2
2
 
3
- 本文件供 HTML dashboard 和人工审查同时使用。Mermaid 图展示阶段关系;阶段表提供可解析的状态、完成度和证据状态。
3
+ Visual Map Contract: v1.0
4
+
5
+ 本文件是任务图表集合,不只是阶段路线图。只有对人或 agent 理解任务有实际帮助的图才放进来。
6
+
7
+ ## 图表索引(Map Index)
8
+
9
+ | ID | Type | Purpose | Required For Understanding | Source Evidence | Promotion Candidate |
10
+ | --- | --- | --- | --- | --- | --- |
11
+ | MAP-01 | phase | 展示执行阶段和依赖关系 | yes | `task_plan.md` | no |
4
12
 
5
13
  ## 阶段关系图(Phase Graph)
6
14
 
@@ -22,3 +30,14 @@ flowchart LR
22
30
  允许的 `Evidence Status`:`missing`, `partial`, `present`, `waived`。
23
31
 
24
32
  `Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 以阶段表计算进度,不从正文推断。
33
+
34
+ ## 支持性图表(Supporting Maps)
35
+
36
+ 按需添加,不要求每类都存在:
37
+
38
+ - architecture:模块、组件、服务结构。
39
+ - sequence:前端、后端、服务、数据库、agent 时序。
40
+ - data-flow:数据流转和所有权。
41
+ - state:状态机或生命周期。
42
+ - topology:repo、服务、worker、worktree 拓扑。
43
+ - decision:方案分叉和决策树。
@@ -64,7 +64,7 @@ docs/09-PLANNING/TASKS/<YYYY-MM-DD-任务名>/review.md
64
64
  - `not-reproducible`
65
65
  - `out-of-scope`
66
66
 
67
- `accepted-risk` 必须写明为什么不阻塞本轮目标,并路由到 task、SSoT、Regression SSoT、Lessons SSoT 或后续 PR。
67
+ `accepted-risk` 必须写明为什么不阻塞本轮目标,并路由到 task、SSoT、Regression SSoT、lesson candidates/detail docs 或后续 PR。
68
68
 
69
69
  ## 无发现结论
70
70
 
@@ -9,8 +9,9 @@
9
9
  | 位置 | 职责 |
10
10
  | --- | --- |
11
11
  | `docs/Harness-Ledger.md` | 全局上下文维护总账,记录非平凡任务是否完成计划、审查、回归、Lessons 和收口回写。 |
12
- | `docs/01-GOVERNANCE/` | Lessons SSoT、经验详情、治理记录、归档。 |
12
+ | `docs/01-GOVERNANCE/` | promoted lesson 详情、治理记录、归档。 |
13
13
  | `docs/03-ARCHITECTURE/` | ADR、架构设计、接口决策、关键技术方案。 |
14
+ | `docs/04-DEVELOPMENT/` | 本地开发、代码地图、外部服务开发上下文、mock/stub、跨仓调试。 |
14
15
  | `docs/05-TEST-QA/` | Regression SSoT、Cadence Ledger、测试策略和回归证据索引。 |
15
16
  | `docs/09-PLANNING/` | Delivery SSoT、Module Registry、任务目录、模块计划。 |
16
17
  | `docs/09-PLANNING/TASKS/` | 每个任务一个目录,包含 task plan、progress、findings、review。 |
@@ -18,6 +19,39 @@
18
19
  | `docs/11-REFERENCE/` | agent 按需加载的标准文件,控制行为而不是记录流水账。 |
19
20
  | `docs/99-TMP/` | 临时材料,定期清理,不作为长期事实来源。 |
20
21
 
22
+ ## 03 / 04 / 06 路由规则
23
+
24
+ ```text
25
+ 03 = 它在系统里是什么
26
+ 04 = 我开发当前仓时怎么面对它
27
+ 06 = 我和它具体怎么对接
28
+ ```
29
+
30
+ | 目录 | 负责 | 不负责 | 必需 schema 信号 |
31
+ | --- | --- | --- | --- |
32
+ | `docs/03-ARCHITECTURE/` | 系统结构、服务职责、owner、service catalog、critical flows、ADR | endpoint payload、mock 指南、任务日志 | `Context Doc Type`, `Source Evidence`, `Last Verified`, `Confidence` |
33
+ | `docs/04-DEVELOPMENT/` | local setup、codebase map、external development context、external source packs、mock/stub、cross-repo debugging | 长期架构事实、API payload 合同、未经摘要的外部资料堆 | `Context Doc Type`, `Development Use`, `Do Not Assume`, `Mocks / Stubs`, `Source Evidence`, `Last Verified`, `Confidence` |
34
+ | `docs/06-INTEGRATIONS/` | API/event/webhook/SDK/third-party contract、auth、payload、errors、contract tests | 全局拓扑、service ownership catalog、调试笔记 | `Context Doc Type`, `Contract Type`, `Auth`, `Payload`, `Errors`, `Contract Tests`, `Source Evidence`, `Last Verified`, `Confidence` |
35
+
36
+ 具体分工:
37
+
38
+ - `03-ARCHITECTURE/service-catalog.md` 只写服务摘要和链接。
39
+ - `06-INTEGRATIONS/<service>-api-contract.md` 才写 payload、auth、errors、contract tests。
40
+ - `04-DEVELOPMENT/external-context/<service>.md` 写 mock/stub、不安全假设和调试说明。
41
+ - `04-DEVELOPMENT/external-source-packs/` 只写外部资料索引、digest 和投影状态;最终事实必须回写到 `03/04/06`。
42
+
43
+ ## 外部资料摄取规则
44
+
45
+ 如果目标项目属于微服务、多仓、前后端分仓或依赖外部团队文档,Agent 在 Diagnose / Decide 阶段必须询问用户是否有外部资料。资料少时直接作为 `Source Evidence` 链接;资料多时按 `external-source-intake-standard.md` 创建 source pack。
46
+
47
+ 外部资料处理顺序固定为:
48
+
49
+ ```text
50
+ Inventory -> Classify -> Sanitize -> Digest -> Project -> Verify -> Residual
51
+ ```
52
+
53
+ 未经 digest 和 projection 的原始资料不能直接作为执行事实。
54
+
21
55
  ## 命名规则
22
56
 
23
57
  - 目录可使用编号前缀,例如 `09-PLANNING`、`11-REFERENCE`。
@@ -57,3 +91,4 @@
57
91
  3. 证据用路径、命令、日志、截图、PR、CI run 引用,不依赖聊天记录。
58
92
  4. 表格用于状态和路由;段落用于解释判断和边界。
59
93
  5. 更新 reference 或 template 时,必须在 Harness Ledger 记录本次上下文维护。
94
+ 6. `03/04/06` 文档必须使用 schema 信号,发现内容错位时迁移到正确目录。
@@ -27,7 +27,8 @@
27
27
  5. 可写 worker 必须在自己的 worktree 内实现、验证、提交,并 handoff branch、commit SHA、checks、residual。
28
28
  6. 遇到共享文件冲突,由 coordinator 或人工决定串行顺序。
29
29
  7. 遇到目标失效、权限阻塞、高风险决策或 stop condition 不适用,立即暂停并记录。
30
- 8. 有意义地提交中间成果;commit message 应说明变更类型和范围。
30
+ 8. 主动提交已验证的、有意义的中间成果;commit message 应说明变更类型和范围。除非用户明确要求暂不提交、检查失败、dirty 归属不清,或安全边界阻止干净提交,否则不要把已完成切片长期留在未提交状态;延期提交必须写明 no-commit reason、owner 和下一步。
31
+ 9. 机械化 Harness 写入优先使用 CLI lifecycle 命令。CLI-owned 写入会加锁、限制 allowlist 并自动提交,也会拒绝 dirty Git 状态;agent-owned 手工编辑仍需要明确任务提交或延期提交理由。
31
32
 
32
33
  ## 完成任务后
33
34
 
@@ -38,7 +39,7 @@
38
39
  5. 确认 `review.md` 没有 open P0/P1 finding;material P2 已修复或写为 `accepted-risk` 并路由。
39
40
  6. planned task 必须完成 closeout review,或写明 `skipped-with-reason`。
40
41
  7. 写 walkthrough,引用 task plan、review、证据、residual、Regression SSoT 和 commit。
41
- 8. 执行 Lessons 检查:有可复用经验则写 lesson 详情并更新 Lessons SSoT;没有也记录 `checked-none: <reason>`。
42
+ 8. 执行 Lessons 检查:新任务默认先写 `lesson_candidates.md` 并交给人工审查;人工标记后可记录 `queued-promotion`,再由维护命令写 promoted lesson 详情文档。没有可复用候选时记录 `no-candidate-accepted`;旧任务兼容可记录 `checked-none: <reason>`。
42
43
  9. 最后更新 Harness Ledger,因为它记录本轮上下文维护的最终状态。
43
44
  10. 完成 commit / PR / release note,并确认本任务工作区没有未解释的遗留改动。
44
45
  11. 如使用 worker,coordinator 集成 worker commit 后运行最终 gates,并记录 integration evidence。
@@ -71,6 +72,13 @@ PR 描述必须包含:
71
72
  - residual、owner 和不阻塞理由。
72
73
  - required checks、reviewer、merge method 是否满足 `repo-governance-standard.md`。
73
74
 
75
+ ## 主动提交规则
76
+
77
+ - 每个已验证的、有意义的切片默认都要提交。
78
+ - 提交前只 stage 本任务范围内文件,不能顺手带入无关 dirty 文件、私有文件或生成产物。
79
+ - 如果用户明确说不要提交、检查失败、或 dirty 归属还没厘清,必须把 no-commit reason、owner 和下一步写入 `progress.md` 或交接说明。
80
+ - closeout 时必须列出相关 commit SHA;如果没有 commit,必须说明为什么这是安全的例外。
81
+
74
82
  ## 禁止事项
75
83
 
76
84
  - 非平凡任务跳过 task plan 直接实现。
@@ -0,0 +1,82 @@
1
+ # 外部资料摄取标准
2
+
3
+ ## 职责
4
+
5
+ 本标准定义 Agent 如何接收、过滤、整理外部项目或微服务团队提供的大量文档。目标是把外部资料变成可执行上下文,而不是把资料堆进 `03/04/06`。
6
+
7
+ ## 核心模型
8
+
9
+ ```text
10
+ 外部原始资料 -> source pack 索引 -> digest 摘要 -> 03/04/06 执行投影
11
+ ```
12
+
13
+ `03-ARCHITECTURE`、`04-DEVELOPMENT`、`06-INTEGRATIONS` 只保存已经提炼并可用于执行的事实。外部团队丢来的原文、长文档、截图、聊天记录、导出包和历史资料先进入 `docs/04-DEVELOPMENT/external-source-packs/`,不能直接污染执行文档。
14
+
15
+ ## 何时询问用户
16
+
17
+ 在 Diagnose / Decide 阶段,只要发现以下任一信号,Agent 必须询问用户是否有外部资料:
18
+
19
+ - 当前仓库属于多仓系统、微服务系统、前后端分仓或平台子系统。
20
+ - 代码中出现外部服务、SDK、API gateway、message queue、webhook、contract、schema 或 mock。
21
+ - 用户提到“其他仓库”“外部服务”“上下游”“接口文档”“业务知识”“系统整体设计”。
22
+ - Agent 无法只靠当前仓库判断服务职责、接口契约或联调方式。
23
+
24
+ 推荐问题:
25
+
26
+ 1. 这个项目是否依赖外部服务或其他仓库?
27
+ 2. 你是否有外部团队提供的架构文档、接口文档、流程图、会议纪要、代码路径、链接或导出包?
28
+ 3. 这些资料能否复制进本仓?如果不能,是否只能保存本地路径或 URL?
29
+ 4. 哪些资料是可信来源,哪些只是历史参考?
30
+
31
+ ## 存储规则
32
+
33
+ | 场景 | 存储方式 |
34
+ | --- | --- |
35
+ | 只有 1-4 个稳定外部文档 | 不必建独立 source pack;在对应 `03/04/06` 的 `Source Evidence` 中链接即可 |
36
+ | 外部资料超过 5 份、跨多个主题、或会持续增长 | 创建 `docs/04-DEVELOPMENT/external-source-packs/<source-key>/` |
37
+ | 资料含敏感信息、密钥、客户数据或不能进仓 | 不复制原文;在 source pack README 记录外部路径、owner、访问条件和摘要 |
38
+ | 资料是可公开或可入仓的原始文档 | 可放 `raw/`,但仍要经过 digest 后才能投影到执行文档 |
39
+
40
+ 建议结构:
41
+
42
+ ```text
43
+ docs/04-DEVELOPMENT/external-source-packs/<source-key>/
44
+ ├── README.md # 资料索引和投影状态
45
+ ├── digests/ # 每份或每组资料的摘要
46
+ ├── raw/ # 可入仓原文;禁止放密钥、隐私或客户数据
47
+ └── raw-index.md # 原文不能入仓时,用路径/URL/owner 索引替代 raw/
48
+ ```
49
+
50
+ 不要为每个微服务复制一套完整 `03/04/06` 目录。source pack 是资料入口;稳定执行入口仍然是:
51
+
52
+ - `docs/03-ARCHITECTURE/service-catalog.md`
53
+ - `docs/03-ARCHITECTURE/services/<service-key>.md`
54
+ - `docs/04-DEVELOPMENT/external-context/<service-key>.md`
55
+ - `docs/06-INTEGRATIONS/<contract>.md`
56
+
57
+ ## 摄取流程
58
+
59
+ 1. **Inventory**:列出所有外部资料,记录来源、owner、时间、可信度、是否可入仓。
60
+ 2. **Classify**:按 architecture、development、integration、security、operations、product、unknown 分类。
61
+ 3. **Sanitize**:检查密钥、token、客户数据、隐私、内部账号、不可公开链接;不能入仓的只存引用。
62
+ 4. **Digest**:用 digest 模板提炼事实、疑问、不安全假设和证据。
63
+ 5. **Project**:把稳定事实投影到 `03/04/06`,并在 source pack README 标记 projected。
64
+ 6. **Verify**:能用代码、接口测试、owner 确认或运行证据验证的,更新 `Last Verified` 和 `Confidence`。
65
+ 7. **Residual**:不能确认的内容留在 source pack,不进入执行文档,或进入 `Do Not Assume`。
66
+
67
+ ## 投影规则
68
+
69
+ | 资料内容 | 投影位置 |
70
+ | --- | --- |
71
+ | 服务职责、上下游、owner、数据归属、系统拓扑 | `03-ARCHITECTURE/service-catalog.md` 或 `services/<service-key>.md` |
72
+ | 本仓开发时如何 mock、stub、启动、联调、排查 | `04-DEVELOPMENT/external-context/<service-key>.md` |
73
+ | endpoint、payload、auth、error、event、webhook、SDK、contract test | `06-INTEGRATIONS/<contract>.md` |
74
+ | 仍未确认、来源冲突、过期或只作为背景参考 | 留在 source pack README / digest,不进入执行文档 |
75
+
76
+ ## 禁止事项
77
+
78
+ - 不要把几十份外部文档直接复制到 `03-ARCHITECTURE`、`04-DEVELOPMENT` 或 `06-INTEGRATIONS` 根目录。
79
+ - 不要把外部资料摘要当成已验证事实;必须记录 `Source Evidence`、`Last Verified` 和 `Confidence`。
80
+ - 不要在执行文档里保留大段原文、聊天流水或历史会议记录。
81
+ - 不要把密钥、真实 token、客户数据、个人隐私或不可公开资料提交进仓。
82
+ - 不要为了“完整”而给每个微服务复制一套目录树;只给资料量大的外部来源建 source pack。
@@ -8,7 +8,7 @@ Harness Ledger 是 `docs/` 骨架的全局上下文维护总账,固定位置
8
8
  docs/Harness-Ledger.md
9
9
  ```
10
10
 
11
- 它记录每个非平凡任务是否完成了 task plan、progress、review、功能 SSoT、Delivery SSoT、Regression SSoT、Lessons SSoT、walkthrough、Closeout SSoT、reference/template 和 CI/CD 治理回写。它不复制业务事实,只记录上下文维护是否合规。
11
+ 它记录每个非平凡任务是否完成了 task plan、progress、review、功能 SSoT、Delivery SSoT、Regression SSoT、lesson candidates/detail docs、walkthrough、Closeout SSoT、reference/template 和 CI/CD 治理回写。它不复制业务事实,只记录上下文维护是否合规。
12
12
 
13
13
  ## 必须更新的场景
14
14
 
@@ -17,7 +17,7 @@ docs/Harness-Ledger.md
17
17
  - 新增或修改 AGENTS.md、CLAUDE.md、reference、template、checker 或 dashboard。
18
18
  - coordinator pass 汇总模块任务、worker handoff、review、closeout 或 regression 结果。
19
19
  - 创建或更新 required review。
20
- - 修改功能 SSoT、Delivery SSoT、Regression SSoT、Lessons SSoT、Closeout SSoT 任一文件。
20
+ - 修改功能 SSoT、Delivery SSoT、Regression SSoT、lesson detail docs、Closeout SSoT 任一文件。
21
21
  - 创建 walkthrough 或接受受控跳过。
22
22
  - Lessons approved 后合入正式 reference。
23
23
 
@@ -37,7 +37,8 @@ docs/Harness-Ledger.md
37
37
  4. 状态值使用固定词,避免自由文本失控。
38
38
  5. 任务收口时最后更新 Harness Ledger。
39
39
  6. `closed` 行必须有 Lessons 检查结果。
40
- 7. `checked-created` 必须引用 lesson ID 和详情文档。
40
+ 7. 新任务默认引用 `lesson_candidates.md`,并使用 `checked-candidate`、`queued-promotion` `checked-created` 记录人工判定。
41
+ 8. `checked-created` 必须引用 lesson ID 和详情文档。
41
42
  8. 如果 closeout、review 或 regression 被跳过,必须写 `skipped-with-reason`。
42
43
 
43
44
  ## 固定状态词
@@ -46,6 +47,8 @@ docs/Harness-Ledger.md
46
47
  - `updated`
47
48
  - `created`
48
49
  - `checked-none`
50
+ - `checked-candidate`
51
+ - `queued-promotion`
49
52
  - `checked-created`
50
53
  - `n/a`
51
54
  - `skipped-with-reason`
@@ -66,7 +69,7 @@ docs/Harness-Ledger.md
66
69
  - [ ] Regression SSoT / Cadence Ledger 已更新,或标记 `n/a`。
67
70
  - [ ] walkthrough 已创建,或 Closeout SSoT 写明受控跳过原因。
68
71
  - [ ] walkthrough 包含 Lessons 反思。
69
- - [ ] Lessons 检查结果为 `checked-none: <reason>` 或 `checked-created: L-YYYY-MM-DD-NNN`。
72
+ - [ ] Lessons 检查结果为 `checked-candidate: LC-...`、`queued-promotion: LC-...`、`checked-created: L-YYYY-MM-DD-NNN`,或旧任务兼容的 `checked-none: <reason>`。
70
73
  - [ ] Harness Ledger 行已收口,或 residual 已写明 owner 和后续路径。
71
74
 
72
75
  ## 框架更新检查清单
@@ -0,0 +1,106 @@
1
+ # PR 提交标准
2
+
3
+ ## 职责
4
+
5
+ 每个非平凡 PR 都必须让 maintainer 在不阅读完整 agent 对话的情况下完成审查。PR body 是审查交接包:说明改了什么、为什么改、如何验证、影响哪个版本、还剩什么风险。
6
+
7
+ ## 必需结构
8
+
9
+ 如果仓库面向中英文用户,或本次任务讨论是中文,PR 必须中英双语。公开 GitHub 读者优先读英文,所以英文在前,简体中文在后。
10
+
11
+ PR body 必须包含:
12
+
13
+ 1. Summary / 摘要
14
+ 2. What Changed / 改动内容
15
+ 3. Version Impact / 版本影响
16
+ 4. Verification / 验证
17
+ 5. Review Evidence / 审查证据
18
+ 6. Residual Risk / 残余风险
19
+ 7. References / 关联材料
20
+
21
+ ## 内容规则
22
+
23
+ - 必须明确目标版本。如果 `package.json` 从 `1.0.2` 变为 `1.0.3`,就在版本影响里写清楚。
24
+ - 改动内容按用户可见面或模块总结,不要只堆文件路径。
25
+ - 验证必须列真实命令、浏览器检查、CI run 或证据产物。没有跑的检查必须说明原因。
26
+ - 审查证据必须说明自查、subagent 审查、人工审查或代码质量审查状态。release-blocking finding 必须在 merge 前关闭或路由。
27
+ - 残余风险必须区分已接受风险、延期 follow-up、无关本地或私有债务。
28
+ - 关联材料必须链接相关 task doc、SSoT 行、review 文件、commit、issue 或 PR。
29
+
30
+ ## 模板
31
+
32
+ ```markdown
33
+ ## Summary
34
+
35
+ [One or two sentences explaining the intent and outcome.]
36
+
37
+ ## What Changed
38
+
39
+ - [User-facing or module-level change.]
40
+ - [Governance, CLI, dashboard, docs, or template change.]
41
+
42
+ ## Version Impact
43
+
44
+ - Package version: `[old]` -> `[new]`
45
+ - Release notes: [CHANGELOG entry or reason no release note is needed]
46
+
47
+ ## Verification
48
+
49
+ - `[command]`: pass
50
+ - `[browser/runtime/CI evidence]`: pass
51
+ - Not run: [reason]
52
+
53
+ ## Review Evidence
54
+
55
+ - Self-review: [summary]
56
+ - Additional review: [reviewer/subagent/human result]
57
+ - Blocking findings: [none / closed / routed]
58
+
59
+ ## Residual Risk
60
+
61
+ - [none / accepted / deferred / unrelated debt]
62
+
63
+ ## References
64
+
65
+ - Task: [path or issue]
66
+ - Review: [path or PR review]
67
+ - Evidence: [path, commit, screenshot, workflow, or dashboard]
68
+
69
+ ---
70
+
71
+ ## 摘要
72
+
73
+ [用一两句话说明目标和结果。]
74
+
75
+ ## 改动内容
76
+
77
+ - [面向用户或模块级改动。]
78
+ - [治理、CLI、Dashboard、文档或模板改动。]
79
+
80
+ ## 版本影响
81
+
82
+ - 包版本:`[旧版本]` -> `[新版本]`
83
+ - 发布说明:[CHANGELOG 条目或无需发布说明的原因]
84
+
85
+ ## 验证
86
+
87
+ - `[命令]`:通过
88
+ - `[浏览器 / 运行时 / CI 证据]`:通过
89
+ - 未运行:[原因]
90
+
91
+ ## 审查证据
92
+
93
+ - 自查:[摘要]
94
+ - 额外审查:[reviewer / subagent / human 结果]
95
+ - 阻塞发现:[无 / 已关闭 / 已路由]
96
+
97
+ ## 残余风险
98
+
99
+ - [无 / 已接受 / 已延期 / 无关债务]
100
+
101
+ ## 关联材料
102
+
103
+ - 任务:[路径或 issue]
104
+ - 审查:[路径或 PR review]
105
+ - 证据:[路径、commit、截图、workflow 或 dashboard]
106
+ ```
@@ -33,7 +33,7 @@
33
33
  | --- | --- |
34
34
  | 是否必须 PR | yes / no / local-only |
35
35
  | PR 标题格式 | 通常与 commit 规范一致 |
36
- | PR 描述要求 | 改动、原因、验证、residual、关联 task / SSoT / review |
36
+ | PR 描述要求 | 遵守 `docs/11-REFERENCE/pull-request-standard.md`;写清改动、原因、版本影响、验证、residual、关联 task / SSoT / review |
37
37
  | 必需审查者 | reviewer、外部 agent、人类 owner 或代码 owner |
38
38
  | 必需审查类型 | self-review、subagent review、human review、security review |
39
39
  | merge method | merge commit、squash、rebase、fast-forward |
@@ -73,6 +73,7 @@
73
73
  | branch 命名 | 分支模式 |
74
74
  | owner 规则 | 谁创建、谁清理、谁集成 |
75
75
  | subagent worker 规则 | 每个可写 worker 使用独立 worktree / branch,并 handoff commit SHA |
76
+ | 主动提交规则 | 已验证的、有意义的切片默认主动提交;暂不提交必须写明 no-commit reason、owner 和下一步 |
76
77
  | merge 顺序 | coordinator 或 release owner 决定 |
77
78
  | 清理规则 | merge 后删除,保留需写原因 |
78
79
 
@@ -81,4 +82,6 @@
81
82
  - 非平凡任务的 PR 或 walkthrough 必须说明 required checks 的执行结果。
82
83
  - branch protection 未 verified 时,不能声称仓库已受保护;只能写 `designed`、`implemented` 或 `blocked-with-owner`。
83
84
  - worker 结果只能通过 commit / branch 集成,不能混入 coordinator 未提交改动。
85
+ - coordinator 自己执行时也要主动提交已验证切片;未提交状态必须有 no-commit reason、owner 和下一步。
86
+ - 不得把无关 dirty 改动混入任务提交;CLI-owned Harness 写入应优先用本地 Harness 命令,让加锁、allowlist 和自动提交保护共享治理文件。
84
87
  - repo governance 变化必须同步 CI/CD 标准、worktree 标准和 Harness Ledger。
@@ -28,14 +28,21 @@
28
28
 
29
29
  ## 可写执行者与只读审查者的区别
30
30
 
31
+ 任务开始时,先读取当前任务 `execution_strategy.md` 的 Subagent Authorization 和 Subagent Delegation Decision,并向用户说明当前授权状态和分工判断。用户不需要知道或主动要求 subagent;coordinator 必须从用户目标主动评估。
32
+
31
33
  审查路由默认把 subagent 当只读 reviewer。只要 subagent 被要求直接改代码、测试、产品文档或 harness 文档,它就不再是 reviewer,而是 worker。
34
+ Reviewer subagent 在单个任务内默认允许,可重复用于只读审查。
32
35
 
33
- Worker 必须走 `worktree-standard.md`:
36
+ Worker 必须走 `worktree-standard.md`,并先在 `execution_strategy.md` 记录一次用户授权:
34
37
 
35
38
  - coordinator 先分配独立 worktree / branch、任务目录和 write scope。
36
39
  - worker 在自己的 worktree 内实现、验证并提交。
37
40
  - worker handoff 写明 branch、commit SHA、checks、residual。
38
41
  - coordinator 负责 merge、冲突处理、最终 gates 和 integration evidence。
42
+ - 同一任务、同一范围、同一 worktree/branch 内可复用该授权;范围变化时重新请求授权。
43
+ - 如果 worker subagent 对任务有明显帮助但尚未授权,coordinator 必须用白话主动向用户申请一次授权;可以直接说 worker subagent,但不要等用户知道或提醒使用 subagent。
44
+ - 如果独立切片已经明显但精确文件路径还不清楚,先确认文件路径,然后在 implementation 前立刻申请独立执行助手授权。
45
+ - 一旦 `Would a worker subagent materially help?` 的决策是 `ask-user`,必须暂停 implementation,直到 `User Authorization Decision` 记录 `authorized`、`denied` 或 `not-needed`。
39
46
 
40
47
  禁止把多个 worker 的未提交改动混在 coordinator 当前 checkout,再由 coordinator 一次性提交。
41
48
 
@@ -55,7 +55,7 @@ docs/10-WALKTHROUGH/Closeout-SSoT.md
55
55
  Closeout SSoT 中:
56
56
 
57
57
  - walkthrough 列写实际路径,或写受控跳过原因。
58
- - Lessons 检查列写 `checked-created: L-YYYY-MM-DD-NNN` `checked-none: <reason>`。
58
+ - Lessons 检查列写 `checked-candidate: LC-...`、`queued-promotion: LC-...`、`checked-created: L-YYYY-MM-DD-NNN`,或旧任务兼容的 `checked-none: <reason>`。
59
59
  - 允许的跳过原因只有:`docs-only`、`no-runtime`、`superseded`、`historical-backfill`、`owner-deferred`。
60
60
 
61
61
  ## 经验沉淀反思规则
@@ -68,14 +68,15 @@ Closeout SSoT 中:
68
68
 
69
69
  任一答案为“有”时:
70
70
 
71
- - 先在 `docs/01-GOVERNANCE/lessons/` 写 lesson 详情文档。
72
- - 再在 Lessons SSoT 追加一行。
73
- - Lessons SSoT 的详情文档列必须指向该详情文档。
71
+ - 先在任务目录 `lesson_candidates.md` 写候选。
72
+ - 候选进入 `needs-promotion` 时,同步写任务本地 `lessons/LC-*.md` 详情文件,并在 `Detail Artifact` 链接。
73
+ - 人工审查后,如需沉淀,再由维护命令写 promoted lesson 详情文档。
74
+ - `checked-created:<L-ID>` 必须能追溯到该详情文档。
74
75
 
75
76
  三个答案都为“没有”时,Closeout SSoT 和 Harness Ledger 仍要记录:
76
77
 
77
78
  ```text
78
- checked-none: <reason>
79
+ lesson_candidates.md: no-candidate-accepted
79
80
  ```
80
81
 
81
82
  ## 收口要求
@@ -38,5 +38,5 @@
38
38
  2. 实现类任务应写 walkthrough;跳过原因只用于受限场景,不用于省略收口。
39
39
  3. `证据` 必须列出实际检查、冒烟、review、运行时验证或发布证据。
40
40
  4. `残余路由` 必须写 `none`,或指向负责人、任务、Regression SSoT、Harness Ledger、issue 或接受风险记录。
41
- 5. `Lessons 检查` 只能写 `checked-created: L-YYYY-MM-DD-NNN` `checked-none: [原因]`。
42
- 6. `checked-created` 必须同时存在 Lessons SSoT 行和 lesson 详情文档。
41
+ 5. `Lessons 检查` 只能写 `checked-candidate: LC-...`、`queued-promotion: LC-...`、`checked-created: L-YYYY-MM-DD-NNN`,或旧任务兼容的 `checked-none: [原因]`。
42
+ 6. `checked-created` 必须存在 promoted lesson 详情文档;`queued-promotion` 必须能追溯到任务目录 `lesson_candidates.md`。
@@ -46,8 +46,8 @@
46
46
  | 本轮是否暴露 reference、workflow、模板或 checker 的缺口? | [有 / 无,写一句理由] |
47
47
  | 是否出现跨模块、跨阶段、跨 agent 的重复问题? | [有 / 无,写一句理由] |
48
48
  | 下次 agent 是否可能在同类任务中重复踩坑? | [有 / 无,写一句理由] |
49
- | Lessons 结果 | `checked-created: L-YYYY-MM-DD-NNN` / `checked-none: [一句话原因]` |
50
- | Lessons 详情文档 | `docs/01-GOVERNANCE/lessons/[file].md` / `none` |
49
+ | Lessons 结果 | `checked-candidate: LC-...` / `queued-promotion: LC-...` / `checked-created: L-YYYY-MM-DD-NNN` / 旧任务 `checked-none: [一句话原因]` |
50
+ | Lessons 详情文档 | `lesson_candidates.md` / `docs/01-GOVERNANCE/lessons/[file].md` / `none` |
51
51
 
52
52
  ## 关联索引
53
53