@tea-agent/loop-agent 0.13.0-beta.0 → 0.13.0

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 (282) hide show
  1. package/AGENTS.md +157 -155
  2. package/CHANGELOG.md +301 -322
  3. package/README.md +335 -345
  4. package/bin/agent-worker.js +22 -22
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/commands/cursor-prompt.js +6 -6
  7. package/dist/commands/init.js +597 -528
  8. package/dist/commands/loop-benchmark.js +11 -11
  9. package/dist/commands/pi-reuse-benchmark.js +16 -16
  10. package/dist/executors/shell-executor.js +200 -21
  11. package/dist/infrastructure/evaluation/candidate-store.js +5 -1
  12. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  13. package/dist/task/runtime.js +27 -27
  14. package/dist/worker/observe/static/api.js +46 -46
  15. package/dist/worker/observe/static/app.js +150 -150
  16. package/dist/worker/observe/static/constants.js +148 -148
  17. package/dist/worker/observe/static/copy.js +67 -67
  18. package/dist/worker/observe/static/dag-helpers.js +172 -172
  19. package/dist/worker/observe/static/dag-layout.d.ts +31 -31
  20. package/dist/worker/observe/static/dag-layout.js +83 -83
  21. package/dist/worker/observe/static/dag-model.js +72 -72
  22. package/dist/worker/observe/static/dom.js +212 -53
  23. package/dist/worker/observe/static/format-pool.js +67 -67
  24. package/dist/worker/observe/static/format.js +292 -292
  25. package/dist/worker/observe/static/index.html +308 -308
  26. package/dist/worker/observe/static/kpi.js +94 -94
  27. package/dist/worker/observe/static/relations.js +133 -133
  28. package/dist/worker/observe/static/router.js +93 -93
  29. package/dist/worker/observe/static/run-processing.js +148 -148
  30. package/dist/worker/observe/static/shell-chrome.js +68 -68
  31. package/dist/worker/observe/static/state.js +267 -253
  32. package/dist/worker/observe/static/styles.css +1902 -1902
  33. package/dist/worker/observe/static/views/batch.js +227 -227
  34. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  35. package/dist/worker/observe/static/views/dag-inspector.js +627 -607
  36. package/dist/worker/observe/static/views/dag.js +371 -362
  37. package/dist/worker/observe/static/views/dashboard.js +509 -252
  38. package/dist/worker/observe/static/views/failures.js +143 -143
  39. package/dist/worker/observe/static/views/feature.js +492 -492
  40. package/dist/worker/observe/static/views/pool.js +350 -350
  41. package/dist/worker/observe/static/views/run.js +453 -453
  42. package/dist/worker/observe/static/views/session-timeline.js +219 -205
  43. package/dist/worker/observe/static/views/shell.js +7 -7
  44. package/dist/worker/observe/static/views/task.js +314 -314
  45. package/dist/worker/observe/static/views/timeline.js +163 -163
  46. package/dist/workflows/dag/backend-test-case-manifest.js +503 -0
  47. package/dist/workflows/dag/backend-test-execution-contract.js +353 -0
  48. package/dist/workflows/dag/backend-test-result-contract.js +568 -0
  49. package/dist/workflows/dag/canvas-observer.js +275 -275
  50. package/dist/workflows/dag/decision-envelope.js +57 -2
  51. package/dist/workflows/dag/frontend-implementation-contract.js +240 -0
  52. package/dist/workflows/dag/frontend-project-capability.js +309 -0
  53. package/dist/workflows/dag/frontend-repair.js +341 -0
  54. package/dist/workflows/dag/frontend-risk.js +161 -0
  55. package/dist/workflows/dag/frontend-verification-trace.js +190 -0
  56. package/dist/workflows/dag/init-hybrid.js +1020 -125
  57. package/dist/workflows/dag/repair-artifact.js +43 -3
  58. package/dist/workflows/dag/skill-instructions.js +4 -2
  59. package/dist/workflows/dag/types.js +29 -8
  60. package/docs/README.md +105 -104
  61. package/docs/agent-dag-recovery-playbook.md +195 -195
  62. package/docs/agent-dag-runner.md +67 -67
  63. package/docs/architecture/README.md +26 -26
  64. package/docs/architecture/dag-execution.md +140 -140
  65. package/docs/architecture/evolution.md +54 -54
  66. package/docs/architecture/facts-and-state.md +71 -71
  67. package/docs/architecture/runtime-boundaries.md +191 -191
  68. package/docs/architecture/system-overview.md +93 -93
  69. package/docs/architecture/worker-and-feature.md +85 -85
  70. package/docs/cursor-prompt-sidecar.md +36 -36
  71. package/docs/decisions/README.md +18 -18
  72. package/docs/design/README.md +167 -167
  73. package/docs/development-principles.md +73 -73
  74. package/docs/exec-plans/README.md +6 -6
  75. package/docs/exec-plans/active/README.md +1 -4
  76. package/docs/exec-plans/completed/README.md +106 -84
  77. package/docs/feature-workflow.md +414 -389
  78. package/docs/harness-methodology-debugging.md +153 -153
  79. package/docs/harness-methodology-tdd.md +130 -130
  80. package/docs/harness-methodology-verification.md +27 -27
  81. package/docs/init-surface.manifest.json +307 -289
  82. package/docs/loop-agent-harness.md +142 -142
  83. package/docs/production-readiness.md +96 -96
  84. package/docs/progress/README.md +76 -60
  85. package/docs/reports/README.md +150 -108
  86. package/docs/skills/README.md +7 -7
  87. package/docs/skills/vetted-skill-registry.md +29 -29
  88. package/docs/templates/adr.md +60 -60
  89. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  90. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  91. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  92. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  93. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  94. package/docs/templates/agent-dag-report.schema.json +473 -473
  95. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  96. package/docs/templates/agent-dag.base.json +190 -190
  97. package/docs/templates/agent-dag.final-verification.json +185 -185
  98. package/docs/templates/agent-dag.schema.json +411 -411
  99. package/docs/templates/agent-dag.supervised-implementation.json +620 -501
  100. package/docs/templates/backend-test-analysis.schema.json +44 -44
  101. package/docs/templates/backend-test-case-manifest.schema.json +190 -0
  102. package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
  103. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +204 -202
  104. package/docs/templates/backend-test-dag.json +559 -311
  105. package/docs/templates/backend-test-dag.retrospect.prompt.md +139 -125
  106. package/docs/templates/backend-test-dag.review-cases.prompt.md +83 -81
  107. package/docs/templates/backend-test-execution.schema.json +133 -0
  108. package/docs/templates/backend-test-result.schema.json +99 -0
  109. package/docs/templates/branch-merge-report.md +93 -0
  110. package/docs/templates/exec-plan.md +64 -64
  111. package/docs/templates/feature-spec.md +53 -53
  112. package/docs/templates/frontend-design-contract.md +42 -42
  113. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
  114. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
  115. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
  116. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
  117. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
  118. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
  119. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
  120. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
  121. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
  122. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
  123. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
  124. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
  125. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
  126. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
  127. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
  128. package/docs/templates/frontend-eval/metrics.md +138 -0
  129. package/docs/templates/frontend-eval/smoke-targets.md +53 -0
  130. package/docs/templates/frontend-implementation-contract.schema.json +27 -0
  131. package/docs/templates/frontend-task-constraints.md +35 -35
  132. package/docs/templates/frontend-task-requirement.md +70 -70
  133. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -5
  134. package/docs/templates/frontend-test-dag.json +23 -23
  135. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -3
  136. package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -3
  137. package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -3
  138. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -3
  139. package/docs/templates/harness.schema.json +221 -221
  140. package/docs/templates/hybrid-dag.json +188 -188
  141. package/docs/templates/init-evolution-review.md +35 -35
  142. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  143. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  144. package/docs/templates/knowledge-sync-dag.json +178 -178
  145. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  146. package/docs/templates/product-line/AGENTS.md +8 -8
  147. package/docs/templates/product-line/README.md +9 -9
  148. package/docs/templates/product-line/acceptance.yaml +14 -14
  149. package/docs/templates/product-line/closeout.yaml +9 -9
  150. package/docs/templates/product-line/design.md +13 -13
  151. package/docs/templates/product-line/links.md +10 -10
  152. package/docs/templates/product-line/requirement.md +17 -17
  153. package/docs/templates/product-line/task-graph.yaml +15 -15
  154. package/docs/templates/product-line/task.yaml +64 -64
  155. package/docs/templates/product-line/test-plan.md +7 -7
  156. package/docs/templates/production-readiness-checklist.md +57 -57
  157. package/docs/templates/progress-log.md +17 -17
  158. package/docs/templates/project-start-checklist.md +9 -9
  159. package/docs/templates/qa-report.md +48 -48
  160. package/docs/templates/sprint-contract.md +29 -29
  161. package/docs/templates/worker-dogfood-evidence.md +80 -80
  162. package/docs/templates/worker-dogfood-setup.md +68 -68
  163. package/docs/verification-matrix.md +70 -70
  164. package/examples/decision-gate-agent-dag.json +177 -177
  165. package/examples/example-dag.json +46 -46
  166. package/examples/hybrid-loop-agent-dag.json +189 -189
  167. package/harness.json +66 -66
  168. package/package.json +52 -88
  169. package/scripts/check-product-line-docs.sh +29 -29
  170. package/scripts/check-task-pool-root.sh +32 -32
  171. package/scripts/kb-bootstrap-init-skeleton.sh +240 -240
  172. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  173. package/scripts/kb-graph-incremental-prepare.sh +5 -5
  174. package/scripts/kb-graph-materialize.mjs +105 -105
  175. package/scripts/kb-graph-materialize.sh +4 -4
  176. package/scripts/kb-graph-promote.mjs +164 -164
  177. package/scripts/kb-graph-promote.sh +4 -4
  178. package/scripts/kb-query.mjs +554 -554
  179. package/scripts/kb-query.sh +5 -5
  180. package/skills/agent-worker/SKILL.md +39 -39
  181. package/skills/agent-worker/references/agent-worker-operator.md +60 -60
  182. package/skills/ai-engineering-context/SKILL.md +48 -48
  183. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  184. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  185. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  186. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  187. package/skills/analyze-product-dependencies/references/example.md +76 -76
  188. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  189. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  190. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  191. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  192. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  193. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  194. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  195. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  196. package/skills/analyze-product-requirements/SKILL.md +90 -90
  197. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  198. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  199. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  200. package/skills/analyze-product-requirements/references/example.md +86 -86
  201. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  202. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  203. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  204. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  205. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  206. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  207. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  208. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  209. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  210. package/skills/browser-tools/SKILL.md +196 -0
  211. package/skills/browser-tools/browser-content.js +103 -0
  212. package/skills/browser-tools/browser-cookies.js +35 -0
  213. package/skills/browser-tools/browser-eval.js +53 -0
  214. package/skills/browser-tools/browser-hn-scraper.js +108 -0
  215. package/skills/browser-tools/browser-nav.js +44 -0
  216. package/skills/browser-tools/browser-pick.js +162 -0
  217. package/skills/browser-tools/browser-screenshot.js +34 -0
  218. package/skills/browser-tools/browser-start.js +86 -0
  219. package/skills/browser-tools/package-lock.json +2556 -0
  220. package/skills/browser-tools/package.json +19 -0
  221. package/skills/code-review-core/SKILL.md +20 -20
  222. package/skills/codebase-scout/SKILL.md +19 -19
  223. package/skills/frontend-design-review/SKILL.md +66 -66
  224. package/skills/frontend-design-review/references/review-checklist.md +58 -58
  225. package/skills/frontend-implementation/SKILL.md +49 -47
  226. package/skills/frontend-implementation/references/code-standards.md +32 -32
  227. package/skills/frontend-implementation/references/design-spec.md +46 -46
  228. package/skills/frontend-implementation/references/node-contracts.md +27 -76
  229. package/skills/frontend-review/SKILL.md +59 -59
  230. package/skills/frontend-review/references/review-findings.md +47 -47
  231. package/skills/frontend-verification/SKILL.md +53 -53
  232. package/skills/frontend-verification/references/verification-checklist.md +68 -68
  233. package/skills/grill-me/SKILL.md +10 -10
  234. package/skills/grill-with-docs/SKILL.md +88 -88
  235. package/skills/grill-with-docs/adr-format.md +47 -47
  236. package/skills/grill-with-docs/context-format.md +60 -60
  237. package/skills/init-capability-evolution/SKILL.md +70 -70
  238. package/skills/loop-agent/SKILL.md +151 -151
  239. package/skills/loop-agent/references/README.md +67 -67
  240. package/skills/loop-agent/references/command-reference.md +527 -505
  241. package/skills/loop-agent/references/docs-converge.md +126 -126
  242. package/skills/loop-agent/references/harness-policy.md +263 -263
  243. package/skills/loop-agent/references/hybrid-dag.md +243 -238
  244. package/skills/loop-agent/references/learned/README.md +21 -21
  245. package/skills/loop-agent/references/long-running-loop.md +57 -57
  246. package/skills/loop-agent/references/model-routing.md +36 -36
  247. package/skills/loop-agent/references/multi-worktree.md +54 -54
  248. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  249. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  250. package/skills/loop-agent/references/pi-prompt.md +23 -23
  251. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  252. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  253. package/skills/loop-agent/references/task-workflow.md +89 -89
  254. package/skills/loop-agent/references/verification-and-failure-handling.md +141 -139
  255. package/skills/playwright-cli/SKILL.md +420 -420
  256. package/skills/playwright-cli/references/element-attributes.md +23 -23
  257. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  258. package/skills/playwright-cli/references/request-mocking.md +87 -87
  259. package/skills/playwright-cli/references/running-code.md +241 -241
  260. package/skills/playwright-cli/references/session-management.md +225 -225
  261. package/skills/playwright-cli/references/storage-state.md +275 -275
  262. package/skills/playwright-cli/references/test-generation.md +433 -433
  263. package/skills/playwright-cli/references/tracing.md +139 -139
  264. package/skills/playwright-cli/references/video-recording.md +143 -143
  265. package/skills/playwright-cli-case-generator/SKILL.md +74 -74
  266. package/skills/requesting-code-review/SKILL.md +101 -101
  267. package/skills/requesting-code-review/code-reviewer.md +168 -168
  268. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  269. package/skills/systematic-debugging/SKILL.md +296 -296
  270. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  271. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  272. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  273. package/skills/systematic-debugging/find-polluter.sh +63 -63
  274. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  275. package/skills/systematic-debugging/test-academic.md +14 -14
  276. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  277. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  278. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  279. package/skills/test-driven-development/SKILL.md +20 -20
  280. package/skills/using-git-worktrees/SKILL.md +215 -215
  281. package/skills/verification-before-completion/SKILL.md +154 -154
  282. package/skills/webapp-testing/SKILL.md +19 -19
@@ -1,263 +1,263 @@
1
- # Shared loop-agent Harness Policy
2
-
3
- 本文件是跨仓库使用 `.` 的 canonical shared workflow policy。Repo-local harness docs 只应描述 local adapters:runtime 位置、governance root、适用的 verification commands。
4
-
5
- ## Canonical stance
6
-
7
- - **Agent DAG** 是 medium/large、multi-file、architecture-sensitive、public-contract、CI/script 或 harness-runtime 工作的默认 implementation workflow。
8
- - 历史顺序式 `run analyze|plan|spec|implement|verify|auto|loop|continue` workflow 已移除。不要将其作为 fallback path 呈现。
9
- - **Long-running `loop`** 是 Agent DAG 之上的 outer state/evidence layer。它记录 rounds、context compression、signals、canonical refs;不得替代 complex work 的 DAG writeSet review、Decision Gate 或 shell verification。
10
- - **Main session** 负责 orchestrate:选一个 work chunk、准备 source materials、review DAG/writeSet、monitor failures、跑 final verification、hand off。
11
- - **Executors** 实现 bounded work:Pi 是唯一受治理 Agent runtime(read-only planning/review/diagnosis,以及 `toolProfile: "write"` 的 bounded implementation/repair);shell 产出 deterministic verification facts;`cursor-prompt` 仅是 one-shot sidecar。
12
- - **Shell verification 是 completion fact source**。LLM review 或 advisory output 不能替代 command exit codes 与 archived evidence。
13
-
14
- ## Command surface tiers
15
-
16
- | Tier | Default purpose | Commands |
17
- |---|---|---|
18
- | Primary | Normal autonomous implementation | `new-task` -> `dag run-task --profile auto` -> `dag validate --strict-models --strict-governance` -> `run-dag` |
19
- | Operator | Diagnose, recover, close out, inspect facts | `status`, `instructions`, `dag status`, `dag doctor`, `dag report`, `dag closeout-draft`, `dag reconcile-tasks`, `dag final-verification`, `inspect`, `doctor`, `spine audit`, `knowledge curate`, `docs audit`, `handoff check`, `loop-benchmark` |
20
- | Compatibility | Legacy task metadata and feature-study helpers | `goal`, `reference`, `study` |
21
- | Escape hatch | Isolated delegation, one-shot diagnosis or bounded repair | `delegate`, `worktree`, `harvest`, `pi-prompt`, `cursor-prompt` |
22
- | Experimental | Long-running outer task state | `loop init|status|run|record-round|add-signal|closeout` |
23
-
24
- Prompt templates、README snippets、task instructions 应优先呈现 Primary + Operator。Compatibility 与 escape-hatch commands 仍可用,但须携带其 downgrade/fallback 含义。
25
-
26
- ## Entry selection decision tree
27
-
28
- ```text
29
- Is this only status, diagnosis, recovery, or closeout?
30
- yes -> Operator commands.
31
- no -> Does it need recoverable, reviewable, verifiable implementation state?
32
- no -> Use read-only pi-prompt for analysis, or a tiny main-session surgical patch only if obvious and immediately verifiable.
33
- yes -> Agent DAG.
34
- ```
35
-
36
- 在以下任一 signal 适用时用 Agent DAG 而非 broad one-shot execution:
37
-
38
- - loop-agent runtime, DAG schema, run facts, promotion/closeout, scripts/CI, public contract, or shared protocol is touched.
39
- - The change needs multiple files, multiple scouts, review gates, Decision Gate, repair flow, or shell gate.
40
- - `writeSet` is broad, multiple exclusive writers exist, or public interfaces / architecture boundaries change.
41
- - Requirement, architecture, credential, cost, deployment, security, or authority surface is unclear.
42
- - A failure repeats and needs recovery planning rather than blind retry.
43
-
44
- ## Agent DAG path
45
-
46
- Minimum governed path:
47
-
48
- ```bash
49
- loop-agent new-task <task-id> "Task Title" [--repo-root <target-repo>]
50
- # optional but recommended for user PRDs:
51
- # loop-agent import-prd <task-id> --file <path-to-original-prd.md> [--repo-root <target-repo>]
52
- # write derived <target-repo>/.harness/tasks/<task-id>/source/需求.md
53
- # write <target-repo>/.harness/tasks/<task-id>/source/执行约束.md
54
-
55
- loop-agent dag run-task <task-id> \
56
- --profile auto \
57
- --strict-models \
58
- --output <temp-dir>/<task-id>-dag.json \
59
- [--repo-root <target-repo>]
60
-
61
- loop-agent dag validate \
62
- --dag <temp-dir>/<task-id>-dag.json \
63
- --strict-models \
64
- --strict-governance
65
-
66
- loop-agent run-dag \
67
- --dag <temp-dir>/<task-id>-dag.json \
68
- --cwd <target-repo>
69
- ```
70
-
71
- `loop-agent` is the preferred global CLI. For self-hosting loop-agent development, the controller must be an installed npm-published package. Use `npm install -g @tea-agent/loop-agent@latest` for first install or intentional upgrades, then treat the installed version as frozen for the current task and record `npm list -g @tea-agent/loop-agent --depth=0`. Do not repeatedly fetch `npx @latest` inside DAG nodes, and do not use the current working tree's `npm link` or `npm run dev` to control tasks that may edit CLI, DAG runtime, executors, package metadata, or build output. Use `npm run dev -- <args>` only for source debugging and focused CLI development.
72
-
73
- The npm package carries static capability assets: `skills/`, top-level governance docs, `docs/templates/`, `examples/`, `harness.json`, `AGENTS.md`, `README.md`, and `CHANGELOG.md`. Generated or historical task facts under `docs/progress/`, `docs/reports/`, `docs/exec-plans/`, and `docs/decisions/` belong to the target repository; package only their directory README files, not prior run content.
74
-
75
- For arbitrary target repositories, DAG skill instructions must not depend on loop-agent source history being copied into the target repo. Resolve configured, user, or target-local skills when present, then fall back to package-bundled `skills/` as the stable default capability set.
76
-
77
- `<temp-dir>` means the platform-native temp directory. Use native paths for actual `--output`, `--dag`, and `--cwd` values on macOS and Windows; use `/` only for stable repo refs, JSON/Markdown evidence refs, and glob conventions.
78
-
79
- Execution 前 review `dag run-task` JSON / `reviewPacket`:
80
-
81
- - `profileRouting`:requested profile、selected profile/template、routing reasons。
82
- - `governanceProfile`:process、delivery、code-change signals。
83
- - Writer nodes:`writePolicy`、`writeSet`、`allowedPaths`、`forbiddenPaths`、broad entries、forbidden overlaps。
84
- - Shell gates 与 verification commands。
85
- - Decision Gate mode(`record-only` vs `pause-on-human`)。
86
- - 执行前须 narrow 的 placeholder、`**` 或 repo-root writeSet。
87
-
88
- In-flight DAG shell checks 在需要时用 repo active-run override(例如 `HARNESS_ALLOW_ACTIVE_DAG_RUNS=1 bash scripts/check-repo.sh`)。DAG archived 后,再不带 in-flight override 跑 repo check。
89
-
90
- On Windows, run Bash scripts through Git Bash or a configured compatible Bash. Do not require WSL, `/tmp`, `which`, or other POSIX filesystem assumptions in loop-agent CLI behavior.
91
-
92
- ## Task source materials
93
-
94
- 每个 handoff-ready task 包含:
95
-
96
- ```text
97
- .harness/tasks/<task-id>/
98
- task.json
99
- source/
100
- references/ # immutable original PRD / acceptance / design
101
- source-manifest.json # optional hash manifest from import-prd
102
- 需求.md # derived execution contract
103
- 执行约束.md
104
- ```
105
-
106
- `需求.md` 应陈述 objective、scope、non-goals、acceptance criteria,并链接或追溯 `source/references/*` / repo-local specs 或 plans。原始 PRD 优先 `import-prd` 归档;Worker materialize 会复制 `source_docs` 到 `references/`,并把 acceptance_refs 展开为短摘要。冲突时以 `source/references/*` 为准。
107
-
108
- `执行约束.md` 应陈述:
109
-
110
- - allowed paths
111
- - forbidden paths
112
- - 当前 dirty workspace / protected user changes(如有)
113
- - architecture boundaries 与 invariants
114
- - expected verification commands
115
- - acceptance criteria / failure conditions
116
- - 是否允许 DAG fallback,及若已知时的 fallback reason
117
-
118
- 若 `spec`、`plan` 或 DAG generation 后 source materials 变更,implementation 前 regenerate 或 revalidate plan/DAG。
119
-
120
- ## Long-running loop policy
121
-
122
- `loop` 用于 long-running outer task memory:objective/context projection、round records、signals、derived events、verification summaries、closeout draft。它不是 Agent DAG 的 substitute。
123
-
124
- Governed work 的典型 loop path:
125
-
126
- ```bash
127
- loop-agent loop init <task-id>
128
- loop-agent loop run <task-id> --action dag
129
- # review DAG packet / writeSet / shell gates
130
- loop-agent loop run <task-id> --action dag --execute
131
- loop-agent loop run <task-id> --action shell-verify --command "<repo-check>"
132
- loop-agent loop run <task-id> --action pi-review
133
- loop-agent loop run <task-id> --auto --max-rounds 3
134
- loop-agent loop closeout <task-id>
135
- ```
136
-
137
- Loop action rules:
138
-
139
- - `shell-verify` 是 deterministic;exit code 决定 verification record。
140
- - `pi-review` 是 read-only;tools 限于 `read,grep,find,ls`,output 为 structured advisory evidence。Structured JSON 须含 `findingSummary`、`failureCategory`、`nextHypothesis`、`recommendedAction`、`fixScope`、`rootCause`;`recommendedAction` exactly 为 `implement_fix|replan|pause|done`。
141
- - 自动写入只能通过 Pi-only Agent DAG execute;须读 task `allowedPaths` / `forbiddenPaths`,审查 writer `writeSet`,并 follow shell verification 或 review。
142
- - 对 `task.json.complexity = medium | large`,自动 DAG execute additionally 需要:
143
- - previous loop `dag` round,或
144
- - explicit `task.json.dagFallbackReason` 说明为何不能用 DAG。
145
- - `loop run --auto` 默认不 write。Auto DAG execute 需要 `task.json.loopAutoExecutionPolicy="enabled"`,或 `loopAutoExecutionPolicy="approval-required"` 加 pending approval signal;旧 `loopAutoWritePolicy` fail-fast;write guards 仍 fail closed 并 pause。
146
- - `loop closeout` 须报告 workflow path:`dag`、`explicit-fallback`、`missing-dag-evidence` 或 `micro-or-small`。
147
- - 无 DAG evidence 且无 `dagFallbackReason` 的 medium/large closeout 须将其列为 remaining risk。
148
- - `record-round --decision complete` 仅是 loop-state candidate;completion 仍须 shell verification、review verdict、success-criteria coverage。
149
-
150
- ## Supervised DAG convergence
151
-
152
- Supervised DAG convergence 可选且由 task-config 驱动:
153
-
154
- ```json
155
- {
156
- "convergence": {
157
- "enabled": true,
158
- "maxPasses": 3,
159
- "stopOnHardVerifyPass": true,
160
- "pauseOnRegression": true
161
- }
162
- }
163
- ```
164
-
165
- Rules:
166
-
167
- - 默认保持 single repair,除非 `convergence.enabled=true`;`HARNESS_DAG_CONVERGENCE=off` 是 rollback switch。
168
- - Supervised process supervisor 须 emit 首行 `VERDICT:` 与 `REPAIR_ARTIFACT_JSON` fenced block。Repair prompts 应先消费 artifact `failureClass`、`rootCause`、`fixScope`、`invariant`;raw logs 仅在 artifact 允许时为 fallback evidence。
169
- - 在 `maxPasses` 前 retryable `hard-verify-shell` failure 时,preserve current pass evidence 于 `convergence/pass-N/`,reset process-supervisor/process-gate/repair/hard-verify segment 及 blocked downstream nodes,再进入现有 DAG rank execution loop。
170
- - 不要 retry write guards、timeout/spawn/auth failures 或 human-gate failures。
171
- - 出现 conservative regression signals(如 lower shell success count)时 pause 而非 retry。
172
- - `dag report --json` 与 markdown 须 expose `convergence.passHistory`。
173
- - Final completion authority 仍是 full shell verification;quota/focused commands 仅为 intermediate cost controls。
174
-
175
- ## Structured repair, spine audit, and curator gates
176
-
177
- - `shell.repairArtifactGate.fromNodeId` validates the upstream supervisor artifact before repair. Missing/invalid JSON, missing request-revision `fixScope`, or scope outside the downstream repair writer allowedPaths/writeSet fails closed.
178
- - `spine audit <task-id>` is the deterministic minimal spec spine checker for task source, ownership paths, requirement coverage, and final verification commands.
179
- - `dag validate --strict-governance --spine-task <task-id>` may consume the same spine audit as part of strict validation.
180
- - `knowledge curate` reads completed convergence patterns and writes only human-gated proposal Markdown after skill safety preflight.
181
-
182
- ## SePO-lite prompt evolution
183
-
184
- - Learned prompt deltas 是 human-gated proposals;成为 reusable guidance 前须 review。
185
- - Prompt deltas 为 Markdown-only process guidance;不得含 shell commands、credential handling、tool permission expansion 或 completion-authority bypass。
186
- - Accepted learned guidance 位于 `./skill/references/learned/<repo>.md` 或 `default.md`。
187
- - 已 request `loop-agent` 的 DAG implementer prompts 可 inline 最多三个 human-gated learned Markdown sections。
188
- - Learned guidance 为 advisory,永不替代 writeSet governance、Decision Gate policy 或 shell verification。
189
-
190
- ## Sidecar interventions
191
-
192
- `pi-prompt` 与 `cursor-prompt` 是 sidecar interventions,不是 workflow state。
193
-
194
- 用 `pi-prompt` 做短时 read-only planning、log explanation 或 failure diagnosis。Read-only 时传 read-only tools 并写明不 edit files:
195
-
196
- ```bash
197
- loop-agent pi-prompt \
198
- --cwd <repo-root> \
199
- --tools read,grep,find,ls \
200
- --timeout 2400000 \
201
- "Read the task source and diagnose the failure. Do not edit files."
202
- ```
203
-
204
- 用 `cursor-prompt` 做 bounded multi-file diagnosis 或 small repair,prompt 须含:
205
-
206
- - task id
207
- - exact objective
208
- - allowed paths
209
- - forbidden paths
210
- - hard constraints
211
- - expected verification
212
- - instruction to preserve unrelated files
213
-
214
- Sidecar output 为 advisory。若须成为 task evidence,通过 loop-agent run/task artifacts promote 或 summarize;completed DAG 与 one-shot run facts 保持只读。
215
-
216
- ## Model and executor boundaries
217
-
218
- - Agent DAG 用 DAG JSON `executorModels` 加 node `executor` / `complexity`;不要从 repo `harness.json.models` 推断 DAG models。
219
- - DAG `shell` 与 `static` nodes 不用 models。
220
- - `harness.json.models.<step>` 下 historical step models 是 legacy metadata,不是新 DAG work 的 routing。
221
- - `pi-prompt` / `cursor-prompt` models 来自 CLI flags 或 runtime defaults,须 per intervention 选择。
222
- - Pi DAG nodes 默认 read-only planning/review/diagnosis;声明 `toolProfile: "write"` 时是 bounded writers,须有 explicit write scope。
223
- - 受治理 writer 固定为 `implement-pi` / `repair-pi`,须有 explicit write scope;`cursor-prompt` 不进入 DAG schema。
224
- - Shell nodes 产出 deterministic verification facts 与 gates。
225
-
226
- ## Artifacts and facts boundary
227
-
228
- - `.harness/tasks/<task-id>/` 是 task runtime state。
229
- - `.harness/tasks/<task-id>/loop/` 是 loop runtime projection;不替代 task source 或 repo specs。
230
- - `.harness/dag-runs/{active,paused,completed}/<run-id>/` 是 DAG run fact storage。Completed facts 为 read-only。
231
- - `.harness/runs/{active,completed,failed}/<run-id>/` 是 one-shot Pi/Cursor evidence。Completed/failed facts 为 read-only。
232
- - `.harness/task-pool/` 是伴生 CLI `agent-worker`(Worker TaskSpec pipeline)的 runtime state:batch artifacts、Task Pool JSONL/state、晨报和 failure handoffs。默认被忽略,不提交。
233
- - Root `artifacts/` 是 legacy/current-work summary space,不是 DAG read-only scratchpad,也不是新 DAG work 的 default handoff。
234
- - Long-term conclusions 属于 repo governance docs、progress、reports、decisions、tests 或 scripts。
235
-
236
- 除非 task 显式 promote trimmed report 到 repo governance docs,不要提交 `.harness/dag-runs/`、`.harness/runs/`、`.harness/cache/` 或 `.harness/task-pool/` 的 runtime histories。
237
-
238
- ## Baseline, dirty workspace, and verification
239
-
240
- Complex implementation 前:
241
-
242
- 1. Check current directory 与 target repo。
243
- 2. Read repo entrypoints(`README`、`AGENTS`、`harness.json`、governance index)。
244
- 3. Capture affected area 的 minimal baseline verification。
245
- 4. 若 workspace dirty,选一:
246
- - isolated worktree,或
247
- - explicit user confirmation 在当前 workspace 工作并 preserve/possibly include existing changes。
248
- 5. Record known baseline failures,足以区分 pre-existing failures 与 task regressions。
249
-
250
- Verification 应从 target repo verification matrix 选择。Cross-repo documentation refactors 时在 each affected repo 跑 checks。
251
-
252
- ## Handoff requirements
253
-
254
- 每个 task handoff 应回答:
255
-
256
- 1. What changed and why。
257
- 2. 用了哪条 workflow path:DAG、sidecar 或 main-session surgical patch。
258
- 3. 若从 DAG downgrade,explicit reason 与 evidence。
259
- 4. Executors used 及其 boundaries。
260
- 5. Verification commands run 与 results。
261
- 6. DAG / one-shot / loop refs(如有)。
262
- 7. Remaining risks 与 follow-up tasks。
263
- 8. 是否应将 new rules promote 到 docs、tests、scripts 或 shared skill references。
1
+ # Shared loop-agent Harness Policy
2
+
3
+ 本文件是跨仓库使用 `.` 的 canonical shared workflow policy。Repo-local harness docs 只应描述 local adapters:runtime 位置、governance root、适用的 verification commands。
4
+
5
+ ## Canonical stance
6
+
7
+ - **Agent DAG** 是 medium/large、multi-file、architecture-sensitive、public-contract、CI/script 或 harness-runtime 工作的默认 implementation workflow。
8
+ - 历史顺序式 `run analyze|plan|spec|implement|verify|auto|loop|continue` workflow 已移除。不要将其作为 fallback path 呈现。
9
+ - **Long-running `loop`** 是 Agent DAG 之上的 outer state/evidence layer。它记录 rounds、context compression、signals、canonical refs;不得替代 complex work 的 DAG writeSet review、Decision Gate 或 shell verification。
10
+ - **Main session** 负责 orchestrate:选一个 work chunk、准备 source materials、review DAG/writeSet、monitor failures、跑 final verification、hand off。
11
+ - **Executors** 实现 bounded work:Pi 是唯一受治理 Agent runtime(read-only planning/review/diagnosis,以及 `toolProfile: "write"` 的 bounded implementation/repair);shell 产出 deterministic verification facts;`cursor-prompt` 仅是 one-shot sidecar。
12
+ - **Shell verification 是 completion fact source**。LLM review 或 advisory output 不能替代 command exit codes 与 archived evidence。
13
+
14
+ ## Command surface tiers
15
+
16
+ | Tier | Default purpose | Commands |
17
+ |---|---|---|
18
+ | Primary | Normal autonomous implementation | `new-task` -> `dag run-task --profile auto` -> `dag validate --strict-models --strict-governance` -> `run-dag` |
19
+ | Operator | Diagnose, recover, close out, inspect facts | `status`, `instructions`, `dag status`, `dag doctor`, `dag report`, `dag closeout-draft`, `dag reconcile-tasks`, `dag final-verification`, `inspect`, `doctor`, `spine audit`, `knowledge curate`, `docs audit`, `handoff check`, `loop-benchmark` |
20
+ | Compatibility | Legacy task metadata and feature-study helpers | `goal`, `reference`, `study` |
21
+ | Escape hatch | Isolated delegation, one-shot diagnosis or bounded repair | `delegate`, `worktree`, `harvest`, `pi-prompt`, `cursor-prompt` |
22
+ | Experimental | Long-running outer task state | `loop init|status|run|record-round|add-signal|closeout` |
23
+
24
+ Prompt templates、README snippets、task instructions 应优先呈现 Primary + Operator。Compatibility 与 escape-hatch commands 仍可用,但须携带其 downgrade/fallback 含义。
25
+
26
+ ## Entry selection decision tree
27
+
28
+ ```text
29
+ Is this only status, diagnosis, recovery, or closeout?
30
+ yes -> Operator commands.
31
+ no -> Does it need recoverable, reviewable, verifiable implementation state?
32
+ no -> Use read-only pi-prompt for analysis, or a tiny main-session surgical patch only if obvious and immediately verifiable.
33
+ yes -> Agent DAG.
34
+ ```
35
+
36
+ 在以下任一 signal 适用时用 Agent DAG 而非 broad one-shot execution:
37
+
38
+ - loop-agent runtime, DAG schema, run facts, promotion/closeout, scripts/CI, public contract, or shared protocol is touched.
39
+ - The change needs multiple files, multiple scouts, review gates, Decision Gate, repair flow, or shell gate.
40
+ - `writeSet` is broad, multiple exclusive writers exist, or public interfaces / architecture boundaries change.
41
+ - Requirement, architecture, credential, cost, deployment, security, or authority surface is unclear.
42
+ - A failure repeats and needs recovery planning rather than blind retry.
43
+
44
+ ## Agent DAG path
45
+
46
+ Minimum governed path:
47
+
48
+ ```bash
49
+ loop-agent new-task <task-id> "Task Title" [--repo-root <target-repo>]
50
+ # optional but recommended for user PRDs:
51
+ # loop-agent import-prd <task-id> --file <path-to-original-prd.md> [--repo-root <target-repo>]
52
+ # write derived <target-repo>/.harness/tasks/<task-id>/source/需求.md
53
+ # write <target-repo>/.harness/tasks/<task-id>/source/执行约束.md
54
+
55
+ loop-agent dag run-task <task-id> \
56
+ --profile auto \
57
+ --strict-models \
58
+ --output <temp-dir>/<task-id>-dag.json \
59
+ [--repo-root <target-repo>]
60
+
61
+ loop-agent dag validate \
62
+ --dag <temp-dir>/<task-id>-dag.json \
63
+ --strict-models \
64
+ --strict-governance
65
+
66
+ loop-agent run-dag \
67
+ --dag <temp-dir>/<task-id>-dag.json \
68
+ --cwd <target-repo>
69
+ ```
70
+
71
+ `loop-agent` is the preferred global CLI. For self-hosting loop-agent development, the controller must be an installed npm-published package. Use `npm install -g @tea-agent/loop-agent@latest` for first install or intentional upgrades, then treat the installed version as frozen for the current task and record `npm list -g @tea-agent/loop-agent --depth=0`. Do not repeatedly fetch `npx @latest` inside DAG nodes, and do not use the current working tree's `npm link` or `npm run dev` to control tasks that may edit CLI, DAG runtime, executors, package metadata, or build output. Use `npm run dev -- <args>` only for source debugging and focused CLI development.
72
+
73
+ The npm package carries static capability assets: `.agents/skills/`, top-level governance docs, `ai_workspace/loop-agent/templates/`, `examples/`, `harness.json`, `AGENTS.md`, `README.md`, and `CHANGELOG.md`. Generated or historical task facts under `ai_workspace/loop-agent/progress/`, `ai_workspace/loop-agent/reports/`, `ai_workspace/loop-agent/exec-plans/`, and `ai_workspace/loop-agent/decisions/` belong to the target repository; package only their directory README files, not prior run content.
74
+
75
+ For arbitrary target repositories, DAG skill instructions must not depend on loop-agent source history being copied into the target repo. Resolve configured, user, or target-local skills when present, then fall back to package-bundled `.agents/skills/` as the stable default capability set.
76
+
77
+ `<temp-dir>` means the platform-native temp directory. Use native paths for actual `--output`, `--dag`, and `--cwd` values on macOS and Windows; use `/` only for stable repo refs, JSON/Markdown evidence refs, and glob conventions.
78
+
79
+ Execution 前 review `dag run-task` JSON / `reviewPacket`:
80
+
81
+ - `profileRouting`:requested profile、selected profile/template、routing reasons。
82
+ - `governanceProfile`:process、delivery、code-change signals。
83
+ - Writer nodes:`writePolicy`、`writeSet`、`allowedPaths`、`forbiddenPaths`、broad entries、forbidden overlaps。
84
+ - Shell gates 与 verification commands。
85
+ - Decision Gate mode(`record-only` vs `pause-on-human`)。
86
+ - 执行前须 narrow 的 placeholder、`**` 或 repo-root writeSet。
87
+
88
+ In-flight DAG shell checks 在需要时用 repo active-run override(例如 `HARNESS_ALLOW_ACTIVE_DAG_RUNS=1 bash scripts/check-repo.sh`)。DAG archived 后,再不带 in-flight override 跑 repo check。
89
+
90
+ On Windows, run Bash scripts through Git Bash or a configured compatible Bash. Do not require WSL, `/tmp`, `which`, or other POSIX filesystem assumptions in loop-agent CLI behavior.
91
+
92
+ ## Task source materials
93
+
94
+ 每个 handoff-ready task 包含:
95
+
96
+ ```text
97
+ .harness/tasks/<task-id>/
98
+ task.json
99
+ source/
100
+ references/ # immutable original PRD / acceptance / design
101
+ source-manifest.json # optional hash manifest from import-prd
102
+ 需求.md # derived execution contract
103
+ 执行约束.md
104
+ ```
105
+
106
+ `需求.md` 应陈述 objective、scope、non-goals、acceptance criteria,并链接或追溯 `source/references/*` / repo-local specs 或 plans。原始 PRD 优先 `import-prd` 归档;Worker materialize 会复制 `source_docs` 到 `references/`,并把 acceptance_refs 展开为短摘要。冲突时以 `source/references/*` 为准。
107
+
108
+ `执行约束.md` 应陈述:
109
+
110
+ - allowed paths
111
+ - forbidden paths
112
+ - 当前 dirty workspace / protected user changes(如有)
113
+ - architecture boundaries 与 invariants
114
+ - expected verification commands
115
+ - acceptance criteria / failure conditions
116
+ - 是否允许 DAG fallback,及若已知时的 fallback reason
117
+
118
+ 若 `spec`、`plan` 或 DAG generation 后 source materials 变更,implementation 前 regenerate 或 revalidate plan/DAG。
119
+
120
+ ## Long-running loop policy
121
+
122
+ `loop` 用于 long-running outer task memory:objective/context projection、round records、signals、derived events、verification summaries、closeout draft。它不是 Agent DAG 的 substitute。
123
+
124
+ Governed work 的典型 loop path:
125
+
126
+ ```bash
127
+ loop-agent loop init <task-id>
128
+ loop-agent loop run <task-id> --action dag
129
+ # review DAG packet / writeSet / shell gates
130
+ loop-agent loop run <task-id> --action dag --execute
131
+ loop-agent loop run <task-id> --action shell-verify --command "<repo-check>"
132
+ loop-agent loop run <task-id> --action pi-review
133
+ loop-agent loop run <task-id> --auto --max-rounds 3
134
+ loop-agent loop closeout <task-id>
135
+ ```
136
+
137
+ Loop action rules:
138
+
139
+ - `shell-verify` 是 deterministic;exit code 决定 verification record。
140
+ - `pi-review` 是 read-only;tools 限于 `read,grep,find,ls`,output 为 structured advisory evidence。Structured JSON 须含 `findingSummary`、`failureCategory`、`nextHypothesis`、`recommendedAction`、`fixScope`、`rootCause`;`recommendedAction` exactly 为 `implement_fix|replan|pause|done`。
141
+ - 自动写入只能通过 Pi-only Agent DAG execute;须读 task `allowedPaths` / `forbiddenPaths`,审查 writer `writeSet`,并 follow shell verification 或 review。
142
+ - 对 `task.json.complexity = medium | large`,自动 DAG execute additionally 需要:
143
+ - previous loop `dag` round,或
144
+ - explicit `task.json.dagFallbackReason` 说明为何不能用 DAG。
145
+ - `loop run --auto` 默认不 write。Auto DAG execute 需要 `task.json.loopAutoExecutionPolicy="enabled"`,或 `loopAutoExecutionPolicy="approval-required"` 加 pending approval signal;旧 `loopAutoWritePolicy` fail-fast;write guards 仍 fail closed 并 pause。
146
+ - `loop closeout` 须报告 workflow path:`dag`、`explicit-fallback`、`missing-dag-evidence` 或 `micro-or-small`。
147
+ - 无 DAG evidence 且无 `dagFallbackReason` 的 medium/large closeout 须将其列为 remaining risk。
148
+ - `record-round --decision complete` 仅是 loop-state candidate;completion 仍须 shell verification、review verdict、success-criteria coverage。
149
+
150
+ ## Supervised DAG convergence
151
+
152
+ Supervised DAG convergence 可选且由 task-config 驱动:
153
+
154
+ ```json
155
+ {
156
+ "convergence": {
157
+ "enabled": true,
158
+ "maxPasses": 3,
159
+ "stopOnHardVerifyPass": true,
160
+ "pauseOnRegression": true
161
+ }
162
+ }
163
+ ```
164
+
165
+ Rules:
166
+
167
+ - 默认保持 single repair,除非 `convergence.enabled=true`;`HARNESS_DAG_CONVERGENCE=off` 是 rollback switch。
168
+ - Supervised process supervisor 须 emit 首行 `VERDICT:` 与 `REPAIR_ARTIFACT_JSON` fenced block。Repair prompts 应先消费 artifact `failureClass`、`rootCause`、`fixScope`、`invariant`;raw logs 仅在 artifact 允许时为 fallback evidence。
169
+ - 在 `maxPasses` 前 retryable `hard-verify-shell` failure 时,preserve current pass evidence 于 `convergence/pass-N/`,reset process-supervisor/process-gate/repair/hard-verify segment 及 blocked downstream nodes,再进入现有 DAG rank execution loop。
170
+ - 不要 retry write guards、timeout/spawn/auth failures 或 human-gate failures。
171
+ - 出现 conservative regression signals(如 lower shell success count)时 pause 而非 retry。
172
+ - `dag report --json` 与 markdown 须 expose `convergence.passHistory`。
173
+ - Final completion authority 仍是 full shell verification;quota/focused commands 仅为 intermediate cost controls。
174
+
175
+ ## Structured repair, spine audit, and curator gates
176
+
177
+ - `shell.repairArtifactGate.fromNodeId` validates the upstream supervisor artifact before repair. Missing/invalid JSON, missing request-revision `fixScope`, or scope outside the downstream repair writer allowedPaths/writeSet fails closed.
178
+ - `spine audit <task-id>` is the deterministic minimal spec spine checker for task source, ownership paths, requirement coverage, and final verification commands.
179
+ - `dag validate --strict-governance --spine-task <task-id>` may consume the same spine audit as part of strict validation.
180
+ - `knowledge curate` reads completed convergence patterns and writes only human-gated proposal Markdown after skill safety preflight.
181
+
182
+ ## SePO-lite prompt evolution
183
+
184
+ - Learned prompt deltas 是 human-gated proposals;成为 reusable guidance 前须 review。
185
+ - Prompt deltas 为 Markdown-only process guidance;不得含 shell commands、credential handling、tool permission expansion 或 completion-authority bypass。
186
+ - Accepted learned guidance 位于 `./skill/references/learned/<repo>.md` 或 `default.md`。
187
+ - 已 request `loop-agent` 的 DAG implementer prompts 可 inline 最多三个 human-gated learned Markdown sections。
188
+ - Learned guidance 为 advisory,永不替代 writeSet governance、Decision Gate policy 或 shell verification。
189
+
190
+ ## Sidecar interventions
191
+
192
+ `pi-prompt` 与 `cursor-prompt` 是 sidecar interventions,不是 workflow state。
193
+
194
+ 用 `pi-prompt` 做短时 read-only planning、log explanation 或 failure diagnosis。Read-only 时传 read-only tools 并写明不 edit files:
195
+
196
+ ```bash
197
+ loop-agent pi-prompt \
198
+ --cwd <repo-root> \
199
+ --tools read,grep,find,ls \
200
+ --timeout 2400000 \
201
+ "Read the task source and diagnose the failure. Do not edit files."
202
+ ```
203
+
204
+ 用 `cursor-prompt` 做 bounded multi-file diagnosis 或 small repair,prompt 须含:
205
+
206
+ - task id
207
+ - exact objective
208
+ - allowed paths
209
+ - forbidden paths
210
+ - hard constraints
211
+ - expected verification
212
+ - instruction to preserve unrelated files
213
+
214
+ Sidecar output 为 advisory。若须成为 task evidence,通过 loop-agent run/task artifacts promote 或 summarize;completed DAG 与 one-shot run facts 保持只读。
215
+
216
+ ## Model and executor boundaries
217
+
218
+ - Agent DAG 用 DAG JSON `executorModels` 加 node `executor` / `complexity`;不要从 repo `harness.json.models` 推断 DAG models。
219
+ - DAG `shell` 与 `static` nodes 不用 models。
220
+ - `harness.json.models.<step>` 下 historical step models 是 legacy metadata,不是新 DAG work 的 routing。
221
+ - `pi-prompt` / `cursor-prompt` models 来自 CLI flags 或 runtime defaults,须 per intervention 选择。
222
+ - Pi DAG nodes 默认 read-only planning/review/diagnosis;声明 `toolProfile: "write"` 时是 bounded writers,须有 explicit write scope。
223
+ - 受治理 writer 固定为 `implement-pi` / `repair-pi`,须有 explicit write scope;`cursor-prompt` 不进入 DAG schema。
224
+ - Shell nodes 产出 deterministic verification facts 与 gates。
225
+
226
+ ## Artifacts and facts boundary
227
+
228
+ - `.harness/tasks/<task-id>/` 是 task runtime state。
229
+ - `.harness/tasks/<task-id>/loop/` 是 loop runtime projection;不替代 task source 或 repo specs。
230
+ - `.harness/dag-runs/{active,paused,completed}/<run-id>/` 是 DAG run fact storage。Completed facts 为 read-only。
231
+ - `.harness/runs/{active,completed,failed}/<run-id>/` 是 one-shot Pi/Cursor evidence。Completed/failed facts 为 read-only。
232
+ - `.harness/task-pool/` 是伴生 CLI `agent-worker`(Worker TaskSpec pipeline)的 runtime state:batch artifacts、Task Pool JSONL/state、晨报和 failure handoffs。默认被忽略,不提交。
233
+ - Root `artifacts/` 是 legacy/current-work summary space,不是 DAG read-only scratchpad,也不是新 DAG work 的 default handoff。
234
+ - Long-term conclusions 属于 repo governance docs、progress、reports、decisions、tests 或 scripts。
235
+
236
+ 除非 task 显式 promote trimmed report 到 repo governance docs,不要提交 `.harness/dag-runs/`、`.harness/runs/`、`.harness/cache/` 或 `.harness/task-pool/` 的 runtime histories。
237
+
238
+ ## Baseline, dirty workspace, and verification
239
+
240
+ Complex implementation 前:
241
+
242
+ 1. Check current directory 与 target repo。
243
+ 2. Read repo entrypoints(`README`、`AGENTS`、`harness.json`、governance index)。
244
+ 3. Capture affected area 的 minimal baseline verification。
245
+ 4. 若 workspace dirty,选一:
246
+ - isolated worktree,或
247
+ - explicit user confirmation 在当前 workspace 工作并 preserve/possibly include existing changes。
248
+ 5. Record known baseline failures,足以区分 pre-existing failures 与 task regressions。
249
+
250
+ Verification 应从 target repo verification matrix 选择。Cross-repo documentation refactors 时在 each affected repo 跑 checks。
251
+
252
+ ## Handoff requirements
253
+
254
+ 每个 task handoff 应回答:
255
+
256
+ 1. What changed and why。
257
+ 2. 用了哪条 workflow path:DAG、sidecar 或 main-session surgical patch。
258
+ 3. 若从 DAG downgrade,explicit reason 与 evidence。
259
+ 4. Executors used 及其 boundaries。
260
+ 5. Verification commands run 与 results。
261
+ 6. DAG / one-shot / loop refs(如有)。
262
+ 7. Remaining risks 与 follow-up tasks。
263
+ 8. 是否应将 new rules promote 到 docs、tests、scripts 或 shared skill references。