coding-agent-harness 1.0.2 → 1.0.5

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 (219) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CONTRIBUTING.md +98 -0
  3. package/LICENSE +661 -21
  4. package/LICENSE-EXCEPTION.md +37 -0
  5. package/README.md +244 -87
  6. package/README.zh-CN.md +77 -35
  7. package/SKILL.md +32 -24
  8. package/docs-release/README.md +9 -5
  9. package/docs-release/architecture/overview.md +17 -5
  10. package/docs-release/architecture/overview.zh-CN.md +9 -5
  11. package/docs-release/architecture/system-explainer/01-system-overview.md +217 -0
  12. package/docs-release/architecture/system-explainer/02-module-dependency.md +257 -0
  13. package/docs-release/architecture/system-explainer/03-task-lifecycle.md +304 -0
  14. package/docs-release/architecture/system-explainer/04-check-and-governance.md +239 -0
  15. package/docs-release/architecture/system-explainer/05-data-flow.md +276 -0
  16. package/docs-release/architecture/system-explainer/06-preset-and-migration.md +303 -0
  17. package/docs-release/architecture/system-explainer/README.md +67 -0
  18. package/docs-release/architecture/system-explainer/en-US/01-system-overview.md +226 -0
  19. package/docs-release/architecture/system-explainer/en-US/02-module-dependency.md +263 -0
  20. package/docs-release/architecture/system-explainer/en-US/03-task-lifecycle.md +319 -0
  21. package/docs-release/architecture/system-explainer/en-US/04-check-and-governance.md +250 -0
  22. package/docs-release/architecture/system-explainer/en-US/05-data-flow.md +290 -0
  23. package/docs-release/architecture/system-explainer/en-US/06-preset-and-migration.md +323 -0
  24. package/docs-release/architecture/system-explainer/en-US/README.md +70 -0
  25. package/docs-release/assets/dashboard-overview.png +0 -0
  26. package/docs-release/guides/agent-installation.en-US.md +39 -15
  27. package/docs-release/guides/agent-installation.md +43 -16
  28. package/docs-release/guides/contributing.md +100 -0
  29. package/docs-release/guides/contributing.zh-CN.md +99 -0
  30. package/docs-release/guides/document-audience-and-surfaces.en-US.md +3 -2
  31. package/docs-release/guides/document-audience-and-surfaces.md +3 -2
  32. package/docs-release/guides/full-legacy-migration-subagent-strategy.md +2 -2
  33. package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +2 -2
  34. package/docs-release/guides/legacy-migration-agent-prompt.md +0 -11
  35. package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +0 -11
  36. package/docs-release/guides/migration-playbook.en-US.md +14 -15
  37. package/docs-release/guides/migration-playbook.md +14 -15
  38. package/docs-release/guides/parent-control-repository-pattern.en-US.md +7 -5
  39. package/docs-release/guides/parent-control-repository-pattern.md +7 -5
  40. package/docs-release/guides/preset-development.md +238 -0
  41. package/docs-release/guides/repository-operating-models.en-US.md +5 -4
  42. package/docs-release/guides/repository-operating-models.md +5 -4
  43. package/docs-release/guides/task-state-machine.en-US.md +224 -0
  44. package/docs-release/guides/task-state-machine.md +231 -0
  45. package/docs-release/intl/en-US.md +1 -1
  46. package/docs-release/intl/zh-CN.md +1 -1
  47. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/INDEX.md +60 -0
  48. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
  49. package/package.json +10 -4
  50. package/presets/legacy-migration/checks/preset-check.mjs +3 -0
  51. package/presets/legacy-migration/preset.yaml +134 -0
  52. package/presets/legacy-migration/scripts/plan-work-queue.mjs +4 -0
  53. package/presets/legacy-migration/scripts/scaffold-task-contracts.mjs +4 -0
  54. package/presets/legacy-migration/templates/execution_strategy.append.md +18 -0
  55. package/presets/legacy-migration/templates/findings.seed.md +17 -0
  56. package/presets/legacy-migration/templates/review.seed.md +12 -0
  57. package/presets/legacy-migration/templates/task_plan.append.md +9 -0
  58. package/presets/legacy-migration/templates/visual_map.append.md +12 -0
  59. package/presets/legacy-migration/workbench/dashboard-panels.yaml +2 -0
  60. package/presets/legacy-migration/workbench/migration-queue.schema.json +23 -0
  61. package/presets/lesson-sedimentation/preset.yaml +23 -0
  62. package/presets/lesson-sedimentation/templates/prompt.md +23 -0
  63. package/presets/module/preset.yaml +25 -0
  64. package/presets/module/templates/execution_strategy.append.md +8 -0
  65. package/presets/module/templates/task_plan.append.md +17 -0
  66. package/presets/standard-task/preset.yaml +31 -0
  67. package/presets/standard-task/templates/task_plan.append.md +7 -0
  68. package/references/adversarial-review-standard.md +2 -2
  69. package/references/agents-md-pattern.md +2 -2
  70. package/references/delivery-operating-model-standard.md +3 -3
  71. package/references/docs-directory-standard.md +6 -7
  72. package/references/harness-ledger.md +53 -96
  73. package/references/lessons-governance.md +88 -93
  74. package/references/module-parallel-standard.md +14 -14
  75. package/references/planning-loop.md +12 -6
  76. package/references/pull-request-standard.md +118 -0
  77. package/references/repo-governance-standard.md +11 -2
  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/walkthrough-closeout.md +7 -7
  82. package/scripts/check-harness.mjs +40 -301
  83. package/scripts/commands/dashboard-command.mjs +67 -0
  84. package/scripts/commands/migration-command.mjs +126 -0
  85. package/scripts/commands/preset-command.mjs +73 -0
  86. package/scripts/commands/task-command.mjs +328 -0
  87. package/scripts/harness.mjs +59 -260
  88. package/scripts/lib/capability-registry.mjs +82 -28
  89. package/scripts/lib/check-module-parallel.mjs +230 -0
  90. package/scripts/lib/check-profiles.mjs +90 -228
  91. package/scripts/lib/check-task-contracts.mjs +55 -0
  92. package/scripts/lib/core-shared.mjs +65 -2
  93. package/scripts/lib/dashboard-data.mjs +155 -24
  94. package/scripts/lib/dashboard-workbench.mjs +131 -12
  95. package/scripts/lib/dashboard-writer.mjs +20 -4
  96. package/scripts/lib/git-status-summary.mjs +46 -0
  97. package/scripts/lib/governance-index-generator.mjs +174 -0
  98. package/scripts/lib/governance-sync.mjs +611 -0
  99. package/scripts/lib/governance-table-boundary.mjs +175 -0
  100. package/scripts/lib/harness-core.mjs +6 -0
  101. package/scripts/lib/lesson-maintenance.mjs +36 -29
  102. package/scripts/lib/markdown-utils.mjs +33 -0
  103. package/scripts/lib/migration-planner.mjs +4 -6
  104. package/scripts/lib/migration-support.mjs +1 -1
  105. package/scripts/lib/phase-kind.mjs +50 -0
  106. package/scripts/lib/preset-audit-contracts.mjs +37 -0
  107. package/scripts/lib/preset-engine.mjs +494 -0
  108. package/scripts/lib/preset-registry.mjs +776 -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-builder.mjs +88 -0
  112. package/scripts/lib/status-dashboard-renderer.mjs +105 -0
  113. package/scripts/lib/subagent-authorization-audit.mjs +196 -0
  114. package/scripts/lib/task-audit-metadata.mjs +385 -0
  115. package/scripts/lib/task-audit-migration.mjs +350 -0
  116. package/scripts/lib/task-completion-consistency.mjs +26 -0
  117. package/scripts/lib/task-index.mjs +93 -0
  118. package/scripts/lib/task-lesson-candidates.mjs +242 -0
  119. package/scripts/lib/task-lesson-sedimentation.mjs +326 -0
  120. package/scripts/lib/task-lifecycle/create-task-helpers.mjs +67 -0
  121. package/scripts/lib/task-lifecycle/phase-sync.mjs +88 -0
  122. package/scripts/lib/task-lifecycle/review-confirm.mjs +112 -0
  123. package/scripts/lib/task-lifecycle/review-gates.mjs +73 -0
  124. package/scripts/lib/task-lifecycle/review-submission.mjs +63 -0
  125. package/scripts/lib/task-lifecycle/scaffold-provenance.mjs +49 -0
  126. package/scripts/lib/task-lifecycle/template-files.mjs +53 -0
  127. package/scripts/lib/task-lifecycle/text-utils.mjs +24 -0
  128. package/scripts/lib/task-lifecycle.mjs +338 -477
  129. package/scripts/lib/task-metadata.mjs +118 -0
  130. package/scripts/lib/task-review-model.mjs +455 -0
  131. package/scripts/lib/task-scanner.mjs +193 -372
  132. package/scripts/lib/task-tombstone-commands.mjs +140 -0
  133. package/scripts/postinstall.mjs +14 -0
  134. package/skills/preset-creator/SKILL.md +179 -0
  135. package/skills/preset-creator/references/complex-task-skeleton/README.md +31 -0
  136. package/skills/preset-creator/references/complex-task-skeleton/artifacts/INDEX.md +12 -0
  137. package/skills/preset-creator/references/complex-task-skeleton/brief.md +43 -0
  138. package/skills/preset-creator/references/complex-task-skeleton/execution_strategy.md +71 -0
  139. package/skills/preset-creator/references/complex-task-skeleton/findings.md +24 -0
  140. package/skills/preset-creator/references/complex-task-skeleton/lesson_candidates.md +70 -0
  141. package/skills/preset-creator/references/complex-task-skeleton/long-running-task-contract.md +76 -0
  142. package/skills/preset-creator/references/complex-task-skeleton/progress.md +33 -0
  143. package/skills/preset-creator/references/complex-task-skeleton/references/INDEX.md +13 -0
  144. package/skills/preset-creator/references/complex-task-skeleton/review.md +107 -0
  145. package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +111 -0
  146. package/skills/preset-creator/references/complex-task-skeleton/visual_map.md +50 -0
  147. package/skills/preset-creator/references/preset-package-skeleton.md +296 -0
  148. package/templates/AGENTS.md.template +24 -18
  149. package/templates/dashboard/assets/app-src/00-state.js +13 -0
  150. package/templates/dashboard/assets/app-src/10-router.js +5 -1
  151. package/templates/dashboard/assets/app-src/20-overview.js +18 -8
  152. package/templates/dashboard/assets/app-src/30-tasks.js +92 -246
  153. package/templates/dashboard/assets/app-src/35-task-detail.js +286 -0
  154. package/templates/dashboard/assets/app-src/45-review.js +241 -22
  155. package/templates/dashboard/assets/app-src/50-migration.js +24 -10
  156. package/templates/dashboard/assets/app-src/55-presets.js +375 -0
  157. package/templates/dashboard/assets/app-src/60-shared.js +3 -1
  158. package/templates/dashboard/assets/app-src/90-bindings.js +302 -29
  159. package/templates/dashboard/assets/app.css +1501 -376
  160. package/templates/dashboard/assets/app.css.manifest.json +10 -0
  161. package/templates/dashboard/assets/app.js +1240 -101
  162. package/templates/dashboard/assets/app.manifest.json +2 -0
  163. package/templates/dashboard/assets/css-src/00-foundation.css +346 -0
  164. package/templates/dashboard/assets/css-src/10-panels-flow.css +236 -0
  165. package/templates/dashboard/assets/css-src/20-briefs-controls.css +398 -0
  166. package/templates/dashboard/assets/css-src/30-task-index.css +739 -0
  167. package/templates/dashboard/assets/css-src/35-review-workspace.css +507 -0
  168. package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +489 -0
  169. package/templates/dashboard/assets/css-src/45-presets.css +516 -0
  170. package/templates/dashboard/assets/css-src/50-responsive-overrides.css +551 -0
  171. package/templates/dashboard/assets/i18n.js +263 -23
  172. package/templates/ledger/Harness-Ledger.md +13 -25
  173. package/templates/lessons/lesson-arch-process-change.md +1 -1
  174. package/templates/lessons/lesson-new-doc.md +1 -1
  175. package/templates/lessons/lesson-ref-change.md +1 -1
  176. package/templates/planning/INDEX.md +87 -0
  177. package/templates/planning/brief.md +1 -1
  178. package/templates/planning/execution_strategy.md +31 -0
  179. package/templates/planning/lesson_candidates.md +18 -6
  180. package/templates/planning/module_session_prompt.md +1 -0
  181. package/templates/planning/optional/artifacts/INDEX.md +3 -3
  182. package/templates/planning/optional/references/INDEX.md +3 -3
  183. package/templates/planning/review.md +41 -0
  184. package/templates/planning/task_plan.md +5 -21
  185. package/templates/planning/visual_map.md +13 -9
  186. package/templates/planning/visual_map.simple.md +52 -0
  187. package/templates/reference/execution-workflow-standard.md +31 -3
  188. package/templates/reference/pull-request-standard.md +80 -0
  189. package/templates/reference/repo-governance-standard.md +7 -6
  190. package/templates/reference/review-routing-standard.md +6 -0
  191. package/templates/reference/walkthrough-standard.md +2 -1
  192. package/templates/verifier/verifier-output.md +1 -1
  193. package/templates-zh-CN/AGENTS.md.template +25 -19
  194. package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
  195. package/templates-zh-CN/planning/INDEX.md +87 -0
  196. package/templates-zh-CN/planning/brief.md +1 -1
  197. package/templates-zh-CN/planning/execution_strategy.md +30 -0
  198. package/templates-zh-CN/planning/lesson_candidates.md +18 -6
  199. package/templates-zh-CN/planning/module_session_prompt.md +1 -0
  200. package/templates-zh-CN/planning/review.md +41 -1
  201. package/templates-zh-CN/planning/task_plan.md +4 -44
  202. package/templates-zh-CN/planning/visual_map.md +14 -7
  203. package/templates-zh-CN/planning/visual_map.simple.md +48 -0
  204. package/templates-zh-CN/reference/adversarial-review-standard.md +1 -1
  205. package/templates-zh-CN/reference/docs-library-standard.md +1 -1
  206. package/templates-zh-CN/reference/execution-workflow-standard.md +33 -7
  207. package/templates-zh-CN/reference/harness-ledger-standard.md +2 -2
  208. package/templates-zh-CN/reference/pull-request-standard.md +106 -0
  209. package/templates-zh-CN/reference/repo-governance-standard.md +4 -3
  210. package/templates-zh-CN/reference/review-routing-standard.md +8 -1
  211. package/templates-zh-CN/reference/walkthrough-standard.md +3 -2
  212. package/templates-zh-CN/walkthrough/Closeout-SSoT.md +1 -1
  213. package/docs-release/assets/dashboard-overview-en.png +0 -0
  214. package/scripts/smoke-dashboard.mjs +0 -92
  215. package/scripts/test-harness.mjs +0 -1395
  216. package/templates/ssot/Feature-SSoT.md +0 -43
  217. package/templates/ssot/Lessons-SSoT.md +0 -44
  218. package/templates-zh-CN/ssot/Feature-SSoT.md +0 -49
  219. package/templates-zh-CN/ssot/Lessons-SSoT.md +0 -49
@@ -1,50 +1,27 @@
1
- # 项目 Harness 总账 - [项目名称]
1
+ # 项目总账
2
2
 
3
- > 本文件记录非平凡任务是否完成了必要的 harness 上下文回写。它不是变更日志,也不替代 Feature SSoT、Regression SSoT、Lessons SSoT 或 walkthrough。
3
+ ## 用途
4
4
 
5
- ## 使用约定
5
+ 本文件是自动生成的任务生命周期总索引。人类查看当前状态应优先使用 Dashboard;Agent 快速检索应使用 `task-list`、`task-index` 或这张 generated ledger。
6
6
 
7
- - 开始任务时,为需要跨文件、跨模块、跨会话或影响发布质量的工作创建一行。
8
- - 收口任务时,更新任务计划、审查、回归、walkthrough、Lessons 检查和残余路由。
9
- - 不把聊天记录当证据;证据必须指向文件、命令输出、测试报告、PR、commit 或运行时验证记录。
10
- - 其他 worker 同时工作时,只更新自己负责的行;共享行由协调者或明确负责人更新。
7
+ 本文件不是手写工作日志。不要手工编辑生命周期行。需要改变事实时,更新任务本地文件(`task_plan.md`、`progress.md`、`review.md`、`lesson_candidates.md`、closeout / walkthrough 证据),然后运行 `harness governance rebuild --archive --apply`。
11
8
 
12
- ## 活跃任务
9
+ Repo Governance / CI-CD 变化仍通过对应 reference 和任务证据路由。Regression gate、交付顺序、回归节奏、closeout 合同和模块所有权继续保留在各自治理文件中,除非未来提供等价的 scanner-supported fact。
13
10
 
14
- | Harness ID | 日期 | 任务 | 负责人 | 任务计划 | 审查 | 回归 | Walkthrough / Closeout | Lessons 检查 | 证据 | 残余路由 | 状态 |
15
- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
16
- | HL-YYYY-MM-DD-001 | YYYY-MM-DD | [任务名称] | [负责人] | `docs/09-PLANNING/TASKS/[task]/task_plan.md` | `review.md` / `n/a` | `Regression-SSoT: RG-...` / `n/a` | `docs/10-WALKTHROUGH/[file].md` / 允许的跳过原因 | `checked-created: L-YYYY-MM-DD-001` / `checked-none: [原因]` | [测试、命令、PR、commit 或运行时证据] | `none` / [负责人 + 路径] | [open / closed / blocked] |
17
-
18
- ## 归档索引
19
-
20
- > 活跃表超过 50 行,或一次 release / wave 完成后,将 `closed`、`closed-with-residual`、`closed-local-only`、`superseded` 条目移入季度归档:`docs/01-GOVERNANCE/_archive/Harness-Ledger-archive-YYYY-QN.md`。
11
+ ## 活跃总表
21
12
 
22
- | 归档文件 | 覆盖范围 | 移入日期 | 说明 |
23
- | --- | --- | --- | --- |
24
- | `docs/01-GOVERNANCE/_archive/Harness-Ledger-archive-YYYY-QN.md` | HL-... HL-... | YYYY-MM-DD | [说明] |
25
-
26
- ## 状态说明
27
-
28
- - `open`:任务仍在进行,当前行可以继续更新。
29
- - `blocked`:任务或上下文回写被阻塞,必须在“残余路由”写清负责人、下一步和证据。
30
- - `closed`:任务完成,所需上下文和证据已回写,无未路由残余。
31
- - `closed-with-residual`:任务完成,但仍有已接受或已路由的残余。
32
- - `closed-local-only`:本地工作完成但尚未合并、发布或上线;必须写清后续负责人。
33
- - `superseded`:本行被后续 Harness ID 取代,必须指向新行。
13
+ | ID | Scope | Module | Task | State | Queues | Plan | Review | Lessons Check | Closeout | Residual | Updated |
14
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
15
+ | HL-YYYY-MM-DD-001 | task | none | 短任务标题 | planned | none | docs/09-PLANNING/TASKS/.../task_plan.md | pending | pending | pending | none | YYYY-MM-DD |
34
16
 
35
- ## 字段取值
17
+ ## 字段规则
36
18
 
37
- - `任务计划`:填任务计划路径;轻量任务可写 `n/a: [原因]`。
38
- - `审查`:填审查文件、PR review、人工确认,或 `n/a: [原因]`。
39
- - `回归`:填触发的 Regression Gate、Cadence Ledger 批次,或 `n/a: [原因]`。
40
- - `Walkthrough / Closeout`:已关闭任务必须对应 `Closeout-SSoT.md` 行;实现类任务应写 walkthrough。
41
- - `Lessons 检查`:只能写 `checked-created: L-YYYY-MM-DD-NNN` 或 `checked-none: [一句话原因]`。
42
- - `残余路由`:无残余写 `none`;否则写负责人、目标文件或任务、预期处理时间。
19
+ - `Scope`:根 planning 任务为 `task`,模块内任务为 `module`。
20
+ - `Module`:模块 key;非模块任务写 `none`。
21
+ - `Queues`:scanner 派生的生命周期队列;用 `harness task-list --queue` 查询。
22
+ - `Review`、`Lessons Check`、`Closeout`、`Residual`:scanner 派生摘要和路由;详细证据留在任务本地文件。
23
+ - `Updated`:生成日期,不是人工编辑时间。
43
24
 
44
- ## 路由规则
25
+ ## 旧表
45
26
 
46
- 1. 功能进度写入 Feature SSoT,不在本表展开。
47
- 2. 回归覆盖面、证据深度和失败项写入 Regression SSoT / Cadence Ledger。
48
- 3. 复用性流程经验写入 Lessons SSoT,并创建 lesson 详情文档。
49
- 4. 收口证据写入 `docs/10-WALKTHROUGH/Closeout-SSoT.md`。
50
- 5. 任意 `closed`、`closed-with-residual`、`closed-local-only` 行都必须能从本表追溯到任务计划、证据和 closeout。
27
+ `Feature-SSoT.md` `Private-Feature-SSoT.md` 是旧任务生命周期投影。当前 Harness 版本在 `harness governance rebuild --archive --apply` 时归档它们,不再重新生成。
@@ -0,0 +1,87 @@
1
+ # {{TASK_TITLE}} - 任务包索引
2
+
3
+ Task Contract: harness-task/v1
4
+
5
+ ## 任务身份
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | Task ID | `{{TASK_ID}}` |
10
+ | Budget | `{{TASK_BUDGET}}` |
11
+ | Preset | `{{TASK_PRESET}}` |
12
+ | Module | `{{TASK_MODULE}}` |
13
+ | Long-running | `{{TASK_LONG_RUNNING}}` |
14
+ | Created | {{DATE}} |
15
+
16
+ ## 任务审计元数据
17
+
18
+ | Field | Value |
19
+ | --- | --- |
20
+ | Created By | {{TASK_AUDIT_CREATED_BY}} |
21
+ | Created At | {{TASK_AUDIT_CREATED_AT}} |
22
+ | Command Shape | {{TASK_AUDIT_COMMAND_SHAPE}} |
23
+ | Budget | {{TASK_AUDIT_BUDGET}} |
24
+ | Template Source | {{TASK_AUDIT_TEMPLATE_SOURCE}} |
25
+ | Task Creator | {{TASK_AUDIT_TASK_CREATOR}} |
26
+ | Task Creator Source | {{TASK_AUDIT_TASK_CREATOR_SOURCE}} |
27
+ | Human Review Status | {{TASK_AUDIT_HUMAN_REVIEW_STATUS}} |
28
+ | Confirmation ID | {{TASK_AUDIT_CONFIRMATION_ID}} |
29
+ | Confirmed At | {{TASK_AUDIT_CONFIRMED_AT}} |
30
+ | Reviewer | {{TASK_AUDIT_REVIEWER}} |
31
+ | Reviewer Email | {{TASK_AUDIT_REVIEWER_EMAIL}} |
32
+ | Confirm Text | {{TASK_AUDIT_CONFIRM_TEXT}} |
33
+ | Evidence Checked | {{TASK_AUDIT_EVIDENCE_CHECKED}} |
34
+ | Review Commit SHA | {{TASK_AUDIT_REVIEW_COMMIT_SHA}} |
35
+ | Audit Source | {{TASK_AUDIT_AUDIT_SOURCE}} |
36
+ | Audit Status | {{TASK_AUDIT_AUDIT_STATUS}} |
37
+ | Exception Reason | {{TASK_AUDIT_EXCEPTION_REASON}} |
38
+ | Message | {{TASK_AUDIT_MESSAGE}} |
39
+ | Migration Status | {{TASK_AUDIT_MIGRATION_STATUS}} |
40
+ | Migrated From | {{TASK_AUDIT_MIGRATED_FROM}} |
41
+ | Legacy Extra Fields | {{TASK_AUDIT_LEGACY_EXTRA_FIELDS}} |
42
+ | Migration Notes | {{TASK_AUDIT_MIGRATION_NOTES}} |
43
+
44
+ ## 核心合同文件
45
+
46
+ | 文件 | 用途 |
47
+ | --- | --- |
48
+ | `brief.md` | 面向人和下一轮 agent 的任务摘要与上下文入口。 |
49
+ | `task_plan.md` | 当前任务目标、范围、所选预算、验收标准和执行决策。 |
50
+ | `visual_map.md` | 阶段图、证据状态、下一步生命周期命令和支持性图表。 |
51
+ | `progress.md` | 执行日志、验证证据、决策和交接记录。 |
52
+
53
+ ## 标准任务文件
54
+
55
+ standard 和 complex 任务包含以下文件。
56
+
57
+ | 文件 | 用途 |
58
+ | --- | --- |
59
+ | `execution_strategy.md` | 执行模式、owner、冲突控制和证据策略。 |
60
+ | `findings.md` | 发现、研究记录、已接受风险和未解决问题。 |
61
+ | `lesson_candidates.md` | closeout 前的任务本地 lesson candidate 决策。 |
62
+ | `review.md` | Agent Review Submission、对抗审查、findings、evidence 和 routing。 |
63
+
64
+ ## 可选索引
65
+
66
+ | 索引 | 用途 |
67
+ | --- | --- |
68
+ | `references/INDEX.md` | 参考资料和 preset 提供的 required reads。 |
69
+ | `artifacts/INDEX.md` | 生成产物、证据包、截图、报告和命令输出。 |
70
+
71
+ ## Preset 摘要
72
+
73
+ 本节由系统渲染。Preset 不能新增自定义根级文件,也不能任意追加根 `INDEX.md` 内容。
74
+
75
+ | Field | Value |
76
+ | --- | --- |
77
+ | Preset | `{{TASK_PRESET}}` |
78
+ | Preset Version | `{{TASK_PRESET_VERSION}}` |
79
+ | Evidence Bundle | `{{TASK_EVIDENCE_BUNDLE}}` |
80
+ | Resource Indexes | `references/INDEX.md`; `artifacts/INDEX.md` |
81
+
82
+ ## 更新规则
83
+
84
+ - 状态和决策写入 `progress.md`。
85
+ - 任务专属目标和验收标准写入 `task_plan.md`。
86
+ - 大段命令输出、截图、报告和生成文件放入 `artifacts/INDEX.md`。
87
+ - 源材料、外部链接和 preset required reads 放入 `references/INDEX.md`。
@@ -24,7 +24,7 @@
24
24
 
25
25
  - Owner:coordinator
26
26
  - 生命周期状态:未开始
27
- - 必需文件:`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`progress.md`、`findings.md`、`review.md`
27
+ - 必需文件:`INDEX.md`、`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`progress.md`、`findings.md`、`review.md`
28
28
  - 完成条件:验证证据必须记录到 `progress.md`
29
29
 
30
30
  ## 第一步
@@ -1,5 +1,35 @@
1
1
  # 执行策略
2
2
 
3
+ ## Subagent Authorization
4
+
5
+ 任务开始时先读这一段,并向用户说明当前授权状态。这里是授权记录,不是执行沙箱。
6
+
7
+ | Role | Status | Permission | Authorized By | Authorized At | Scope | Worktree / Branch | Reuse |
8
+ | --- | --- | --- | --- | --- | --- | --- | --- |
9
+ | reviewer subagent | allowed by default | read-only | harness task policy | task creation | current task review | n/a | allowed within this task |
10
+ | worker subagent | not authorized | write only after user approval | pending | pending | pending | pending | allowed only within approved task/scope |
11
+
12
+ ## Subagent Delegation Decision
13
+
14
+ 任务开始时,coordinator 必须根据用户目标主动做这个判断,即使用户完全没有提到 subagent。
15
+ 不要假设用户知道 subagent 或 worker 是什么。如果分工有帮助,用白话说明收益,并向用户申请一次授权。
16
+ 可以直接对用户说 subagent 或 worker subagent;关键规则是 agent 不能等用户主动提出 subagent。
17
+ 如果任务已经明显拆成互不重叠的独立切片,implementation 前就应判断为 `ask-user`。如果还不知道精确文件路径,先确认路径,然后立刻申请独立执行助手授权。
18
+
19
+ | Question | Decision | Reason | Next Action |
20
+ | --- | --- | --- | --- |
21
+ | Should a reviewer subagent be used? | yes / no | [为什么需要或不需要 reviewer] | 如果 yes,直接调用只读 reviewer,不需要额外申请。 |
22
+ | Would a worker subagent materially help? | no / ask-user / already-authorized | [并行切片、独立实现、专项调查,或说明为什么不需要] | 如果 ask-user,直接问:“这个任务适合拆给 worker subagent 并行处理。是否授权我派一个 worker subagent,只修改 [scope],只在 [worktree/branch] 内执行,我负责协调和最终审查?” |
23
+
24
+ ## User Authorization Decision
25
+
26
+ 如果上方 worker 决策是 `ask-user`,implementation 必须暂停,直到这里记录用户答案。
27
+ 已解决状态只能是 `authorized`、`denied` 或 `not-needed`。选择 `ask-user` 后不得继续保持 `pending`。
28
+
29
+ | Gate | State | Decided By | Decided At | Scope | Worktree / Branch | Notes |
30
+ | --- | --- | --- | --- | --- | --- | --- |
31
+ | worker subagent | pending | pending | pending | pending | pending | 只有直接问过用户后才能填写。 |
32
+
3
33
  ## 决策表
4
34
 
5
35
  | 决策 | 选择 | 说明 |
@@ -1,6 +1,6 @@
1
1
  # {{TASK_TITLE}} - 教训候选
2
2
 
3
- 本文件是任务本地 lesson candidate queue。它不是 Lessons SSoT;只有人工审查确认值得沉淀后,才进入治理 promotion。
3
+ 本文件是任务本地 lesson candidate queue。人工审查需要决定候选是留在任务内、拒绝、进入 dry-run promotion、创建 promoted lesson 详情文档,还是创建单独的沉淀任务。
4
4
 
5
5
  ## Candidate Status
6
6
 
@@ -24,14 +24,14 @@
24
24
  - `pending-review`:候选文件存在,但人工判定还没完成。
25
25
  - `no-candidate-accepted`:人工接受本任务没有可复用候选的理由。
26
26
  - `needs-promotion`:至少一个候选已排队等待治理沉淀。
27
- - `promoted`:所有接受的候选都已写入 Lessons SSoT。
27
+ - `promoted`:所有接受的候选都已写入已确认的治理目标。
28
28
  - `rejected`:所有候选都已带理由拒绝或归档。
29
29
 
30
30
  允许的行级状态:
31
31
 
32
32
  - `ready-for-review`:agent 认为这个候选可能有复用价值。
33
- - `needs-promotion`:人工标记这个候选值得沉淀。
34
- - `promoted`:维护 CLI 已把候选写入 Lessons SSoT。
33
+ - `needs-promotion`:人工标记这个候选值得通过 dry-run promotion 或后续沉淀任务保留。
34
+ - `promoted`:维护 CLI 或已批准的后续任务已把候选写入确认的治理目标。
35
35
  - `rejected`:人工带理由拒绝这个候选。
36
36
 
37
37
  聚合规则:
@@ -44,8 +44,8 @@
44
44
 
45
45
  ## Candidates
46
46
 
47
- | ID | Row Status | Title | Why It Might Matter | Review Decision | Promotion Target |
48
- | --- | --- | --- | --- | --- | --- |
47
+ | ID | Row Status | Title | Scope | Module Key | Detail Artifact | Boundary Reason | Why It Might Matter | Review Decision | Promotion Target | Conflict Check | Required Standard Update | Follow-up Task |
48
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
49
49
 
50
50
  ## No-Candidate Reason
51
51
 
@@ -54,5 +54,17 @@
54
54
  ## Promotion Notes
55
55
 
56
56
  - 如果人工审查认为候选值得沉淀,把对应行标记为 `needs-promotion`,并记录目标治理位置。
57
+ - 候选标记为 `needs-promotion` 时,必须趁源任务上下文还新鲜写出完整 task-local detail artifact,并在 `Detail Artifact` 中链接。
58
+ - `Scope` 使用 `task`、`module` 或 `global`;module 级候选必须填写 `Module Key`。
57
59
  - 如果人工审查拒绝候选,把对应行标记为 `rejected`,并在 review decision 中保留理由。
58
60
  - `needs-promotion` 不阻止任务 closeout,但必须继续出现在维护队列和收口记录里。
61
+ - 默认 promotion 行为是先 dry-run 或创建后续沉淀任务。不要写共享 Lessons 表;被接受的候选应成为 promoted lesson 详情文档。
62
+ - 沉淀任务必须先分类 scope、检查既有 lessons 和 standards 冲突、提出目标改动,并在 apply 前报告验证证据。
63
+
64
+ ## Queue Routing
65
+
66
+ | Queue | When this task enters it | Exit condition |
67
+ | --- | --- | --- |
68
+ | Lessons | 任意候选是 `ready-for-review` 或 `needs-promotion`。 | 人工拒绝、保留在任务内、创建沉淀任务或批准 promotion。 |
69
+ | Missing Materials | 文件缺失、状态非法,或缺少必需的 no-candidate reason。 | Agent 修复候选文件。 |
70
+ | Confirmed / Finalized | 已人工确认,但候选仍有延后的治理事项。 | 记录后续任务或 dry-run 决策。 |
@@ -56,6 +56,7 @@
56
56
  - 如果需要全局表更新,在 task_plan.md 或 progress.md 写 Coordinator 交接,并标记 `Global sync status: pending-coordinator-pass`。
57
57
  - 只有 coordinator pass 或明确的 shared-lock owner 可以更新 docs/09-PLANNING/Module-Registry.md。
58
58
  - 汇报状态时区分 `task.state`、`lifecycleState`、`reviewStatus` 和 `closeoutStatus`;`done` 只表示实现步骤完成,不等于 `closed`。
59
+ - 把当前任务 `visual_map.md` 阶段表作为生命周期地图。切片结束时检查当前 gate phase;只有 `Actor` 为 `agent` 的 `Exit Command` 才由 Agent 执行。
59
60
  - 更新 docs/09-PLANNING/MODULES/<module-key>/module_plan.md。
60
61
  - 写 review.md,或记录 review skipped-with-reason。需要人工确认审查完成时,必须通过本地 dashboard workbench,或由 coordinator 执行 `harness review-confirm`;存在开放 P0/P1/P2 finding 时不得确认。
61
62
  - 步骤完成时写 walkthrough,并包含 Lessons 反思。
@@ -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% 信心?
@@ -55,13 +84,24 @@
55
84
  | --- | --- | --- | --- |
56
85
  | [风险] | [负责人] | yes / no | [后续路径或“无”] |
57
86
 
87
+ ## Lifecycle Queue Routing(生命周期队列路由)
88
+
89
+ | Queue | Applies? | Reason | Exit condition |
90
+ | --- | --- | --- | --- |
91
+ | Review | yes / no | 已提交审查材料包,且可等待人工确认。 | 人工确认或退回。 |
92
+ | Missing Materials | yes / no | 必需文件、章节、证据或 review submission 缺失 / 不完整。 | Agent 补齐材料并重新提交审查。 |
93
+ | Blocked | yes / no | 存在 open blocking finding、非法状态转换、审计失败或需要人工 waiver。 | blocker 被修复、关闭或明确豁免。 |
94
+ | Lessons | yes / no | Lesson candidate 需要拒绝、留在任务内、dry-run promotion 或创建沉淀任务。 | 人工决定候选路由;除非明确批准,promotion 仍是单独维护任务。 |
95
+ | Confirmed / Finalized | yes / no | 已有人工确认;可能仍待结项或治理收口。 | Closeout、ledger 和 lesson routing 都完成。 |
96
+ | Soft-deleted / Superseded | yes / no | 任务有 tombstone、superseded-by、archive、duplicate 或 abandoned 状态。 | reopen 或作为只读审计历史保留。 |
97
+
58
98
  ## 后续路由(Follow-Up Routing)
59
99
 
60
100
  - 任务计划:[是否需要更新,路径或“无”]
61
101
  - Progress:[对应 `progress.md` 条目]
62
102
  - 发现记录:[是否需要写入 `findings.md`]
63
103
  - Regression SSoT:[新增 / 调整 / 无]
64
- - Lessons SSoT:[checked-created: L-YYYY-MM-DD-NNN / checked-none: 一句话原因]
104
+ - Lessons:[checked-created: L-YYYY-MM-DD-NNN / checked-candidate: LC-YYYYMMDD-NNN / queued-promotion: LC-YYYYMMDD-NNN / checked-none: 一句话原因]
65
105
  - 收口记录:[收口时引用路径]
66
106
 
67
107
  ## 最终信心依据(Final Confidence Basis)
@@ -1,6 +1,7 @@
1
1
  # [任务名称]
2
2
 
3
3
  Task Contract: harness-task/v1
4
+ Task Package Index: required
4
5
 
5
6
  ## 目标
6
7
 
@@ -12,23 +13,11 @@ Task Contract: harness-task/v1
12
13
  - 不做什么:[明确排除的内容,避免执行中扩大范围]
13
14
  - 主要风险:[当前已知的技术、产品、协作或验证风险]
14
15
 
15
- ## 任务信息架构预算
16
-
17
- | 预算 | 适用场景 | 必需结构 |
18
- | --- | --- | --- |
19
- | simple | 单 owner、无 subagent、证据深度为 L0/L1、不需要正式 review gate | `brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
20
- | standard | 常规功能、修复或文档改动 | 完整任务文件:计划、策略、图谱、进度、发现和按需审查 |
21
- | complex | 需要 L2/L3 证据、subagent/reviewer、外部参考、生成产物,或超过 5 个切片 | 完整任务文件,并只启用实际需要的可选索引 |
16
+ ## 预算选择
22
17
 
23
18
  选择预算:{{TASK_BUDGET}}
24
19
 
25
- 可选子目录按触发条件创建,不作为默认脚手架:
26
-
27
- - `references/INDEX.md`:任务本地资料、外部链接、reviewer 输入包、跨仓上下文。
28
- - `artifacts/INDEX.md`:命令输出、截图、fixture、生成报告、审查记录等证据。
29
- - `slices/<slice-id>/`:多切片任务。每个切片使用 `brief.md`、`evidence.md`、`review.md`。
30
-
31
- 没有真实触发条件时,不创建可选目录;已创建则必须有 index 和明确用途。
20
+ 选择理由:[为什么本任务适合这个预算]
32
21
 
33
22
  ## 上下文包(Context Packet)
34
23
 
@@ -36,34 +25,6 @@ Task Contract: harness-task/v1
36
25
  | --- | --- | --- | --- | --- |
37
26
  | C-001 | public-doc / private-plan / external / code | PUBLIC:path 或 PRIVATE:path 或 TARGET:path 或 EXTERNAL:path 或 URL:https://example.com | [说明这份上下文如何影响任务] | coordinator / reviewer / worker |
38
27
 
39
- 路径前缀约定:
40
-
41
- - `PUBLIC:`:公开源仓库中的文件。
42
- - `PRIVATE:`:私有 harness 仓库中的文件。
43
- - `TARGET:`:已安装目标项目中的文件。
44
- - `EXTERNAL:` 或 `URL:`:外部资料。
45
-
46
- ## 执行与可视化文件
47
-
48
- `execution_strategy.md` 和 `visual_map.md` 是本任务的同级合同文件,不嵌入 `task_plan.md`。这样 dashboard 和 checker 可以稳定读取。
49
-
50
- | 合同文件 | 是否必需 | 用途 |
51
- | --- | --- | --- |
52
- | `execution_strategy.md` | yes | 执行模式、subagent 使用、冲突控制、证据深度、交接规则 |
53
- | `visual_map.md` | yes | 图表集合:阶段图、可选架构/时序/数据流/状态图、完成度、证据状态、阻塞风险 |
54
- | `lesson_candidates.md` | standard/complex 必需 | 任务本地教训候选队列。人工审查确认前必须接受无候选、拒绝候选,或排队 promotion |
55
- | `review.md` | 按需 | 对抗性审查、release review、外部 reviewer 结论 |
56
-
57
- 旧任务可以保留历史嵌入式段落作为 fallback;新任务必须使用独立文件。
58
-
59
- ## 产物索引(Artifact Index)
60
-
61
- 简单任务可在这里登记关键证据。产物较多时,创建 `artifacts/INDEX.md` 并在此引用 ID。
62
-
63
- | Artifact ID | 类型 | 路径 | 摘要 |
64
- | --- | --- | --- | --- |
65
- | A-001 | command / diff / fixture / screenshot / review / report | PUBLIC:path 或 PRIVATE:path 或 TARGET:path 或 EXTERNAL:path 或 URL:https://example.com | [这份证据证明了什么] |
66
-
67
28
  ## 步骤
68
29
 
69
30
  1. [步骤 1]
@@ -101,10 +62,9 @@ Task Contract: harness-task/v1
101
62
 
102
63
  ## 关联
103
64
 
104
- - 功能 SSoT 条目:[引用]
105
65
  - 相关 Regression Gate:[引用]
106
66
  - 审查报告:[路径 / 不适用]
107
- - Harness Ledger 条目:[完成时填写 / HL-...]
67
+ - Generated Ledger:由 lifecycle CLI / `harness governance rebuild` 重建
108
68
  - 前置任务:[引用;如无写“无”]
109
69
 
110
70
  ## 模块关联(启用模块并行时填写)
@@ -14,22 +14,29 @@ Visual Map Contract: v1.0
14
14
 
15
15
  ```mermaid
16
16
  flowchart LR
17
- PH01["PH-01 计划确认"] --> PH02["PH-02 实现"]
18
- PH02 --> PH03["PH-03 验证"]
19
- PH03 --> PH04["PH-04 审查与收口"]
17
+ INIT01["INIT-01 范围与上下文\nkind=init"] --> EXEC01["EXEC-01 实现切片\nkind=execution"]
18
+ EXEC01 --> GATE01["GATE-01 Agent 提交审查\nkind=gate"]
19
+ GATE01 --> GATE02["GATE-02 人工审查确认\nkind=gate"]
20
20
  ```
21
21
 
22
22
  ## 阶段表(Phase Table,表头供 checker 解析)
23
23
 
24
- | Phase ID | Depends On | State | Completion | Output | Required Evidence | Evidence Status | Blocking Risk | Owner / Handoff |
25
- | --- | --- | --- | ---: | --- | --- | --- | --- | --- |
26
- | PH-01 | none | planned | 0 | [计划输出] | [必需证据] | missing | none | coordinator |
24
+ | Phase ID | Kind | Depends On | State | Completion | Output | Required Evidence | Exit Command | Actor | Evidence Status | Blocking Risk | Owner / Handoff |
25
+ | --- | --- | --- | --- | ---: | --- | --- | --- | --- | --- | --- | --- |
26
+ | INIT-01 | init | none | planned | 0 | 任务计划和执行策略已确认 | `task_plan.md`; `execution_strategy.md` | `harness task-start {{TASK_ID}}` | agent | missing | none | coordinator |
27
+ | EXEC-01 | execution | INIT-01 | planned | 0 | 有边界的实现、文档切片和验证证据 | diff、commands、worker handoff 或 artifact path | `harness task-phase {{TASK_ID}} EXEC-01 --state done --completion 100 --evidence present` | agent | missing | [risk] | [owner] |
28
+ | GATE-01 | gate | EXEC-01 | planned | 0 | Agent Review Submission | `review.md`、progress update、lesson routing | `harness task-review {{TASK_ID}} --message "<summary>"` | agent | missing | [risk] | coordinator |
29
+ | GATE-02 | gate | GATE-01 | planned | 0 | Human Review Confirmation | review packet 和人工确认 | `harness review-confirm {{TASK_ID}} --confirm {{TASK_ID}}` | human | missing | Agent 不能代办人工确认 | human |
27
30
 
28
31
  允许的 `State`:`planned`, `in_progress`, `review`, `blocked`, `done`, `skipped`。
29
32
 
30
33
  允许的 `Evidence Status`:`missing`, `partial`, `present`, `waived`。
31
34
 
32
- `Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 以阶段表计算进度,不从正文推断。
35
+ 允许的 `Kind`:`init`, `execution`, `gate`。
36
+
37
+ 允许的 `Actor`:`agent`, `human`, `coordinator`。
38
+
39
+ `Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 的实现完成度只由非 skipped 的 `execution` 阶段计算;`init` 和 `gate` 阶段表达生命周期门禁、下一步命令和责任人,不拉低实现完成度。
33
40
 
34
41
  ## 支持性图表(Supporting Maps)
35
42
 
@@ -0,0 +1,48 @@
1
+ # Visual Map / 可视化图谱
2
+
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 |
12
+
13
+ ## 阶段关系图(Phase Graph)
14
+
15
+ ```mermaid
16
+ flowchart LR
17
+ INIT01["INIT-01 范围与上下文\nkind=init"] --> EXEC01["EXEC-01 实现切片\nkind=execution"]
18
+ EXEC01 --> GATE01["GATE-01 直接完成\nkind=gate"]
19
+ ```
20
+
21
+ ## 阶段表(Phase Table,表头供 checker 解析)
22
+
23
+ | Phase ID | Kind | Depends On | State | Completion | Output | Required Evidence | Exit Command | Actor | Evidence Status | Blocking Risk | Owner / Handoff |
24
+ | --- | --- | --- | --- | ---: | --- | --- | --- | --- | --- | --- | --- |
25
+ | INIT-01 | init | none | planned | 0 | 任务边界已清楚到可以执行 | `task_plan.md` | `harness task-start {{TASK_ID}}` | agent | missing | none | coordinator |
26
+ | EXEC-01 | execution | INIT-01 | planned | 0 | 简单实现或文档变更已完成 | diff、command 或 artifact path | `harness task-phase {{TASK_ID}} EXEC-01 --state done --completion 100 --evidence present` | agent | missing | [risk] | [owner] |
27
+ | GATE-01 | gate | EXEC-01 | planned | 0 | 直接完成任务 | progress update 和最终证据说明 | `harness task-complete {{TASK_ID}} --message "<summary>"` | agent | missing | [risk] | coordinator |
28
+
29
+ 允许的 `State`:`planned`, `in_progress`, `review`, `blocked`, `done`, `skipped`。
30
+
31
+ 允许的 `Evidence Status`:`missing`, `partial`, `present`, `waived`。
32
+
33
+ 允许的 `Kind`:`init`, `execution`, `gate`。
34
+
35
+ 允许的 `Actor`:`agent`, `human`, `coordinator`。
36
+
37
+ `Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 的实现完成度只由非 skipped 的 `execution` 阶段计算;`init` 和 `gate` 阶段表达生命周期门禁、下一步命令和责任人,不拉低实现完成度。
38
+
39
+ ## 支持性图表(Supporting Maps)
40
+
41
+ 按需添加,不要求每类都存在:
42
+
43
+ - architecture:模块、组件、服务结构。
44
+ - sequence:前端、后端、服务、数据库、agent 时序。
45
+ - data-flow:数据流转和所有权。
46
+ - state:状态机或生命周期。
47
+ - topology:repo、服务、worker、worktree 拓扑。
48
+ - 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,7 +9,7 @@
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
14
  | `docs/04-DEVELOPMENT/` | 本地开发、代码地图、外部服务开发上下文、mock/stub、跨仓调试。 |
15
15
  | `docs/05-TEST-QA/` | Regression SSoT、Cadence Ledger、测试策略和回归证据索引。 |
@@ -27,7 +27,32 @@
27
27
  5. 可写 worker 必须在自己的 worktree 内实现、验证、提交,并 handoff branch、commit SHA、checks、residual。
28
28
  6. 遇到共享文件冲突,由 coordinator 或人工决定串行顺序。
29
29
  7. 遇到目标失效、权限阻塞、高风险决策或 stop condition 不适用,立即暂停并记录。
30
- 8. 主动提交已验证的、有意义的中间成果;commit message 应说明变更类型和范围。除非用户明确要求暂不提交,或检查失败 / diff 归属不清,否则不要把已完成切片长期留在未提交状态。
30
+ 8. 主动提交已验证的、有意义的中间成果;commit message 应说明变更类型和范围。除非用户明确要求暂不提交、检查失败、dirty 归属不清,或安全边界阻止干净提交,否则不要把已完成切片长期留在未提交状态;延期提交必须写明 no-commit reason、owner 和下一步。
31
+ 9. 机械化 Harness 写入优先使用 CLI lifecycle 命令。CLI-owned 写入会加锁、限制 allowlist 并自动提交。`new-task` 可以保留无关 dirty 文件,并只提交本次命令自己的 write scope;但 write scope 重叠 dirty 或无关 staged 文件仍会阻塞命令。其他 lifecycle 命令仍可能要求 clean tree。agent-owned 手工编辑仍需要明确任务提交或延期提交理由。
32
+ 10. 把 `visual_map.md` 当作生命周期阶段地图。`init` 阶段准备工作,`execution` 阶段定义实现完成度,`gate` 阶段定义审查、人工确认、lesson routing 和 closeout。只有当前操作者匹配阶段 `Actor` 时,才执行该阶段 `Exit Command`;Agent 不得执行 `human` gate。
33
+ 11. 新任务目录必须在 `INDEX.md` 保留机器可读任务审计元数据。正常路径是 `Created By: harness new-task`;手工创建只能作为 `manual-exception`,并写清具体原因;历史迁移使用 `historical-backfill`。
34
+
35
+ ## 任务包结构
36
+
37
+ 使用 `harness new-task` 创建任务目录,不要手工复制任务文件。CLI 会按所选预算创建文件集,并在 `INDEX.md` 记录任务审计元数据,供 `harness check` 校验。
38
+
39
+ | 预算 | 必需文件 |
40
+ | --- | --- |
41
+ | simple | `INDEX.md`、`brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
42
+ | standard | simple 文件,加 `execution_strategy.md`、`findings.md`、`lesson_candidates.md`、`review.md` |
43
+ | complex | standard 文件,加 `references/INDEX.md`、`artifacts/INDEX.md` |
44
+ | long-running 附加项 | 选择 `--long-running` 时额外创建 `long-running-task-contract.md` |
45
+
46
+ `INDEX.md` 是任务包导航页,也是审计元数据 SSoT。它只指向合同文件和可选索引,不替代这些文件。
47
+
48
+ 可选目录只在触发时创建:
49
+
50
+ - `references/INDEX.md`:任务本地资料、外部链接、reviewer 输入包、preset 提供的 required reads。
51
+ - `artifacts/INDEX.md`:命令输出、截图、fixture、生成报告、审查记录和其他证据。
52
+ - `lessons/LC-*.md`:进入 `needs-promotion` 的 lesson candidate 的任务本地详情文件。
53
+ - `slices/<slice-id>/`:明确启用多切片任务包时使用。
54
+
55
+ Preset 包不能新增或替换根级 base scaffold 文档。Preset 只能追加固定基础文档的受控 section,或把隔离资源写入 `references/**` 和 `artifacts/**`。resource rows 只能登记在 `references/INDEX.md` 和 `artifacts/INDEX.md`;根 `INDEX.md` 最多显示系统渲染的 preset summary 字段。
31
56
 
32
57
  ## 完成任务后
33
58
 
@@ -38,11 +63,12 @@
38
63
  5. 确认 `review.md` 没有 open P0/P1 finding;material P2 已修复或写为 `accepted-risk` 并路由。
39
64
  6. planned task 必须完成 closeout review,或写明 `skipped-with-reason`。
40
65
  7. 写 walkthrough,引用 task plan、review、证据、residual、Regression SSoT 和 commit。
41
- 8. 执行 Lessons 检查:新任务默认先写 `lesson_candidates.md` 并交给人工审查;人工标记后可记录 `queued-promotion`,再由维护命令写 lesson 详情并更新 Lessons SSoT。没有可复用候选时记录 `no-candidate-accepted`;旧任务兼容可记录 `checked-none: <reason>`。
42
- 9. 最后更新 Harness Ledger,因为它记录本轮上下文维护的最终状态。
43
- 10. 完成 commit / PR / release note,并确认本任务工作区没有未解释的遗留改动。
44
- 11. 如使用 worker,coordinator 集成 worker commit 后运行最终 gates,并记录 integration evidence。
45
- 12. 如使用 worktree,按 `worktree-standard.md` 清理或记录保留原因。
66
+ 8. 确认当前 `visual_map.md` lifecycle gate 已执行,或已记录 blocker。
67
+ 9. 执行 Lessons 检查:新任务默认先写 `lesson_candidates.md` 并交给人工审查;人工标记后可记录 `queued-promotion`,再由维护命令写 promoted lesson 详情文档。没有可复用候选时记录 `no-candidate-accepted`;旧任务兼容可记录 `checked-none: <reason>`。
68
+ 10. 最后更新 Harness Ledger,因为它记录本轮上下文维护的最终状态。
69
+ 11. 完成 commit / PR / release note,并确认本任务工作区没有未解释的遗留改动。
70
+ 12. 如使用 worker,coordinator 集成 worker commit 后运行最终 gates,并记录 integration evidence。
71
+ 13. 如使用 worktree,按 `worktree-standard.md` 清理或记录保留原因。
46
72
 
47
73
  ## 提交规范
48
74
 
@@ -75,7 +101,7 @@ PR 描述必须包含:
75
101
 
76
102
  - 每个已验证的、有意义的切片默认都要提交。
77
103
  - 提交前只 stage 本任务范围内文件,不能顺手带入无关 dirty 文件、私有文件或生成产物。
78
- - 如果用户明确说不要提交、检查失败、或 diff 归属还没厘清,必须把未提交原因写入 `progress.md` 或交接说明。
104
+ - 如果用户明确说不要提交、检查失败、或 dirty 归属还没厘清,必须把 no-commit reason、owner 和下一步写入 `progress.md` 或交接说明。
79
105
  - closeout 时必须列出相关 commit SHA;如果没有 commit,必须说明为什么这是安全的例外。
80
106
 
81
107
  ## 禁止事项
@@ -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