coding-agent-harness 1.0.5 → 1.0.6

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 (260) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/README.md +63 -3
  3. package/README.zh-CN.md +52 -3
  4. package/SKILL.md +43 -43
  5. package/dist/build-dist.mjs +189 -0
  6. package/dist/check-dist-observation.mjs +428 -0
  7. package/dist/check-harness.mjs +489 -0
  8. package/dist/check-import-graph.mjs +511 -0
  9. package/dist/check-runtime-emit.mjs +304 -0
  10. package/dist/check-type-boundaries.mjs +139 -0
  11. package/dist/commands/dashboard-command.mjs +80 -0
  12. package/dist/commands/migration-command.mjs +152 -0
  13. package/dist/commands/preset-command.mjs +91 -0
  14. package/dist/commands/task-command.mjs +324 -0
  15. package/dist/harness.mjs +304 -0
  16. package/dist/lib/capability-registry.mjs +643 -0
  17. package/dist/lib/check-module-parallel.mjs +227 -0
  18. package/dist/lib/check-profiles.mjs +414 -0
  19. package/dist/lib/check-task-contracts.mjs +54 -0
  20. package/dist/lib/core-shared.mjs +254 -0
  21. package/dist/lib/dashboard-data.mjs +608 -0
  22. package/dist/lib/dashboard-workbench.mjs +334 -0
  23. package/dist/lib/dashboard-writer.mjs +200 -0
  24. package/dist/lib/git-status-summary.mjs +45 -0
  25. package/dist/lib/governance-index-generator.mjs +236 -0
  26. package/dist/lib/governance-sync.mjs +617 -0
  27. package/dist/lib/governance-table-boundary.mjs +161 -0
  28. package/{scripts → dist}/lib/harness-core.mjs +2 -0
  29. package/dist/lib/harness-paths.mjs +338 -0
  30. package/dist/lib/lesson-maintenance.mjs +139 -0
  31. package/dist/lib/markdown-utils.mjs +193 -0
  32. package/dist/lib/migration-planner.mjs +439 -0
  33. package/dist/lib/migration-support.mjs +317 -0
  34. package/dist/lib/phase-kind.mjs +46 -0
  35. package/dist/lib/preset-audit-contracts.mjs +40 -0
  36. package/dist/lib/preset-engine.mjs +516 -0
  37. package/dist/lib/preset-registry.mjs +831 -0
  38. package/dist/lib/preset-resource-contracts.mjs +83 -0
  39. package/dist/lib/review-confirm-git-gate.mjs +244 -0
  40. package/dist/lib/status-builder.mjs +87 -0
  41. package/{scripts → dist}/lib/status-dashboard-renderer.mjs +44 -46
  42. package/dist/lib/structure-migration.mjs +404 -0
  43. package/dist/lib/subagent-authorization-audit.mjs +198 -0
  44. package/dist/lib/task-audit-metadata.mjs +376 -0
  45. package/dist/lib/task-audit-migration.mjs +355 -0
  46. package/dist/lib/task-completion-consistency.mjs +29 -0
  47. package/dist/lib/task-index.mjs +133 -0
  48. package/dist/lib/task-lesson-candidates.mjs +239 -0
  49. package/dist/lib/task-lesson-sedimentation.mjs +300 -0
  50. package/dist/lib/task-lifecycle/create-task-helpers.mjs +84 -0
  51. package/dist/lib/task-lifecycle/phase-sync.mjs +82 -0
  52. package/dist/lib/task-lifecycle/review-confirm.mjs +93 -0
  53. package/dist/lib/task-lifecycle/review-gates.mjs +62 -0
  54. package/dist/lib/task-lifecycle/review-submission.mjs +52 -0
  55. package/dist/lib/task-lifecycle/scaffold-provenance.mjs +54 -0
  56. package/dist/lib/task-lifecycle/template-files.mjs +52 -0
  57. package/dist/lib/task-lifecycle/text-utils.mjs +26 -0
  58. package/dist/lib/task-lifecycle.mjs +611 -0
  59. package/dist/lib/task-metadata.mjs +116 -0
  60. package/dist/lib/task-review-model.mjs +474 -0
  61. package/dist/lib/task-scanner.mjs +439 -0
  62. package/dist/lib/task-tombstone-commands.mjs +125 -0
  63. package/dist/postinstall.mjs +14 -0
  64. package/dist/run-built-tests.mjs +84 -0
  65. package/docs-release/README.md +1 -0
  66. package/docs-release/architecture/overview.md +12 -12
  67. package/docs-release/architecture/overview.zh-CN.md +12 -12
  68. package/docs-release/architecture/system-explainer/01-system-overview.md +15 -14
  69. package/docs-release/architecture/system-explainer/02-module-dependency.md +8 -8
  70. package/docs-release/architecture/system-explainer/03-task-lifecycle.md +3 -3
  71. package/docs-release/architecture/system-explainer/04-check-and-governance.md +9 -7
  72. package/docs-release/architecture/system-explainer/05-data-flow.md +5 -5
  73. package/docs-release/architecture/system-explainer/06-preset-and-migration.md +1 -4
  74. package/docs-release/architecture/system-explainer/en-US/01-system-overview.md +15 -14
  75. package/docs-release/architecture/system-explainer/en-US/02-module-dependency.md +8 -8
  76. package/docs-release/architecture/system-explainer/en-US/03-task-lifecycle.md +3 -3
  77. package/docs-release/architecture/system-explainer/en-US/04-check-and-governance.md +10 -8
  78. package/docs-release/architecture/system-explainer/en-US/05-data-flow.md +5 -5
  79. package/docs-release/architecture/system-explainer/en-US/06-preset-and-migration.md +1 -4
  80. package/docs-release/guides/agent-installation.en-US.md +14 -8
  81. package/docs-release/guides/agent-installation.md +14 -8
  82. package/docs-release/guides/contributing.md +3 -3
  83. package/docs-release/guides/contributing.zh-CN.md +3 -3
  84. package/docs-release/guides/document-audience-and-surfaces.en-US.md +10 -10
  85. package/docs-release/guides/document-audience-and-surfaces.md +10 -10
  86. package/docs-release/guides/legacy-migration-agent-prompt.md +25 -2
  87. package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +25 -2
  88. package/docs-release/guides/migration-playbook.en-US.md +63 -1
  89. package/docs-release/guides/migration-playbook.md +59 -1
  90. package/docs-release/guides/parent-control-repository-pattern.en-US.md +25 -25
  91. package/docs-release/guides/parent-control-repository-pattern.md +25 -25
  92. package/docs-release/guides/preset-development.md +2 -2
  93. package/docs-release/guides/repository-operating-models.en-US.md +21 -21
  94. package/docs-release/guides/repository-operating-models.md +21 -21
  95. package/docs-release/guides/task-state-machine.en-US.md +5 -5
  96. package/docs-release/guides/task-state-machine.md +5 -5
  97. package/docs-release/guides/typescript-runtime-migration-closeout.md +96 -0
  98. package/examples/minimal-project/AGENTS.md +2 -2
  99. package/examples/minimal-project/coding-agent-harness/harness.yaml +14 -0
  100. package/examples/minimal-project/coding-agent-harness/planning/tasks/demo-task/progress.md +11 -0
  101. package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/review.md +1 -1
  102. package/package.json +20 -12
  103. package/presets/legacy-migration/preset.yaml +5 -5
  104. package/presets/legacy-migration/templates/execution_strategy.append.md +1 -1
  105. package/presets/lesson-sedimentation/preset.yaml +3 -3
  106. package/presets/module/preset.yaml +2 -2
  107. package/presets/module/templates/execution_strategy.append.md +1 -1
  108. package/presets/module/templates/task_plan.append.md +3 -3
  109. package/presets/standard-task/preset.yaml +2 -2
  110. package/references/adversarial-review-standard.md +2 -2
  111. package/references/agents-md-pattern.md +14 -14
  112. package/references/cadence-ledger.md +1 -1
  113. package/references/ci-cd-standard.md +1 -1
  114. package/references/delivery-operating-model-standard.md +4 -4
  115. package/references/docs-directory-standard.md +65 -159
  116. package/references/external-source-intake-standard.md +10 -10
  117. package/references/harness-ledger.md +5 -5
  118. package/references/legacy-12-phase-bootstrap.md +2 -2
  119. package/references/lessons-governance.md +15 -15
  120. package/references/long-running-task-standard.md +6 -6
  121. package/references/module-parallel-standard.md +34 -34
  122. package/references/planning-loop.md +6 -6
  123. package/references/project-onboarding-audit.md +4 -4
  124. package/references/regression-system.md +2 -2
  125. package/references/repo-governance-standard.md +4 -4
  126. package/references/review-routing-standard.md +1 -1
  127. package/references/ssot-governance.md +19 -19
  128. package/references/taskr-gap-analysis.md +5 -5
  129. package/references/walkthrough-closeout.md +14 -14
  130. package/references/worktree-parallel.md +3 -3
  131. package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +1 -1
  132. package/skills/preset-creator/references/preset-package-skeleton.md +5 -5
  133. package/templates/AGENTS.md.template +26 -26
  134. package/templates/architecture/README.md +4 -4
  135. package/templates/architecture/service-catalog.md +2 -2
  136. package/templates/architecture/services/service-template.md +1 -1
  137. package/templates/dashboard/assets/app-src/20-overview.js +11 -5
  138. package/templates/dashboard/assets/app-src/40-modules.js +1 -1
  139. package/templates/dashboard/assets/app.js +12 -6
  140. package/templates/dashboard/assets/i18n.js +4 -2
  141. package/templates/development/README.md +10 -10
  142. package/templates/development/cross-repo-debugging.md +3 -3
  143. package/templates/development/external-context/service-template.md +2 -2
  144. package/templates/development/external-source-packs/README.md +4 -4
  145. package/templates/integrations/README.md +4 -4
  146. package/templates/integrations/api-contract.md +2 -2
  147. package/templates/integrations/event-contract.md +2 -2
  148. package/templates/integrations/third-party/vendor-template.md +2 -2
  149. package/templates/integrations/webhook-contract.md +2 -2
  150. package/templates/ledger/Harness-Ledger.md +1 -1
  151. package/templates/planning/INDEX.md +1 -0
  152. package/templates/planning/module_session_prompt.md +1 -1
  153. package/templates/planning/task_plan.md +1 -1
  154. package/templates/planning/walkthrough.md +47 -0
  155. package/templates/reference/docs-library-standard.md +8 -8
  156. package/templates/reference/external-source-intake-standard.md +15 -15
  157. package/templates/reference/repo-governance-standard.md +1 -1
  158. package/templates/ssot/Module-Registry.md +1 -1
  159. package/templates/walkthrough/walkthrough-template.md +2 -2
  160. package/templates-zh-CN/AGENTS.md.template +26 -26
  161. package/templates-zh-CN/CLAUDE.md.template +1 -1
  162. package/templates-zh-CN/architecture/README.md +4 -4
  163. package/templates-zh-CN/architecture/service-catalog.md +2 -2
  164. package/templates-zh-CN/architecture/services/service-template.md +1 -1
  165. package/templates-zh-CN/development/README.md +10 -10
  166. package/templates-zh-CN/development/cross-repo-debugging.md +3 -3
  167. package/templates-zh-CN/development/external-context/service-template.md +2 -2
  168. package/templates-zh-CN/development/external-source-packs/README.md +4 -4
  169. package/templates-zh-CN/integrations/README.md +4 -4
  170. package/templates-zh-CN/integrations/api-contract.md +2 -2
  171. package/templates-zh-CN/integrations/event-contract.md +2 -2
  172. package/templates-zh-CN/integrations/third-party/vendor-template.md +2 -2
  173. package/templates-zh-CN/integrations/webhook-contract.md +2 -2
  174. package/templates-zh-CN/ledger/Harness-Ledger.md +1 -1
  175. package/templates-zh-CN/lessons/lesson-arch-process-change.md +1 -1
  176. package/templates-zh-CN/lessons/lesson-new-doc.md +3 -3
  177. package/templates-zh-CN/lessons/lesson-ref-change.md +4 -4
  178. package/templates-zh-CN/planning/module_session_prompt.md +11 -11
  179. package/templates-zh-CN/planning/walkthrough.md +47 -0
  180. package/templates-zh-CN/reference/adversarial-review-standard.md +2 -2
  181. package/templates-zh-CN/reference/delivery-operating-model-standard.md +3 -3
  182. package/templates-zh-CN/reference/docs-library-standard.md +28 -28
  183. package/templates-zh-CN/reference/execution-workflow-standard.md +1 -1
  184. package/templates-zh-CN/reference/external-source-intake-standard.md +16 -16
  185. package/templates-zh-CN/reference/harness-ledger-standard.md +6 -6
  186. package/templates-zh-CN/reference/regression-ssot-governance.md +2 -2
  187. package/templates-zh-CN/reference/repo-governance-standard.md +1 -1
  188. package/templates-zh-CN/reference/review-routing-standard.md +1 -1
  189. package/templates-zh-CN/reference/walkthrough-standard.md +7 -7
  190. package/templates-zh-CN/reference/worktree-standard.md +1 -1
  191. package/templates-zh-CN/regression/Cadence-Ledger.md +2 -2
  192. package/templates-zh-CN/ssot/Delivery-SSoT.md +3 -3
  193. package/templates-zh-CN/ssot/Module-Registry.md +3 -3
  194. package/templates-zh-CN/ssot/Regression-SSoT.md +2 -2
  195. package/templates-zh-CN/walkthrough/walkthrough-template.md +5 -5
  196. package/tsconfig.dist.json +16 -0
  197. package/tsconfig.json +25 -0
  198. package/tsconfig.runtime.json +24 -0
  199. package/examples/minimal-project/.harness-capabilities.json +0 -8
  200. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +0 -11
  201. package/scripts/check-harness.mjs +0 -508
  202. package/scripts/commands/dashboard-command.mjs +0 -67
  203. package/scripts/commands/migration-command.mjs +0 -126
  204. package/scripts/commands/preset-command.mjs +0 -73
  205. package/scripts/commands/task-command.mjs +0 -328
  206. package/scripts/harness.mjs +0 -291
  207. package/scripts/lib/capability-registry.mjs +0 -587
  208. package/scripts/lib/check-module-parallel.mjs +0 -230
  209. package/scripts/lib/check-profiles.mjs +0 -372
  210. package/scripts/lib/check-task-contracts.mjs +0 -55
  211. package/scripts/lib/core-shared.mjs +0 -249
  212. package/scripts/lib/dashboard-data.mjs +0 -520
  213. package/scripts/lib/dashboard-workbench.mjs +0 -336
  214. package/scripts/lib/dashboard-writer.mjs +0 -202
  215. package/scripts/lib/git-status-summary.mjs +0 -46
  216. package/scripts/lib/governance-index-generator.mjs +0 -174
  217. package/scripts/lib/governance-sync.mjs +0 -611
  218. package/scripts/lib/governance-table-boundary.mjs +0 -175
  219. package/scripts/lib/lesson-maintenance.mjs +0 -152
  220. package/scripts/lib/markdown-utils.mjs +0 -191
  221. package/scripts/lib/migration-planner.mjs +0 -476
  222. package/scripts/lib/migration-support.mjs +0 -312
  223. package/scripts/lib/phase-kind.mjs +0 -50
  224. package/scripts/lib/preset-audit-contracts.mjs +0 -37
  225. package/scripts/lib/preset-engine.mjs +0 -494
  226. package/scripts/lib/preset-registry.mjs +0 -776
  227. package/scripts/lib/preset-resource-contracts.mjs +0 -83
  228. package/scripts/lib/review-confirm-git-gate.mjs +0 -248
  229. package/scripts/lib/status-builder.mjs +0 -88
  230. package/scripts/lib/subagent-authorization-audit.mjs +0 -196
  231. package/scripts/lib/task-audit-metadata.mjs +0 -385
  232. package/scripts/lib/task-audit-migration.mjs +0 -350
  233. package/scripts/lib/task-completion-consistency.mjs +0 -26
  234. package/scripts/lib/task-index.mjs +0 -93
  235. package/scripts/lib/task-lesson-candidates.mjs +0 -242
  236. package/scripts/lib/task-lesson-sedimentation.mjs +0 -326
  237. package/scripts/lib/task-lifecycle/create-task-helpers.mjs +0 -67
  238. package/scripts/lib/task-lifecycle/phase-sync.mjs +0 -88
  239. package/scripts/lib/task-lifecycle/review-confirm.mjs +0 -112
  240. package/scripts/lib/task-lifecycle/review-gates.mjs +0 -73
  241. package/scripts/lib/task-lifecycle/review-submission.mjs +0 -63
  242. package/scripts/lib/task-lifecycle/scaffold-provenance.mjs +0 -49
  243. package/scripts/lib/task-lifecycle/template-files.mjs +0 -53
  244. package/scripts/lib/task-lifecycle/text-utils.mjs +0 -24
  245. package/scripts/lib/task-lifecycle.mjs +0 -616
  246. package/scripts/lib/task-metadata.mjs +0 -118
  247. package/scripts/lib/task-review-model.mjs +0 -455
  248. package/scripts/lib/task-scanner.mjs +0 -503
  249. package/scripts/lib/task-tombstone-commands.mjs +0 -140
  250. package/scripts/postinstall.mjs +0 -14
  251. package/templates/walkthrough/Closeout-SSoT.md +0 -43
  252. package/templates-zh-CN/walkthrough/Closeout-SSoT.md +0 -42
  253. /package/examples/minimal-project/{docs → coding-agent-harness/governance/generated}/Harness-Ledger.md +0 -0
  254. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/INDEX.md +0 -0
  255. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/brief.md +0 -0
  256. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/execution_strategy.md +0 -0
  257. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/findings.md +0 -0
  258. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/lesson_candidates.md +0 -0
  259. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/task_plan.md +0 -0
  260. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/visual_map.md +0 -0
@@ -16,7 +16,7 @@
16
16
  | 定位 | Repo-local **任务协议** + 轻量工作流 | 项目级 **工程方法论** + 完整 harness 体系 |
17
17
  | 粒度 | 单任务卡片级别(一个 md 文件 = 一个任务) | 项目 / wave / feature 级别(多文件协作体系) |
18
18
  | 目标用户 | 任何用 AI coding agent 的人 | 需要长程项目工程化支撑的团队 |
19
- | 核心产出 | `.taskr/tasks/*.md` | `docs/` 完整骨架 + SSoT + Ledger + Walkthrough |
19
+ | 核心产出 | `.taskr/tasks/*.md` | `coding-agent-harness/` 完整骨架 + SSoT + Ledger + Walkthrough |
20
20
  | 产品形态 | Skill + npm CLI + 本地看板 + VS Code 插件 | Skill(纯文档协议,无代码工具) |
21
21
  | 默认重量 | **轻量优先**(checklist 够了就不加仪式) | **完整优先**(12 个 Phase 全走一遍) |
22
22
 
@@ -211,7 +211,7 @@ verification:
211
211
  **建议吸收方式**:
212
212
  扩展为 Harness 级别的 doctor,检查项包括:
213
213
  - `AGENTS.md` / `CLAUDE.md` 存在且非空
214
- - `docs/` 目录结构是否符合标准
214
+ - `coding-agent-harness/` 目录结构是否符合标准
215
215
  - 三张 SSoT 文件存在
216
216
  - Harness Ledger 存在
217
217
  - 任务目录下的 task_plan 是否通过 validate
@@ -345,9 +345,9 @@ verification:
345
345
 
346
346
  **建议吸收方式**(两条路选一条):
347
347
 
348
- **路线 A(轻量)**:扩展现有 `harness-dashboard.html`,增加任务视图页签,读 `docs/09-PLANNING/TASKS/` 目录下的任务文件。
348
+ **路线 A(轻量)**:扩展现有 `harness-dashboard.html`,增加任务视图页签,读 `coding-agent-harness/planning/tasks/` 目录下的任务文件。
349
349
 
350
- **路线 B(对齐)**:把 Taskr 的 board 直接集成进来,让它同时读 `.taskr/` 和我们的 `docs/09-PLANNING/TASKS/`。Taskr 是 MIT 开源,可以直接用。
350
+ **路线 B(对齐)**:把 Taskr 的 board 直接集成进来,让它同时读 `.taskr/` 和我们的 `coding-agent-harness/planning/tasks/`。Taskr 是 MIT 开源,可以直接用。
351
351
 
352
352
  **注意**:Board 是 nice-to-have,不是核心方法论差异。核心价值在 3.1-3.6。
353
353
 
@@ -504,7 +504,7 @@ Footer 格式:`Taskr: <task-id>`(注意不是旧的 `[taskr:<id>]` subject-l
504
504
 
505
505
  | Taskr 特性 | 不吸收的原因 |
506
506
  |------------|-------------|
507
- | `.taskr/` 目录名 | 我们用 `docs/09-PLANNING/TASKS/`,已是 harness 骨架的一部分,不应再搞一套平行目录 |
507
+ | `.taskr/` 目录名 | 我们用 `coding-agent-harness/planning/tasks/`,已是 harness 骨架的一部分,不应再搞一套平行目录 |
508
508
  | 6-section 固定结构(Request/AC/Plan/ProgressLog/AgentNotes/CompletionSummary) | 我们的三件套(plan/findings/progress)更细粒度;但可以考虑对齐 section 名 |
509
509
  | 无 SSoT / 无 Regression / 无 Lessons | 这是 Taskr 的定位选择(轻量),不代表我们该砍掉已有能力 |
510
510
  | HTML-in-Markdown 片段 | 我们的任务文件面向 agent 消费,不需要富渲染 |
@@ -36,7 +36,7 @@
36
36
  - 有没有反复出现、跨页面/跨模块/跨阶段的共性问题:[有/无,写一句理由]
37
37
  - 有没有下次 agent 也可能重复踩的坑:[有/无,写一句理由]
38
38
  - Lessons 结果:[checked-created: L-YYYY-MM-DD-NNN / queued-promotion: LC-YYYYMMDD-NNN / checked-candidate: LC-YYYYMMDD-NNN / checked-none: 一句话原因]
39
- - Lessons Detail Doc:[如 checked-created,填 `docs/01-GOVERNANCE/lessons/...md`;如 queued/checked-candidate,填 `lesson_candidates.md` 和任务本地 `lessons/LC-...md`;否则写"无"]
39
+ - Lessons Detail Doc:[如 checked-created,填 `coding-agent-harness/governance/lessons/...md`;如 queued/checked-candidate,填 `lesson_candidates.md` 和任务本地 `lessons/LC-...md`;否则写"无"]
40
40
 
41
41
  ## 相关文件
42
42
  - Task Plan: [路径]
@@ -48,13 +48,13 @@
48
48
  ## 存放位置
49
49
 
50
50
  ```
51
- docs/10-WALKTHROUGH/<YYYY-MM-DD-wave名称>.md
51
+ walkthrough.md.md
52
52
  ```
53
53
 
54
- Closeout SSoT:
54
+ Closeout Index:
55
55
 
56
56
  ```text
57
- docs/10-WALKTHROUGH/Closeout-SSoT.md
57
+ coding-agent-harness/governance/generated/Closeout-Index.md
58
58
  ```
59
59
 
60
60
  ## 规则
@@ -67,15 +67,15 @@ docs/10-WALKTHROUGH/Closeout-SSoT.md
67
67
  6. **Walkthrough 不是代码注释** — 不需要逐行解释代码,重点是决策、验证和可复用教训
68
68
  7. **Walkthrough 完成后必须执行经验沉淀检查** — 见下方“经验沉淀检查”章节
69
69
  8. **收口后必须更新 Harness Ledger** — 记录本轮上下文回写是否完成
70
- 9. **收口后必须更新 Closeout SSoT** — 每个 `closed` / `closed-with-residual` / `closed-local-only` 的 Harness Ledger row 必须有 Closeout SSoT row
70
+ 9. **收口后必须更新 Closeout Index** — 每个 `closed` / `closed-with-residual` / `closed-local-only` 的 Harness Ledger row 必须有 Closeout Index row
71
71
 
72
- ## Closeout SSoT 规则
72
+ ## Closeout Index 规则
73
73
 
74
- `Closeout-SSoT.md` 是 walkthrough 是否写入的硬门槛,不是目录索引。
74
+ `Closeout-Index.md` 是 walkthrough 是否写入的硬门槛,不是目录索引。
75
75
 
76
76
  每个 closed 任务必须满足一项:
77
77
 
78
- 1. `Walkthrough` 列写入 `docs/10-WALKTHROUGH/<file>.md`
78
+ 1. `Walkthrough` 列写入 `walkthrough.md.md`
79
79
  2. `Walkthrough` 列写入受控 skip reason
80
80
 
81
81
  允许的 skip reason 只有:
@@ -106,27 +106,27 @@ docs/10-WALKTHROUGH/Closeout-SSoT.md
106
106
 
107
107
  如果任何一条答案是“有”:
108
108
 
109
- 1. 查找任务本地 `lesson_candidates.md`、任务本地 `lessons/LC-*.md` 和 `docs/01-GOVERNANCE/lessons/*.md`
109
+ 1. 查找任务本地 `lesson_candidates.md`、任务本地 `lessons/LC-*.md` 和 `coding-agent-harness/governance/lessons/*.md`
110
110
  2. 按 `references/lessons-governance.md` 中的规则处理冲突
111
111
  3. 先在任务目录 `lesson_candidates.md` 中登记候选;候选进入 `needs-promotion` 时同步写任务本地 `lessons/LC-*.md` 详情文件并在 `Detail Artifact` 链接
112
- 4. 人工确认后,如需沉淀,使用 maintenance CLI 写入 `docs/01-GOVERNANCE/lessons/` promoted 详情文档
113
- 5. 在 Closeout SSoT 和 Harness Ledger 中记录 `queued-promotion: LC-...` 或 `checked-created: L-YYYY-MM-DD-NNN`
112
+ 4. 人工确认后,如需沉淀,使用 maintenance CLI 写入 `coding-agent-harness/governance/lessons/` promoted 详情文档
113
+ 5. 在 Closeout Index 和 Harness Ledger 中记录 `queued-promotion: LC-...` 或 `checked-created: L-YYYY-MM-DD-NNN`
114
114
 
115
- 如果所有答案都是“没有”,不能静默跳过;在 Closeout SSoT 和 Harness Ledger 中记录
115
+ 如果所有答案都是“没有”,不能静默跳过;在 Closeout Index 和 Harness Ledger 中记录
116
116
  新任务在 `lesson_candidates.md` 中写 `no-candidate-accepted` 和 No-Candidate Reason;旧任务可记录
117
117
  `checked-none: <一句话原因>`。
118
118
 
119
119
  ## Harness Ledger 回写
120
120
 
121
121
  写完 Walkthrough、更新 Regression SSoT 或其他本轮实际触达的非任务生命周期 SSoT,并完成 Lessons 检查后,Agent 必须更新
122
- `docs/10-WALKTHROUGH/Closeout-SSoT.md`;任务生命周期总账由 CLI 重新生成 `docs/Harness-Ledger.md`:
122
+ `coding-agent-harness/governance/generated/Closeout-Index.md`;任务生命周期总账由 CLI 重新生成 `coding-agent-harness/governance/generated/Harness-Ledger.md`:
123
123
 
124
124
  1. 为本轮任务追加或更新对应 `HL-*` 条目
125
125
  2. 记录 Task Plan、Regression SSoT、Review Report、Walkthrough、Lessons Check 的结果
126
126
  3. 列出本轮触碰的 harness 文档
127
127
  4. 如有未完成项,使用 `missing` 或 `skipped-with-reason` 并写明 residual
128
128
 
129
- 没有 Harness Ledger 条目或 Closeout SSoT 条目的 wave,不视为完整 closed。
129
+ 没有 Harness Ledger 条目或 Closeout Index 条目的 wave,不视为完整 closed。
130
130
 
131
131
  ## 为什么 Walkthrough 有效
132
132
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  但 worktree 只是 `solo-orchestrator` 或单仓并行的一种实现。若项目是多人团队、
8
8
  前后端分仓、program 多仓或瀑布 stage-gate,必须先读
9
- `docs/11-REFERENCE/delivery-operating-model-standard.md`,再决定使用 worktree、
9
+ `coding-agent-harness/governance/standards/delivery-operating-model-standard.md`,再决定使用 worktree、
10
10
  feature branch、contract branch、release branch 或跨仓 paired PR。
11
11
 
12
12
  ## 什么时候必须开 worktree
@@ -39,7 +39,7 @@ feature branch、contract branch、release branch 或跨仓 paired PR。
39
39
  - `fix/` — Bug 修复
40
40
  - `refactor/` — 重构
41
41
  - `test/` — 测试相关
42
- - `docs/` — 文档相关
42
+ - `coding-agent-harness/` — 文档相关
43
43
 
44
44
  示例:
45
45
  - `feat/user-auth-oauth2`
@@ -135,7 +135,7 @@ Coordinator 集成规则:
135
135
 
136
136
  ## 并发上限
137
137
 
138
- 项目必须在 `docs/11-REFERENCE/repo-governance-standard.md` 的 Worktree Concurrency
138
+ 项目必须在 `coding-agent-harness/governance/standards/repo-governance-standard.md` 的 Worktree Concurrency
139
139
  中定义 max active worktrees、merge ordering rule 和 cleanup owner。
140
140
 
141
141
  未定义并发上限时,不应启动多 agent 并行开发。
@@ -108,4 +108,4 @@ File purposes:
108
108
 
109
109
  - Global sync owner: coordinator / n/a
110
110
  - Global sync status: pending-coordinator-pass / synced / n/a
111
- - Shared updates needed: [Module Registry / Harness Ledger / Closeout SSoT / Regression SSoT / none]
111
+ - Shared updates needed: [Module Registry / Harness Ledger / Closeout Index / Regression SSoT / none]
@@ -33,7 +33,7 @@ task:
33
33
  entrypoints:
34
34
  newTask:
35
35
  type: template
36
- writes: [docs/09-PLANNING/TASKS/**]
36
+ writes: [docs/coding-agent-harness/planning/tasks/**]
37
37
  audit: true
38
38
  templates:
39
39
  taskPlanAppend: templates/task_plan.append.md
@@ -90,7 +90,7 @@ audit:
90
90
  evidenceFiles: [preset-audit.json, preset-manifest.json, write-scope.json]
91
91
  writeScopes:
92
92
  taskDocs:
93
- path: docs/09-PLANNING/TASKS/**
93
+ path: docs/coding-agent-harness/planning/tasks/**
94
94
  access: write
95
95
  ```
96
96
 
@@ -173,7 +173,7 @@ task:
173
173
  entrypoints:
174
174
  newTask:
175
175
  type: template
176
- writes: [docs/09-PLANNING/TASKS/**]
176
+ writes: [docs/coding-agent-harness/planning/tasks/**]
177
177
  audit: true
178
178
  templates:
179
179
  taskPlanAppend: templates/task_plan.append.md
@@ -196,7 +196,7 @@ audit:
196
196
  evidenceFiles: [preset-audit.json, preset-manifest.json, write-scope.json]
197
197
  writeScopes:
198
198
  taskDocs:
199
- path: docs/09-PLANNING/TASKS/**
199
+ path: docs/coding-agent-harness/planning/tasks/**
200
200
  access: write
201
201
  ```
202
202
 
@@ -267,7 +267,7 @@ Open `references/INDEX.md`, then read these preset-provided references before im
267
267
 
268
268
  | Reference | Path | Why |
269
269
  | --- | --- | --- |
270
- | REF-001 | TARGET:docs/09-PLANNING/TASKS/<task-folder>/references/upstream-contract.md | [rendered summary] |
270
+ | REF-001 | TARGET:docs/coding-agent-harness/planning/tasks/<task-folder>/references/upstream-contract.md | [rendered summary] |
271
271
  ```
272
272
 
273
273
  The same `REF-001` and exact `TARGET:` path must also appear in `references/INDEX.md`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  This file is the operating entry point for agents working in this repository.
4
4
  Keep it as a charter and routing index. Detailed rules belong in
5
- `docs/11-REFERENCE/`, not in this file.
5
+ `coding-agent-harness/governance/standards/`, not in this file.
6
6
 
7
7
  ## Project Profile
8
8
 
@@ -14,9 +14,9 @@ Keep it as a charter and routing index. Detailed rules belong in
14
14
 
15
15
  ## Non-Negotiable Rules
16
16
 
17
- 1. Preserve architecture boundaries documented in `docs/11-REFERENCE/engineering-standard.md`.
17
+ 1. Preserve architecture boundaries documented in `coding-agent-harness/governance/standards/engineering-standard.md`.
18
18
  2. Do not commit secrets, credentials, private endpoints, or user data.
19
- 3. Start non-trivial work with a Harness CLI-created task directory under `docs/09-PLANNING/TASKS/`.
19
+ 3. Start non-trivial work with a Harness CLI-created task directory under `coding-agent-harness/planning/tasks/`.
20
20
  4. Record evidence before claiming completion.
21
21
  5. Protect unrelated working-tree changes; never revert files outside the assigned scope.
22
22
  6. Commit verified, meaningful work slices proactively. Do not leave completed work only as dirty files unless the user explicitly pauses commits, checks fail, dirty ownership is unclear, or a security boundary prevents a clean commit; in those cases record the no-commit reason, owner, and next step in progress, handoff, or closeout notes. Never mix unrelated dirty changes into a task commit.
@@ -28,23 +28,23 @@ Read the smallest context that can answer the task.
28
28
 
29
29
  | Work Type | Read First |
30
30
  | --- | --- |
31
- | Architecture or core module change | `docs/11-REFERENCE/engineering-standard.md` |
32
- | System map, service responsibility, or external system relationship | `docs/03-ARCHITECTURE/README.md`, `docs/03-ARCHITECTURE/service-catalog.md` |
33
- | Local development, mocks, stubs, or cross-repo debugging | `docs/04-DEVELOPMENT/README.md`, `docs/04-DEVELOPMENT/codebase-map.md` |
34
- | API, event, webhook, SDK, or third-party contract | `docs/06-INTEGRATIONS/README.md` and the related contract file |
35
- | Tests, smoke, or regression | `docs/11-REFERENCE/testing-standard.md`, `docs/05-TEST-QA/Regression-SSoT.md` |
36
- | Execution, commit, PR, or release work | `docs/11-REFERENCE/execution-workflow-standard.md`, `docs/11-REFERENCE/repo-governance-standard.md`, `docs/11-REFERENCE/pull-request-standard.md`, `docs/11-REFERENCE/ci-cd-standard.md` |
37
- | Creating or advancing a task | Current task directory under `docs/09-PLANNING/TASKS/`; use `harness new-task` / lifecycle commands when this project has the Harness CLI configured |
31
+ | Architecture or core module change | `coding-agent-harness/governance/standards/engineering-standard.md` |
32
+ | System map, service responsibility, or external system relationship | `coding-agent-harness/context/architecture/README.md`, `coding-agent-harness/context/architecture/service-catalog.md` |
33
+ | Local development, mocks, stubs, or cross-repo debugging | `coding-agent-harness/context/development/README.md`, `coding-agent-harness/context/development/codebase-map.md` |
34
+ | API, event, webhook, SDK, or third-party contract | `coding-agent-harness/context/integrations/README.md` and the related contract file |
35
+ | Tests, smoke, or regression | `coding-agent-harness/governance/standards/testing-standard.md`, `coding-agent-harness/governance/regression/Regression-SSoT.md` |
36
+ | Execution, commit, PR, or release work | `coding-agent-harness/governance/standards/execution-workflow-standard.md`, `coding-agent-harness/governance/standards/repo-governance-standard.md`, `coding-agent-harness/governance/standards/pull-request-standard.md`, `coding-agent-harness/governance/standards/ci-cd-standard.md` |
37
+ | Creating or advancing a task | Current task directory under `coding-agent-harness/planning/tasks/`; use `harness new-task` / lifecycle commands when this project has the Harness CLI configured |
38
38
  | Brief, Execution Strategy, or Visual Map | Current task `brief.md`, `execution_strategy.md`, and `visual_map.md` |
39
- | Long-running task | `docs/11-REFERENCE/long-running-task-standard.md` |
40
- | Reviewer, subagent, or adversarial review | `docs/11-REFERENCE/review-routing-standard.md`, `docs/11-REFERENCE/adversarial-review-standard.md` |
41
- | Team, multi-repo, or staged delivery | `docs/11-REFERENCE/delivery-operating-model-standard.md`, `docs/09-PLANNING/Delivery-SSoT.md` |
42
- | Module-parallel work | `docs/09-PLANNING/Module-Registry.md` and the related module plan |
43
- | Documentation governance or Harness update | `docs/11-REFERENCE/docs-library-standard.md`, `.harness-capabilities.json` |
44
- | External source material intake | `docs/11-REFERENCE/external-source-intake-standard.md` |
45
- | Regression SSoT maintenance | `docs/11-REFERENCE/regression-ssot-governance.md` |
46
- | Walkthrough, closeout, or lessons | `docs/11-REFERENCE/walkthrough-standard.md`, `docs/10-WALKTHROUGH/Closeout-SSoT.md`, current task `lesson_candidates.md`, `docs/01-GOVERNANCE/lessons/` |
47
- | Worktree operations | `docs/11-REFERENCE/worktree-standard.md` |
39
+ | Long-running task | Current task `long-running-task-contract.md` when present |
40
+ | Reviewer, subagent, or adversarial review | Current task `review.md`, `coding-agent-harness/governance/standards/review-routing-standard.md` |
41
+ | Team, multi-repo, or staged delivery | `coding-agent-harness/governance/standards/delivery-operating-model-standard.md`, `coding-agent-harness/planning/Delivery-SSoT.md` |
42
+ | Module-parallel work | `coding-agent-harness/planning/modules/Module-Registry.md` and the related module plan |
43
+ | Documentation governance or Harness update | `coding-agent-harness/governance/standards/docs-library-standard.md`, `coding-agent-harness/harness.yaml` |
44
+ | External source material intake | `coding-agent-harness/governance/standards/external-source-intake-standard.md` |
45
+ | Regression SSoT maintenance | `coding-agent-harness/governance/standards/regression-ssot-governance.md` |
46
+ | Walkthrough, closeout, or lessons | `coding-agent-harness/governance/standards/walkthrough-standard.md`, current task `walkthrough.md`, current task `lesson_candidates.md`, `coding-agent-harness/governance/lessons/` |
47
+ | Worktree operations | `coding-agent-harness/governance/standards/worktree-standard.md` |
48
48
 
49
49
  ## Standard Execution Flow
50
50
 
@@ -73,14 +73,14 @@ Read the smallest context that can answer the task.
73
73
 
74
74
  ## Single Sources Of Truth
75
75
 
76
- - Delivery SSoT: `docs/09-PLANNING/Delivery-SSoT.md`
77
- - Module Registry: `docs/09-PLANNING/Module-Registry.md`
78
- - Regression SSoT: `docs/05-TEST-QA/Regression-SSoT.md`
79
- - Cadence Ledger: `docs/05-TEST-QA/Cadence-Ledger.md`
76
+ - Delivery SSoT: `coding-agent-harness/planning/Delivery-SSoT.md`
77
+ - Module Registry: `coding-agent-harness/planning/modules/Module-Registry.md`
78
+ - Regression SSoT: `coding-agent-harness/governance/regression/Regression-SSoT.md`
79
+ - Cadence Ledger: `coding-agent-harness/governance/regression/Cadence-Ledger.md`
80
80
  - Lesson Candidates: current task `lesson_candidates.md`
81
- - Lesson Detail Docs: `docs/01-GOVERNANCE/lessons/`
82
- - Closeout SSoT: `docs/10-WALKTHROUGH/Closeout-SSoT.md`
83
- - Harness Ledger: `docs/Harness-Ledger.md`
81
+ - Lesson Detail Docs: `coding-agent-harness/governance/lessons/`
82
+ - Generated Closeout Index: `coding-agent-harness/governance/generated/Closeout-Index.md`
83
+ - Harness Ledger: `coding-agent-harness/governance/generated/Harness-Ledger.md`
84
84
 
85
85
  ## Local Commands
86
86
 
@@ -22,8 +22,8 @@ This folder is the system-structure source of truth. It explains what the curren
22
22
  ## Boundary
23
23
 
24
24
  - Put system structure, service responsibility, ownership, and critical flows here.
25
- - Put payload bodies, endpoint parameters, event schemas, and SDK details in `docs/06-INTEGRATIONS/`.
26
- - Put local setup, mocks, stubs, and cross-repo debugging notes in `docs/04-DEVELOPMENT/`.
25
+ - Put payload bodies, endpoint parameters, event schemas, and SDK details in `coding-agent-harness/context/integrations/`.
26
+ - Put local setup, mocks, stubs, and cross-repo debugging notes in `coding-agent-harness/context/development/`.
27
27
 
28
28
  ## Structure Contract
29
29
 
@@ -44,6 +44,6 @@ Each `services/<service-key>.md` answers only three questions:
44
44
 
45
45
  1. What does this service own, including data ownership.
46
46
  2. How does it relate to this repository.
47
- 3. Which `04-DEVELOPMENT` and `06-INTEGRATIONS` docs must an agent read before changing this repository.
47
+ 3. Which `context/development` and `context/integrations` docs must an agent read before changing this repository.
48
48
 
49
- Do not put interface fields, mock instructions, or temporary debugging notes in `03-ARCHITECTURE`. Those belong in `06-INTEGRATIONS` and `04-DEVELOPMENT`.
49
+ Do not put interface fields, mock instructions, or temporary debugging notes in `context/architecture`. Those belong in `context/integrations` and `context/development`.
@@ -12,6 +12,6 @@ Confidence: low
12
12
 
13
13
  ## Boundary Rule
14
14
 
15
- This catalog gives interface summaries and links only. Put payload bodies, auth rules, error codes, and event schemas in `docs/06-INTEGRATIONS/`.
15
+ This catalog gives interface summaries and links only. Put payload bodies, auth rules, error codes, and event schemas in `coding-agent-harness/context/integrations/`.
16
16
 
17
- Each service or microservice gets one row. If the service affects development or task decisions in this repository, add links to `services/<service-key>.md`, `docs/04-DEVELOPMENT/external-context/<service-key>.md`, and the relevant `docs/06-INTEGRATIONS/<contract>.md`.
17
+ Each service or microservice gets one row. If the service affects development or task decisions in this repository, add links to `services/<service-key>.md`, `coding-agent-harness/context/development/external-context/<service-key>.md`, and the relevant `coding-agent-harness/context/integrations/<contract>.md`.
@@ -9,7 +9,7 @@ Confidence: low
9
9
 
10
10
  | Catalog Row | Development Context | Source Pack | Integration Contracts | Last Verified | Confidence |
11
11
  | --- | --- | --- | --- | --- | --- |
12
- | `docs/03-ARCHITECTURE/service-catalog.md` | `docs/04-DEVELOPMENT/external-context/<service-key>.md` | `docs/04-DEVELOPMENT/external-source-packs/<source-key>/README.md` or N/A | `docs/06-INTEGRATIONS/<contract>.md` | unknown | low |
12
+ | `coding-agent-harness/context/architecture/service-catalog.md` | `coding-agent-harness/context/development/external-context/<service-key>.md` | `coding-agent-harness/context/development/external-source-packs/<source-key>/README.md` or N/A | `coding-agent-harness/context/integrations/<contract>.md` | unknown | low |
13
13
 
14
14
  ## Responsibility
15
15
 
@@ -17,8 +17,8 @@ function overview() {
17
17
  function statusStrip() {
18
18
  const status = bundle.status?.checkState?.status || "unknown";
19
19
  const validationMode = bundle.status?.checkState?.validationMode || "validated";
20
- const dataOnly = validationMode === "data-only";
21
- const displayState = dataOnly ? "snapshot" : status;
20
+ const snapshotOnly = validationMode === "data-only" && !isWorkbenchRuntime();
21
+ const displayState = snapshotOnly ? "snapshot" : status;
22
22
  const failures = bundle.status?.checkState?.failures || 0;
23
23
  const warnings = bundle.status?.checkState?.warnings || 0;
24
24
  const tasks = bundle.status?.tasks || [];
@@ -27,8 +27,8 @@ function statusStrip() {
27
27
  const withBrief = tasks.filter((task) => task.briefSource === "standalone").length;
28
28
  return `<section class="status-card-group">
29
29
  <div class="status-primary ${displayState}">
30
- <span>${dataOnly ? t("snapshotStatus") : t("readiness")}</span>
31
- <strong>${dataOnly ? t("snapshot") : label(status)}</strong>
30
+ <span>${snapshotOnly ? t("snapshotStatus") : t("readiness")}</span>
31
+ <strong>${snapshotOnly ? t("snapshot") : label(status)}</strong>
32
32
  <p>${nextActionText()}</p>
33
33
  </div>
34
34
  <div class="metrics-grid">
@@ -49,16 +49,22 @@ function metric(labelText, value) {
49
49
  }
50
50
 
51
51
  function nextActionText() {
52
- if ((bundle.status?.checkState?.validationMode || "validated") === "data-only") return t("snapshotNotValidated");
52
+ const dataOnly = (bundle.status?.checkState?.validationMode || "validated") === "data-only";
53
+ if (dataOnly && !isWorkbenchRuntime()) return t("snapshotNotValidated");
53
54
  const failures = bundle.status?.checkState?.failures || 0;
54
55
  if (failures > 0) return t("resolveBlockers");
55
56
  const missingBriefs = (bundle.status?.tasks || []).filter((task) => task.briefSource !== "standalone").length;
56
57
  if (missingBriefs > 0) return `${missingBriefs} ${t("missingBriefs")}`;
57
58
  const warnings = bundle.status?.checkState?.warnings || 0;
58
59
  if (warnings > 0) return t("reviewAdvice");
60
+ if (dataOnly) return t("workbenchDataOnly");
59
61
  return t("noBlockers");
60
62
  }
61
63
 
64
+ function isWorkbenchRuntime() {
65
+ return window.__HARNESS_WORKBENCH__ === true || state.runtime?.mode === "workbench";
66
+ }
67
+
62
68
  function flowPanel() {
63
69
  const tasks = bundle.status?.tasks || [];
64
70
  const total = tasks.length;
@@ -35,7 +35,7 @@ function moduleCard(module) {
35
35
  const pageCount = Math.ceil(tasks.length / 8) || 1;
36
36
  const visibleTasks = tasks.slice((currentPage - 1) * 8, currentPage * 8);
37
37
 
38
- const brief = findDocument(`TARGET:docs/09-PLANNING/MODULES/${moduleKey}/brief.md`);
38
+ const brief = findDocument(module.briefPath || `TARGET:coding-agent-harness/planning/modules/${moduleKey}/brief.md`);
39
39
 
40
40
  let pagerHtml = "";
41
41
  if (tasks.length > 8) {
@@ -153,8 +153,8 @@ function overview() {
153
153
  function statusStrip() {
154
154
  const status = bundle.status?.checkState?.status || "unknown";
155
155
  const validationMode = bundle.status?.checkState?.validationMode || "validated";
156
- const dataOnly = validationMode === "data-only";
157
- const displayState = dataOnly ? "snapshot" : status;
156
+ const snapshotOnly = validationMode === "data-only" && !isWorkbenchRuntime();
157
+ const displayState = snapshotOnly ? "snapshot" : status;
158
158
  const failures = bundle.status?.checkState?.failures || 0;
159
159
  const warnings = bundle.status?.checkState?.warnings || 0;
160
160
  const tasks = bundle.status?.tasks || [];
@@ -163,8 +163,8 @@ function statusStrip() {
163
163
  const withBrief = tasks.filter((task) => task.briefSource === "standalone").length;
164
164
  return `<section class="status-card-group">
165
165
  <div class="status-primary ${displayState}">
166
- <span>${dataOnly ? t("snapshotStatus") : t("readiness")}</span>
167
- <strong>${dataOnly ? t("snapshot") : label(status)}</strong>
166
+ <span>${snapshotOnly ? t("snapshotStatus") : t("readiness")}</span>
167
+ <strong>${snapshotOnly ? t("snapshot") : label(status)}</strong>
168
168
  <p>${nextActionText()}</p>
169
169
  </div>
170
170
  <div class="metrics-grid">
@@ -185,16 +185,22 @@ function metric(labelText, value) {
185
185
  }
186
186
 
187
187
  function nextActionText() {
188
- if ((bundle.status?.checkState?.validationMode || "validated") === "data-only") return t("snapshotNotValidated");
188
+ const dataOnly = (bundle.status?.checkState?.validationMode || "validated") === "data-only";
189
+ if (dataOnly && !isWorkbenchRuntime()) return t("snapshotNotValidated");
189
190
  const failures = bundle.status?.checkState?.failures || 0;
190
191
  if (failures > 0) return t("resolveBlockers");
191
192
  const missingBriefs = (bundle.status?.tasks || []).filter((task) => task.briefSource !== "standalone").length;
192
193
  if (missingBriefs > 0) return `${missingBriefs} ${t("missingBriefs")}`;
193
194
  const warnings = bundle.status?.checkState?.warnings || 0;
194
195
  if (warnings > 0) return t("reviewAdvice");
196
+ if (dataOnly) return t("workbenchDataOnly");
195
197
  return t("noBlockers");
196
198
  }
197
199
 
200
+ function isWorkbenchRuntime() {
201
+ return window.__HARNESS_WORKBENCH__ === true || state.runtime?.mode === "workbench";
202
+ }
203
+
198
204
  function flowPanel() {
199
205
  const tasks = bundle.status?.tasks || [];
200
206
  const total = tasks.length;
@@ -1114,7 +1120,7 @@ function moduleCard(module) {
1114
1120
  const pageCount = Math.ceil(tasks.length / 8) || 1;
1115
1121
  const visibleTasks = tasks.slice((currentPage - 1) * 8, currentPage * 8);
1116
1122
 
1117
- const brief = findDocument(`TARGET:docs/09-PLANNING/MODULES/${moduleKey}/brief.md`);
1123
+ const brief = findDocument(module.briefPath || `TARGET:coding-agent-harness/planning/modules/${moduleKey}/brief.md`);
1118
1124
 
1119
1125
  let pagerHtml = "";
1120
1126
  if (tasks.length > 8) {
@@ -26,6 +26,7 @@ window.HarnessI18n = {
26
26
  "reviewAdvice": "Continue, but keep adoption advice visible.",
27
27
  "noBlockers": "No blockers in this snapshot.",
28
28
  "snapshotNotValidated": "Snapshot only; run validated status before release decisions.",
29
+ "workbenchDataOnly": "Workbench is active; run validated status before release decisions.",
29
30
  "firstLook": "First look",
30
31
  "projectFlow": "Project Flow",
31
32
  "projectProgress": "Project Progress",
@@ -258,7 +259,7 @@ window.HarnessI18n = {
258
259
  "noReviewTasks": "No tasks are currently in review.",
259
260
  "reviewAlreadyConfirmed": "Human review is already confirmed.",
260
261
  "reviewBlocked": "Close P0-P2 open or release-blocking findings before confirming.",
261
- "reviewWalkthroughRequired": "Add and link a walkthrough in Closeout SSoT before confirming human review.",
262
+ "reviewWalkthroughRequired": "Add the task-local walkthrough.md before confirming human review.",
262
263
  "reviewQueueRequired": "This task is not in the canonical Review queue.",
263
264
  "reviewWorkbenchReady": "Confirm the human review when the evidence and findings are checked.",
264
265
  "reviewConfirmChecklist": "I checked the walkthrough, task review evidence, and open findings.",
@@ -361,6 +362,7 @@ window.HarnessI18n = {
361
362
  "reviewAdvice": "可以继续,但升级建议必须保持可见。",
362
363
  "noBlockers": "当前快照没有阻塞项。",
363
364
  "snapshotNotValidated": "这里只是快照;发布决策前请运行完整验证状态。",
365
+ "workbenchDataOnly": "动态 Workbench 已连接;发布决策前请运行完整验证状态。",
364
366
  "firstLook": "第一眼",
365
367
  "projectFlow": "项目流程图",
366
368
  "projectProgress": "项目进度",
@@ -593,7 +595,7 @@ window.HarnessI18n = {
593
595
  "noReviewTasks": "当前没有处在审查阶段的任务。",
594
596
  "reviewAlreadyConfirmed": "人工审查已经确认。",
595
597
  "reviewBlocked": "先关闭 P0-P2 开放项或阻塞发布的发现,再确认审查。",
596
- "reviewWalkthroughRequired": "先在 Closeout SSoT 中补充并链接 Walkthrough,再确认人工审查。",
598
+ "reviewWalkthroughRequired": "先补齐任务本地 walkthrough.md,再确认人工审查。",
597
599
  "reviewQueueRequired": "这个任务不在 canonical Review 队列中。",
598
600
  "reviewWorkbenchReady": "确认前请核对审查证据与开放发现。",
599
601
  "reviewConfirmChecklist": "我已核对 Walkthrough、任务审查证据和开放发现。",
@@ -12,8 +12,8 @@ This folder is the development input pack. It tells agents how to work in this r
12
12
  ## Boundary
13
13
 
14
14
  - Put local setup, codebase map, external service development summaries, mocks, stubs, and cross-repo debugging here.
15
- - Put long-lived system structure in `docs/03-ARCHITECTURE/`.
16
- - Put concrete API/event/webhook contracts in `docs/06-INTEGRATIONS/`.
15
+ - Put long-lived system structure in `coding-agent-harness/context/architecture/`.
16
+ - Put concrete API/event/webhook contracts in `coding-agent-harness/context/integrations/`.
17
17
 
18
18
  ## Structure Contract
19
19
 
@@ -30,21 +30,21 @@ This folder is the development input pack. It tells agents how to work in this r
30
30
 
31
31
  If this repository depends on multiple microservices, do not write all external knowledge into one large document. For any external service that affects local development or testing, create:
32
32
 
33
- - `docs/03-ARCHITECTURE/services/<service-key>.md`: what the service is and what it owns.
34
- - `docs/04-DEVELOPMENT/external-context/<service-key>.md`: how this repository mocks, stubs, or debugs it.
35
- - `docs/06-INTEGRATIONS/<contract>.md`: concrete API/event/webhook contracts.
33
+ - `coding-agent-harness/context/architecture/services/<service-key>.md`: what the service is and what it owns.
34
+ - `coding-agent-harness/context/development/external-context/<service-key>.md`: how this repository mocks, stubs, or debugs it.
35
+ - `coding-agent-harness/context/integrations/<contract>.md`: concrete API/event/webhook contracts.
36
36
 
37
- `04-DEVELOPMENT` only answers how to work with the external service during development. Do not maintain full system topology here, and do not put payload schemas here.
37
+ `context/development` only answers how to work with the external service during development. Do not maintain full system topology here, and do not put payload schemas here.
38
38
 
39
39
  ## External Source Pack Rule
40
40
 
41
- If an external team provides many documents, screenshots, exported packets, meeting notes, or links, do not place them directly into `03/04/06`. Read `docs/11-REFERENCE/external-source-intake-standard.md` first, then decide whether `external-source-packs/<source-key>/` is needed.
41
+ If an external team provides many documents, screenshots, exported packets, meeting notes, or links, do not place them directly into `context/{architecture,development,integrations}`. Read `coding-agent-harness/governance/standards/external-source-intake-standard.md` first, then decide whether `external-source-packs/<source-key>/` is needed.
42
42
 
43
43
  `external-source-packs/` owns source indexes, digests, and projection status only. Stable conclusions must be written back to:
44
44
 
45
- - `docs/03-ARCHITECTURE/services/<service-key>.md`
46
- - `docs/04-DEVELOPMENT/external-context/<service-key>.md`
47
- - `docs/06-INTEGRATIONS/<contract>.md`
45
+ - `coding-agent-harness/context/architecture/services/<service-key>.md`
46
+ - `coding-agent-harness/context/development/external-context/<service-key>.md`
47
+ - `coding-agent-harness/context/integrations/<contract>.md`
48
48
 
49
49
  ## External Context Index
50
50
 
@@ -8,9 +8,9 @@ Confidence: low
8
8
  ## Debug Flow
9
9
 
10
10
  1. Identify the failing interface or flow.
11
- 2. Read `docs/03-ARCHITECTURE/service-catalog.md` for ownership and upstream/downstream services.
12
- 3. Read the matching `docs/06-INTEGRATIONS/` contract.
13
- 4. Use the matching `docs/04-DEVELOPMENT/external-context/<service-key>.md` notes for mocks and local debugging.
11
+ 2. Read `coding-agent-harness/context/architecture/service-catalog.md` for ownership and upstream/downstream services.
12
+ 3. Read the matching `coding-agent-harness/context/integrations/` contract.
13
+ 4. Use the matching `coding-agent-harness/context/development/external-context/<service-key>.md` notes for mocks and local debugging.
14
14
 
15
15
  ## Known Failure Modes
16
16
 
@@ -9,7 +9,7 @@ Confidence: low
9
9
 
10
10
  | Service Profile | Source Pack | Integration Contracts | Last Verified | Confidence |
11
11
  | --- | --- | --- | --- | --- |
12
- | `docs/03-ARCHITECTURE/services/<service-key>.md` | `docs/04-DEVELOPMENT/external-source-packs/<source-key>/README.md` or N/A | `docs/06-INTEGRATIONS/<contract>.md` | unknown | low |
12
+ | `coding-agent-harness/context/architecture/services/<service-key>.md` | `coding-agent-harness/context/development/external-source-packs/<source-key>/README.md` or N/A | `coding-agent-harness/context/integrations/<contract>.md` | unknown | low |
13
13
 
14
14
  ## Development Use
15
15
 
@@ -30,4 +30,4 @@ Confidence: low
30
30
 
31
31
  ## Placement Rule
32
32
 
33
- This file only covers local development, testing, and debugging context for this external service. Put service responsibility in `03-ARCHITECTURE`; put interface fields and schemas in `06-INTEGRATIONS`.
33
+ This file only covers local development, testing, and debugging context for this external service. Put service responsibility in `context/architecture`; put interface fields and schemas in `context/integrations`.
@@ -7,18 +7,18 @@ Confidence: low
7
7
 
8
8
  ## Purpose
9
9
 
10
- This directory is only for external source intake, indexing, and digests. Stable facts become Harness execution context only after they are projected into `03-ARCHITECTURE`, `04-DEVELOPMENT/external-context`, or `06-INTEGRATIONS`.
10
+ This directory is only for external source intake, indexing, and digests. Stable facts become Harness execution context only after they are projected into `context/architecture`, `coding-agent-harness/context/development/external-context`, or `context/integrations`.
11
11
 
12
- Read `docs/11-REFERENCE/external-source-intake-standard.md` before adding a source pack.
12
+ Read `coding-agent-harness/governance/standards/external-source-intake-standard.md` before adding a source pack.
13
13
 
14
14
  ## Source Packs
15
15
 
16
- | Source Key | External Project / Service | Raw Storage Mode | Source Count | Digest Status | Projected To 03/04/06 | Owner | Last Verified | Confidence |
16
+ | Source Key | External Project / Service | Raw Storage Mode | Source Count | Digest Status | Projected To context/{architecture,development,integrations} | Owner | Last Verified | Confidence |
17
17
  | --- | --- | --- | --- | --- | --- | --- | --- | --- |
18
18
 
19
19
  ## Placement Rule
20
20
 
21
- - If there are fewer than 5 source documents, prefer linking them from `Source Evidence` in `03/04/06`; a source pack may be unnecessary.
21
+ - If there are fewer than 5 source documents, prefer linking them from `Source Evidence` in `context/{architecture,development,integrations}`; a source pack may be unnecessary.
22
22
  - If the material is large, multi-topic, or expected to grow, create `<source-key>/README.md` and `digests/`.
23
23
  - `raw/` may contain only commit-safe material with no secrets, personal data, or customer data.
24
24
  - Non-committable material should be represented by external path, owner, access condition, and digest only.
@@ -11,8 +11,8 @@ This folder owns concrete interface contracts: APIs, events, webhooks, SDK usage
11
11
 
12
12
  ## Boundary
13
13
 
14
- - Put service topology and ownership in `docs/03-ARCHITECTURE/`.
15
- - Put development mocks and debugging notes in `docs/04-DEVELOPMENT/`.
14
+ - Put service topology and ownership in `coding-agent-harness/context/architecture/`.
15
+ - Put development mocks and debugging notes in `coding-agent-harness/context/development/`.
16
16
  - Put endpoint, payload, error, auth, event, webhook, and SDK contracts here.
17
17
 
18
18
  ## Structure Contract
@@ -28,8 +28,8 @@ This folder owns concrete interface contracts: APIs, events, webhooks, SDK usage
28
28
 
29
29
  Every interface contract must be its own file and link back to the related service:
30
30
 
31
- - Service ownership and topology: `docs/03-ARCHITECTURE/service-catalog.md` or `services/<service-key>.md`
32
- - Local mocks, stubs, and debugging: `docs/04-DEVELOPMENT/external-context/<service-key>.md`
31
+ - Service ownership and topology: `coding-agent-harness/context/architecture/service-catalog.md` or `services/<service-key>.md`
32
+ - Local mocks, stubs, and debugging: `coding-agent-harness/context/development/external-context/<service-key>.md`
33
33
  - Concrete payloads, auth, errors, and contract tests: this folder
34
34
 
35
35
  Do not mix multiple services into one large "integration notes" document. Multi-service systems should have multiple contract files; the Contract Index below is the navigation layer for humans and agents.
@@ -13,7 +13,7 @@ API
13
13
 
14
14
  | Service Profile | Development Context | Contract Index | Last Verified | Confidence |
15
15
  | --- | --- | --- | --- | --- |
16
- | `docs/03-ARCHITECTURE/services/<service-key>.md` | `docs/04-DEVELOPMENT/external-context/<service-key>.md` | `docs/06-INTEGRATIONS/README.md` | unknown | low |
16
+ | `coding-agent-harness/context/architecture/services/<service-key>.md` | `coding-agent-harness/context/development/external-context/<service-key>.md` | `coding-agent-harness/context/integrations/README.md` | unknown | low |
17
17
 
18
18
  ## Auth
19
19
 
@@ -39,4 +39,4 @@ API
39
39
 
40
40
  ## Placement Rule
41
41
 
42
- This file describes one API contract only. Put service responsibility in `03-ARCHITECTURE`; put local mock/stub/debug details in `04-DEVELOPMENT`.
42
+ This file describes one API contract only. Put service responsibility in `context/architecture`; put local mock/stub/debug details in `context/development`.