@tea-agent/loop-agent 0.13.0 → 0.15.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 (272) hide show
  1. package/AGENTS.md +157 -157
  2. package/CHANGELOG.md +116 -305
  3. package/README.md +357 -334
  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 +505 -505
  8. package/dist/commands/loop-benchmark.js +11 -11
  9. package/dist/commands/pi-reuse-benchmark.js +16 -16
  10. package/dist/executors/pi-event-serializer.js +33 -11
  11. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  12. package/dist/task/runtime.js +27 -27
  13. package/dist/worker/observe/spec-evidence.js +19 -10
  14. package/dist/worker/observe/static/api.js +46 -46
  15. package/dist/worker/observe/static/app.js +151 -150
  16. package/dist/worker/observe/static/constants.js +156 -148
  17. package/dist/worker/observe/static/copy.js +67 -67
  18. package/dist/worker/observe/static/dag-helpers.js +201 -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 +122 -122
  23. package/dist/worker/observe/static/format-pool.d.ts +71 -0
  24. package/dist/worker/observe/static/format-pool.js +134 -67
  25. package/dist/worker/observe/static/format.js +317 -292
  26. package/dist/worker/observe/static/index.html +350 -308
  27. package/dist/worker/observe/static/kpi.js +100 -94
  28. package/dist/worker/observe/static/markdown-render.js +124 -0
  29. package/dist/worker/observe/static/relations.js +133 -133
  30. package/dist/worker/observe/static/router.js +93 -93
  31. package/dist/worker/observe/static/run-processing.js +148 -148
  32. package/dist/worker/observe/static/shell-chrome.js +74 -68
  33. package/dist/worker/observe/static/state.js +273 -267
  34. package/dist/worker/observe/static/styles.css +2504 -1902
  35. package/dist/worker/observe/static/views/batch.js +227 -227
  36. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  37. package/dist/worker/observe/static/views/dag-inspector.js +530 -627
  38. package/dist/worker/observe/static/views/dag.js +371 -371
  39. package/dist/worker/observe/static/views/dashboard.js +86 -100
  40. package/dist/worker/observe/static/views/failures.js +143 -143
  41. package/dist/worker/observe/static/views/feature.js +492 -492
  42. package/dist/worker/observe/static/views/pool.js +708 -350
  43. package/dist/worker/observe/static/views/run.js +453 -453
  44. package/dist/worker/observe/static/views/session-timeline.js +771 -219
  45. package/dist/worker/observe/static/views/shell.js +7 -7
  46. package/dist/worker/observe/static/views/task.js +314 -314
  47. package/dist/worker/observe/static/views/timeline.js +163 -163
  48. package/dist/workflows/dag/canvas-observer.js +275 -275
  49. package/dist/workflows/dag/init-hybrid.js +27 -11
  50. package/docs/README.md +106 -104
  51. package/docs/architecture/README.md +26 -26
  52. package/docs/architecture/dag-execution.md +140 -140
  53. package/docs/architecture/evolution.md +54 -54
  54. package/docs/architecture/facts-and-state.md +71 -71
  55. package/docs/architecture/runtime-boundaries.md +191 -191
  56. package/docs/architecture/system-overview.md +93 -93
  57. package/docs/architecture/worker-and-feature.md +85 -85
  58. package/docs/harness-methodology-debugging.md +153 -153
  59. package/docs/harness-methodology-tdd.md +130 -130
  60. package/docs/harness-methodology-verification.md +27 -27
  61. package/docs/init-surface.manifest.json +304 -307
  62. package/docs/skills/README.md +7 -7
  63. package/docs/skills/vetted-skill-registry.md +29 -29
  64. package/docs/templates/adr.md +60 -60
  65. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  66. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  67. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  68. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  69. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  70. package/docs/templates/agent-dag-report.schema.json +473 -473
  71. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  72. package/docs/templates/agent-dag.base.json +190 -190
  73. package/docs/templates/agent-dag.final-verification.json +185 -185
  74. package/docs/templates/agent-dag.schema.json +411 -411
  75. package/docs/templates/agent-dag.supervised-implementation.json +620 -620
  76. package/docs/templates/backend-test-analysis.schema.json +44 -44
  77. package/docs/templates/backend-test-case-manifest.schema.json +190 -190
  78. package/docs/templates/backend-test-dag.classify.prompt.md +75 -75
  79. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +204 -204
  80. package/docs/templates/backend-test-dag.json +559 -559
  81. package/docs/templates/backend-test-dag.retrospect.prompt.md +139 -139
  82. package/docs/templates/backend-test-dag.review-cases.prompt.md +83 -83
  83. package/docs/templates/backend-test-execution.schema.json +133 -133
  84. package/docs/templates/backend-test-result.schema.json +99 -99
  85. package/docs/templates/branch-merge-report.md +0 -1
  86. package/docs/templates/exec-plan.md +64 -64
  87. package/docs/templates/feature-spec.md +53 -53
  88. package/docs/templates/frontend-design-contract.md +42 -42
  89. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -17
  90. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -16
  91. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -16
  92. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -16
  93. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -16
  94. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -16
  95. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -21
  96. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -29
  97. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -28
  98. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -28
  99. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -29
  100. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -27
  101. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -28
  102. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -28
  103. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -27
  104. package/docs/templates/frontend-eval/metrics.md +138 -138
  105. package/docs/templates/frontend-eval/smoke-targets.md +53 -53
  106. package/docs/templates/frontend-implementation-contract.schema.json +27 -27
  107. package/docs/templates/frontend-task-constraints.md +35 -35
  108. package/docs/templates/frontend-task-requirement.md +70 -70
  109. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -5
  110. package/docs/templates/frontend-test-dag.json +23 -23
  111. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -3
  112. package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -3
  113. package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -3
  114. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -3
  115. package/docs/templates/harness.schema.json +221 -221
  116. package/docs/templates/hybrid-dag.json +188 -188
  117. package/docs/templates/init-evolution-review.md +35 -35
  118. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  119. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  120. package/docs/templates/knowledge-sync-dag.json +178 -178
  121. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  122. package/docs/templates/product-line/AGENTS.md +8 -8
  123. package/docs/templates/product-line/README.md +9 -9
  124. package/docs/templates/product-line/acceptance.yaml +14 -14
  125. package/docs/templates/product-line/closeout.yaml +9 -9
  126. package/docs/templates/product-line/design.md +13 -13
  127. package/docs/templates/product-line/links.md +10 -10
  128. package/docs/templates/product-line/requirement.md +17 -17
  129. package/docs/templates/product-line/task-graph.yaml +15 -15
  130. package/docs/templates/product-line/task.yaml +64 -64
  131. package/docs/templates/product-line/test-plan.md +7 -7
  132. package/docs/templates/production-readiness-checklist.md +57 -57
  133. package/docs/templates/progress-log.md +17 -17
  134. package/docs/templates/project-start-checklist.md +9 -9
  135. package/docs/templates/qa-report.md +48 -48
  136. package/docs/templates/sprint-contract.md +29 -29
  137. package/docs/templates/worker-dogfood-evidence.md +80 -80
  138. package/docs/templates/worker-dogfood-setup.md +68 -68
  139. package/examples/decision-gate-agent-dag.json +173 -173
  140. package/examples/example-dag.json +46 -46
  141. package/examples/hybrid-loop-agent-dag.json +188 -188
  142. package/harness.json +66 -66
  143. package/package.json +78 -52
  144. package/scripts/kb-bootstrap-init-skeleton.sh +240 -240
  145. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  146. package/scripts/kb-graph-materialize.mjs +105 -105
  147. package/scripts/kb-graph-promote.mjs +164 -164
  148. package/scripts/kb-query.mjs +554 -554
  149. package/skills/agent-worker/SKILL.md +39 -39
  150. package/skills/agent-worker/references/agent-worker-operator.md +60 -60
  151. package/skills/ai-engineering-context/SKILL.md +48 -48
  152. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  153. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  154. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  155. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  156. package/skills/analyze-product-dependencies/references/example.md +76 -76
  157. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  158. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  159. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  160. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  161. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  162. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  163. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  164. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  165. package/skills/analyze-product-requirements/SKILL.md +90 -90
  166. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  167. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  168. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  169. package/skills/analyze-product-requirements/references/example.md +86 -86
  170. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  171. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  172. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  173. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  174. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  175. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  176. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  177. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  178. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  179. package/skills/browser-tools/SKILL.md +196 -196
  180. package/skills/browser-tools/browser-content.js +103 -103
  181. package/skills/browser-tools/browser-cookies.js +35 -35
  182. package/skills/browser-tools/browser-eval.js +53 -53
  183. package/skills/browser-tools/browser-hn-scraper.js +108 -108
  184. package/skills/browser-tools/browser-nav.js +44 -44
  185. package/skills/browser-tools/browser-pick.js +162 -162
  186. package/skills/browser-tools/browser-screenshot.js +34 -34
  187. package/skills/browser-tools/browser-start.js +86 -86
  188. package/skills/browser-tools/package-lock.json +2556 -2556
  189. package/skills/browser-tools/package.json +19 -19
  190. package/skills/code-review-core/SKILL.md +20 -20
  191. package/skills/codebase-scout/SKILL.md +19 -19
  192. package/skills/frontend-design-review/SKILL.md +66 -66
  193. package/skills/frontend-design-review/references/review-checklist.md +40 -58
  194. package/skills/frontend-implementation/SKILL.md +49 -49
  195. package/skills/frontend-implementation/references/code-standards.md +32 -32
  196. package/skills/frontend-implementation/references/design-spec.md +46 -46
  197. package/skills/frontend-implementation/references/node-contracts.md +27 -27
  198. package/skills/frontend-review/SKILL.md +61 -59
  199. package/skills/frontend-review/references/review-findings.md +48 -47
  200. package/skills/frontend-verification/SKILL.md +55 -53
  201. package/skills/frontend-verification/references/verification-checklist.md +59 -68
  202. package/skills/grill-me/SKILL.md +10 -10
  203. package/skills/grill-with-docs/SKILL.md +88 -88
  204. package/skills/grill-with-docs/adr-format.md +47 -47
  205. package/skills/grill-with-docs/context-format.md +60 -60
  206. package/skills/init-capability-evolution/SKILL.md +70 -70
  207. package/skills/loop-agent/SKILL.md +151 -151
  208. package/skills/loop-agent/references/README.md +67 -67
  209. package/skills/loop-agent/references/command-reference.md +527 -527
  210. package/skills/loop-agent/references/docs-converge.md +126 -126
  211. package/skills/loop-agent/references/harness-policy.md +263 -263
  212. package/skills/loop-agent/references/hybrid-dag.md +243 -243
  213. package/skills/loop-agent/references/learned/README.md +21 -21
  214. package/skills/loop-agent/references/long-running-loop.md +57 -57
  215. package/skills/loop-agent/references/model-routing.md +36 -36
  216. package/skills/loop-agent/references/multi-worktree.md +54 -54
  217. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  218. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  219. package/skills/loop-agent/references/pi-prompt.md +23 -23
  220. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  221. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  222. package/skills/loop-agent/references/task-workflow.md +89 -89
  223. package/skills/loop-agent/references/verification-and-failure-handling.md +141 -141
  224. package/skills/playwright-cli/SKILL.md +420 -420
  225. package/skills/playwright-cli/references/element-attributes.md +23 -23
  226. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  227. package/skills/playwright-cli/references/request-mocking.md +87 -87
  228. package/skills/playwright-cli/references/running-code.md +241 -241
  229. package/skills/playwright-cli/references/session-management.md +225 -225
  230. package/skills/playwright-cli/references/storage-state.md +275 -275
  231. package/skills/playwright-cli/references/test-generation.md +433 -433
  232. package/skills/playwright-cli/references/tracing.md +139 -139
  233. package/skills/playwright-cli/references/video-recording.md +143 -143
  234. package/skills/playwright-cli-case-generator/SKILL.md +74 -74
  235. package/skills/requesting-code-review/SKILL.md +101 -101
  236. package/skills/requesting-code-review/code-reviewer.md +168 -168
  237. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  238. package/skills/systematic-debugging/SKILL.md +296 -296
  239. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  240. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  241. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  242. package/skills/systematic-debugging/find-polluter.sh +63 -63
  243. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  244. package/skills/systematic-debugging/test-academic.md +14 -14
  245. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  246. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  247. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  248. package/skills/test-driven-development/SKILL.md +20 -20
  249. package/skills/using-git-worktrees/SKILL.md +215 -215
  250. package/skills/verification-before-completion/SKILL.md +154 -154
  251. package/skills/webapp-testing/SKILL.md +19 -19
  252. package/docs/agent-dag-recovery-playbook.md +0 -195
  253. package/docs/agent-dag-runner.md +0 -67
  254. package/docs/cursor-prompt-sidecar.md +0 -36
  255. package/docs/decisions/README.md +0 -18
  256. package/docs/design/README.md +0 -167
  257. package/docs/development-principles.md +0 -73
  258. package/docs/exec-plans/README.md +0 -6
  259. package/docs/exec-plans/active/README.md +0 -12
  260. package/docs/exec-plans/completed/README.md +0 -107
  261. package/docs/feature-workflow.md +0 -414
  262. package/docs/loop-agent-harness.md +0 -142
  263. package/docs/production-readiness.md +0 -96
  264. package/docs/progress/README.md +0 -80
  265. package/docs/reports/README.md +0 -159
  266. package/docs/verification-matrix.md +0 -70
  267. package/scripts/check-product-line-docs.sh +0 -29
  268. package/scripts/check-task-pool-root.sh +0 -32
  269. package/scripts/kb-graph-incremental-prepare.sh +0 -5
  270. package/scripts/kb-graph-materialize.sh +0 -4
  271. package/scripts/kb-graph-promote.sh +0 -4
  272. package/scripts/kb-query.sh +0 -5
@@ -1,169 +1,169 @@
1
- # Main Orchestrator、Agent DAG 与受控干预
2
-
3
- 协调长时 loop-agent work、判断 main session 是否可 edit、在 Agent DAG / one-shot Cursor / one-shot Pi 间选择,或在不失 auditability 的情况下恢复 in-flight workflow 时使用本文。
4
-
5
- ## 核心立场
6
-
7
- **Agent DAG 优先,main session 编排,executor 实现,shell 验证。**
8
-
9
- `harness.json.workflowPolicy` 的 repo 级 policy 将 Agent DAG 作为 autonomous 与 harness-governed work 的 implementation workflow。历史顺序式 `run ...` workflow 已移除。
10
-
11
- main session 是 decision-maker 与 scheduler,不是默认 implementer。其稀缺 context 应留给 objective 对齐、DAG review、failure triage、executor 选择、verification review 与 handoff。长时 implementation 应委派给 Pi-only Agent DAG node、shell verification 或 worktree delegate;Cursor 仅作为显式 one-shot sidecar。
12
-
13
- 这不是绝对禁止 edit。main-session 手动 edit 仅允许作为有 verification 与 artifact 记录的 bounded surgical patch。
14
-
15
- ## 默认执行模型
16
-
17
- | Actor | 主角色 | 避免 |
18
- |---|---|---|
19
- | Main session | Objective、contract、DAG review、routing、failure triage、approve/reject/resume、handoff | 成为长时 coder |
20
- | Agent DAG runner | 可恢复 multi-node orchestration、rank-parallel execution、write policy、run artifacts | 不更新 DAG/source 的 ad-hoc replanning |
21
- | Cursor one-shot prompt | 有界诊断、人工介入的小修复或 executor 调试 | 作为 DAG executor、自动写入路径或无 path scope 的宽写入 |
22
- | Pi executor / prompt | Fast reasoning、read-only scouting、planning、review、decision-envelope advice | 充当 hidden state source |
23
- | Shell executor | 确定性事实:tests、lint、typecheck、build、governance checks | 智能 repair |
24
- | Human gate | Product、architecture、risk、permission 决策 | 常规 implementation debugging |
25
-
26
- ## 入口选择
27
-
28
- **Agent DAG**(`dag run-task` → review/writeSet → `run-dag`)为默认,用于 autonomous implementation、workflow/harness/docs governance 变更、multi-file work,或任何受益于多 executor、parallel scout、显式 write policy、shell evidence、review gate、Decision Gate 的工作。
29
-
30
- **supervised Agent DAG** 用于 `governanceProfile=supervised`,或工作触及 loop-agent runtime、scripts/CI、schema/public contract、多个 exclusive writer、repair flow 或 high-cost path。
31
-
32
- **one-shot Pi / Cursor prompt** 仅作受控 sidecar intervention,不是 workflow state source。
33
-
34
- **main-session surgical patch** 仅用于 small、obvious、low-risk 的修正,且 delegation 开销会占主导。
35
-
36
- ## Sidecar intervention 协议
37
-
38
- sidecar intervention 是一次性 Pi 或 Cursor prompt,用于 unblock 主 workflow。
39
-
40
- 调用前说明:
41
-
42
- 1. 观察到什么问题。
43
- 2. 为何当前 DAG/step 不应盲目继续。
44
- 3. sidecar 是 read-only 还是可写文件。
45
- 4. 可写工作的精确 allowed/forbidden paths。
46
- 5. 预期输出及记录位置。
47
-
48
- 典型 routing:
49
-
50
- | 情况 | 使用 |
51
- |---|---|
52
- | 需 quick root-cause analysis、plan critique、log 解读 | one-shot Pi prompt,read-only |
53
- | 需 codebase-indexed multi-file 诊断或 bounded patch | one-shot Cursor prompt |
54
- | 需确定性 evidence | shell command / shell DAG node |
55
- | DAG topology、writeSet 或 source contract 错误 | stop/revise DAG 或 source;不要绕开 patch |
56
- | requirement、architecture 或 risk 决策不清 | Decision Gate / human approval |
57
-
58
- 规则:
59
-
60
- - 同一 issue 不应反复 sidecar。若需要,pause 并 replan。
61
- - 可写 sidecar 须在 edit 后跑 targeted verification。
62
- - sidecar 发现须写入 task artifacts、DAG node artifacts、`ai_workspace/loop-agent/progress` 或 report 后再 resume。
63
- - sidecar 输出为 advisory,直到 deterministic command 验证或并入 canonical workflow state。
64
-
65
- ### Agent DAG read-only artifact boundary
66
-
67
- Agent DAG read-only node **不得**写 root `artifacts/`。
68
-
69
- - root `artifacts/修改记录.md` 与 `artifacts/验证结果.md` 是 legacy / explicit-write 摘要;不是 per-node 不可变历史,也不是新工作流默认交付路径。
70
- - Agent DAG node 发现属于 node output 与 runner-owned artifacts,位于 `.harness/dag-runs/<state>/<run-id>/<node-id>/`;Cursor 节点的 `修改记录.md` / `验证结果.md` 位于 `.harness/dag-runs/<state>/<run-id>/artifacts/<node-id>/`。
71
- - 不要把 root `artifacts/` 当作所有 DAG node 的共享 state 交集;`.harness/dag-runs/<run-id>/` 才是 DAG state 交集。
72
- - `./artifacts/**` 不是 DAG artifact 位置;出现该目录通常表示 Cursor prompt 没有收到 DAG-owned artifact dir。
73
- - 若必须更新 root `artifacts/`,用显式 write-capable node 或 narrow scope、verification、recorded rationale 与后续迁移计划的 main-session surgical patch。
74
-
75
- **Linked skill-reference writeSet candidates**:DAG task 变更 workflow 语义(artifact boundary、verdict gate、evidence summary、intervention policy)时,scout node 应提议 `./skill/references/**` 下链接文件为 **writeSet expansion candidates**,而非仅 primary docs。P2 表明 implementer writeSet 遗漏 `hybrid-dag.md` 时,虽 scout 已发现 drift,仍须 post-DAG main-session patch。
76
-
77
- **Bounded main-session patch 须记录**:DAG run 中或之后任何可接受的 surgical patch(scope、变更文件、verification、rationale)应写入 `ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress/` 或 active exec plan — 不可静默应用且无 audit trail。
78
-
79
- **勿把 root `artifacts/**` 当 read-only DAG handoff**(P3/P5):即使 task 文本、scout 或 supervisor 讨论 `artifacts/修改记录.md` / `artifacts/验证结果.md`,read-only DAG node 只能在 node output 返回发现。root `artifacts/` 是 legacy / explicit-write 摘要区,不是 in-flight DAG node 的共享 scratchpad,也不是新工作流默认 handoff。post-DAG 持久 handoff 用 `ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress/`、exec-plan 索引与 `.harness/dag-runs/completed/<run-id>/` node artifacts。
80
-
81
- ### Completed run facts boundary(P3/P5)
82
-
83
- `.harness/dag-runs/completed/<run-id>/` 是 canonical per-run 历史。视为 **只读 evidence**,不是可写 workflow state。
84
-
85
- - **允许**:读 node JSON、`result.summary.md`、decision envelope、shell stdout、随 run directory 归档的 `artifacts/<node-id>/修改记录.md` / `验证结果.md`,用于 review、Decision Gate 或 post-DAG closeout。
86
- - **禁止**:run 归档到 `completed/` 后再追加或改写 side file;mutate 历史 `run.json` / `state.json` / `artifacts/**`;把 completed facts 当作 revision DAG 的 write target。
87
- - **Recovery**:revision DAG 需要 prior evidence 时,在 node output 或 main-session report 中消费 — 不要 in-place patch completed 目录。
88
- - **Promotion**:需要把 completed DAG 或 one-shot run evidence 汇总为 task artifacts 时,用 deterministic `promote-run <task-id> --run-id <run-id>`;需要长期 progress 时再用 `closeout task <task-id>`。这两个命令消费历史 facts,但不修改历史 facts。
89
-
90
- P5 验证:future agent 可从 practice report + completed node artifacts 继续,无需 root `artifacts/**` 摘要。
91
-
92
- ### Agent DAG run 中的 main-session intervention
93
-
94
- main session 编排;不是默认 implementer。in-flight run 期间:
95
-
96
- | Action | 何时 | 记录位置 |
97
- |--------|------|----------|
98
- | Inspect status / node artifacts | 始终允许 | progress 或 sidecar output 中的 notes |
99
- | Sidecar read-only Pi/Cursor prompt | 诊断、plan critique、log 解读 | resume 前的 findings |
100
- | Surgical patch | small、obvious、可 verify;无 active `writeSet` 冲突 | `ai_workspace/loop-agent/reports/` 或 exec plan,含 scope + verification |
101
- | DAG/source repair | topology、writeSet 或 prompt contract 错误 | 编辑平台临时目录中的 DAG 或 plan;re-validate;rerun |
102
- | Approve/reject/resume | Decision Gate `pause-on-human` | 仅 CLI artifacts |
103
- | Post-DAG closeout | promotion、report、plan archive、indexes | `promote-run`、`closeout task`、`ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress`、exec-plan indexes — 非 root `artifacts/`,除非 explicit narrow writeSet |
104
-
105
- **Verdict 与 Decision Gate 提醒**(authoring guidance,非 runtime 变更):
106
-
107
- - `shell.verdictGate` 后的 review/supervisor node:首条非空行须精确为 `VERDICT: pass` 或 `VERDICT: request-revision`(P2/P4)。
108
- - Decision Gate node:恰好一个 `DECISION_ENVELOPE_JSON` block;`audit.runId` 须为 **当前** run id(P4 misbind 教训;P5 fix)。
109
- - Pi MED quota 耗尽:提高 Pi node `complexity` 到 `HIGH`,而非改 `executorModels` 或加 auto-retry(P4)。
110
-
111
- 完整 authoring checklist:`ai_workspace/loop-agent/agent-dag-runner.md` §「Agent DAG authoring checklist」与 `hybrid-dag.md` § Authoring checklist。
112
-
113
- ## Main-session surgical patch policy
114
-
115
- 仅当以下**全部**成立时允许:
116
-
117
- 1. 变更 small 且 obvious,通常 1–3 个文件。
118
- 2. 原因已知;不需要 broad system understanding。
119
- 3. 不改变 product requirement、architecture、public API、data model 或 cross-platform contract。
120
- 4. 不与 active DAG node 的 `writeSet` 或其他 executor 声明职责冲突。
121
- 5. 可用 targeted command 立即 verify。
122
- 6. patch 摘要与 verification 结果记录在 artifacts/progress/report。
123
-
124
- 好例子:
125
-
126
- - validation 指出后修正 DAG JSON path 或 schema typo。
127
- - 修正 doc index link 或 typo。
128
- - revert 明显 out-of-scope 的生成 scratch file。
129
- - LSP 或 typecheck 指向确切 issue 时修单个 import/path 错误。
130
-
131
- 坏例子:
132
-
133
- - 手工按 task `artifacts/实现计划.md` 或根 `artifacts/` 实现功能(应走 DAG plan/implement 节点或 exec-plan)。
134
- - 不委派就修大量 test failure。
135
- - 改 API/contract 语义。
136
- - refactor 子系统。
137
- - 编辑 in-flight exclusive DAG node 拥有的文件。
138
-
139
- 最小协议:
140
-
141
- ```text
142
- 1. 标记 intervention / 必要时 pause。
143
- 2. 检查 status 与 dirty files。
144
- 3. 声明 reason 与 scope。
145
- 4. 做最小 edit。
146
- 5. 跑 targeted verification。
147
- 6. 记录 patch 摘要与 verification evidence。
148
- 7. Resume DAG / rerun failed node / restart verify。
149
- ```
150
-
151
- ## 失败状态机
152
-
153
- ```text
154
- Run DAG workflow
155
- -> success: verify -> handoff
156
- -> node/step failure: diagnose
157
- -> transient/tool issue: one-shot sidecar 或 retry -> verify -> resume
158
- -> bounded implementation issue: Cursor/Pi fix -> verify -> resume
159
- -> DAG design/source issue: stop -> edit DAG/source -> validate/spec -> rerun
160
- -> requirement/architecture issue: Decision Gate 或 human approval -> resume/reject
161
- -> verification failure: bounded fix loop 或 replan,永不宣称完成
162
- ```
163
-
164
- ## 记录要求
165
-
166
- 每次 intervention 须留可恢复 trail:
167
-
168
- - Agent DAG:优先 node artifacts 于 `.harness/dag-runs/<state>/<run-id>/<node-id>/`;长期结论写入 `ai_workspace/loop-agent/progress`、`ai_workspace/loop-agent/reports` 或 `ai_workspace/loop-agent/exec-plans`。read-only node 不得写 root `artifacts/`。
169
- - Repo ai_workspace/loop-agent/skill workflow 变更:以 governance checks 结束,practice 变更时更新本 skill。
1
+ # Main Orchestrator、Agent DAG 与受控干预
2
+
3
+ 协调长时 loop-agent work、判断 main session 是否可 edit、在 Agent DAG / one-shot Cursor / one-shot Pi 间选择,或在不失 auditability 的情况下恢复 in-flight workflow 时使用本文。
4
+
5
+ ## 核心立场
6
+
7
+ **Agent DAG 优先,main session 编排,executor 实现,shell 验证。**
8
+
9
+ `harness.json.workflowPolicy` 的 repo 级 policy 将 Agent DAG 作为 autonomous 与 harness-governed work 的 implementation workflow。历史顺序式 `run ...` workflow 已移除。
10
+
11
+ main session 是 decision-maker 与 scheduler,不是默认 implementer。其稀缺 context 应留给 objective 对齐、DAG review、failure triage、executor 选择、verification review 与 handoff。长时 implementation 应委派给 Pi-only Agent DAG node、shell verification 或 worktree delegate;Cursor 仅作为显式 one-shot sidecar。
12
+
13
+ 这不是绝对禁止 edit。main-session 手动 edit 仅允许作为有 verification 与 artifact 记录的 bounded surgical patch。
14
+
15
+ ## 默认执行模型
16
+
17
+ | Actor | 主角色 | 避免 |
18
+ |---|---|---|
19
+ | Main session | Objective、contract、DAG review、routing、failure triage、approve/reject/resume、handoff | 成为长时 coder |
20
+ | Agent DAG runner | 可恢复 multi-node orchestration、rank-parallel execution、write policy、run artifacts | 不更新 DAG/source 的 ad-hoc replanning |
21
+ | Cursor one-shot prompt | 有界诊断、人工介入的小修复或 executor 调试 | 作为 DAG executor、自动写入路径或无 path scope 的宽写入 |
22
+ | Pi executor / prompt | Fast reasoning、read-only scouting、planning、review、decision-envelope advice | 充当 hidden state source |
23
+ | Shell executor | 确定性事实:tests、lint、typecheck、build、governance checks | 智能 repair |
24
+ | Human gate | Product、architecture、risk、permission 决策 | 常规 implementation debugging |
25
+
26
+ ## 入口选择
27
+
28
+ **Agent DAG**(`dag run-task` → review/writeSet → `run-dag`)为默认,用于 autonomous implementation、workflow/harness/docs governance 变更、multi-file work,或任何受益于多 executor、parallel scout、显式 write policy、shell evidence、review gate、Decision Gate 的工作。
29
+
30
+ **supervised Agent DAG** 用于 `governanceProfile=supervised`,或工作触及 loop-agent runtime、scripts/CI、schema/public contract、多个 exclusive writer、repair flow 或 high-cost path。
31
+
32
+ **one-shot Pi / Cursor prompt** 仅作受控 sidecar intervention,不是 workflow state source。
33
+
34
+ **main-session surgical patch** 仅用于 small、obvious、low-risk 的修正,且 delegation 开销会占主导。
35
+
36
+ ## Sidecar intervention 协议
37
+
38
+ sidecar intervention 是一次性 Pi 或 Cursor prompt,用于 unblock 主 workflow。
39
+
40
+ 调用前说明:
41
+
42
+ 1. 观察到什么问题。
43
+ 2. 为何当前 DAG/step 不应盲目继续。
44
+ 3. sidecar 是 read-only 还是可写文件。
45
+ 4. 可写工作的精确 allowed/forbidden paths。
46
+ 5. 预期输出及记录位置。
47
+
48
+ 典型 routing:
49
+
50
+ | 情况 | 使用 |
51
+ |---|---|
52
+ | 需 quick root-cause analysis、plan critique、log 解读 | one-shot Pi prompt,read-only |
53
+ | 需 codebase-indexed multi-file 诊断或 bounded patch | one-shot Cursor prompt |
54
+ | 需确定性 evidence | shell command / shell DAG node |
55
+ | DAG topology、writeSet 或 source contract 错误 | stop/revise DAG 或 source;不要绕开 patch |
56
+ | requirement、architecture 或 risk 决策不清 | Decision Gate / human approval |
57
+
58
+ 规则:
59
+
60
+ - 同一 issue 不应反复 sidecar。若需要,pause 并 replan。
61
+ - 可写 sidecar 须在 edit 后跑 targeted verification。
62
+ - sidecar 发现须写入 task artifacts、DAG node artifacts、`ai_workspace/loop-agent/progress` 或 report 后再 resume。
63
+ - sidecar 输出为 advisory,直到 deterministic command 验证或并入 canonical workflow state。
64
+
65
+ ### Agent DAG read-only artifact boundary
66
+
67
+ Agent DAG read-only node **不得**写 root `artifacts/`。
68
+
69
+ - root `artifacts/修改记录.md` 与 `artifacts/验证结果.md` 是 legacy / explicit-write 摘要;不是 per-node 不可变历史,也不是新工作流默认交付路径。
70
+ - Agent DAG node 发现属于 node output 与 runner-owned artifacts,位于 `.harness/dag-runs/<state>/<run-id>/<node-id>/`;Cursor 节点的 `修改记录.md` / `验证结果.md` 位于 `.harness/dag-runs/<state>/<run-id>/artifacts/<node-id>/`。
71
+ - 不要把 root `artifacts/` 当作所有 DAG node 的共享 state 交集;`.harness/dag-runs/<run-id>/` 才是 DAG state 交集。
72
+ - `./artifacts/**` 不是 DAG artifact 位置;出现该目录通常表示 Cursor prompt 没有收到 DAG-owned artifact dir。
73
+ - 若必须更新 root `artifacts/`,用显式 write-capable node 或 narrow scope、verification、recorded rationale 与后续迁移计划的 main-session surgical patch。
74
+
75
+ **Linked skill-reference writeSet candidates**:DAG task 变更 workflow 语义(artifact boundary、verdict gate、evidence summary、intervention policy)时,scout node 应提议 `./skill/references/**` 下链接文件为 **writeSet expansion candidates**,而非仅 primary docs。P2 表明 implementer writeSet 遗漏 `hybrid-dag.md` 时,虽 scout 已发现 drift,仍须 post-DAG main-session patch。
76
+
77
+ **Bounded main-session patch 须记录**:DAG run 中或之后任何可接受的 surgical patch(scope、变更文件、verification、rationale)应写入 `ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress/` 或 active exec plan — 不可静默应用且无 audit trail。
78
+
79
+ **勿把 root `artifacts/**` 当 read-only DAG handoff**(P3/P5):即使 task 文本、scout 或 supervisor 讨论 `artifacts/修改记录.md` / `artifacts/验证结果.md`,read-only DAG node 只能在 node output 返回发现。root `artifacts/` 是 legacy / explicit-write 摘要区,不是 in-flight DAG node 的共享 scratchpad,也不是新工作流默认 handoff。post-DAG 持久 handoff 用 `ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress/`、exec-plan 索引与 `.harness/dag-runs/completed/<run-id>/` node artifacts。
80
+
81
+ ### Completed run facts boundary(P3/P5)
82
+
83
+ `.harness/dag-runs/completed/<run-id>/` 是 canonical per-run 历史。视为 **只读 evidence**,不是可写 workflow state。
84
+
85
+ - **允许**:读 node JSON、`result.summary.md`、decision envelope、shell stdout、随 run directory 归档的 `artifacts/<node-id>/修改记录.md` / `验证结果.md`,用于 review、Decision Gate 或 post-DAG closeout。
86
+ - **禁止**:run 归档到 `completed/` 后再追加或改写 side file;mutate 历史 `run.json` / `state.json` / `artifacts/**`;把 completed facts 当作 revision DAG 的 write target。
87
+ - **Recovery**:revision DAG 需要 prior evidence 时,在 node output 或 main-session report 中消费 — 不要 in-place patch completed 目录。
88
+ - **Promotion**:需要把 completed DAG 或 one-shot run evidence 汇总为 task artifacts 时,用 deterministic `promote-run <task-id> --run-id <run-id>`;需要长期 progress 时再用 `closeout task <task-id>`。这两个命令消费历史 facts,但不修改历史 facts。
89
+
90
+ P5 验证:future agent 可从 practice report + completed node artifacts 继续,无需 root `artifacts/**` 摘要。
91
+
92
+ ### Agent DAG run 中的 main-session intervention
93
+
94
+ main session 编排;不是默认 implementer。in-flight run 期间:
95
+
96
+ | Action | 何时 | 记录位置 |
97
+ |--------|------|----------|
98
+ | Inspect status / node artifacts | 始终允许 | progress 或 sidecar output 中的 notes |
99
+ | Sidecar read-only Pi/Cursor prompt | 诊断、plan critique、log 解读 | resume 前的 findings |
100
+ | Surgical patch | small、obvious、可 verify;无 active `writeSet` 冲突 | `ai_workspace/loop-agent/reports/` 或 exec plan,含 scope + verification |
101
+ | DAG/source repair | topology、writeSet 或 prompt contract 错误 | 编辑平台临时目录中的 DAG 或 plan;re-validate;rerun |
102
+ | Approve/reject/resume | Decision Gate `pause-on-human` | 仅 CLI artifacts |
103
+ | Post-DAG closeout | promotion、report、plan archive、indexes | `promote-run`、`closeout task`、`ai_workspace/loop-agent/reports/`、`ai_workspace/loop-agent/progress`、exec-plan indexes — 非 root `artifacts/`,除非 explicit narrow writeSet |
104
+
105
+ **Verdict 与 Decision Gate 提醒**(authoring guidance,非 runtime 变更):
106
+
107
+ - `shell.verdictGate` 后的 review/supervisor node:首条非空行须精确为 `VERDICT: pass` 或 `VERDICT: request-revision`(P2/P4)。
108
+ - Decision Gate node:恰好一个 `DECISION_ENVELOPE_JSON` block;`audit.runId` 须为 **当前** run id(P4 misbind 教训;P5 fix)。
109
+ - Pi MED quota 耗尽:提高 Pi node `complexity` 到 `HIGH`,而非改 `executorModels` 或加 auto-retry(P4)。
110
+
111
+ 完整 authoring checklist:`ai_workspace/loop-agent/agent-dag-runner.md` §「Agent DAG authoring checklist」与 `hybrid-dag.md` § Authoring checklist。
112
+
113
+ ## Main-session surgical patch policy
114
+
115
+ 仅当以下**全部**成立时允许:
116
+
117
+ 1. 变更 small 且 obvious,通常 1–3 个文件。
118
+ 2. 原因已知;不需要 broad system understanding。
119
+ 3. 不改变 product requirement、architecture、public API、data model 或 cross-platform contract。
120
+ 4. 不与 active DAG node 的 `writeSet` 或其他 executor 声明职责冲突。
121
+ 5. 可用 targeted command 立即 verify。
122
+ 6. patch 摘要与 verification 结果记录在 artifacts/progress/report。
123
+
124
+ 好例子:
125
+
126
+ - validation 指出后修正 DAG JSON path 或 schema typo。
127
+ - 修正 doc index link 或 typo。
128
+ - revert 明显 out-of-scope 的生成 scratch file。
129
+ - LSP 或 typecheck 指向确切 issue 时修单个 import/path 错误。
130
+
131
+ 坏例子:
132
+
133
+ - 手工按 task `artifacts/实现计划.md` 或根 `artifacts/` 实现功能(应走 DAG plan/implement 节点或 exec-plan)。
134
+ - 不委派就修大量 test failure。
135
+ - 改 API/contract 语义。
136
+ - refactor 子系统。
137
+ - 编辑 in-flight exclusive DAG node 拥有的文件。
138
+
139
+ 最小协议:
140
+
141
+ ```text
142
+ 1. 标记 intervention / 必要时 pause。
143
+ 2. 检查 status 与 dirty files。
144
+ 3. 声明 reason 与 scope。
145
+ 4. 做最小 edit。
146
+ 5. 跑 targeted verification。
147
+ 6. 记录 patch 摘要与 verification evidence。
148
+ 7. Resume DAG / rerun failed node / restart verify。
149
+ ```
150
+
151
+ ## 失败状态机
152
+
153
+ ```text
154
+ Run DAG workflow
155
+ -> success: verify -> handoff
156
+ -> node/step failure: diagnose
157
+ -> transient/tool issue: one-shot sidecar 或 retry -> verify -> resume
158
+ -> bounded implementation issue: Cursor/Pi fix -> verify -> resume
159
+ -> DAG design/source issue: stop -> edit DAG/source -> validate/spec -> rerun
160
+ -> requirement/architecture issue: Decision Gate 或 human approval -> resume/reject
161
+ -> verification failure: bounded fix loop 或 replan,永不宣称完成
162
+ ```
163
+
164
+ ## 记录要求
165
+
166
+ 每次 intervention 须留可恢复 trail:
167
+
168
+ - Agent DAG:优先 node artifacts 于 `.harness/dag-runs/<state>/<run-id>/<node-id>/`;长期结论写入 `ai_workspace/loop-agent/progress`、`ai_workspace/loop-agent/reports` 或 `ai_workspace/loop-agent/exec-plans`。read-only node 不得写 root `artifacts/`。
169
+ - Repo ai_workspace/loop-agent/skill workflow 变更:以 governance checks 结束,practice 变更时更新本 skill。
@@ -1,23 +1,23 @@
1
- # One-shot Pi SDK Prompt Helper(`pi-prompt`)
2
-
3
- 短时 Pi SDK task、不需要完整 `.harness/tasks/<id>` workflow 时使用本文。替代 ad-hoc 临时代码脚本导入 `executeSingleSdkAttempt` 的做法。
4
-
5
- ### One-shot Pi SDK prompt helper
6
-
7
- 短时 Pi SDK task、不需要完整 `.harness/tasks/<id>` workflow 时,用 `loop-agent pi-prompt`,勿创建 ad-hoc 临时代码脚本导入 `executeSingleSdkAttempt`。`pi-prompt` 是一次性 full-capability helper;是否只读由本次调用的 prompt 与 `--tools` 决定。
8
-
9
- ```bash
10
- loop-agent pi-prompt "Reply with exactly OK."
11
- loop-agent pi-prompt --stdin < <temp-dir>/task.md
12
- loop-agent pi-prompt --file <temp-dir>/task.md
13
- loop-agent pi-prompt --cwd ~/go/src/loop-agent --tools read,grep,find,ls "Review the current diff. Do not edit files."
14
- loop-agent pi-prompt --cwd ~/go/src/loop-agent --tools subagent,read --timeout 2400000 "Use subagent exactly once ..."
15
- loop-agent pi-prompt --model gpt-5.5 --cwd ~/go/src/loop-agent "Deeply diagnose this failure."
16
- loop-agent pi-prompt "Reply with exactly OK."
17
- ```
18
-
19
- `<temp-dir>` 表示平台原生临时目录;实际命令中使用本机路径。
20
-
21
- 默认:`--provider wizard-local --model glm-5.2`;高复杂度 one-shot 可显式 `--model gpt-5.5`。按需用 `--provider`、`--model`、`--thinking`、`--tools`、`--timeout` 覆盖。
22
-
23
- `pi-prompt` 仅用于 quick one-shot SDK call。**不**创建 `.harness/tasks/`、不跑 verification、不写 handoff artifact、不保留 workflow state。须可恢复、可验证的 implementation work 用 DAG 路径;需要隔离写入时使用 bounded Cursor 或 `delegate`。
1
+ # One-shot Pi SDK Prompt Helper(`pi-prompt`)
2
+
3
+ 短时 Pi SDK task、不需要完整 `.harness/tasks/<id>` workflow 时使用本文。替代 ad-hoc 临时代码脚本导入 `executeSingleSdkAttempt` 的做法。
4
+
5
+ ### One-shot Pi SDK prompt helper
6
+
7
+ 短时 Pi SDK task、不需要完整 `.harness/tasks/<id>` workflow 时,用 `loop-agent pi-prompt`,勿创建 ad-hoc 临时代码脚本导入 `executeSingleSdkAttempt`。`pi-prompt` 是一次性 full-capability helper;是否只读由本次调用的 prompt 与 `--tools` 决定。
8
+
9
+ ```bash
10
+ loop-agent pi-prompt "Reply with exactly OK."
11
+ loop-agent pi-prompt --stdin < <temp-dir>/task.md
12
+ loop-agent pi-prompt --file <temp-dir>/task.md
13
+ loop-agent pi-prompt --cwd ~/go/src/loop-agent --tools read,grep,find,ls "Review the current diff. Do not edit files."
14
+ loop-agent pi-prompt --cwd ~/go/src/loop-agent --tools subagent,read --timeout 2400000 "Use subagent exactly once ..."
15
+ loop-agent pi-prompt --model gpt-5.5 --cwd ~/go/src/loop-agent "Deeply diagnose this failure."
16
+ loop-agent pi-prompt "Reply with exactly OK."
17
+ ```
18
+
19
+ `<temp-dir>` 表示平台原生临时目录;实际命令中使用本机路径。
20
+
21
+ 默认:`--provider wizard-local --model glm-5.2`;高复杂度 one-shot 可显式 `--model gpt-5.5`。按需用 `--provider`、`--model`、`--thinking`、`--tools`、`--timeout` 覆盖。
22
+
23
+ `pi-prompt` 仅用于 quick one-shot SDK call。**不**创建 `.harness/tasks/`、不跑 verification、不写 handoff artifact、不保留 workflow state。须可恢复、可验证的 implementation work 用 DAG 路径;需要隔离写入时使用 bounded Cursor 或 `delegate`。
@@ -1,84 +1,84 @@
1
- # Pi Subagent Assisted Mode
2
-
3
- loop-agent task 启用 `piSubagentMode`、在 analyze/plan/spec/retrospective 内需要 read-only scout/planner/reviewer subagents,或配置 project-local agents/prompts 时使用本文。
4
-
5
- `task.json` 支持可选字段 `piSubagentMode`,用于 step 级 `subagent` tool delegation:
6
-
7
- | Mode | analyze | plan | spec | implement | retrospective | verify |
8
- |------|---------|------|------|-----------|----------------|--------|
9
- | `off`(默认) | read only | read only | read only | +write/edit/bash | read only | read only |
10
- | `analyze-plan` | **+subagent** | **+subagent** | **+subagent** | 同 off | 同 off | 同 off |
11
- | `full` | **+subagent** | **+subagent** | **+subagent** | 同 off | **+subagent** | 同 off |
12
-
13
- ### 何时启用
14
-
15
- 在 `task.json` 设 `piSubagentMode: "analyze-plan"` 或 `piSubagentMode: "full"` 当:
16
- - task 涉及大规模 codebase 阅读,适合 parallel scout agents
17
- - analysis 或 planning 需多角度调查(如跨模块比较实现)
18
- - retrospective review 适合独立 reviewer subagent(`full` mode)
19
-
20
- ### step 内使用 `subagent` 的指引
21
-
22
- subagent 可用时,**仅用于 read-only task**:
23
- - **Parallel scout**:dispatch 多个 subagent 同时搜索/阅读不同区域
24
- - **Chain**:一个 subagent scout,另一个基于发现 planning
25
- - **Reviewer**:用 subagent 在定稿前 review analysis/plan
26
-
27
- **不要**用 subagent 做 writing、editing 或执行命令。subagent 输出仅 advisory;务必 verify 并将发现并入自己的输出。**不要**把 subagent 结果当作权威 state 或 artifact source。
28
-
29
- ### 前置条件
30
-
31
- - Pi runtime 环境须有 `subagent` tool(经 Pi subagent extension 加载)
32
- - 推荐用 Pi 自带 example 文件安装:
33
-
34
- ```bash
35
- mkdir -p ~/.pi/agent/extensions/subagent ~/.pi/agent/agents ~/.pi/agent/prompts
36
-
37
- ln -sf /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts ~/.pi/agent/extensions/subagent/index.ts
38
- ln -sf /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/agents.ts ~/.pi/agent/extensions/subagent/agents.ts
39
-
40
- for f in /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/agents/*.md; do
41
- ln -sf "$f" ~/.pi/agent/agents/$(basename "$f")
42
- done
43
-
44
- for f in /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/prompts/*.md; do
45
- ln -sf "$f" ~/.pi/agent/prompts/$(basename "$f")
46
- done
47
- ```
48
-
49
- - 最小 smoke check:
50
-
51
- ```bash
52
- pi -p --no-session --no-context-files --no-skills --tools subagent "Reply with exactly OK."
53
- ```
54
-
55
- 预期输出:`OK`
56
- - mode 按 task opt-in;默认 `off` 保持向后兼容
57
- - 任何 mode 下 `implement` 都不给 `subagent`(防止 nested multi-writer)
58
-
59
- ### 内置 Project-Local Agents 与 Prompts
60
-
61
- 本 repo 提供 `.pi/agents/` 与 `.pi/prompts/` 模板,供 `piSubagentMode` 使用:
62
-
63
- **Agents**(`.pi/agents/`)
64
-
65
- | Agent | Role | 对应阶段 |
66
- |-------|------|----------|
67
- | `loop-agent-scout` | 只读侦察:code、tests、docs、governance | Scout |
68
- | `loop-agent-planner` | 最小可执行计划;强调验证与回退 | Plan |
69
- | `loop-agent-reviewer` | 严格审查:范围漂移、验证缺口、契约破坏 | Verify / Review |
70
- | `loop-agent-worker` | 有界实现与修补 | Implement |
71
-
72
- 另有通用 agents:`scout` / `planner` / `worker` / `reviewer`(中文提示,可被通用 prompt 模板调用)。模型以各 agent frontmatter 为准(当前仓库默认对齐 `harness.json` 的 Pi executor)。
73
-
74
- **Prompt Templates**(`.pi/prompts/`):输入 `/loop-agent-*` 或通用模板名调用
75
-
76
- | Template | Flow |
77
- |----------|------|
78
- | `loop-agent-scout-and-plan` | parallel scout → planner |
79
- | `loop-agent-analyze-wide` | 3 parallel scouts → 结构化分析 |
80
- | `loop-agent-review-only` | 独立审查计划/实现/验证 |
81
- | `loop-agent-implement-and-review` | worker → reviewer → worker |
82
- | `scout-and-plan` / `implement` / `implement-and-review` | 通用 chain(调用 `scout`/`planner`/`worker`/`reviewer`) |
83
-
84
- 传 `agentScope: "both"` + `confirmProjectAgents: false` 以访问 repo-local agents。
1
+ # Pi Subagent Assisted Mode
2
+
3
+ loop-agent task 启用 `piSubagentMode`、在 analyze/plan/spec/retrospective 内需要 read-only scout/planner/reviewer subagents,或配置 project-local agents/prompts 时使用本文。
4
+
5
+ `task.json` 支持可选字段 `piSubagentMode`,用于 step 级 `subagent` tool delegation:
6
+
7
+ | Mode | analyze | plan | spec | implement | retrospective | verify |
8
+ |------|---------|------|------|-----------|----------------|--------|
9
+ | `off`(默认) | read only | read only | read only | +write/edit/bash | read only | read only |
10
+ | `analyze-plan` | **+subagent** | **+subagent** | **+subagent** | 同 off | 同 off | 同 off |
11
+ | `full` | **+subagent** | **+subagent** | **+subagent** | 同 off | **+subagent** | 同 off |
12
+
13
+ ### 何时启用
14
+
15
+ 在 `task.json` 设 `piSubagentMode: "analyze-plan"` 或 `piSubagentMode: "full"` 当:
16
+ - task 涉及大规模 codebase 阅读,适合 parallel scout agents
17
+ - analysis 或 planning 需多角度调查(如跨模块比较实现)
18
+ - retrospective review 适合独立 reviewer subagent(`full` mode)
19
+
20
+ ### step 内使用 `subagent` 的指引
21
+
22
+ subagent 可用时,**仅用于 read-only task**:
23
+ - **Parallel scout**:dispatch 多个 subagent 同时搜索/阅读不同区域
24
+ - **Chain**:一个 subagent scout,另一个基于发现 planning
25
+ - **Reviewer**:用 subagent 在定稿前 review analysis/plan
26
+
27
+ **不要**用 subagent 做 writing、editing 或执行命令。subagent 输出仅 advisory;务必 verify 并将发现并入自己的输出。**不要**把 subagent 结果当作权威 state 或 artifact source。
28
+
29
+ ### 前置条件
30
+
31
+ - Pi runtime 环境须有 `subagent` tool(经 Pi subagent extension 加载)
32
+ - 推荐用 Pi 自带 example 文件安装:
33
+
34
+ ```bash
35
+ mkdir -p ~/.pi/agent/extensions/subagent ~/.pi/agent/agents ~/.pi/agent/prompts
36
+
37
+ ln -sf /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts ~/.pi/agent/extensions/subagent/index.ts
38
+ ln -sf /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/agents.ts ~/.pi/agent/extensions/subagent/agents.ts
39
+
40
+ for f in /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/agents/*.md; do
41
+ ln -sf "$f" ~/.pi/agent/agents/$(basename "$f")
42
+ done
43
+
44
+ for f in /usr/local/lib/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/prompts/*.md; do
45
+ ln -sf "$f" ~/.pi/agent/prompts/$(basename "$f")
46
+ done
47
+ ```
48
+
49
+ - 最小 smoke check:
50
+
51
+ ```bash
52
+ pi -p --no-session --no-context-files --no-skills --tools subagent "Reply with exactly OK."
53
+ ```
54
+
55
+ 预期输出:`OK`
56
+ - mode 按 task opt-in;默认 `off` 保持向后兼容
57
+ - 任何 mode 下 `implement` 都不给 `subagent`(防止 nested multi-writer)
58
+
59
+ ### 内置 Project-Local Agents 与 Prompts
60
+
61
+ 本 repo 提供 `.pi/agents/` 与 `.pi/prompts/` 模板,供 `piSubagentMode` 使用:
62
+
63
+ **Agents**(`.pi/agents/`)
64
+
65
+ | Agent | Role | 对应阶段 |
66
+ |-------|------|----------|
67
+ | `loop-agent-scout` | 只读侦察:code、tests、docs、governance | Scout |
68
+ | `loop-agent-planner` | 最小可执行计划;强调验证与回退 | Plan |
69
+ | `loop-agent-reviewer` | 严格审查:范围漂移、验证缺口、契约破坏 | Verify / Review |
70
+ | `loop-agent-worker` | 有界实现与修补 | Implement |
71
+
72
+ 另有通用 agents:`scout` / `planner` / `worker` / `reviewer`(中文提示,可被通用 prompt 模板调用)。模型以各 agent frontmatter 为准(当前仓库默认对齐 `harness.json` 的 Pi executor)。
73
+
74
+ **Prompt Templates**(`.pi/prompts/`):输入 `/loop-agent-*` 或通用模板名调用
75
+
76
+ | Template | Flow |
77
+ |----------|------|
78
+ | `loop-agent-scout-and-plan` | parallel scout → planner |
79
+ | `loop-agent-analyze-wide` | 3 parallel scouts → 结构化分析 |
80
+ | `loop-agent-review-only` | 独立审查计划/实现/验证 |
81
+ | `loop-agent-implement-and-review` | worker → reviewer → worker |
82
+ | `scout-and-plan` / `implement` / `implement-and-review` | 通用 chain(调用 `scout`/`planner`/`worker`/`reviewer`) |
83
+
84
+ 传 `agentScope: "both"` + `confirmProjectAgents: false` 以访问 repo-local agents。