@tea-agent/loop-agent 0.3.0 → 0.4.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 (119) hide show
  1. package/AGENTS.md +135 -133
  2. package/CHANGELOG.md +88 -63
  3. package/README.md +171 -168
  4. package/bin/agent-worker.js +22 -0
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/commands/init.js +457 -457
  7. package/dist/commands/loop-benchmark.js +11 -11
  8. package/dist/commands/pi-reuse-benchmark.js +16 -16
  9. package/dist/executors/cursor-executor.js +1 -1
  10. package/dist/executors/dag-pi-executor.js +8 -1
  11. package/dist/task/runtime.js +27 -27
  12. package/dist/worker/cli.js +119 -0
  13. package/dist/worker/loop-agent/command-result.js +1 -0
  14. package/dist/worker/loop-agent/loop-agent-client.js +105 -0
  15. package/dist/worker/loop-agent/parse-json.js +14 -0
  16. package/dist/worker/materialize/harness-task-materializer.js +157 -0
  17. package/dist/worker/pool/failure-routing.js +98 -0
  18. package/dist/worker/pool/run-store.js +117 -0
  19. package/dist/worker/pool/types.js +1 -0
  20. package/dist/worker/preflight.js +108 -0
  21. package/dist/worker/profile-mapping.js +76 -0
  22. package/dist/worker/progress-reporter.js +81 -0
  23. package/dist/worker/report/morning-report.js +69 -0
  24. package/dist/worker/repos/repo-resolver.js +23 -0
  25. package/dist/worker/run-task/run-task.js +359 -0
  26. package/dist/worker/runner/run-ready.js +216 -0
  27. package/dist/worker/task-graph/acceptance-schema.js +25 -0
  28. package/dist/worker/task-graph/ready-queue.js +23 -0
  29. package/dist/worker/task-graph/task-graph-schema.js +28 -0
  30. package/dist/worker/task-graph/types.js +1 -0
  31. package/dist/worker/task-graph/validate.js +188 -0
  32. package/dist/worker/task-spec/complexity-mapping.js +8 -0
  33. package/dist/worker/task-spec/schema.js +116 -0
  34. package/dist/worker/task-spec/types.js +1 -0
  35. package/dist/worker/task-spec/validate.js +352 -0
  36. package/dist/workflows/dag/canvas-observer.js +275 -275
  37. package/docs/README.md +65 -61
  38. package/docs/agent-dag-recovery-playbook.md +184 -184
  39. package/docs/agent-dag-runner.md +42 -42
  40. package/docs/architecture/runtime-boundaries.md +147 -147
  41. package/docs/cursor-executor-usage.md +25 -25
  42. package/docs/decisions/README.md +3 -3
  43. package/docs/design/README.md +36 -36
  44. package/docs/development-principles.md +73 -71
  45. package/docs/dynamic-workflow-dag-engine-roadmap.md +1749 -1749
  46. package/docs/exec-plans/README.md +6 -6
  47. package/docs/exec-plans/active/README.md +7 -7
  48. package/docs/exec-plans/completed/README.md +19 -11
  49. package/docs/feature-workflow.md +186 -186
  50. package/docs/harness-methodology-debugging.md +153 -153
  51. package/docs/harness-methodology-tdd.md +130 -130
  52. package/docs/harness-methodology-verification.md +27 -27
  53. package/docs/loop-agent-harness.md +42 -42
  54. package/docs/production-readiness.md +96 -96
  55. package/docs/progress/README.md +3 -3
  56. package/docs/reports/README.md +5 -5
  57. package/docs/skills/README.md +6 -6
  58. package/docs/skills/vetted-skill-registry.md +22 -22
  59. package/docs/templates/adr.md +60 -60
  60. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  61. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  62. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  63. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  64. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  65. package/docs/templates/agent-dag-report.schema.json +454 -454
  66. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  67. package/docs/templates/agent-dag.base.json +195 -195
  68. package/docs/templates/agent-dag.final-verification.json +190 -190
  69. package/docs/templates/agent-dag.schema.json +316 -316
  70. package/docs/templates/agent-dag.supervised-implementation.json +500 -500
  71. package/docs/templates/exec-plan.md +64 -64
  72. package/docs/templates/feature-spec.md +53 -53
  73. package/docs/templates/hybrid-dag.json +193 -193
  74. package/docs/templates/production-readiness-checklist.md +57 -57
  75. package/docs/templates/progress-log.md +17 -17
  76. package/docs/templates/project-start-checklist.md +9 -9
  77. package/docs/templates/qa-report.md +48 -48
  78. package/docs/templates/sprint-contract.md +29 -29
  79. package/docs/verification-matrix.md +41 -41
  80. package/examples/decision-gate-agent-dag.json +123 -123
  81. package/examples/example-dag.json +51 -51
  82. package/examples/hybrid-loop-agent-dag.json +194 -194
  83. package/harness.json +89 -89
  84. package/package.json +60 -58
  85. package/skills/ai-engineering-context/SKILL.md +48 -48
  86. package/skills/code-review-core/SKILL.md +20 -20
  87. package/skills/codebase-scout/SKILL.md +19 -19
  88. package/skills/loop-agent/SKILL.md +147 -145
  89. package/skills/loop-agent/references/README.md +67 -67
  90. package/skills/loop-agent/references/command-reference.md +368 -340
  91. package/skills/loop-agent/references/harness-policy.md +259 -258
  92. package/skills/loop-agent/references/hybrid-dag.md +216 -216
  93. package/skills/loop-agent/references/learned/README.md +21 -21
  94. package/skills/loop-agent/references/long-running-loop.md +59 -59
  95. package/skills/loop-agent/references/model-routing.md +36 -36
  96. package/skills/loop-agent/references/multi-worktree.md +54 -54
  97. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  98. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  99. package/skills/loop-agent/references/pi-prompt.md +23 -23
  100. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +81 -81
  101. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  102. package/skills/loop-agent/references/task-workflow.md +84 -84
  103. package/skills/loop-agent/references/verification-and-failure-handling.md +128 -128
  104. package/skills/requesting-code-review/SKILL.md +101 -101
  105. package/skills/requesting-code-review/code-reviewer.md +168 -168
  106. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  107. package/skills/systematic-debugging/SKILL.md +296 -296
  108. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  109. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  110. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  111. package/skills/systematic-debugging/find-polluter.sh +63 -63
  112. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  113. package/skills/systematic-debugging/test-academic.md +14 -14
  114. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  115. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  116. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  117. package/skills/test-driven-development/SKILL.md +20 -20
  118. package/skills/verification-before-completion/SKILL.md +154 -154
  119. package/skills/webapp-testing/SKILL.md +19 -19
package/README.md CHANGED
@@ -1,51 +1,51 @@
1
- # loop-agent
2
-
3
- `loop-agent` 是面向 AI coding agent 的仓库级任务运行时和治理工具。它把一次研发任务组织成可生成、可校验、可执行、可恢复、可交接的 Agent DAG,并用 `.harness/`、`docs/` 和 shell verification 记录执行事实、长期治理资料和完成依据。
4
-
5
- 它可以作为任意目标项目的稳定控制器:初始化目标项目后,项目会获得 repo-local skills、治理文档、验证脚本、任务运行态目录和模型执行指引,使 agent 在目标项目里的工作体验尽量与本仓库对齐。
6
-
7
- ## 快速开始
8
-
9
- 到一个新项目时,可以直接对当前 agent 说:
10
-
11
- ```text
12
- 请用 loop-agent 完整初始化当前项目;如果本机没有 loop-agent,请先安装 @tea-agent/loop-agent@latest。按 init instructions 使用 full + merge 初始化,探索项目后补全 README 和验证命令,最后运行 doctor、inspect、docs audit 和 check-repo 并汇报结果。
13
- ```
14
-
15
- 作为 CLI 使用时,安装已发布包:
16
-
17
- ```bash
1
+ # loop-agent
2
+
3
+ `loop-agent` 是面向 AI coding agent 的仓库级任务运行时和治理工具。它把一次研发任务组织成可生成、可校验、可执行、可恢复、可交接的 Agent DAG,并用 `.harness/`、`docs/` 和 shell verification 记录执行事实、长期治理资料和完成依据。
4
+
5
+ 它可以作为任意目标项目的稳定控制器:初始化目标项目后,项目会获得 repo-local skills、治理文档、验证脚本、任务运行态目录和模型执行指引,使 agent 在目标项目里的工作体验尽量与本仓库对齐。
6
+
7
+ ## 快速开始
8
+
9
+ 到一个新项目时,可以直接对当前 agent 说:
10
+
11
+ ```text
12
+ 请用 loop-agent 完整初始化当前项目;如果本机没有 loop-agent,请先安装 @tea-agent/loop-agent@latest。按 init instructions 使用 full + merge 初始化,探索项目后补全 README 和验证命令,最后运行 doctor、inspect、docs audit 和 check-repo 并汇报结果。
13
+ ```
14
+
15
+ 作为 CLI 使用时,安装已发布包:
16
+
17
+ ```bash
18
18
  npm install -g @tea-agent/loop-agent@latest
19
19
  loop-agent --version
20
20
  loop-agent --help
21
21
  ```
22
-
23
- 检查当前项目的 loop-agent 配置:
24
-
25
- ```bash
26
- loop-agent doctor
27
- loop-agent inspect
28
- ```
29
-
30
- ## 初始化目标项目
31
-
32
- 在新项目中,最简单的用法是让当前 agent 执行初始化。需要更稳的执行约束时,可以使用下面这段完整提示词:
33
-
34
- ```text
35
- 请用 loop-agent 完整初始化当前项目。
36
-
37
- 如果本机还没有 `loop-agent` 命令,请先运行 `npm install -g @tea-agent/loop-agent@latest`,再记录 `npm list -g @tea-agent/loop-agent --depth=0` 的实际版本。
38
-
39
- 然后运行 `loop-agent init instructions --repo-root .`,按指引使用 full + merge 初始化。需要选择 provider/model,或涉及凭据、成本、部署副作用时先问我;其他能安全默认的选项直接继续。
40
-
41
- 初始化后请立刻探索当前项目的 README、manifest/build/config 文件和源码目录,补全根 README 的项目概览、技术栈/目录结构、开发与验证命令,并同步更新 `docs/verification-matrix.md` 和必要的 `scripts/ci-tests.sh`。
42
-
43
- 最后运行 `loop-agent init doctor --repo-root .`、`loop-agent inspect --repo-root .`、`loop-agent docs audit --repo-root .`、`bash scripts/check-repo.sh`,如项目测试入口可识别也运行 `bash scripts/ci-tests.sh` 或 `bash scripts/ci.sh`,并汇报结果、假设和剩余风险。
44
- ```
45
-
46
- 如果手动运行 CLI,可以使用:
47
-
48
- ```bash
22
+
23
+ 检查当前项目的 loop-agent 配置:
24
+
25
+ ```bash
26
+ loop-agent doctor
27
+ loop-agent inspect
28
+ ```
29
+
30
+ ## 初始化目标项目
31
+
32
+ 在新项目中,最简单的用法是让当前 agent 执行初始化。需要更稳的执行约束时,可以使用下面这段完整提示词:
33
+
34
+ ```text
35
+ 请用 loop-agent 完整初始化当前项目。
36
+
37
+ 如果本机还没有 `loop-agent` 命令,请先运行 `npm install -g @tea-agent/loop-agent@latest`,再记录 `npm list -g @tea-agent/loop-agent --depth=0` 的实际版本。
38
+
39
+ 然后运行 `loop-agent init instructions --repo-root .`,按指引使用 full + merge 初始化。需要选择 provider/model,或涉及凭据、成本、部署副作用时先问我;其他能安全默认的选项直接继续。
40
+
41
+ 初始化后请立刻探索当前项目的 README、manifest/build/config 文件和源码目录,补全根 README 的项目概览、技术栈/目录结构、开发与验证命令,并同步更新 `docs/verification-matrix.md` 和必要的 `scripts/ci-tests.sh`。
42
+
43
+ 最后运行 `loop-agent init doctor --repo-root .`、`loop-agent inspect --repo-root .`、`loop-agent docs audit --repo-root .`、`bash scripts/check-repo.sh`,如项目测试入口可识别也运行 `bash scripts/ci-tests.sh` 或 `bash scripts/ci.sh`,并汇报结果、假设和剩余风险。
44
+ ```
45
+
46
+ 如果手动运行 CLI,可以使用:
47
+
48
+ ```bash
49
49
  loop-agent init instructions --repo-root <target-repo>
50
50
  loop-agent init --repo-root <target-repo> --profile full --merge
51
51
  loop-agent init doctor --repo-root <target-repo>
@@ -65,128 +65,131 @@ loop-agent init update --repo-root <target-repo> --apply-safe
65
65
  `check-update` 只读报告 deterministic actions、model merge tasks、human decisions 和 recommended next。`update --bootstrap-surface` 为旧项目补 inferred baseline;`update --apply-safe` 只补缺失文件、目录和 managed block,不覆盖已有但无法确认来源的本地文件。
66
66
 
67
67
  当初始化由模型/Agent 执行时,它应把初始化当成一个自动化闭环:确认真正不能安全默认的 provider/model、治理根目录或凭据/成本问题后,运行 deterministic init,随后立刻读取目标项目真实文件,补全根 README 的项目概览、技术栈/目录结构、开发与验证命令,并同步适配 `docs/verification-matrix.md` 和必要的 `scripts/ci-tests.sh`。
68
-
69
- 初始化生成的 `scripts/ci-tests.sh` 不假定目标项目是 TypeScript、Node、前端或后端项目。它会保守探测 `package.json`、`Makefile`、`go.mod`、`Cargo.toml`、Python 测试配置、Maven、Gradle、.NET 等常见入口,只运行实际存在且工具可用的命令;探测不到时会清楚提示需要由初始化模型或用户按目标项目实际技术栈补充。
70
-
71
- ## 运行任务
72
-
73
- 创建并运行一个标准 Agent DAG:
74
-
75
- ```bash
76
- loop-agent new-task <task-id> "任务标题"
77
- loop-agent dag run-task <task-id> --profile auto --strict-models --output <temp-dir>/<task-id>-dag.json
78
- loop-agent dag validate --dag <temp-dir>/<task-id>-dag.json --strict-models --strict-governance
79
- loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd .
80
- ```
81
-
82
- `<temp-dir>` 表示平台原生临时目录;也可以省略 `--output`,再使用命令 JSON 输出里的 `outputPath`。
83
-
84
- 一次性只读评审或有边界写入:
85
-
86
- ```bash
87
- loop-agent pi-prompt --cwd . --tools read,grep,find,ls "只读评审这个任务,不要编辑文件。"
88
- loop-agent pi-prompt --cwd . --tools read,bash,edit,write,grep,find,ls "<包含 allowedPaths 和 forbiddenPaths 的有边界任务说明>"
89
- ```
90
-
91
- ## 核心概念
92
-
93
- - **Agent DAG**:把一次任务拆成 contract、scout、plan、implement、verify、closeout 等可审查节点。
94
- - **`.harness/`**:记录 task、DAG run、one-shot run、cache 和 live state 等运行态事实。
95
- - **`harness.json`**:描述项目名、治理根目录、模型路由、executor 和验证脚本。
96
- - **repo-local skills**:目标项目本地的 `skills/` 优先于发布包内置 skills,便于项目定制 agent 行为。
97
- - **治理文档**:`docs/` 保存原则、工作流、验证矩阵、runtime 边界、计划和报告。
98
- - **shell verification**:完成声明必须有可复现命令作为依据,而不是只靠聊天结论。
99
-
100
- ## 能力概览
101
-
102
- - 生成、校验、执行和汇总 Agent DAG。
103
- - 从任务说明生成标准 DAG,并按依赖顺序运行规划、实现、验证和收口节点。
104
- - 维护 `loop` 长程任务状态,包括目标、轮次、信号、验证事实和收口草稿。
105
- - 通过 Pi executor 执行只读规划、评审、诊断和有边界写入。
106
- - 保留 Cursor executor 作为显式启用的可选后端。
107
- - 通过 shell executor 运行确定性的验证命令。
108
- - 检查任务状态、运行态工件、文档链接、skill entry runtime boundary 等治理规则。
109
-
110
- ## 内置示例
111
-
112
- `examples/` 默认不复制到目标项目。可以通过工具内置命令查看或按需复制:
113
-
114
- ```bash
115
- loop-agent examples list
116
- loop-agent examples show example-dag.json
117
- loop-agent examples copy example-dag.json --repo-root <target-repo>
118
- ```
119
-
120
- ## 迭代本仓库
121
-
122
- 如果要用 loop-agent 迭代 loop-agent 本仓库,控制器必须来自已发布的 npm 安装包。不要使用当前工作区的 `npm link` 或 `npm run dev` 作为控制器;首次安装或有意升级可用 `@latest`,但一次自举任务启动后不要在任务中途升级控制器。
123
-
124
- ```bash
125
- npm install -g @tea-agent/loop-agent@latest
126
- npm list -g @tea-agent/loop-agent --depth=0
127
- loop-agent doctor
128
- loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd <repo-root>
129
- ```
130
-
131
- `@latest` 只用于安装或升级,不要在 DAG 节点里反复用 `npx @latest` 拉取。自举任务应记录 `npm list -g` 显示的实际版本号。
132
-
133
- ## 文档导航
134
-
135
- | 路径 | 用途 |
136
- |---|---|
137
- | `AGENTS.md` | 本仓库的 agent 开工协议、会话协议和长期工作规则 |
138
- | `harness.json` | loop-agent 在本仓库的模型、executor、治理根目录和脚本配置 |
139
- | `docs/README.md` | 治理文档索引 |
140
- | `docs/verification-matrix.md` | 不同变更类型对应的验证命令 |
141
- | `docs/production-readiness.md` | Production Readiness v0.1 支持范围、证据和验收标准 |
142
- | `docs/architecture/runtime-boundaries.md` | runtime 层边界和依赖方向 |
143
- | `skills/loop-agent/` | loop-agent skill 入口和 references |
144
- | `examples/` | 可复用 DAG 示例 |
145
- | `website/docs/` | 面向使用者的 Docusaurus 文档站内容 |
146
-
147
- ## 本仓库开发
148
-
149
- 本地源码开发:
150
-
151
- ```bash
152
- npm install
153
- npm run build
154
- node bin/loop-agent.js --help
155
- npm run dev -- --help
156
- ```
157
-
158
- 常用验证命令:
159
-
160
- ```bash
161
- npm run typecheck
162
- npm test
163
- bash scripts/check-repo.sh
164
- bash scripts/ci.sh
165
- npm run docs:build
166
- ```
167
-
168
- 当前 CLI 使用 `commander` 组织 command tree。顶层 help、子命令 help、参数解析和未知命令错误都由 commander 驱动。
169
-
170
- Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash,不要求使用 WSL 或 POSIX 路径。实际文件操作和 `--output` / `--dag` / `--cwd` 参数使用当前平台原生路径;仓库内引用、JSON/Markdown 证据引用和 glob 约定可继续用 `/` 作为稳定分隔符。
171
-
172
- ## 发布包内容
173
-
68
+
69
+ 初始化生成的 `scripts/ci-tests.sh` 不假定目标项目是 TypeScript、Node、前端或后端项目。它会保守探测 `package.json`、`Makefile`、`go.mod`、`Cargo.toml`、Python 测试配置、Maven、Gradle、.NET 等常见入口,只运行实际存在且工具可用的命令;探测不到时会清楚提示需要由初始化模型或用户按目标项目实际技术栈补充。
70
+
71
+ ## 运行任务
72
+
73
+ 创建并运行一个标准 Agent DAG:
74
+
75
+ ```bash
76
+ loop-agent new-task <task-id> "任务标题"
77
+ loop-agent dag run-task <task-id> --profile auto --strict-models --output <temp-dir>/<task-id>-dag.json
78
+ loop-agent dag validate --dag <temp-dir>/<task-id>-dag.json --strict-models --strict-governance
79
+ loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd .
80
+ ```
81
+
82
+ `<temp-dir>` 表示平台原生临时目录;也可以省略 `--output`,再使用命令 JSON 输出里的 `outputPath`。
83
+
84
+ 一次性只读评审或有边界写入:
85
+
86
+ ```bash
87
+ loop-agent pi-prompt --cwd . --tools read,grep,find,ls "只读评审这个任务,不要编辑文件。"
88
+ loop-agent pi-prompt --cwd . --tools read,bash,edit,write,grep,find,ls "<包含 allowedPaths 和 forbiddenPaths 的有边界任务说明>"
89
+ ```
90
+
91
+ ## 核心概念
92
+
93
+ - **Agent DAG**:把一次任务拆成 contract、scout、plan、implement、verify、closeout 等可审查节点。
94
+ - **`.harness/`**:记录 task、DAG run、one-shot run、cache 和 live state 等运行态事实。
95
+ - **`harness.json`**:描述项目名、治理根目录、模型路由、executor 和验证脚本。
96
+ - **repo-local skills**:目标项目本地的 `skills/` 优先于发布包内置 skills,便于项目定制 agent 行为。
97
+ - **治理文档**:`docs/` 保存原则、工作流、验证矩阵、runtime 边界、计划和报告。
98
+ - **shell verification**:完成声明必须有可复现命令作为依据,而不是只靠聊天结论。
99
+
100
+ 这些治理原则的设计思想吸收了 Anthropic 长时运行 agent harness、OpenAI Codex harness engineering、腾讯端到端 Harness Engineering 和社区 agent harness 实践:人类掌舵,智能体执行;仓库作为记录系统;任务小步推进;用结构化 handoff 与可复现验证跨 session 保持连续性。背景资料收录在 `website/docs/practices/`。
101
+
102
+ ## 能力概览
103
+
104
+ - 生成、校验、执行和汇总 Agent DAG。
105
+ - 从任务说明生成标准 DAG,并按依赖顺序运行规划、实现、验证和收口节点。
106
+ - 维护 `loop` 长程任务状态,包括目标、轮次、信号、验证事实和收口草稿。
107
+ - 通过 Pi executor 执行只读规划、评审、诊断和有边界写入。
108
+ - 保留 Cursor executor 作为显式启用的可选后端。
109
+ - 通过 shell executor 运行确定性的验证命令。
110
+ - 检查任务状态、运行态工件、文档链接、skill entry 和 runtime boundary 等治理规则。
111
+
112
+ ## 内置示例
113
+
114
+ `examples/` 默认不复制到目标项目。可以通过工具内置命令查看或按需复制:
115
+
116
+ ```bash
117
+ loop-agent examples list
118
+ loop-agent examples show example-dag.json
119
+ loop-agent examples copy example-dag.json --repo-root <target-repo>
120
+ ```
121
+
122
+ ## 迭代本仓库
123
+
124
+ 如果要用 loop-agent 迭代 loop-agent 本仓库,控制器必须来自已发布的 npm 安装包。不要使用当前工作区的 `npm link` 或 `npm run dev` 作为控制器;首次安装或有意升级可用 `@latest`,但一次自举任务启动后不要在任务中途升级控制器。
125
+
126
+ ```bash
127
+ npm install -g @tea-agent/loop-agent@latest
128
+ npm list -g @tea-agent/loop-agent --depth=0
129
+ loop-agent doctor
130
+ loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd <repo-root>
131
+ ```
132
+
133
+ `@latest` 只用于安装或升级,不要在 DAG 节点里反复用 `npx @latest` 拉取。自举任务应记录 `npm list -g` 显示的实际版本号。
134
+
135
+ ## 文档导航
136
+
137
+ | 路径 | 用途 |
138
+ |---|---|
139
+ | `AGENTS.md` | 本仓库的 agent 开工协议、会话协议和长期工作规则 |
140
+ | `harness.json` | loop-agent 在本仓库的模型、executor、治理根目录和脚本配置 |
141
+ | `docs/README.md` | 治理文档索引 |
142
+ | `docs/verification-matrix.md` | 不同变更类型对应的验证命令 |
143
+ | `docs/production-readiness.md` | Production Readiness v0.1 支持范围、证据和验收标准 |
144
+ | `docs/architecture/runtime-boundaries.md` | runtime 层边界和依赖方向 |
145
+ | `skills/loop-agent/` | loop-agent skill 入口和 references |
146
+ | `examples/` | 可复用 DAG 示例 |
147
+ | `website/docs/` | 面向使用者的 Docusaurus 文档站内容 |
148
+ | `website/docs/practices/` | Anthropic、OpenAI Codex、腾讯端到端工程与社区 harness 实践资料 |
149
+
150
+ ## 本仓库开发
151
+
152
+ 本地源码开发:
153
+
154
+ ```bash
155
+ npm install
156
+ npm run build
157
+ node bin/loop-agent.js --help
158
+ npm run dev -- --help
159
+ ```
160
+
161
+ 常用验证命令:
162
+
163
+ ```bash
164
+ npm run typecheck
165
+ npm test
166
+ bash scripts/check-repo.sh
167
+ bash scripts/ci.sh
168
+ npm run docs:build
169
+ ```
170
+
171
+ 当前 CLI 使用 `commander` 组织 command tree。顶层 help、子命令 help、参数解析和未知命令错误都由 commander 驱动。
172
+
173
+ Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash,不要求使用 WSL 或 POSIX 路径。实际文件操作和 `--output` / `--dag` / `--cwd` 参数使用当前平台原生路径;仓库内引用、JSON/Markdown 证据引用和 glob 约定可继续用 `/` 作为稳定分隔符。
174
+
175
+ ## 发布包内容
176
+
174
177
  发布包包含静态运行和指导资料:`bin/`、`dist/`、`skills/`、`docs/*.md`、`docs/architecture/runtime-boundaries.md`、`docs/skills/`、`docs/templates/`、`docs/init-surface.manifest.json`、`examples/`、`harness.json`、`AGENTS.md`、`README.md` 和 `CHANGELOG.md`。
175
-
176
- `docs/progress/`、`docs/reports/`、`docs/exec-plans/`、`docs/decisions/` 等目录下的任务正文是目标仓库实时生成或历史事实;npm 包只携带这些目录的 README,不携带本仓库已有历史记录。
177
-
178
- DAG skill 指令优先从目标项目或用户配置目录解析;目标项目未提供本地 `skills/` 时,CLI 会回退到 npm 包内置的 `skills/`。因此普通项目不需要复制 loop-agent 仓库历史文档或内置 skills 才能获得默认 DAG 能力。
179
-
180
- ## 发布前检查
181
-
182
- 发布 npm 包前至少运行:
183
-
184
- ```bash
185
- npm run typecheck
186
- npm test
187
- npm run build
188
- node bin/loop-agent.js --help
189
- npm pack --dry-run
190
- ```
191
-
192
- 发布入口 `bin/loop-agent.js` 只加载 `dist/cli.js`;`npm run dev -- <args>` 只用于源码开发和定位问题。
178
+
179
+ `docs/progress/`、`docs/reports/`、`docs/exec-plans/`、`docs/decisions/` 等目录下的任务正文是目标仓库实时生成或历史事实;npm 包只携带这些目录的 README,不携带本仓库已有历史记录。
180
+
181
+ DAG skill 指令优先从目标项目或用户配置目录解析;目标项目未提供本地 `skills/` 时,CLI 会回退到 npm 包内置的 `skills/`。因此普通项目不需要复制 loop-agent 仓库历史文档或内置 skills 才能获得默认 DAG 能力。
182
+
183
+ ## 发布前检查
184
+
185
+ 发布 npm 包前至少运行:
186
+
187
+ ```bash
188
+ npm run typecheck
189
+ npm test
190
+ npm run build
191
+ node bin/loop-agent.js --help
192
+ npm pack --dry-run
193
+ ```
194
+
195
+ 发布入口 `bin/loop-agent.js` 只加载 `dist/cli.js`;`npm run dev -- <args>` 只用于源码开发和定位问题。
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
+
6
+ const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
7
+ const cliEntry = join(packageRoot, "dist", "worker", "cli.js");
8
+
9
+ if (!existsSync(cliEntry)) {
10
+ console.error(
11
+ `agent-worker: cannot find built CLI at ${cliEntry}. Run \`npm run build\` before using the package bin.`,
12
+ );
13
+ process.exit(1);
14
+ }
15
+
16
+ try {
17
+ const cli = await import(pathToFileURL(cliEntry).href);
18
+ await cli.main(process.argv);
19
+ } catch (error) {
20
+ console.error(error instanceof Error ? error.message : String(error));
21
+ process.exit(1);
22
+ }
package/bin/loop-agent.js CHANGED
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env node
2
- import { existsSync } from "node:fs";
3
- import { dirname, join } from "node:path";
4
- import { fileURLToPath, pathToFileURL } from "node:url";
5
-
6
- const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
7
- const cliEntry = join(packageRoot, "dist", "cli.js");
8
-
9
- if (!existsSync(cliEntry)) {
10
- console.error(
11
- `loop-agent: cannot find built CLI at ${cliEntry}. Run \`npm run build\` before using the package bin.`,
12
- );
13
- process.exit(1);
14
- }
15
-
16
- try {
17
- await import(pathToFileURL(cliEntry).href);
18
- } catch (error) {
19
- console.error(error instanceof Error ? error.message : String(error));
20
- process.exit(1);
21
- }
1
+ #!/usr/bin/env node
2
+ import { existsSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath, pathToFileURL } from "node:url";
5
+
6
+ const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
7
+ const cliEntry = join(packageRoot, "dist", "cli.js");
8
+
9
+ if (!existsSync(cliEntry)) {
10
+ console.error(
11
+ `loop-agent: cannot find built CLI at ${cliEntry}. Run \`npm run build\` before using the package bin.`,
12
+ );
13
+ process.exit(1);
14
+ }
15
+
16
+ try {
17
+ await import(pathToFileURL(cliEntry).href);
18
+ } catch (error) {
19
+ console.error(error instanceof Error ? error.message : String(error));
20
+ process.exit(1);
21
+ }