@tea-agent/loop-agent 0.5.0 → 0.7.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 (136) hide show
  1. package/AGENTS.md +142 -142
  2. package/CHANGELOG.md +132 -98
  3. package/README.md +195 -195
  4. package/bin/agent-worker.js +22 -22
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/application/dag/args.js +9 -1
  7. package/dist/application/dag/run-dag.js +16 -2
  8. package/dist/cli/command-definitions.js +22 -4
  9. package/dist/cli/help.js +3 -2
  10. package/dist/cli/program.js +7 -5
  11. package/dist/commands/import-prd.js +76 -0
  12. package/dist/commands/init.js +467 -457
  13. package/dist/commands/instructions.js +90 -58
  14. package/dist/commands/loop-benchmark.js +11 -11
  15. package/dist/commands/pi-reuse-benchmark.js +16 -16
  16. package/dist/executors/cursor-executor.js +1 -1
  17. package/dist/executors/dag-pi-executor.js +1 -0
  18. package/dist/executors/pi-sdk-executor.js +63 -1
  19. package/dist/shared/preview.js +39 -0
  20. package/dist/task/config-types.js +3 -0
  21. package/dist/task/runtime.js +27 -27
  22. package/dist/task/source-references.js +221 -0
  23. package/dist/worker/cli.js +62 -1
  24. package/dist/worker/loop-agent/loop-agent-client.js +97 -5
  25. package/dist/worker/materialize/harness-task-materializer.js +166 -5
  26. package/dist/worker/observability/event-store.js +82 -0
  27. package/dist/worker/observability/events.js +79 -0
  28. package/dist/worker/observability/progress-composite.js +33 -0
  29. package/dist/worker/observability/read-model.js +1013 -0
  30. package/dist/worker/observability/snapshot-store.js +43 -0
  31. package/dist/worker/observability/types.js +1 -0
  32. package/dist/worker/observe/paths.js +64 -0
  33. package/dist/worker/observe/routes.js +423 -0
  34. package/dist/worker/observe/server.js +61 -0
  35. package/dist/worker/observe/static/app.js +1419 -0
  36. package/dist/worker/observe/static/index.html +63 -0
  37. package/dist/worker/observe/static/styles.css +613 -0
  38. package/dist/worker/pool/failure-routing.js +41 -6
  39. package/dist/worker/pool/run-store.js +50 -0
  40. package/dist/worker/progress-reporter.js +0 -18
  41. package/dist/worker/run-task/run-task.js +327 -92
  42. package/dist/worker/runner/run-ready.js +112 -4
  43. package/dist/worker/task-spec/schema.js +2 -1
  44. package/dist/workflows/dag/canvas-observer.js +275 -275
  45. package/dist/workflows/dag/event-observer.js +132 -0
  46. package/dist/workflows/dag/init-hybrid.js +182 -21
  47. package/dist/workflows/dag/observer-compose.js +52 -0
  48. package/docs/README.md +75 -72
  49. package/docs/agent-dag-recovery-playbook.md +184 -184
  50. package/docs/agent-dag-runner.md +42 -42
  51. package/docs/architecture/runtime-boundaries.md +162 -147
  52. package/docs/cursor-executor-usage.md +25 -25
  53. package/docs/decisions/README.md +3 -3
  54. package/docs/design/README.md +49 -36
  55. package/docs/development-principles.md +73 -73
  56. package/docs/dynamic-workflow-dag-engine-roadmap.md +1749 -1749
  57. package/docs/exec-plans/README.md +6 -6
  58. package/docs/exec-plans/active/README.md +12 -7
  59. package/docs/exec-plans/completed/README.md +32 -19
  60. package/docs/feature-workflow.md +186 -186
  61. package/docs/harness-methodology-debugging.md +153 -153
  62. package/docs/harness-methodology-tdd.md +130 -130
  63. package/docs/harness-methodology-verification.md +27 -27
  64. package/docs/init-surface.manifest.json +208 -199
  65. package/docs/loop-agent-harness.md +55 -42
  66. package/docs/production-readiness.md +96 -96
  67. package/docs/progress/README.md +3 -3
  68. package/docs/reports/README.md +9 -5
  69. package/docs/skills/README.md +6 -6
  70. package/docs/skills/vetted-skill-registry.md +26 -26
  71. package/docs/templates/adr.md +60 -60
  72. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  73. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  74. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  75. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  76. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  77. package/docs/templates/agent-dag-report.schema.json +454 -454
  78. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  79. package/docs/templates/agent-dag.base.json +195 -195
  80. package/docs/templates/agent-dag.final-verification.json +190 -190
  81. package/docs/templates/agent-dag.schema.json +316 -316
  82. package/docs/templates/agent-dag.supervised-implementation.json +500 -500
  83. package/docs/templates/exec-plan.md +64 -64
  84. package/docs/templates/feature-spec.md +53 -53
  85. package/docs/templates/hybrid-dag.json +193 -193
  86. package/docs/templates/init-evolution-review.md +33 -33
  87. package/docs/templates/interactive-ui-round2-experiment.md +66 -0
  88. package/docs/templates/production-readiness-checklist.md +57 -57
  89. package/docs/templates/progress-log.md +17 -17
  90. package/docs/templates/project-start-checklist.md +9 -9
  91. package/docs/templates/qa-report.md +48 -48
  92. package/docs/templates/sprint-contract.md +29 -29
  93. package/docs/templates/worker-dogfood-evidence.md +52 -0
  94. package/docs/templates/worker-dogfood-setup.md +48 -0
  95. package/docs/verification-matrix.md +41 -41
  96. package/examples/decision-gate-agent-dag.json +123 -123
  97. package/examples/example-dag.json +51 -51
  98. package/examples/hybrid-loop-agent-dag.json +194 -194
  99. package/harness.json +70 -69
  100. package/package.json +66 -66
  101. package/skills/ai-engineering-context/SKILL.md +48 -48
  102. package/skills/code-review-core/SKILL.md +20 -20
  103. package/skills/codebase-scout/SKILL.md +19 -19
  104. package/skills/init-capability-evolution/SKILL.md +69 -69
  105. package/skills/loop-agent/SKILL.md +149 -147
  106. package/skills/loop-agent/references/README.md +67 -67
  107. package/skills/loop-agent/references/command-reference.md +412 -403
  108. package/skills/loop-agent/references/harness-policy.md +263 -259
  109. package/skills/loop-agent/references/hybrid-dag.md +216 -216
  110. package/skills/loop-agent/references/learned/README.md +21 -21
  111. package/skills/loop-agent/references/long-running-loop.md +59 -59
  112. package/skills/loop-agent/references/model-routing.md +36 -36
  113. package/skills/loop-agent/references/multi-worktree.md +54 -54
  114. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  115. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  116. package/skills/loop-agent/references/pi-prompt.md +23 -23
  117. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +81 -81
  118. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  119. package/skills/loop-agent/references/task-workflow.md +89 -84
  120. package/skills/loop-agent/references/verification-and-failure-handling.md +128 -128
  121. package/skills/requesting-code-review/SKILL.md +101 -101
  122. package/skills/requesting-code-review/code-reviewer.md +168 -168
  123. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  124. package/skills/systematic-debugging/SKILL.md +296 -296
  125. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  126. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  127. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  128. package/skills/systematic-debugging/find-polluter.sh +63 -63
  129. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  130. package/skills/systematic-debugging/test-academic.md +14 -14
  131. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  132. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  133. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  134. package/skills/test-driven-development/SKILL.md +20 -20
  135. package/skills/verification-before-completion/SKILL.md +154 -154
  136. package/skills/webapp-testing/SKILL.md +19 -19
package/AGENTS.md CHANGED
@@ -1,142 +1,142 @@
1
- <!-- CODEGRAPH_START -->
2
- ## CodeGraph
3
-
4
- 如果仓库根目录存在 `.codegraph/`,在理解或定位代码前优先使用 CodeGraph,再考虑 rg/fd 或手动读文件。
5
- <!-- CODEGRAPH_END -->
6
-
7
- # AGENTS.md
8
-
9
- 本仓库采用“人类掌舵,智能体执行”的工程方式。目标不是一次性写完所有代码,而是在一个可持续演进、可交接、可验证的系统里做小步增量。
10
-
11
- `AGENTS.md` 是地图,不是百科。顶层只保留开工协议、会话协议与文档导航;长期知识、方法论、决策、计划、报告和模板应进入 `docs/`。
12
-
13
- ## 默认立场
14
-
15
- - 仓库是记录系统:决策、契约、计划、测试、报告优先落到仓库,而不是停留在聊天里。
16
- - 一次只推进一个清晰工作块;主会话按 Orient → Select → Contract → Implement → Verify → Handoff 治理,runtime 真实流程以 `src/workflows/` 为准。
17
- - 先验证基线,再叠加改动;如果当前基线已坏,优先定位基线问题。
18
- - 完成定义必须可验证;不能靠删测试、降标准或模糊描述制造“完成”。
19
- - 搜索先于实现;先查现有代码、文档、脚本、测试,避免重复造轮子或误判系统能力。
20
- - 在 DAG runtime 中,搜索/侦察是显式节点:标准路径是 Contract → Scout → Plan → Implement → Verify → Closeout/Handoff。
21
- - init surface、runtime 边界、command registry、skill entry 和架构 import 方向是可机器校验的治理契约;相关细节以 `docs/init-surface.manifest.json`、`docs/architecture/runtime-boundaries.md`、`src/cli/command-definitions.ts`、`skills/loop-agent/` 和 `scripts/check-*.sh` 为准,顶层 `AGENTS.md` 只指路,不重复维护事实源。
22
- - 本仓库既是 loop-agent 源项目,也是目标项目初始化体验的默认模板;任何新增命令、脚本、文档、skill、模板或发布包内容,都要判断它应由 npm 包内置提供,还是由 `loop-agent init` 投影到目标项目,避免出现“本项目能用、初始化项目缺能力”。
23
- - 委托模型写入前,必须把写入边界写成结构化 `task.json.allowedPaths` / `task.json.forbiddenPaths`,再审查生成 DAG 的 writer `writeSet`;不要只依赖 `source/执行约束.md` 的自然语言约束。
24
- - Shell 搜索优先 `rg`,按名找文件优先 `fd`;脚本确为 Bash 脚本时使用 Git Bash 或已配置的兼容 Bash,不要求 Windows 环境适配 POSIX 路径。
25
- - 用 loop-agent 迭代本仓库时,控制器必须来自已发布的 npm 安装包;首次安装或有意升级可用 `@tea-agent/loop-agent@latest`,但一次自举任务启动后不要中途升级控制器,并记录 `npm list -g @tea-agent/loop-agent --depth=0` 显示的实际版本。不要用当前工作区的 `npm link` 或 `npm run dev` 控制可能改动 CLI、DAG runtime、executor、package metadata 或 build output 的任务。
26
- - 反复出现的约束要固化为文档、脚本、检查项、测试或模板。
27
- - 禁止占位实现;除非 contract 明确约定为脚手架且标出后续闭环。
28
-
29
- ## 开始顺序
30
-
31
- 改文件前必须先完成:
32
-
33
- 1. 运行 `pwd`。
34
- 2. 阅读 `README.md`。
35
- 3. 阅读 `harness.json`。
36
- 4. 阅读 `docs/README.md`。
37
- 5. 如果存在 `CONTEXT.md`,阅读项目术语表,避免混用任务源、执行约束、契约、计划等领域概念。
38
- 6. 如果是实现类工作,继续阅读:
39
- - `docs/development-principles.md`
40
- - `docs/feature-workflow.md`
41
- - `docs/verification-matrix.md`
42
- 7. 如果任务涉及命令入口、执行流程、executor、初始化投影、skills、脚本矩阵、发布包范围或治理检查,继续阅读:
43
- - `docs/architecture/runtime-boundaries.md`
44
- - `docs/loop-agent-harness.md`
45
- 8. 如果任务涉及测试纪律、验证声明或调试,继续阅读:
46
- - `docs/harness-methodology-tdd.md`
47
- - `docs/harness-methodology-verification.md`
48
- - `docs/harness-methodology-debugging.md`
49
- 9. 查看最近提交、相关执行计划、progress/report,确认当前上下文。
50
- 10. 检查 `git status --short --branch`。
51
- 11. 运行本次任务相关的最小基线验证。
52
-
53
- ## 会话协议
54
-
55
- 1. Orient:读入口文档、相关专题、最近变更和现有实现。
56
- 2. Select:只选一个清晰工作块;避免把重构、新功能、文档迁移混在一轮里。
57
- 3. Contract:写清本轮交付物、非目标、完成标准、验证方法和失败条件。
58
- 4. Implement:做最小增量实现,同步维护必要文档、脚本和测试。
59
- 5. Verify:优先跑快速反馈,再跑必要的真实路径验证。
60
- 6. Converge Docs:检查 README、AGENTS.md、CHANGELOG.md、docs/README.md、相关治理文档、skills references、website docs、初始化模板和脚本说明是否仍与实际行为一致;只更新与本次变更相关的内容,不做顺手文档迁移。
61
- 7. Handoff:更新 progress/report/plan 中有长期价值的信息,写清风险、剩余项和下一步。
62
-
63
- 这套会话协议不是 DAG runtime 的节点序列。复杂实现默认采用 Agent DAG;具体节点拓扑、profile routing、writer 选择和 runner 行为以 `docs/feature-workflow.md` 与 `src/workflows/` 为准。主 agent 负责拆任务、写 contract、把允许/禁止路径写入结构化 task config、审查 DAG/writeSet/profile/shell verification、盯验证与 handoff。微小任务或 DAG runtime 自身修复也应优先使用 DAG,或使用 one-shot `pi-prompt` / `cursor-prompt` escape hatch 并记录边界与验证证据。
64
-
65
- ## 项目地图
66
-
67
- - `CONTEXT.md`:项目术语表,定义 loop-agent、任务源、执行约束等领域语言
68
- - `src/`:loop-agent 运行时代码
69
- - `test/`:Vitest 测试套件
70
- - `bin/loop-agent.js`:CLI 可执行入口
71
- - `skills/`:loop-agent 和 DAG 模板引用的本地 skill 指令与参考资料;`init --profile full` 还会把同一份 skills 镜像到目标项目的 `.agents/skills/`(外部 agent 兼容路径,包内仍只带 `skills/`)。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/init-surface.json`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
72
- - `.harness/`:任务、DAG、run、cache 和 live state 等运行态目录
73
- - `docs/`:治理文档、计划、报告和模板
74
- - `website/`:Docusaurus 用户文档站
75
- - `scripts/`:验证和维护脚本
76
-
77
- ## 工作规则
78
-
79
- - 每次任务只推进一个清晰、有边界的工作块。
80
- - 保留无关的用户改动,不要回退自己没有做的修改。
81
- - 优先沿用现有 helper、目录边界和局部模式,再考虑新增抽象。
82
- - 长期决策写入 `docs/`,不要只留在聊天里。
83
- - 面向使用者的新增、修改、删除或修复,应同步更新根目录 `CHANGELOG.md`;保持版本级摘要即可,不写过细技术细节。
84
- - 涉及 `loop-agent init` 或目标项目投影的改动,必须同步考虑目标项目生成物:`AGENTS.md`、`README.md`、`harness.json`、`docs/`、`scripts/`、`skills/`、`.agents/skills/`(skills 镜像)、`.harness/prompts`、`.gitignore`(loop-agent runtime managed block)和 npm 包内置 assets。
85
- - 涉及初始化能力演化时,按 `docs/init-surface.manifest.json` 与 `scripts/check-init-evolution-needed.sh` 分级处理:小改 advisory,中等 surface-check,高影响才需要模型审查;不要把所有小改动升级成重流程。
86
- - 通用脚本、skill 和模板可以复制或投影;项目相关 README、验证命令、发布/维护脚本必须基于模板和目标项目真实文件生成,不假定目标项目是 TypeScript、Node、前端、后端或工具项目。
87
- - 涉及 CLI command、skill entry、runtime boundary、import 方向或发布包范围时,同步更新对应文档、catalog/definition、治理脚本和测试,避免 README、skill reference、CLI help、npm 包内容互相漂移。
88
- - 完成相关更新后必须做文档收敛:如果 README、AGENTS.md、CHANGELOG.md、docs、skills、website、初始化生成模板或脚本说明不需要更新,应在交接里写明理由。
89
- - 不提交占位实现。
90
- - 没有新鲜验证证据时,不声明工作完成。
91
- - 发现新 bug、技术债或契约漂移时,写回当前 plan、progress 或 report,而不是只在对话里提一句。
92
- - 涉及 harness 流程变化时,优先把变化落到 `harness.json`、模板、脚本或治理文档,而不是只改提示词。
93
-
94
- ## 验证
95
-
96
- 用 `docs/verification-matrix.md` 选择命令。常用门禁:
97
-
98
- ```bash
99
- npm run typecheck
100
- npm test
101
- npm run build
102
- node bin/loop-agent.js --help
103
- bash scripts/check-repo.sh
104
- bash scripts/ci.sh
105
- ```
106
-
107
- Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash。CLI、Node 代码、模板和提示词里的实际文件路径必须兼容 macOS 与 Windows:优先使用平台原生临时目录和 `path`/`os.tmpdir()`;仅在 repo 引用、JSON/Markdown 证据引用和 glob 约定中使用 `/` 作为稳定分隔符。
108
-
109
- 文档站相关变更还需要按范围运行:
110
-
111
- ```bash
112
- npm run docs:build
113
- ```
114
-
115
- 按变更类型补充定向验证:
116
-
117
- - 初始化能力或目标项目投影:运行 `test/init-command.test.ts`,并在临时目标项目执行 `loop-agent init --profile full --merge`、`loop-agent init doctor`、`loop-agent inspect`、`loop-agent docs audit` 和目标项目 `bash scripts/check-repo.sh`。
118
- - init surface 或初始化能力演化:运行 `bash scripts/check-init-evolution-needed.sh` 和 `bash scripts/check-init-surface.sh`;高影响或发布前按需使用 `--strict` 并参考 `skills/init-capability-evolution/` 与 `docs/templates/init-evolution-review.md`。
119
- - runtime boundary / command registry / skill entry:运行 `bash scripts/check-architecture-boundaries.sh`、`bash scripts/check-command-registry-drift.sh`、`bash scripts/check-skill-entry.sh`,并确保 `bash scripts/check-repo.sh` 覆盖这些检查。
120
- - 发布包范围:运行 `npm run build`、`node bin/loop-agent.js --help` 和 `npm pack --dry-run`,确认初始化所需静态资料在 package files 中。
121
-
122
- ## 交接
123
-
124
- 较大的工作结束时记录:
125
-
126
- - 改了什么
127
- - 为什么这样改
128
- - 执行过哪些验证命令以及结果
129
- - 是否影响契约、文档、测试或脚本
130
- - 剩余风险
131
- - 后续工作
132
-
133
- ## 禁止事项
134
-
135
- - 不要在未读相关文档的前提下直接大改。
136
- - 不要一次混合重构、新功能和文档大迁移而没有清晰边界。
137
- - 不要把仅存在于对话里的约束当作长期知识。
138
- - 不要在缺少验证的情况下宣称完成。
139
- - 不要假设系统没有某个能力;先搜索再判断。
140
- - 不要用 stub、假数据通路或注释承诺替代真正交付。
141
- - 不要把个人机器的绝对路径写入仓库级 `AGENTS.md`、README、模板或发布包资料;个人工具配置应留在用户级配置或本机会话上下文。
142
- - 不要只更新 loop-agent 本仓库体验而遗漏目标项目初始化体验;新增能力如果不能通过 npm 内置资料或 `loop-agent init` 到达目标项目,必须写清原因和替代入口。
1
+ <!-- CODEGRAPH_START -->
2
+ ## CodeGraph
3
+
4
+ 如果仓库根目录存在 `.codegraph/`,在理解或定位代码前优先使用 CodeGraph,再考虑 rg/fd 或手动读文件。
5
+ <!-- CODEGRAPH_END -->
6
+
7
+ # AGENTS.md
8
+
9
+ 本仓库采用“人类掌舵,智能体执行”的工程方式。目标不是一次性写完所有代码,而是在一个可持续演进、可交接、可验证的系统里做小步增量。
10
+
11
+ `AGENTS.md` 是地图,不是百科。顶层只保留开工协议、会话协议与文档导航;长期知识、方法论、决策、计划、报告和模板应进入 `docs/`。
12
+
13
+ ## 默认立场
14
+
15
+ - 仓库是记录系统:决策、契约、计划、测试、报告优先落到仓库,而不是停留在聊天里。
16
+ - 一次只推进一个清晰工作块;主会话按 Orient → Select → Contract → Implement → Verify → Handoff 治理,runtime 真实流程以 `src/workflows/` 为准。
17
+ - 先验证基线,再叠加改动;如果当前基线已坏,优先定位基线问题。
18
+ - 完成定义必须可验证;不能靠删测试、降标准或模糊描述制造“完成”。
19
+ - 搜索先于实现;先查现有代码、文档、脚本、测试,避免重复造轮子或误判系统能力。
20
+ - 在 DAG runtime 中,搜索/侦察是显式节点:标准路径是 Contract → Scout → Plan → Implement → Verify → Closeout/Handoff。
21
+ - init surface、runtime 边界、command registry、skill entry 和架构 import 方向是可机器校验的治理契约;相关细节以 `docs/init-surface.manifest.json`、`docs/architecture/runtime-boundaries.md`、`src/cli/command-definitions.ts`、`skills/loop-agent/` 和 `scripts/check-*.sh` 为准,顶层 `AGENTS.md` 只指路,不重复维护事实源。
22
+ - 本仓库既是 loop-agent 源项目,也是目标项目初始化体验的默认模板;任何新增命令、脚本、文档、skill、模板或发布包内容,都要判断它应由 npm 包内置提供,还是由 `loop-agent init` 投影到目标项目,避免出现“本项目能用、初始化项目缺能力”。
23
+ - 委托模型写入前,必须把写入边界写成结构化 `task.json.allowedPaths` / `task.json.forbiddenPaths`,再审查生成 DAG 的 writer `writeSet`;不要只依赖 `source/执行约束.md` 的自然语言约束。
24
+ - Shell 搜索优先 `rg`,按名找文件优先 `fd`;脚本确为 Bash 脚本时使用 Git Bash 或已配置的兼容 Bash,不要求 Windows 环境适配 POSIX 路径。
25
+ - 用 loop-agent 迭代本仓库时,控制器必须来自已发布的 npm 安装包;首次安装或有意升级可用 `@tea-agent/loop-agent@latest`,但一次自举任务启动后不要中途升级控制器,并记录 `npm list -g @tea-agent/loop-agent --depth=0` 显示的实际版本。不要用当前工作区的 `npm link` 或 `npm run dev` 控制可能改动 CLI、DAG runtime、executor、package metadata 或 build output 的任务。
26
+ - 反复出现的约束要固化为文档、脚本、检查项、测试或模板。
27
+ - 禁止占位实现;除非 contract 明确约定为脚手架且标出后续闭环。
28
+
29
+ ## 开始顺序
30
+
31
+ 改文件前必须先完成:
32
+
33
+ 1. 运行 `pwd`。
34
+ 2. 阅读 `README.md`。
35
+ 3. 阅读 `harness.json`。
36
+ 4. 阅读 `docs/README.md`。
37
+ 5. 如果存在 `CONTEXT.md`,阅读项目术语表,避免混用任务源、执行约束、契约、计划等领域概念。
38
+ 6. 如果是实现类工作,继续阅读:
39
+ - `docs/development-principles.md`
40
+ - `docs/feature-workflow.md`
41
+ - `docs/verification-matrix.md`
42
+ 7. 如果任务涉及命令入口、执行流程、executor、初始化投影、skills、脚本矩阵、发布包范围或治理检查,继续阅读:
43
+ - `docs/architecture/runtime-boundaries.md`
44
+ - `docs/loop-agent-harness.md`
45
+ 8. 如果任务涉及测试纪律、验证声明或调试,继续阅读:
46
+ - `docs/harness-methodology-tdd.md`
47
+ - `docs/harness-methodology-verification.md`
48
+ - `docs/harness-methodology-debugging.md`
49
+ 9. 查看最近提交、相关执行计划、progress/report,确认当前上下文。
50
+ 10. 检查 `git status --short --branch`。
51
+ 11. 运行本次任务相关的最小基线验证。
52
+
53
+ ## 会话协议
54
+
55
+ 1. Orient:读入口文档、相关专题、最近变更和现有实现。
56
+ 2. Select:只选一个清晰工作块;避免把重构、新功能、文档迁移混在一轮里。
57
+ 3. Contract:写清本轮交付物、非目标、完成标准、验证方法和失败条件。
58
+ 4. Implement:做最小增量实现,同步维护必要文档、脚本和测试。
59
+ 5. Verify:优先跑快速反馈,再跑必要的真实路径验证。
60
+ 6. Converge Docs:检查 README、AGENTS.md、CHANGELOG.md、docs/README.md、相关治理文档、skills references、website docs、初始化模板和脚本说明是否仍与实际行为一致;只更新与本次变更相关的内容,不做顺手文档迁移。
61
+ 7. Handoff:更新 progress/report/plan 中有长期价值的信息,写清风险、剩余项和下一步。
62
+
63
+ 这套会话协议不是 DAG runtime 的节点序列。复杂实现默认采用 Agent DAG;具体节点拓扑、profile routing、writer 选择和 runner 行为以 `docs/feature-workflow.md` 与 `src/workflows/` 为准。主 agent 负责拆任务、写 contract、把允许/禁止路径写入结构化 task config、审查 DAG/writeSet/profile/shell verification、盯验证与 handoff。微小任务或 DAG runtime 自身修复也应优先使用 DAG,或使用 one-shot `pi-prompt` / `cursor-prompt` escape hatch 并记录边界与验证证据。
64
+
65
+ ## 项目地图
66
+
67
+ - `CONTEXT.md`:项目术语表,定义 loop-agent、任务源、执行约束等领域语言
68
+ - `src/`:loop-agent 运行时代码
69
+ - `test/`:Vitest 测试套件
70
+ - `bin/loop-agent.js`:CLI 可执行入口
71
+ - `skills/`:loop-agent 和 DAG 模板引用的本地 skill 指令与参考资料;`init --profile full` 还会把同一份 skills 镜像到目标项目的 `.agents/skills/`(外部 agent 兼容路径,包内仍只带 `skills/`)。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/init-surface.json`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
72
+ - `.harness/`:任务、DAG、run、cache 和 live state 等运行态目录
73
+ - `docs/`:治理文档、计划、报告和模板
74
+ - `website/`:Docusaurus 用户文档站
75
+ - `scripts/`:验证和维护脚本
76
+
77
+ ## 工作规则
78
+
79
+ - 每次任务只推进一个清晰、有边界的工作块。
80
+ - 保留无关的用户改动,不要回退自己没有做的修改。
81
+ - 优先沿用现有 helper、目录边界和局部模式,再考虑新增抽象。
82
+ - 长期决策写入 `docs/`,不要只留在聊天里。
83
+ - 面向使用者的新增、修改、删除或修复,应同步更新根目录 `CHANGELOG.md`;保持版本级摘要即可,不写过细技术细节。
84
+ - 涉及 `loop-agent init` 或目标项目投影的改动,必须同步考虑目标项目生成物:`AGENTS.md`、`README.md`、`harness.json`、`docs/`、`scripts/`、`skills/`、`.agents/skills/`(skills 镜像)、`.harness/prompts`、`.gitignore`(loop-agent runtime managed block)和 npm 包内置 assets。
85
+ - 涉及初始化能力演化时,按 `docs/init-surface.manifest.json` 与 `scripts/check-init-evolution-needed.sh` 分级处理:小改 advisory,中等 surface-check,高影响才需要模型审查;不要把所有小改动升级成重流程。
86
+ - 通用脚本、skill 和模板可以复制或投影;项目相关 README、验证命令、发布/维护脚本必须基于模板和目标项目真实文件生成,不假定目标项目是 TypeScript、Node、前端、后端或工具项目。
87
+ - 涉及 CLI command、skill entry、runtime boundary、import 方向或发布包范围时,同步更新对应文档、catalog/definition、治理脚本和测试,避免 README、skill reference、CLI help、npm 包内容互相漂移。
88
+ - 完成相关更新后必须做文档收敛:如果 README、AGENTS.md、CHANGELOG.md、docs、skills、website、初始化生成模板或脚本说明不需要更新,应在交接里写明理由。
89
+ - 不提交占位实现。
90
+ - 没有新鲜验证证据时,不声明工作完成。
91
+ - 发现新 bug、技术债或契约漂移时,写回当前 plan、progress 或 report,而不是只在对话里提一句。
92
+ - 涉及 harness 流程变化时,优先把变化落到 `harness.json`、模板、脚本或治理文档,而不是只改提示词。
93
+
94
+ ## 验证
95
+
96
+ 用 `docs/verification-matrix.md` 选择命令。常用门禁:
97
+
98
+ ```bash
99
+ npm run typecheck
100
+ npm test
101
+ npm run build
102
+ node bin/loop-agent.js --help
103
+ bash scripts/check-repo.sh
104
+ bash scripts/ci.sh
105
+ ```
106
+
107
+ Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash。CLI、Node 代码、模板和提示词里的实际文件路径必须兼容 macOS 与 Windows:优先使用平台原生临时目录和 `path`/`os.tmpdir()`;仅在 repo 引用、JSON/Markdown 证据引用和 glob 约定中使用 `/` 作为稳定分隔符。
108
+
109
+ 文档站相关变更还需要按范围运行:
110
+
111
+ ```bash
112
+ npm run docs:build
113
+ ```
114
+
115
+ 按变更类型补充定向验证:
116
+
117
+ - 初始化能力或目标项目投影:运行 `test/init-command.test.ts`,并在临时目标项目执行 `loop-agent init --profile full --merge`、`loop-agent init doctor`、`loop-agent inspect`、`loop-agent docs audit` 和目标项目 `bash scripts/check-repo.sh`。
118
+ - init surface 或初始化能力演化:运行 `bash scripts/check-init-evolution-needed.sh` 和 `bash scripts/check-init-surface.sh`;高影响或发布前按需使用 `--strict` 并参考 `skills/init-capability-evolution/` 与 `docs/templates/init-evolution-review.md`。
119
+ - runtime boundary / command registry / skill entry:运行 `bash scripts/check-architecture-boundaries.sh`、`bash scripts/check-command-registry-drift.sh`、`bash scripts/check-skill-entry.sh`,并确保 `bash scripts/check-repo.sh` 覆盖这些检查。
120
+ - 发布包范围:运行 `npm run build`、`node bin/loop-agent.js --help` 和 `npm pack --dry-run`,确认初始化所需静态资料在 package files 中。
121
+
122
+ ## 交接
123
+
124
+ 较大的工作结束时记录:
125
+
126
+ - 改了什么
127
+ - 为什么这样改
128
+ - 执行过哪些验证命令以及结果
129
+ - 是否影响契约、文档、测试或脚本
130
+ - 剩余风险
131
+ - 后续工作
132
+
133
+ ## 禁止事项
134
+
135
+ - 不要在未读相关文档的前提下直接大改。
136
+ - 不要一次混合重构、新功能和文档大迁移而没有清晰边界。
137
+ - 不要把仅存在于对话里的约束当作长期知识。
138
+ - 不要在缺少验证的情况下宣称完成。
139
+ - 不要假设系统没有某个能力;先搜索再判断。
140
+ - 不要用 stub、假数据通路或注释承诺替代真正交付。
141
+ - 不要把个人机器的绝对路径写入仓库级 `AGENTS.md`、README、模板或发布包资料;个人工具配置应留在用户级配置或本机会话上下文。
142
+ - 不要只更新 loop-agent 本仓库体验而遗漏目标项目初始化体验;新增能力如果不能通过 npm 内置资料或 `loop-agent init` 到达目标项目,必须写清原因和替代入口。
package/CHANGELOG.md CHANGED
@@ -1,98 +1,132 @@
1
- # 更新日志
2
-
3
- 这里记录每个版本面向使用者的主要变化。保持简短即可:新增、修改、修复或删除了什么,不需要展开实现细节。
4
-
5
- ## Unreleased
6
-
7
- ### 新增
8
-
9
- - (暂无)
10
-
11
- ## [0.5.0] - 2026-07-09
12
-
13
- ### 新增
14
-
15
- - Agent DAG 模型矩阵现由 `harness.json.executors.<pi|cursor>` 驱动:支持 `defaultModel` 与可选 `LOW`/`MED`/`HIGH`(档位优先于 defaultModel,再回退代码默认)。`dag run-task` 生成 `executorModels` 时读取该配置;`--strict-models` 对照 harness 解析结果。
16
- - `loop-agent init`(full / minimal)现在会在目标项目 `.gitignore` 合并 loop-agent managed block(`# LOOP_AGENT_INIT_START/END`):忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/live/`、`.harness/cache/`、`.harness/*.log`、`.harness/init-surface.json`、`.task-pool/`、`.worktrees/` 等个人/会话运行态事实,同时保留 `.harness/prompts/` 和目录占位(`.gitkeep`)可共享。已有 `.gitignore` 时只合并 managed block,不覆盖用户规则;`loop-agent init check-update` 对缺失或过期 block 给出 deterministic `refresh-managed-block`,`update --apply-safe` 可应用;`loop-agent init doctor` 新增 `gitignore loop-agent block` 检查;`docs/init-surface.manifest.json` 登记 `.gitignore`。注意不会整目录忽略 `.harness/`。
17
- - `loop-agent init --profile full` 现在双写 skills:除了原有的目标项目 `skills/`,还会把同一份 skills 镜像到 `.agents/skills/`(外部 agent 如 OpenCode 的自动发现路径);`skills/` 仍是 loop-agent runtime 的首选主路径,`--profile minimal` 仍同时跳过两处。DAG skill 解析候选路径增加 `cwd/.agents/skills/<name>/SKILL.md`(位于 `skills/` 之后、发布包内置之前),`init doctor` 额外检查 `.agents/skills/loop-agent/SKILL.md`,`docs/init-surface.manifest.json` 记录 `.agents/skills` 相关 surface。
18
-
19
- ### 修改
20
-
21
- - 废弃顶层 `models` / `modelProfiles` / `modelRouting` 作为 DAG 路由来源:schema 仍兼容旧文件,但默认 `harness.json` 与 `loop-agent init` 新投影不再写出这些字段;`--provider/--model` 改为写入 `executors.pi.defaultModel`。旧目标项目若仍含 `models`,check-update 会将 harness 差异作为 model-merge 任务提示迁移到 `executors`。
22
- - `loop-agent init` 默认不再向目标项目投影 `executors.cursor`(Cursor 为包开发者可选能力);仅当目标已有 `executors.cursor` 时保留。
23
- - 去掉 Pi executor 的无用 `requiresApiKey` 投影;`init check-update` / `update --apply-safe` 可对目标项目安全剥离 `executors.pi.requiresApiKey`,Cursor 的 `requiresApiKey` 仍保留。
24
-
25
- ## [0.4.0] - 2026-07-09
26
-
27
-
28
- ### 新增
29
-
30
- - 新增 `agent-worker batch run-ready` 运行时进度反馈:批次启动、每个 task preflight/materialize/dag 生成与校验/run-dag 执行/report 决策阶段会实时打到 stderr,stdout 仍只保留最终 JSON;新增 `--quiet` 选项可关闭进度,解决长任务静默被误判为卡死的问题。
31
- - 新增 `agent-worker batch run-ready --pi-model <model>` worker 专属 smoke 覆盖:提供时重写生成 DAG `executorModels.pi.{LOW,MED,HIGH}` 全部指向该模型,并对本次 `dag validate` 去掉 `--strict-models`;不改动 `loop-agent` canonical 模型矩阵或 `pi-prompt` 默认模型,典型用于 MED 模型 provider 抽风时让 dogfood smoke 改跑 `gpt-5.3-codex-spark`。
32
- - 新增 Worker TaskSpec v0.1 schema、`validateTaskSpec` 三层校验、`risk_level` task complexity 的映射 helper,以及 5 dogfood TaskSpec 样例;当前仅作为纯库和样例验证,尚未接入 CLI/runtime。
33
- - 新增 AcceptanceSpec / TaskGraphSpec schema、Feature graph 校验器和 Ready 队列计算,覆盖 dogfood feature 的验收引用、任务文件一致性、未知依赖、环检测与 ready 判定。
34
- - 新增 business profile 到 loop-agent profile 的确定性映射、独立 `agent-worker` CLI(`task validate` / `task explain-profile`)和 package bin surface。
35
- - 新增 Worker `LoopAgentClient`、JSON parse failure artifact、repo path resolver 和目标仓库 preflight,覆盖 Ring 0 CLI contract smoke。
36
- - 新增 Worker TaskSpec materializer,将 TaskSpec 物化为 `.harness` task、回写 path/verify 边界与 coverage-safe source,并覆盖 Ring 1 DAG generate/validate/dry-run smoke。
37
- - 新增 Worker `runTaskSpec` pipeline、task-local run record、成功/失败分流和 Ring 2 shell-only DAG success/failure smoke;成功 report 后才 promote/closeout,失败 run 生成 report/doctor/closeout-draft evidence
38
- - 新增 Worker Task Pool JSONL/state store、failure routing、串行 `agent-worker batch run-ready` `agent-worker report morning`,支持失败 follow-up 建议、workerRunId 重入复用和 missing artifact 报告降级。
39
- - 新增 Worker preflight 的 `loop-agent --version`、`git status --short --branch` 和可配置 `--check-repo` 检查,并记录一次无 Cursor/Pi 的 TaskSpec 到 morning report dogfood 运行报告。
40
-
41
- ### 修复
42
-
43
- - 修复 Worker batch/materializer 重入幂等、run-error Task Pool evidence/state 持久化、blocked morning report 汇总和 fallback failure routing 标记。
44
- - 修复 Worker failure closeout draft 写入 `.harness` 被拒的问题,改为写入 `.task-pool/failure-handoffs/`,并将 `.task-pool/` 作为 runtime state 忽略。
45
- - 修复 Worker 真实模型 DAG 容易被 120s 默认超时误杀的问题:`run-dag` 默认 30 分钟,显式 `TaskSpec.worker.timeout_ms` 最高 2 小时,普通命令仍保持 2 分钟,`check-repo` 保持 5 分钟。
46
- - 修复 DAG Pi reviewer 使用 `gpt-5.5` 时未显式设置 provider 支持的 thinking level,导致 SDK 默认 `minimal` 被 `wizard-local` 拒绝的问题。
47
-
48
- ## [0.3.0] - 2026-07-06
49
-
50
- ### 新增
51
-
52
- - 新增 init surface manifest 与 `scripts/check-init-surface.sh`,自动校验 npm 发布包范围和 `loop-agent init --profile full` 对目标项目的关键文件投影。
53
- - 新增 `init-capability-evolution` skill、init evolution review 模板与 `scripts/check-init-evolution-needed.sh`,按 advisory / surface-check / model-review 三档提示初始化能力是否需要模型审查;默认不阻塞小改动。
54
- - CLI 新增 `-V, --version` / `--version`,输出当前 package 版本且不要求 repo adapter。
55
- - 新增 `loop-agent init check-update` 与 `loop-agent init update`,为旧版初始化过的目标项目生成 deterministic actions、model merge tasks、human decisions,并支持 `.harness/init-surface.json` baseline bootstrap 与安全补齐。
56
-
57
- ## [0.2.1] - 2026-07-06
58
-
59
- ### 新增
60
-
61
- - 文档站结合 `src/` 与 `skills/loop-agent` 补充目标项目初始化、Harness Policy、Task Source 与验证、Loop 与 Sidecar 指南,并扩充 Agent DAG、CLI 与配置参考。
62
- - 文档站新增 Harness 实践与设计来源资料,收录 Anthropic 长时运行 agent harness、OpenAI Codex harness engineering、腾讯端到端 Harness Engineering 和社区 agent harness 最佳实践,并在 README、治理索引和开发原则中记录其与当前治理思想的关系。
63
- - 新增 Production Readiness v0.1 治理标准、生产就绪 checklist 模板,以及 2026-07-06 2026-07-12 的生产可用硬化 sprint 执行计划,明确低/中风险单 repo DAG 任务的支持范围、非目标、证据要求、失败分类和最终验证门禁。
64
- - 新增 DAG production-readiness hardening:`dag validate` / `run-dag` 输出下一步指引,`dag report` 暴露 product-line failure routing Operator Next Steps,`dag doctor --run-id --markdown` 输出失败诊断,failed `dag closeout-draft` 生成 Failure Handoff。
65
- - `dag run-task`、`dag validate`、`run-dag` JSON 输出新增稳定 `message` summary;`dag validate` 额外输出 write set decision gate check 摘要。
66
- - Dynamic Workflow node 现在可声明 `skills`,编译到 DAG 时会保留到对应 task、动态展开 child task loop body task。
67
- - 新增 repo-local vetted skill registry、首批 role skill wrappers,以及 opt-in `dag validate --strict-skills` audit gate
68
-
69
- ### 修改
70
-
71
- - 更新本仓库与目标项目初始化后的 `AGENTS.md` 工作协议,新增文档收敛步骤、结构化 DAG 写入边界要求,以及 runtime boundary / command registry / skill entry / 发布包范围的定向验证指引。
72
- - `loop-agent init` 生成的目标项目 `AGENTS.md` 同步包含文档收敛、`task.json.allowedPaths` / `task.json.forbiddenPaths`、DAG 失败诊断与 failure handoff 规则,目标项目文档也会显式导出 production readiness checklist、`dag report`、`dag doctor --run-id --markdown` 和失败 run 的 `dag closeout-draft`。
73
-
74
- ### 修复
75
-
76
- - 修复 `check-harness-runtime-clean.sh` CLI contract 集成测试在 full-suite 负载下可能因默认 5s Vitest timeout 超时的问题,保留真实 shell/CLI 检查和断言。
77
-
78
- ## [0.2.0] - 2026-07-05
79
-
80
- ### 新增
81
-
82
- - 新增 `loop-agent init` 初始化目标项目,包含模型指引输出、merge 初始化、初始化体检、repo-local skills 投影、语言无关治理脚本矩阵、runtime boundary 文档、skill entry/architecture boundary 检查和目标项目版治理文档;根 README 默认生成中文项目入口,并以 managed block 合并已有 README;模型执行初始化时必须在同一轮自动完成项目识别、README/验证矩阵适配和体检闭环;`examples` 改为工具内置查看/按需复制,不在初始化时默认写入目标仓库。
83
-
84
- ### 修改
85
-
86
- - `harness.json` 支持以 `adapter: "loop-agent"` 与真实项目名分离,目标项目无需把 `project` 写成 `loop-agent` 才能使用默认 adapter。
87
- - README 重组为兼容 npm/GitHub 展示和本仓库迭代导航的入口,明确区分快速开始、目标项目初始化、任务运行、核心概念、本仓库开发和发布包内容,并补充新项目初始化时可直接交给模型执行的提示词。
88
-
89
- ### 修复
90
-
91
- - npm 发布包范围纳入 `docs/architecture/runtime-boundaries.md`,确保 runtime boundary 治理文档与 0.2.0 包一起发布。
92
- - Cursor DAG worker 在构建产物中使用 `.js` worker 入口且不依赖 `tsx`,避免发布包/本地 build 运行 Cursor 节点时先因 worker 入口解析失败。
93
-
94
- ## [0.1.0] - 已发布
95
-
96
- ### 新增
97
-
98
- - 初始发布:Agent DAG 生成/校验/执行、loop-agent harness 治理入口与基础 CLI
1
+ # 更新日志
2
+
3
+ 这里记录每个版本面向使用者的主要变化。保持简短即可:新增、修改、修复或删除了什么,不需要展开实现细节。
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.7.0] - 2026-07-11
8
+
9
+ ### 新增
10
+
11
+ - TaskSpec 新增可选 `capabilities: [interactive-ui]`:在不改变 `risk_level` / governance profile 的前提下,仅将 implement/repair writer 路由到 HIGH canonical model,并注入真实 UI component、integration 与 DOM interaction test 交付契约。
12
+ - Round-2 FE dogfood 新增真实 React/ReactDOM + Testing Library/user-event/jsdom fixture、AC-FE-001 DOM 验收,以及 prompt-only MED / default-prompt HIGH / UI-prompt HIGH 的 A/B/C DAG 变体生成脚本与实验记录模板。
13
+ - dogfood Feature `F-2026-001` 新增第二个前端任务 `FE-002`(frontend session store,独立于 FE-001)与对应验收项 `AC-FE-002`,补齐“第二个 FE”覆盖。
14
+
15
+ ### 修复
16
+
17
+ - 修复 `scripts-local/setup-drill-round1.sh` `.task-pool/` 已忽略时仍尝试提交 state、覆盖 init 生成的 `.gitignore` managed block、依赖版本漂移及危险目标路径缺少保护的问题。
18
+ - 新增首轮夜间演练报告 `docs/reports/2026-07-10-nightly-drill-round-1.md`:记录 0.6.0 已发布控制器下的 batch/晨报/决策闭环、review-gated 失败与人工接管证据。
19
+ - 新增可复现演练目标仓库 setup 脚本 `scripts-local/setup-drill-round1.sh`。
20
+
21
+ ## [0.6.0] - 2026-07-10
22
+
23
+ ### 新增
24
+
25
+ - Observe UI 中文化:Dashboard 默认突出进行中的 DAG runs(进度、当前节点、已用时),补充 DAG 元信息(title/startedAt/finishedAt/ranks/节点 outputPreview)与 Rank 泳道详情;read-model 只增字段,保持 local-only 只读。
26
+ - Pi SDK DAG 节点在运行中 best-effort 追加 `session-events.jsonl` 至 `.harness/dag-runs/.../<nodeId>/`(过程事件落盘,写失败不影响节点成败;CLI 后端无过程日志)。
27
+ - Observe DAG 详情新增过程时间线:GET `/api/dag-runs/:id/nodes/:nodeId/session-events?after=N` 尾读 `session-events.jsonl`,UI 每 2s 轮询展示工具/助手过程事件(中文标签)。
28
+ - 文档站同步 Observe 指南:`website/docs/guides/observe-ui.md`,并更新 intro / CLI / Agent DAG / 安装与首次运行入口。
29
+ - 新增 `loop-agent import-prd <task-id> --file <path>`:把用户原始 PRD 原样复制到 `source/references/`,写入 `source-manifest.json` 与 `task.json.referenceDocs`,避免 AI 直接改写权威需求。
30
+ - `dag run-task` / hybrid source 加载时会物化 `task.json.referenceDocs` `source/references/`;source 2000 字符时仍截断进 prompt,但会保留完整源路径引用(如 `source/需求.md` / `source/references/...`),禁止静默丢弃尾部且不凭空补全。
31
+ - DAG objective / successCriteria 提取兼容 `目标/完成标准/Acceptance References` 等常见标题,并跳过 TaskSpec 元数据行。
32
+ - Worker materialize 生成的 `source/需求.md` 现在带权威声明、`source/references` 路径与 hash 追溯,并把 `acceptance_refs` 展开为短摘要(不再只剩 AC ID);review-gated/supervised `review-pi` 强制三方对照 references + 派生契约 + 实现。
33
+
34
+ ### 修复
35
+
36
+ - 修复 GitHub Actions governance job 未安装 `ripgrep`,导致依赖 `rg` 的仓库治理检查失败并跳过 test job 的问题。
37
+ - 修复 Observe UI 历史 worker run 详情 404、未校验 event route identifier 造成的 scoped event path traversal,以及失败的 doctor/closeout evidence step 被错误显示为成功的问题。
38
+ - 修复 Worker provider/executor 配置失败被误导为 `SpecUnclear` 的路由:已知 provider、model、executor、凭证与 thinking-level 配置错误现在归为 `EnvFailure`,并保留原始 DAG/runner 事实。
39
+
40
+ ### 新增
41
+
42
+ - 新增 `agent-worker observe` 本地只读可观测 UI:`observe serve` 启动 127.0.0.1 只读 HTTP server(REST + SSE),`observe snapshot` 输出全局快照 JSON;提供 Dashboard / Batch Detail / Run Detail / DAG Detail / Failure Inbox 五个静态视图,可实时查看 batch/task/step/command 进展、stdout/stderr tail、DAG node 状态与失败 report/doctor/handoff 链接。底层为结构化事件流(`.task-pool/observability/`)、`LoopAgentClient` 流式输出与 heartbeat、`loop-agent run-dag --events-jsonl` DAG node 级事件,以及 stale/quiet/timeout-risk liveness 诊断。仅读取运行事实,不提供写操作。
43
+ - 新增 `agent-worker task retry <task-id> --repo <repo>`:仅将 `Failed` Task Pool state 显式 requeue,保留失败运行历史和 handoff,并保证下一次 batch 使用新的 `workerRunId`。`src/worker/**` 同时进入架构边界硬检查,禁止 in-process import CLI、commands 或 application。
44
+
45
+ ## [0.5.0] - 2026-07-09
46
+
47
+ ### 新增
48
+
49
+ - Agent DAG 模型矩阵现由 `harness.json.executors.<pi|cursor>` 驱动:支持 `defaultModel` 与可选 `LOW`/`MED`/`HIGH`(档位优先于 defaultModel,再回退代码默认)。`dag run-task` 生成 `executorModels` 时读取该配置;`--strict-models` 对照 harness 解析结果。
50
+ - `loop-agent init`(full / minimal)现在会在目标项目 `.gitignore` 合并 loop-agent managed block(`# LOOP_AGENT_INIT_START/END`):忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/live/`、`.harness/cache/`、`.harness/*.log`、`.harness/init-surface.json`、`.task-pool/`、`.worktrees/` 等个人/会话运行态事实,同时保留 `.harness/prompts/` 和目录占位(`.gitkeep`)可共享。已有 `.gitignore` 时只合并 managed block,不覆盖用户规则;`loop-agent init check-update` 对缺失或过期 block 给出 deterministic `refresh-managed-block`,`update --apply-safe` 可应用;`loop-agent init doctor` 新增 `gitignore loop-agent block` 检查;`docs/init-surface.manifest.json` 登记 `.gitignore`。注意不会整目录忽略 `.harness/`。
51
+ - `loop-agent init --profile full` 现在双写 skills:除了原有的目标项目 `skills/`,还会把同一份 skills 镜像到 `.agents/skills/`(外部 agent 如 OpenCode 的自动发现路径);`skills/` 仍是 loop-agent runtime 的首选主路径,`--profile minimal` 仍同时跳过两处。DAG skill 解析候选路径增加 `cwd/.agents/skills/<name>/SKILL.md`(位于 `skills/` 之后、发布包内置之前),`init doctor` 额外检查 `.agents/skills/loop-agent/SKILL.md`,`docs/init-surface.manifest.json` 记录 `.agents/skills` 相关 surface。
52
+
53
+ ### 修改
54
+
55
+ - 废弃顶层 `models` / `modelProfiles` / `modelRouting` 作为 DAG 路由来源:schema 仍兼容旧文件,但默认 `harness.json` 与 `loop-agent init` 新投影不再写出这些字段;`--provider/--model` 改为写入 `executors.pi.defaultModel`。旧目标项目若仍含 `models`,check-update 会将 harness 差异作为 model-merge 任务提示迁移到 `executors`。
56
+ - `loop-agent init` 默认不再向目标项目投影 `executors.cursor`(Cursor 为包开发者可选能力);仅当目标已有 `executors.cursor` 时保留。
57
+ - 去掉 Pi executor 的无用 `requiresApiKey` 投影;`init check-update` / `update --apply-safe` 可对目标项目安全剥离 `executors.pi.requiresApiKey`,Cursor `requiresApiKey` 仍保留。
58
+
59
+ ## [0.4.0] - 2026-07-09
60
+
61
+ ### 新增
62
+
63
+ - 新增 `agent-worker batch run-ready` 运行时进度反馈:批次启动、每个 task preflight/materialize/dag 生成与校验/run-dag 执行/report 决策阶段会实时打到 stderr,stdout 仍只保留最终 JSON;新增 `--quiet` 选项可关闭进度,解决长任务静默被误判为卡死的问题。
64
+ - 新增 `agent-worker batch run-ready --pi-model <model>` worker 专属 smoke 覆盖:提供时重写生成 DAG `executorModels.pi.{LOW,MED,HIGH}` 全部指向该模型,并对本次 `dag validate` 去掉 `--strict-models`;不改动 `loop-agent` canonical 模型矩阵或 `pi-prompt` 默认模型,典型用于 MED 模型 provider 抽风时让 dogfood smoke 改跑 `gpt-5.3-codex-spark`。
65
+ - 新增 Worker TaskSpec v0.1 schema、`validateTaskSpec` 三层校验、`risk_level` task complexity 的映射 helper,以及 5 dogfood TaskSpec 样例;当前仅作为纯库和样例验证,尚未接入 CLI/runtime。
66
+ - 新增 AcceptanceSpec / TaskGraphSpec schema、Feature graph 校验器和 Ready 队列计算,覆盖 dogfood feature 的验收引用、任务文件一致性、未知依赖、环检测与 ready 判定。
67
+ - 新增 business profile loop-agent profile 的确定性映射、独立 `agent-worker` CLI(`task validate` / `task explain-profile`)和 package bin surface
68
+ - 新增 Worker `LoopAgentClient`、JSON parse failure artifact、repo path resolver 和目标仓库 preflight,覆盖 Ring 0 CLI contract smoke。
69
+ - 新增 Worker TaskSpec materializer,将 TaskSpec 物化为 `.harness` task、回写 path/verify 边界与 coverage-safe source,并覆盖 Ring 1 DAG generate/validate/dry-run smoke。
70
+ - 新增 Worker `runTaskSpec` pipeline、task-local run record、成功/失败分流和 Ring 2 shell-only DAG success/failure smoke;成功 report 后才 promote/closeout,失败 run 生成 report/doctor/closeout-draft evidence。
71
+ - 新增 Worker Task Pool JSONL/state store、failure routing、串行 `agent-worker batch run-ready` `agent-worker report morning`,支持失败 follow-up 建议、workerRunId 重入复用和 missing artifact 报告降级。
72
+ - 新增 Worker preflight 的 `loop-agent --version`、`git status --short --branch` 和可配置 `--check-repo` 检查,并记录一次无 Cursor/Pi TaskSpec morning report dogfood 运行报告。
73
+
74
+ ### 修复
75
+
76
+ - 修复 observe UI 的真实事件路由、重复 task 历史运行、DAG/Failure Inbox 路由、失败与命令 artifact 链接、liveness 判定和 DAG 事件元数据;同时强制 server 仅绑定 loopback,并限制 artifact API 只读取已知运行产物目录。
77
+ - 修复 Worker batch/materializer 重入幂等、run-error Task Pool evidence/state 持久化、blocked morning report 汇总和 fallback failure routing 标记。
78
+ - 修复 Worker failure closeout draft 写入 `.harness` 被拒的问题,改为写入 `.task-pool/failure-handoffs/`,并将 `.task-pool/` 作为 runtime state 忽略。
79
+ - 修复 Worker 真实模型 DAG 容易被 120s 默认超时误杀的问题:`run-dag` 默认 30 分钟,显式 `TaskSpec.worker.timeout_ms` 最高 2 小时,普通命令仍保持 2 分钟,`check-repo` 保持 5 分钟。
80
+ - 修复 DAG Pi reviewer 使用 `gpt-5.5` 时未显式设置 provider 支持的 thinking level,导致 SDK 默认 `minimal` 被 `wizard-local` 拒绝的问题。
81
+
82
+ ## [0.3.0] - 2026-07-06
83
+
84
+ ### 新增
85
+
86
+ - 新增 init surface manifest `scripts/check-init-surface.sh`,自动校验 npm 发布包范围和 `loop-agent init --profile full` 对目标项目的关键文件投影。
87
+ - 新增 `init-capability-evolution` skill、init evolution review 模板与 `scripts/check-init-evolution-needed.sh`,按 advisory / surface-check / model-review 三档提示初始化能力是否需要模型审查;默认不阻塞小改动。
88
+ - CLI 新增 `-V, --version` / `--version`,输出当前 package 版本且不要求 repo adapter。
89
+ - 新增 `loop-agent init check-update` 与 `loop-agent init update`,为旧版初始化过的目标项目生成 deterministic actions、model merge tasks、human decisions,并支持 `.harness/init-surface.json` baseline bootstrap 与安全补齐。
90
+
91
+ ## [0.2.1] - 2026-07-06
92
+
93
+ ### 新增
94
+
95
+ - 文档站结合 `src/` 与 `skills/loop-agent` 补充目标项目初始化、Harness Policy、Task Source 与验证、Loop 与 Sidecar 指南,并扩充 Agent DAG、CLI 与配置参考。
96
+ - 文档站新增 Harness 实践与设计来源资料,收录 Anthropic 长时运行 agent harness、OpenAI Codex harness engineering、腾讯端到端 Harness Engineering 和社区 agent harness 最佳实践,并在 README、治理索引和开发原则中记录其与当前治理思想的关系。
97
+ - 新增 Production Readiness v0.1 治理标准、生产就绪 checklist 模板,以及 2026-07-06 到 2026-07-12 的生产可用硬化 sprint 执行计划,明确低/中风险单 repo DAG 任务的支持范围、非目标、证据要求、失败分类和最终验证门禁。
98
+ - 新增 DAG production-readiness hardening:`dag validate` / `run-dag` 输出下一步指引,`dag report` 暴露 product-line failure routing 与 Operator Next Steps,`dag doctor --run-id --markdown` 输出失败诊断,failed `dag closeout-draft` 生成 Failure Handoff
99
+ - `dag run-task`、`dag validate`、`run-dag` 的 JSON 输出新增稳定 `message` summary;`dag validate` 额外输出 write set 与 decision gate check 摘要。
100
+ - Dynamic Workflow node 现在可声明 `skills`,编译到 DAG 时会保留到对应 task、动态展开 child task 与 loop body task。
101
+ - 新增 repo-local vetted skill registry、首批 role skill wrappers,以及 opt-in `dag validate --strict-skills` audit gate。
102
+
103
+ ### 修改
104
+
105
+ - 更新本仓库与目标项目初始化后的 `AGENTS.md` 工作协议,新增文档收敛步骤、结构化 DAG 写入边界要求,以及 runtime boundary / command registry / skill entry / 发布包范围的定向验证指引。
106
+ - `loop-agent init` 生成的目标项目 `AGENTS.md` 同步包含文档收敛、`task.json.allowedPaths` / `task.json.forbiddenPaths`、DAG 失败诊断与 failure handoff 规则,目标项目文档也会显式导出 production readiness checklist、`dag report`、`dag doctor --run-id --markdown` 和失败 run 的 `dag closeout-draft`。
107
+
108
+ ### 修复
109
+
110
+ - 修复 `check-harness-runtime-clean.sh` 与 CLI contract 集成测试在 full-suite 负载下可能因默认 5s Vitest timeout 超时的问题,保留真实 shell/CLI 检查和断言。
111
+
112
+ ## [0.2.0] - 2026-07-05
113
+
114
+ ### 新增
115
+
116
+ - 新增 `loop-agent init` 初始化目标项目,包含模型指引输出、merge 初始化、初始化体检、repo-local skills 投影、语言无关治理脚本矩阵、runtime boundary 文档、skill entry/architecture boundary 检查和目标项目版治理文档;根 README 默认生成中文项目入口,并以 managed block 合并已有 README;模型执行初始化时必须在同一轮自动完成项目识别、README/验证矩阵适配和体检闭环;`examples` 改为工具内置查看/按需复制,不在初始化时默认写入目标仓库。
117
+
118
+ ### 修改
119
+
120
+ - `harness.json` 支持以 `adapter: "loop-agent"` 与真实项目名分离,目标项目无需把 `project` 写成 `loop-agent` 才能使用默认 adapter。
121
+ - README 重组为兼容 npm/GitHub 展示和本仓库迭代导航的入口,明确区分快速开始、目标项目初始化、任务运行、核心概念、本仓库开发和发布包内容,并补充新项目初始化时可直接交给模型执行的提示词。
122
+
123
+ ### 修复
124
+
125
+ - npm 发布包范围纳入 `docs/architecture/runtime-boundaries.md`,确保 runtime boundary 治理文档与 0.2.0 包一起发布。
126
+ - Cursor DAG worker 在构建产物中使用 `.js` worker 入口且不依赖 `tsx`,避免发布包/本地 build 运行 Cursor 节点时先因 worker 入口解析失败。
127
+
128
+ ## [0.1.0] - 已发布
129
+
130
+ ### 新增
131
+
132
+ - 初始发布:Agent DAG 生成/校验/执行、loop-agent harness 治理入口与基础 CLI。