coding-agent-harness 1.0.4 → 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 (279) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/LICENSE +661 -21
  4. package/LICENSE-EXCEPTION.md +37 -0
  5. package/README.md +96 -4
  6. package/README.zh-CN.md +75 -4
  7. package/SKILL.md +52 -51
  8. package/dist/build-dist.mjs +189 -0
  9. package/dist/check-dist-observation.mjs +428 -0
  10. package/dist/check-harness.mjs +489 -0
  11. package/dist/check-import-graph.mjs +511 -0
  12. package/dist/check-runtime-emit.mjs +304 -0
  13. package/dist/check-type-boundaries.mjs +139 -0
  14. package/dist/commands/dashboard-command.mjs +80 -0
  15. package/dist/commands/migration-command.mjs +152 -0
  16. package/dist/commands/preset-command.mjs +91 -0
  17. package/dist/commands/task-command.mjs +324 -0
  18. package/dist/harness.mjs +304 -0
  19. package/dist/lib/capability-registry.mjs +643 -0
  20. package/dist/lib/check-module-parallel.mjs +227 -0
  21. package/dist/lib/check-profiles.mjs +414 -0
  22. package/dist/lib/check-task-contracts.mjs +54 -0
  23. package/dist/lib/core-shared.mjs +254 -0
  24. package/dist/lib/dashboard-data.mjs +608 -0
  25. package/dist/lib/dashboard-workbench.mjs +334 -0
  26. package/dist/lib/dashboard-writer.mjs +200 -0
  27. package/dist/lib/git-status-summary.mjs +45 -0
  28. package/dist/lib/governance-index-generator.mjs +236 -0
  29. package/dist/lib/governance-sync.mjs +617 -0
  30. package/dist/lib/governance-table-boundary.mjs +161 -0
  31. package/{scripts → dist}/lib/harness-core.mjs +3 -0
  32. package/dist/lib/harness-paths.mjs +338 -0
  33. package/dist/lib/lesson-maintenance.mjs +139 -0
  34. package/dist/lib/markdown-utils.mjs +193 -0
  35. package/dist/lib/migration-planner.mjs +439 -0
  36. package/dist/lib/migration-support.mjs +317 -0
  37. package/dist/lib/phase-kind.mjs +46 -0
  38. package/dist/lib/preset-audit-contracts.mjs +40 -0
  39. package/dist/lib/preset-engine.mjs +516 -0
  40. package/dist/lib/preset-registry.mjs +831 -0
  41. package/dist/lib/preset-resource-contracts.mjs +83 -0
  42. package/dist/lib/review-confirm-git-gate.mjs +244 -0
  43. package/dist/lib/status-builder.mjs +87 -0
  44. package/{scripts → dist}/lib/status-dashboard-renderer.mjs +48 -47
  45. package/dist/lib/structure-migration.mjs +404 -0
  46. package/dist/lib/subagent-authorization-audit.mjs +198 -0
  47. package/dist/lib/task-audit-metadata.mjs +376 -0
  48. package/dist/lib/task-audit-migration.mjs +355 -0
  49. package/dist/lib/task-completion-consistency.mjs +29 -0
  50. package/dist/lib/task-index.mjs +133 -0
  51. package/dist/lib/task-lesson-candidates.mjs +239 -0
  52. package/dist/lib/task-lesson-sedimentation.mjs +300 -0
  53. package/dist/lib/task-lifecycle/create-task-helpers.mjs +84 -0
  54. package/dist/lib/task-lifecycle/phase-sync.mjs +82 -0
  55. package/dist/lib/task-lifecycle/review-confirm.mjs +93 -0
  56. package/dist/lib/task-lifecycle/review-gates.mjs +62 -0
  57. package/dist/lib/task-lifecycle/review-submission.mjs +52 -0
  58. package/dist/lib/task-lifecycle/scaffold-provenance.mjs +54 -0
  59. package/dist/lib/task-lifecycle/template-files.mjs +52 -0
  60. package/dist/lib/task-lifecycle/text-utils.mjs +26 -0
  61. package/dist/lib/task-lifecycle.mjs +611 -0
  62. package/dist/lib/task-metadata.mjs +116 -0
  63. package/dist/lib/task-review-model.mjs +474 -0
  64. package/dist/lib/task-scanner.mjs +439 -0
  65. package/dist/lib/task-tombstone-commands.mjs +125 -0
  66. package/dist/postinstall.mjs +14 -0
  67. package/dist/run-built-tests.mjs +84 -0
  68. package/docs-release/README.md +1 -0
  69. package/docs-release/architecture/overview.md +13 -13
  70. package/docs-release/architecture/overview.zh-CN.md +13 -13
  71. package/docs-release/architecture/system-explainer/01-system-overview.md +218 -0
  72. package/docs-release/architecture/system-explainer/02-module-dependency.md +257 -0
  73. package/docs-release/architecture/system-explainer/03-task-lifecycle.md +304 -0
  74. package/docs-release/architecture/system-explainer/04-check-and-governance.md +241 -0
  75. package/docs-release/architecture/system-explainer/05-data-flow.md +276 -0
  76. package/docs-release/architecture/system-explainer/06-preset-and-migration.md +300 -0
  77. package/docs-release/architecture/system-explainer/README.md +67 -0
  78. package/docs-release/architecture/system-explainer/en-US/01-system-overview.md +227 -0
  79. package/docs-release/architecture/system-explainer/en-US/02-module-dependency.md +263 -0
  80. package/docs-release/architecture/system-explainer/en-US/03-task-lifecycle.md +319 -0
  81. package/docs-release/architecture/system-explainer/en-US/04-check-and-governance.md +252 -0
  82. package/docs-release/architecture/system-explainer/en-US/05-data-flow.md +290 -0
  83. package/docs-release/architecture/system-explainer/en-US/06-preset-and-migration.md +320 -0
  84. package/docs-release/architecture/system-explainer/en-US/README.md +70 -0
  85. package/docs-release/guides/agent-installation.en-US.md +22 -15
  86. package/docs-release/guides/agent-installation.md +23 -15
  87. package/docs-release/guides/contributing.md +3 -3
  88. package/docs-release/guides/contributing.zh-CN.md +3 -3
  89. package/docs-release/guides/document-audience-and-surfaces.en-US.md +10 -10
  90. package/docs-release/guides/document-audience-and-surfaces.md +10 -10
  91. package/docs-release/guides/legacy-migration-agent-prompt.md +25 -2
  92. package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +25 -2
  93. package/docs-release/guides/migration-playbook.en-US.md +63 -1
  94. package/docs-release/guides/migration-playbook.md +59 -1
  95. package/docs-release/guides/parent-control-repository-pattern.en-US.md +25 -25
  96. package/docs-release/guides/parent-control-repository-pattern.md +25 -25
  97. package/docs-release/guides/preset-development.md +28 -4
  98. package/docs-release/guides/repository-operating-models.en-US.md +21 -21
  99. package/docs-release/guides/repository-operating-models.md +21 -21
  100. package/docs-release/guides/task-state-machine.en-US.md +35 -18
  101. package/docs-release/guides/task-state-machine.md +35 -18
  102. package/docs-release/guides/typescript-runtime-migration-closeout.md +96 -0
  103. package/examples/minimal-project/AGENTS.md +2 -2
  104. package/examples/minimal-project/coding-agent-harness/harness.yaml +14 -0
  105. package/examples/minimal-project/coding-agent-harness/planning/tasks/demo-task/INDEX.md +60 -0
  106. package/examples/minimal-project/coding-agent-harness/planning/tasks/demo-task/progress.md +11 -0
  107. package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/review.md +1 -1
  108. package/package.json +22 -13
  109. package/presets/legacy-migration/preset.yaml +5 -5
  110. package/presets/legacy-migration/templates/execution_strategy.append.md +1 -1
  111. package/presets/lesson-sedimentation/preset.yaml +3 -3
  112. package/presets/module/preset.yaml +2 -2
  113. package/presets/module/templates/execution_strategy.append.md +1 -1
  114. package/presets/module/templates/task_plan.append.md +3 -3
  115. package/presets/standard-task/preset.yaml +2 -2
  116. package/references/adversarial-review-standard.md +2 -2
  117. package/references/agents-md-pattern.md +14 -14
  118. package/references/cadence-ledger.md +1 -1
  119. package/references/ci-cd-standard.md +1 -1
  120. package/references/delivery-operating-model-standard.md +4 -4
  121. package/references/docs-directory-standard.md +65 -159
  122. package/references/external-source-intake-standard.md +10 -10
  123. package/references/harness-ledger.md +6 -6
  124. package/references/legacy-12-phase-bootstrap.md +2 -2
  125. package/references/lessons-governance.md +15 -15
  126. package/references/long-running-task-standard.md +6 -6
  127. package/references/module-parallel-standard.md +34 -34
  128. package/references/planning-loop.md +6 -6
  129. package/references/project-onboarding-audit.md +4 -4
  130. package/references/regression-system.md +2 -2
  131. package/references/repo-governance-standard.md +4 -4
  132. package/references/review-routing-standard.md +1 -1
  133. package/references/ssot-governance.md +19 -19
  134. package/references/taskr-gap-analysis.md +5 -5
  135. package/references/walkthrough-closeout.md +14 -14
  136. package/references/worktree-parallel.md +3 -3
  137. package/skills/preset-creator/references/complex-task-skeleton/brief.md +11 -0
  138. package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +1 -1
  139. package/skills/preset-creator/references/preset-package-skeleton.md +5 -5
  140. package/templates/AGENTS.md.template +31 -29
  141. package/templates/architecture/README.md +4 -4
  142. package/templates/architecture/service-catalog.md +2 -2
  143. package/templates/architecture/services/service-template.md +1 -1
  144. package/templates/dashboard/assets/app-src/00-state.js +12 -0
  145. package/templates/dashboard/assets/app-src/10-router.js +3 -0
  146. package/templates/dashboard/assets/app-src/20-overview.js +13 -3
  147. package/templates/dashboard/assets/app-src/35-task-detail.js +46 -6
  148. package/templates/dashboard/assets/app-src/40-modules.js +1 -1
  149. package/templates/dashboard/assets/app-src/55-presets.js +375 -0
  150. package/templates/dashboard/assets/app-src/60-shared.js +3 -1
  151. package/templates/dashboard/assets/app-src/90-bindings.js +131 -0
  152. package/templates/dashboard/assets/app.css +583 -0
  153. package/templates/dashboard/assets/app.css.manifest.json +1 -0
  154. package/templates/dashboard/assets/app.js +585 -11
  155. package/templates/dashboard/assets/app.manifest.json +1 -0
  156. package/templates/dashboard/assets/css-src/00-foundation.css +4 -0
  157. package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +62 -0
  158. package/templates/dashboard/assets/css-src/45-presets.css +516 -0
  159. package/templates/dashboard/assets/i18n.js +144 -4
  160. package/templates/development/README.md +10 -10
  161. package/templates/development/cross-repo-debugging.md +3 -3
  162. package/templates/development/external-context/service-template.md +2 -2
  163. package/templates/development/external-source-packs/README.md +4 -4
  164. package/templates/integrations/README.md +4 -4
  165. package/templates/integrations/api-contract.md +2 -2
  166. package/templates/integrations/event-contract.md +2 -2
  167. package/templates/integrations/third-party/vendor-template.md +2 -2
  168. package/templates/integrations/webhook-contract.md +2 -2
  169. package/templates/ledger/Harness-Ledger.md +1 -1
  170. package/templates/planning/INDEX.md +88 -0
  171. package/templates/planning/brief.md +1 -1
  172. package/templates/planning/module_session_prompt.md +2 -1
  173. package/templates/planning/review.md +0 -18
  174. package/templates/planning/task_plan.md +5 -44
  175. package/templates/planning/visual_map.md +13 -9
  176. package/templates/planning/visual_map.simple.md +52 -0
  177. package/templates/planning/walkthrough.md +47 -0
  178. package/templates/reference/docs-library-standard.md +8 -8
  179. package/templates/reference/execution-workflow-standard.md +29 -2
  180. package/templates/reference/external-source-intake-standard.md +15 -15
  181. package/templates/reference/repo-governance-standard.md +1 -1
  182. package/templates/ssot/Module-Registry.md +1 -1
  183. package/templates/walkthrough/walkthrough-template.md +2 -2
  184. package/templates-zh-CN/AGENTS.md.template +31 -29
  185. package/templates-zh-CN/CLAUDE.md.template +1 -1
  186. package/templates-zh-CN/architecture/README.md +4 -4
  187. package/templates-zh-CN/architecture/service-catalog.md +2 -2
  188. package/templates-zh-CN/architecture/services/service-template.md +1 -1
  189. package/templates-zh-CN/development/README.md +10 -10
  190. package/templates-zh-CN/development/cross-repo-debugging.md +3 -3
  191. package/templates-zh-CN/development/external-context/service-template.md +2 -2
  192. package/templates-zh-CN/development/external-source-packs/README.md +4 -4
  193. package/templates-zh-CN/integrations/README.md +4 -4
  194. package/templates-zh-CN/integrations/api-contract.md +2 -2
  195. package/templates-zh-CN/integrations/event-contract.md +2 -2
  196. package/templates-zh-CN/integrations/third-party/vendor-template.md +2 -2
  197. package/templates-zh-CN/integrations/webhook-contract.md +2 -2
  198. package/templates-zh-CN/ledger/Harness-Ledger.md +1 -1
  199. package/templates-zh-CN/lessons/lesson-arch-process-change.md +1 -1
  200. package/templates-zh-CN/lessons/lesson-new-doc.md +3 -3
  201. package/templates-zh-CN/lessons/lesson-ref-change.md +4 -4
  202. package/templates-zh-CN/planning/INDEX.md +87 -0
  203. package/templates-zh-CN/planning/brief.md +1 -1
  204. package/templates-zh-CN/planning/module_session_prompt.md +12 -11
  205. package/templates-zh-CN/planning/review.md +0 -18
  206. package/templates-zh-CN/planning/task_plan.md +3 -63
  207. package/templates-zh-CN/planning/visual_map.md +14 -7
  208. package/templates-zh-CN/planning/visual_map.simple.md +48 -0
  209. package/templates-zh-CN/planning/walkthrough.md +47 -0
  210. package/templates-zh-CN/reference/adversarial-review-standard.md +2 -2
  211. package/templates-zh-CN/reference/delivery-operating-model-standard.md +3 -3
  212. package/templates-zh-CN/reference/docs-library-standard.md +28 -28
  213. package/templates-zh-CN/reference/execution-workflow-standard.md +32 -7
  214. package/templates-zh-CN/reference/external-source-intake-standard.md +16 -16
  215. package/templates-zh-CN/reference/harness-ledger-standard.md +6 -6
  216. package/templates-zh-CN/reference/regression-ssot-governance.md +2 -2
  217. package/templates-zh-CN/reference/repo-governance-standard.md +1 -1
  218. package/templates-zh-CN/reference/review-routing-standard.md +1 -1
  219. package/templates-zh-CN/reference/walkthrough-standard.md +7 -7
  220. package/templates-zh-CN/reference/worktree-standard.md +1 -1
  221. package/templates-zh-CN/regression/Cadence-Ledger.md +2 -2
  222. package/templates-zh-CN/ssot/Delivery-SSoT.md +3 -3
  223. package/templates-zh-CN/ssot/Module-Registry.md +3 -3
  224. package/templates-zh-CN/ssot/Regression-SSoT.md +2 -2
  225. package/templates-zh-CN/walkthrough/walkthrough-template.md +5 -5
  226. package/tsconfig.dist.json +16 -0
  227. package/tsconfig.json +25 -0
  228. package/tsconfig.runtime.json +24 -0
  229. package/examples/minimal-project/.harness-capabilities.json +0 -8
  230. package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +0 -11
  231. package/scripts/check-harness.mjs +0 -508
  232. package/scripts/commands/dashboard-command.mjs +0 -67
  233. package/scripts/commands/migration-command.mjs +0 -96
  234. package/scripts/commands/preset-command.mjs +0 -73
  235. package/scripts/commands/task-command.mjs +0 -327
  236. package/scripts/harness.mjs +0 -287
  237. package/scripts/lib/capability-registry.mjs +0 -591
  238. package/scripts/lib/check-module-parallel.mjs +0 -237
  239. package/scripts/lib/check-profiles.mjs +0 -418
  240. package/scripts/lib/check-task-contracts.mjs +0 -47
  241. package/scripts/lib/core-shared.mjs +0 -196
  242. package/scripts/lib/dashboard-data.mjs +0 -412
  243. package/scripts/lib/dashboard-workbench.mjs +0 -257
  244. package/scripts/lib/dashboard-writer.mjs +0 -198
  245. package/scripts/lib/git-status-summary.mjs +0 -46
  246. package/scripts/lib/governance-index-generator.mjs +0 -174
  247. package/scripts/lib/governance-sync.mjs +0 -514
  248. package/scripts/lib/governance-table-boundary.mjs +0 -175
  249. package/scripts/lib/lesson-maintenance.mjs +0 -152
  250. package/scripts/lib/markdown-utils.mjs +0 -158
  251. package/scripts/lib/migration-planner.mjs +0 -478
  252. package/scripts/lib/migration-support.mjs +0 -312
  253. package/scripts/lib/preset-audit-contracts.mjs +0 -37
  254. package/scripts/lib/preset-engine.mjs +0 -497
  255. package/scripts/lib/preset-registry.mjs +0 -627
  256. package/scripts/lib/preset-resource-contracts.mjs +0 -83
  257. package/scripts/lib/review-confirm-git-gate.mjs +0 -248
  258. package/scripts/lib/subagent-authorization-audit.mjs +0 -196
  259. package/scripts/lib/task-completion-consistency.mjs +0 -16
  260. package/scripts/lib/task-index.mjs +0 -93
  261. package/scripts/lib/task-lesson-candidates.mjs +0 -242
  262. package/scripts/lib/task-lesson-sedimentation.mjs +0 -326
  263. package/scripts/lib/task-lifecycle/review-confirm.mjs +0 -101
  264. package/scripts/lib/task-lifecycle/review-gates.mjs +0 -70
  265. package/scripts/lib/task-lifecycle/text-utils.mjs +0 -24
  266. package/scripts/lib/task-lifecycle.mjs +0 -649
  267. package/scripts/lib/task-review-model.mjs +0 -469
  268. package/scripts/lib/task-scanner.mjs +0 -576
  269. package/scripts/lib/task-tombstone-commands.mjs +0 -140
  270. package/scripts/postinstall.mjs +0 -14
  271. package/templates/walkthrough/Closeout-SSoT.md +0 -43
  272. package/templates-zh-CN/walkthrough/Closeout-SSoT.md +0 -42
  273. /package/examples/minimal-project/{docs → coding-agent-harness/governance/generated}/Harness-Ledger.md +0 -0
  274. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/brief.md +0 -0
  275. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/execution_strategy.md +0 -0
  276. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/findings.md +0 -0
  277. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/lesson_candidates.md +0 -0
  278. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/task_plan.md +0 -0
  279. /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/visual_map.md +0 -0
@@ -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,12 +14,13 @@ 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 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.
23
+ 7. Before the final response, inspect the current task `visual_map.md` gate phase. If the current `Exit Command` has `Actor: agent`, run it or record the blocker. Never run a `human` gate such as `review-confirm` unless the user has explicitly performed or delegated that human confirmation.
23
24
 
24
25
  ## Reading Matrix
25
26
 
@@ -27,28 +28,28 @@ Read the smallest context that can answer the task.
27
28
 
28
29
  | Work Type | Read First |
29
30
  | --- | --- |
30
- | Architecture or core module change | `docs/11-REFERENCE/engineering-standard.md` |
31
- | System map, service responsibility, or external system relationship | `docs/03-ARCHITECTURE/README.md`, `docs/03-ARCHITECTURE/service-catalog.md` |
32
- | Local development, mocks, stubs, or cross-repo debugging | `docs/04-DEVELOPMENT/README.md`, `docs/04-DEVELOPMENT/codebase-map.md` |
33
- | API, event, webhook, SDK, or third-party contract | `docs/06-INTEGRATIONS/README.md` and the related contract file |
34
- | Tests, smoke, or regression | `docs/11-REFERENCE/testing-standard.md`, `docs/05-TEST-QA/Regression-SSoT.md` |
35
- | 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` |
36
- | Creating or advancing a task | Current task directory under `docs/09-PLANNING/TASKS/`; use the Harness CLI if this project has it 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 |
37
38
  | Brief, Execution Strategy, or Visual Map | Current task `brief.md`, `execution_strategy.md`, and `visual_map.md` |
38
- | Long-running task | `docs/11-REFERENCE/long-running-task-standard.md` |
39
- | Reviewer, subagent, or adversarial review | `docs/11-REFERENCE/review-routing-standard.md`, `docs/11-REFERENCE/adversarial-review-standard.md` |
40
- | Team, multi-repo, or staged delivery | `docs/11-REFERENCE/delivery-operating-model-standard.md`, `docs/09-PLANNING/Delivery-SSoT.md` |
41
- | Module-parallel work | `docs/09-PLANNING/Module-Registry.md` and the related module plan |
42
- | Documentation governance or Harness update | `docs/11-REFERENCE/docs-library-standard.md`, `.harness-capabilities.json` |
43
- | External source material intake | `docs/11-REFERENCE/external-source-intake-standard.md` |
44
- | Regression SSoT maintenance | `docs/11-REFERENCE/regression-ssot-governance.md` |
45
- | 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/` |
46
- | 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` |
47
48
 
48
49
  ## Standard Execution Flow
49
50
 
50
51
  1. Confirm the request, scope, and affected files.
51
- 2. For non-trivial work, create or update the task plan before editing code.
52
+ 2. For non-trivial work, create or update the task plan before editing code. Use `harness new-task`; if the CLI is unavailable, keep Task Audit Metadata in the task `INDEX.md` and set `Created By` to `manual-exception` with a concrete reason.
52
53
  3. Assess delegation from the user's goal; users do not need to know or ask for subagents.
53
54
  4. Load only the reference documents required by the Reading Matrix.
54
55
  5. Preserve existing project facts; merge new context instead of overwriting history.
@@ -56,8 +57,9 @@ Read the smallest context that can answer the task.
56
57
  7. Implement only within the approved scope.
57
58
  8. Run the relevant checks and capture evidence in the task records.
58
59
  9. Route required review and close blocking findings.
59
- 10. Write or update the walkthrough and closeout records.
60
- 11. Update SSoT / ledger files that the task actually touched.
60
+ 10. Follow the current `visual_map.md` lifecycle gate and its `Exit Command` / `Actor`.
61
+ 11. Write or update the walkthrough and closeout records.
62
+ 12. Update SSoT / ledger files that the task actually touched.
61
63
 
62
64
  ## Coordination Rules
63
65
 
@@ -71,14 +73,14 @@ Read the smallest context that can answer the task.
71
73
 
72
74
  ## Single Sources Of Truth
73
75
 
74
- - Delivery SSoT: `docs/09-PLANNING/Delivery-SSoT.md`
75
- - Module Registry: `docs/09-PLANNING/Module-Registry.md`
76
- - Regression SSoT: `docs/05-TEST-QA/Regression-SSoT.md`
77
- - 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`
78
80
  - Lesson Candidates: current task `lesson_candidates.md`
79
- - Lesson Detail Docs: `docs/01-GOVERNANCE/lessons/`
80
- - Closeout SSoT: `docs/10-WALKTHROUGH/Closeout-SSoT.md`
81
- - 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`
82
84
 
83
85
  ## Local Commands
84
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
 
@@ -12,6 +12,18 @@ const state = {
12
12
  taskGroupPage: 1,
13
13
  warningFilter: "all",
14
14
  warningPage: 1,
15
+ presetQuery: "",
16
+ presetSourceFilter: "all",
17
+ selectedPresetKey: "",
18
+ selectedPresetId: "",
19
+ presetActionResult: null,
20
+ presetInstallSource: "",
21
+ presetInstallScope: "project",
22
+ presetInstallForce: false,
23
+ presetSeedScope: "project",
24
+ presetSeedForce: false,
25
+ presetUninstallScope: "project",
26
+ presetUninstallConfirm: "",
15
27
  renderMode: "rendered",
16
28
  theme: localStorage.getItem("harness.theme") || "system",
17
29
  taskLayout: localStorage.getItem("harness.taskLayout") || "list",
@@ -29,6 +29,7 @@ function shell() {
29
29
  ${routeLink("#/tasks", t("taskIndex"), "tasks")}
30
30
  ${routeLink("#/review", t("reviewQueue"), "review")}
31
31
  ${routeLink("#/modules", t("moduleView"), "modules")}
32
+ ${routeLink("#/presets", t("presetCatalog"), "presets")}
32
33
  <button data-language-toggle>${locale === "zh" ? "EN" : "中文"}</button>
33
34
  <button data-theme-toggle>${themeLabel()}</button>
34
35
  </div>
@@ -55,6 +56,7 @@ function renderRoute() {
55
56
  if (route.name === "reviewTask") return reviewWorkspace(route);
56
57
  if (route.name === "review") return reviewQueue();
57
58
  if (route.name === "modules") return modulesView(route.id);
59
+ if (route.name === "presets") return presetsView();
58
60
  if (route.name === "tasks") return taskIndex();
59
61
  return overview();
60
62
  }
@@ -66,6 +68,7 @@ function currentRoute() {
66
68
  if (parts[0] === "review" && parts[1]) return { name: "reviewTask", id: parts[1] };
67
69
  if (parts[0] === "review") return { name: "review" };
68
70
  if (parts[0] === "modules") return { name: "modules", id: parts[1] || "" };
71
+ if (parts[0] === "presets") return { name: "presets" };
69
72
  if (parts[0] === "tasks") return { name: "tasks" };
70
73
  return { name: "overview" };
71
74
  }
@@ -16,6 +16,9 @@ function overview() {
16
16
 
17
17
  function statusStrip() {
18
18
  const status = bundle.status?.checkState?.status || "unknown";
19
+ const validationMode = bundle.status?.checkState?.validationMode || "validated";
20
+ const snapshotOnly = validationMode === "data-only" && !isWorkbenchRuntime();
21
+ const displayState = snapshotOnly ? "snapshot" : status;
19
22
  const failures = bundle.status?.checkState?.failures || 0;
20
23
  const warnings = bundle.status?.checkState?.warnings || 0;
21
24
  const tasks = bundle.status?.tasks || [];
@@ -23,9 +26,9 @@ function statusStrip() {
23
26
  const visual = summary.visualMapCoverage || {};
24
27
  const withBrief = tasks.filter((task) => task.briefSource === "standalone").length;
25
28
  return `<section class="status-card-group">
26
- <div class="status-primary ${status}">
27
- <span>${t("readiness")}</span>
28
- <strong>${label(status)}</strong>
29
+ <div class="status-primary ${displayState}">
30
+ <span>${snapshotOnly ? t("snapshotStatus") : t("readiness")}</span>
31
+ <strong>${snapshotOnly ? t("snapshot") : label(status)}</strong>
29
32
  <p>${nextActionText()}</p>
30
33
  </div>
31
34
  <div class="metrics-grid">
@@ -46,15 +49,22 @@ function metric(labelText, value) {
46
49
  }
47
50
 
48
51
  function nextActionText() {
52
+ const dataOnly = (bundle.status?.checkState?.validationMode || "validated") === "data-only";
53
+ if (dataOnly && !isWorkbenchRuntime()) return t("snapshotNotValidated");
49
54
  const failures = bundle.status?.checkState?.failures || 0;
50
55
  if (failures > 0) return t("resolveBlockers");
51
56
  const missingBriefs = (bundle.status?.tasks || []).filter((task) => task.briefSource !== "standalone").length;
52
57
  if (missingBriefs > 0) return `${missingBriefs} ${t("missingBriefs")}`;
53
58
  const warnings = bundle.status?.checkState?.warnings || 0;
54
59
  if (warnings > 0) return t("reviewAdvice");
60
+ if (dataOnly) return t("workbenchDataOnly");
55
61
  return t("noBlockers");
56
62
  }
57
63
 
64
+ function isWorkbenchRuntime() {
65
+ return window.__HARNESS_WORKBENCH__ === true || state.runtime?.mode === "workbench";
66
+ }
67
+
58
68
  function flowPanel() {
59
69
  const tasks = bundle.status?.tasks || [];
60
70
  const total = tasks.length;
@@ -72,17 +72,57 @@ function taskQueueReasonSummary(task) {
72
72
  }
73
73
 
74
74
  function phaseTimeline(task) {
75
+ const knownKinds = new Set(["init", "execution", "gate"]);
76
+ const groups = [
77
+ ["init", "Init"],
78
+ ["execution", "Execution"],
79
+ ["gate", "Gate"],
80
+ ["other", "Other / Invalid"],
81
+ ];
82
+ const phases = task.phases || [];
83
+ const grouped = groups
84
+ .map(([kind, label]) => {
85
+ const items = kind === "other"
86
+ ? phases.filter((phase) => !knownKinds.has(phase.kind || "execution"))
87
+ : phases.filter((phase) => (phase.kind || "execution") === kind);
88
+ if (!items.length) return "";
89
+ return `<div class="phase-kind-group ${escapeAttr(kind)}">
90
+ <h3>${escapeHtml(label)}</h3>
91
+ ${items.map(phaseStep).join("")}
92
+ </div>`;
93
+ })
94
+ .join("");
75
95
  return `<section class="phase-timeline">
76
96
  <h2>${t("phaseTimeline")}</h2>
77
- ${(task.phases || []).map((phase) => `<div class="phase-step ${phase.state}">
78
- <strong>${escapeHtml(phase.id)}</strong>
79
- <span>${phase.completion}%</span>
80
- <p>${escapeHtml(phase.output || phase.blockingRisk || phase.state)}</p>
81
- ${progressBar(phase.completion)}
82
- </div>`).join("") || emptyState(t("noPhaseData"))}
97
+ ${grouped || emptyState(t("noPhaseData"))}
83
98
  </section>`;
84
99
  }
85
100
 
101
+ function phaseStep(phase) {
102
+ const kind = phase.kind || "execution";
103
+ const actor = phase.actor || "agent";
104
+ const knownKind = ["init", "execution", "gate"].includes(kind);
105
+ const kindLabel = knownKind ? escapeHtml(kind) : `<span class="tag warn">${escapeHtml(kind)}</span>`;
106
+ const phaseKindClass = knownKind ? kind : "other";
107
+ return `<div class="phase-step ${escapeAttr(phase.state)} ${escapeAttr(phaseKindClass)}">
108
+ <div class="phase-step-head">
109
+ <strong>${escapeHtml(phase.id)}</strong>
110
+ <span>${kindLabel} · ${phase.completion}%</span>
111
+ </div>
112
+ <p>${escapeHtml(phase.output || phase.blockingRisk || phase.state)}</p>
113
+ ${progressBar(phase.completion)}
114
+ <div class="phase-meta">
115
+ ${phaseMetaTag(actor)}
116
+ ${tag(phase.evidenceStatus || "missing")}
117
+ </div>
118
+ ${phase.exitCommand ? `<code class="phase-exit-command">${escapeHtml(phase.exitCommand)}</code>` : ""}
119
+ </div>`;
120
+ }
121
+
122
+ function phaseMetaTag(value) {
123
+ return `<span class="tag">${escapeHtml(String(value || "unknown").replaceAll("_", " "))}</span>`;
124
+ }
125
+
86
126
  function taskDocSection(task, fileName, title, required) {
87
127
  const doc = taskDocument(task, fileName);
88
128
  if (!doc && !required) return "";
@@ -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) {