@tea-agent/loop-agent 0.16.1-beta.1 → 0.16.1
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.
- package/AGENTS.md +4 -8
- package/CHANGELOG.md +59 -16
- package/README.md +76 -299
- package/dist/application/evaluation/alias.js +184 -0
- package/dist/application/evaluation/budget.js +192 -0
- package/dist/application/evaluation/campaign-hash.js +47 -0
- package/dist/application/evaluation/campaign-matrix.js +372 -0
- package/dist/application/evaluation/campaign-scorecard.js +135 -0
- package/dist/application/evaluation/campaign.js +370 -0
- package/dist/application/evaluation/candidate.js +23 -6
- package/dist/application/evaluation/corpus-hash.js +38 -0
- package/dist/application/evaluation/corpus.js +56 -0
- package/dist/application/evaluation/experiment.js +294 -0
- package/dist/application/evaluation/ignition.js +198 -0
- package/dist/application/evaluation/integrity-audit.js +162 -0
- package/dist/application/evaluation/outer-loop.js +132 -0
- package/dist/application/evaluation/pi-cell-executor.js +39 -0
- package/dist/application/evaluation/private-verifier.js +46 -0
- package/dist/application/evaluation/promotion-policy.js +151 -0
- package/dist/application/evaluation/proposer.js +98 -0
- package/dist/application/evaluation/types.js +522 -0
- package/dist/cli/command-definitions.js +19 -3
- package/dist/commands/dag-reconcile-run.js +3 -116
- package/dist/commands/eval.js +1176 -13
- package/dist/commands/init.js +7 -1
- package/dist/executors/dag-pi-executor.js +4 -44
- package/dist/executors/shell-executor.js +1 -1
- package/dist/infrastructure/evaluation/alias-store.js +199 -0
- package/dist/infrastructure/evaluation/campaign-store.js +154 -0
- package/dist/infrastructure/evaluation/corpus-store.js +181 -0
- package/dist/infrastructure/evaluation/experiment-store.js +124 -0
- package/dist/infrastructure/evaluation/ignition-store.js +82 -0
- package/dist/infrastructure/evaluation/private-verifier-store.js +145 -0
- package/dist/infrastructure/evaluation/proposer-store.js +78 -0
- package/dist/records/promotion.js +3 -1
- package/dist/worker/cli.js +83 -0
- package/dist/worker/delivery/git-transaction.js +75 -0
- package/dist/worker/delivery/verification-bundle.js +13 -2
- package/dist/worker/feature/review.js +3 -2
- package/dist/worker/observe/static/dag-helpers.js +0 -62
- package/dist/worker/observe/static/styles.css +18 -55
- package/dist/worker/observe/static/views/dag.js +13 -5
- package/dist/worker/outcomes/adapters.js +4 -1
- package/dist/worker/outcomes/declared-artifacts.js +103 -0
- package/dist/worker/outcomes/evidence-tokens.js +29 -0
- package/dist/worker/outcomes/gate.js +10 -11
- package/dist/worker/outcomes/projector.js +30 -4
- package/dist/worker/outcomes/types.js +3 -0
- package/dist/worker/pool/reconcile.js +285 -0
- package/dist/worker/run-task/run-task.js +81 -4
- package/dist/worker/runner/run-ready.js +25 -2
- package/dist/worker/task-graph/ready-planner.js +14 -8
- package/dist/worker/task-graph/task-graph-schema.js +5 -3
- package/dist/workflows/dag/budget-enforcement.js +67 -0
- package/dist/workflows/dag/context-policy.js +137 -0
- package/dist/workflows/dag/failure-routing.js +7 -0
- package/dist/workflows/dag/frontend-implementation-contract.js +0 -77
- package/dist/workflows/dag/init-hybrid.js +33 -53
- package/dist/workflows/dag/knowledge-curator.js +3 -0
- package/dist/workflows/dag/node-execution.js +11 -4
- package/dist/workflows/dag/prompt.js +1 -1
- package/dist/workflows/dag/reconcile-run.js +121 -0
- package/dist/workflows/dag/report.js +12 -0
- package/dist/workflows/dag/runner.js +43 -16
- package/dist/workflows/dag/skill-snapshot.js +11 -7
- package/dist/workflows/dag/types.js +18 -1
- package/dist/workflows/dag/validate.js +15 -1
- package/docs/README.md +3 -1
- package/docs/architecture/runtime-boundaries.md +3 -2
- package/docs/init-surface.manifest.json +4 -0
- package/docs/local-development-environment.md +52 -0
- package/docs/templates/agent-dag.schema.json +0 -5
- package/docs/templates/agent-dag.supervised-implementation.json +23 -4
- package/docs/templates/branch-merge-report.md +14 -0
- package/docs/templates/evaluation/campaign-budget-v1.json +12 -0
- package/docs/templates/evaluation/campaign-dogfood-v0.json +24 -0
- package/docs/templates/evaluation/campaign-evidence-v1.json +44 -0
- package/docs/templates/evaluation/context-policy-baseline-v1.json +17 -0
- package/docs/templates/evaluation/context-policy-role-specialized-v1.json +28 -0
- package/docs/templates/evaluation/corpus-dogfood-v0.manifest.json +118 -0
- package/docs/templates/evaluation/matrix-dag-dry-run-v1.json +21 -0
- package/docs/templates/evaluation/matrix-fixture-v1.json +10 -0
- package/docs/templates/evaluation/private-verifier-dogfood-v0.json +16 -0
- package/docs/templates/product-line/AGENTS.md +1 -0
- package/docs/templates/product-line/README.md +17 -0
- package/docs/templates/product-line/acceptance.yaml +9 -0
- package/docs/templates/product-line/feature.yaml +11 -0
- package/docs/templates/product-line/task-graph.yaml +8 -0
- package/docs/templates/product-line/task.yaml +4 -0
- package/package.json +2 -1
- package/skills/frontend-implementation/references/node-contracts.md +3 -3
- package/skills/loop-agent/references/command-reference.md +5 -0
- package/skills/loop-agent/references/hybrid-dag.md +3 -3
package/AGENTS.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- 仓库是记录系统:决策、契约、计划、测试、报告优先落到仓库,而不是停留在聊天里。
|
|
16
16
|
- 一次只推进一个清晰工作块;主会话按 Orient → Select → Contract → Implement → Verify → Handoff 治理,runtime 真实流程以 `src/workflows/` 为准。
|
|
17
17
|
- 先验证基线,再叠加改动;如果当前基线已坏,优先定位基线问题。
|
|
18
|
+
- Do not consider backward compatibility. Ignore legacy code/libraries.
|
|
18
19
|
- 完成定义必须可验证;不能靠删测试、降标准或模糊描述制造“完成”。
|
|
19
20
|
- 搜索先于实现;先查现有代码、文档、脚本、测试,避免重复造轮子或误判系统能力。
|
|
20
21
|
- 受治理 Agent runtime 只有 Pi:DAG writer 固定为 `implement-pi` / `repair-pi`;`cursor-prompt` 仅是显式手工 one-shot sidecar,不进入 Loop auto-execute 或 Delegate 自动写入。
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
11. 运行本次任务相关的最小基线验证。
|
|
55
56
|
12. 如果用户提到"后端测试"、"接口测试"、"pytest"、"自动化测试",在任务 `task.json` 中设置 `taskKind: "backend-test"` 再 `dag run-task`;不要用 `--profile backend-test`(CLI 不接受该值,专用模板只走 taskKind)。知识回写用 `taskKind: "knowledge-sync"`(须 `featureId`),图谱开荒用 `taskKind: "knowledge-graph-bootstrap"`。`--profile` 仅表示治理强度:`auto|minimal|standard|reviewed|supervised`。
|
|
56
57
|
13. 如果用户提到"看板"、"observe"、"监控面板"、"启动看板",使用 `agent-worker observe serve --repo . --port 8787` 命令启动。
|
|
58
|
+
14. 如果用户要求“合并 `<source>` 到 `<target>`”或“合并 origin/main 到当前分支”,先阅读 `docs/branch-merge-guideline.md`,按影响自动选择快速、标准或深度模式;始终冻结 source SHA、审查双方功能、运行 merge-tree、生成 source-SHA 合并报告,并在提交前再次 fetch 防止主干前进。
|
|
57
59
|
|
|
58
60
|
## 会话协议
|
|
59
61
|
|
|
@@ -73,7 +75,7 @@
|
|
|
73
75
|
- `src/`:loop-agent 运行时代码
|
|
74
76
|
- `test/`:Vitest 测试套件
|
|
75
77
|
- `bin/loop-agent.js`:CLI 可执行入口
|
|
76
|
-
- `skills/`:loop-agent 源仓库和 npm 包内置 skill 指令与参考资料;目标项目初始化后只生成 `.agents/skills/`,不再生成根 `skills/`。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/init-surface.json`、`.harness/task-pool/*`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
|
|
78
|
+
- `skills/`:loop-agent 源仓库和 npm 包内置 skill 指令与参考资料;目标项目初始化后只生成 `.agents/skills/`,不再生成根 `skills/`。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/evaluation/`、`.harness/dogfood-evidence/`、`.harness/init-surface.json`、`.harness/task-pool/*`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
|
|
77
79
|
- `.harness/`:任务、DAG、run、cache 和 live state 等运行态目录
|
|
78
80
|
- `docs/`:治理文档、计划、报告和模板
|
|
79
81
|
- `website/`:Docusaurus 用户文档站
|
|
@@ -85,6 +87,7 @@
|
|
|
85
87
|
- 保留无关的用户改动,不要回退自己没有做的修改。
|
|
86
88
|
- 优先沿用现有 helper、目录边界和局部模式,再考虑新增抽象。
|
|
87
89
|
- 长期决策写入 `docs/`,不要只留在聊天里。
|
|
90
|
+
- 分支合并遵循 `docs/branch-merge-guideline.md`;快速模式只用于可证明的低风险/no-op 合并,涉及冲突、init/package/runtime/release/public API 时必须升级为标准或深度模式。
|
|
88
91
|
- 后端测试、接口/API 测试、pytest 或明确的后端自动化测试,必须把 `.harness/tasks/<task-id>/task.json` 的 `taskKind` 设置为 `"backend-test"`,不得保留默认 `standard`。`backend-test` 是 `taskKind`,不是 `--profile` 的可选值;`dag run-task` 继续使用 `--profile auto` 选择治理等级。仅说“自动化测试”且前后端不明时,先根据任务源和项目技术栈判断,禁止无条件路由。
|
|
89
92
|
- 本地只读运行看板:`agent-worker observe serve --repo . --port 8787`,访问 `http://127.0.0.1:8787/`;看板只读,默认只绑定本机 `127.0.0.1`,不要直接暴露到公开网络。
|
|
90
93
|
- 面向使用者的新增、修改、删除或修复,应同步更新根目录 `CHANGELOG.md`;保持版本级摘要即可,不写过细技术细节。
|
|
@@ -148,10 +151,3 @@ npm run docs:build
|
|
|
148
151
|
- 不要用 stub、假数据通路或注释承诺替代真正交付。
|
|
149
152
|
- 不要把个人机器的绝对路径写入仓库级 `AGENTS.md`、README、模板或发布包资料;个人工具配置应留在用户级配置或本机会话上下文。
|
|
150
153
|
- 不要只更新 loop-agent 本仓库体验而遗漏目标项目初始化体验;新增能力如果不能通过 npm 内置资料或 `loop-agent init` 到达目标项目,必须写清原因和替代入口。
|
|
151
|
-
|
|
152
|
-
## Cursor Cloud specific instructions
|
|
153
|
-
|
|
154
|
-
这些是 Cursor Cloud VM 上非显而易见、会反复踩的两个环境坑。标准命令仍以 `README.md` 与 `docs/verification-matrix.md` 为准,这里不重复。启动时的 update script 已执行 `nvm use 22` + `npm ci`。
|
|
155
|
-
|
|
156
|
-
- Node 版本:VM 默认 `node`(`/exec-daemon/node`)是 v22.14.0,但可选依赖 `@earendil-works/pi-ai` / `@earendil-works/pi-coding-agent` 要求 Node `>=22.19.0`,否则 `npm install`/`npm ci` 会静默跳过它们,导致 `npm run typecheck` 和 `npm run build` 报 `Cannot find module '@earendil-works/...'`。交互式 shell 默认仍是系统 node,跑任何 `npm install`/`npm ci` 前先执行 `nvm use 22`(已预装 v22.22.2)。
|
|
157
|
-
- Git 提交签名会让 git 密集型测试超时:全局 git 配置默认对每次 commit 用 `cursor-git-ssh-keygen`(`gpg.format=ssh` + `commit.gpgsign=true`)签名,该 helper 会间歇性卡住 7–30s,使 `test/worker/delivery/**`、`test/worker/feature/**` 等在临时仓库里做多次 commit 的用例撞上 15/30s 超时而失败(单独跑却能过)。跑 `npm test` 或任何会频繁 commit 的工作前,先对子进程 git 关闭签名:`export GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=commit.gpgsign GIT_CONFIG_VALUE_0=false`(或在目标仓库 `git config commit.gpgsign false`)。关闭后整套 `npm test` 约 60s 全绿。这只影响本地/测试环境,不改仓库代码。
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,67 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
-
## [0.16.1
|
|
3
|
+
## [0.16.1] - 2026-07-19
|
|
4
|
+
|
|
5
|
+
### 重点更新
|
|
6
|
+
|
|
7
|
+
- 修复全栈 dogfood 产物与恢复缺口:`produces.path` 可投影为 hash-bound Outcome、closeout 证据迁入 `.harness/`、成功任务 Git checkpoint 先于 Task Pool Done,并补齐 reconcile / mark-failed / advance-checkpoint
|
|
8
|
+
- 收紧夜间自动发布门槛:至少一个可发布 Conventional Commit,且稳定 tag 后总提交数 ≥ 5 或距上次发布满 1 天,才自动发版
|
|
9
|
+
- 将根 README 收敛为产品入口,本地环境排障说明独立成篇,降低首次阅读噪声
|
|
10
|
+
|
|
11
|
+
### 新增
|
|
12
|
+
|
|
13
|
+
- 新增分支合并规范:按影响自动选择快速、标准或深度模式,统一双方功能保留审查、冲突解析、source-SHA 报告与 init/package 影响校验
|
|
14
|
+
- `.gitignore` 与 `loop-agent init` managed block 现忽略 `.harness/dogfood-evidence/`,避免把 fullstack / Worker dogfood 本地战役证据误提交
|
|
15
|
+
|
|
16
|
+
### 改进
|
|
17
|
+
|
|
18
|
+
- Observe DAG 详情移除依赖图下方重复的层级节点列表,并为节点表增加连续序号,浏览执行结构时更紧凑、更易定位
|
|
19
|
+
- 根 README 仅保留定位、适用问题、5 分钟开始、核心边界和文档导航;Agent DAG、Worker、发布与运维细节统一下沉到专题文档
|
|
20
|
+
- Cursor Cloud 等环境排障说明从 `AGENTS.md` 迁至 `docs/local-development-environment.md`
|
|
4
21
|
|
|
5
22
|
### 修复
|
|
6
23
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
24
|
+
- 全栈 dogfood 修复批次:reviewed/supervised DAG 增加一次性 review VERDICT 格式恢复;shell 改为非 login `bash -c`;PATH/VERDICT 格式失败分类对齐 EnvFailure/ContractMismatch
|
|
25
|
+
- 旧目标项目可用 `init check-update` / `update --apply-safe` 刷新 ignore 区块以忽略 dogfood-evidence
|
|
26
|
+
|
|
27
|
+
## [0.16.0] - 2026-07-19
|
|
28
|
+
|
|
29
|
+
### 重点更新
|
|
30
|
+
|
|
31
|
+
- Eval Lab 落地受控评测外环,支持 candidate 矩阵编排、Context Policy A/B dogfood 与 Ignition 研究门禁,全程 autoPromote=false,晋升须人工审核
|
|
32
|
+
- Worker 新增 TaskSpec 显式工作流路由,为四类任务生成带哈希锚定的 Task Outcome,并在晋升前校验 run_record、dag_json 等必需产物
|
|
33
|
+
- 新增 fullstack-v1 Feature Profile,支持确定性结构门禁与 Feature Verification Bundle v1,交付与收尾阶段任一身份漂移或产物篡改均阻断发布
|
|
34
|
+
- Eval Lab 落地固定预算运行时,DagSpec v3 可声明硬预算门禁,超限 fail closed 并输出预算账本,缺失 token 不被当作 0
|
|
35
|
+
|
|
36
|
+
### 新增
|
|
37
|
+
|
|
38
|
+
- Eval Lab 新增 Context Policy A/B dogfood 脚本,串联 corpus/candidate/campaign/scorecard 与人工 promote(默认 dry-run),不改 DAG 默认策略
|
|
39
|
+
- Eval Lab 新增 Ignition 研究门禁命令,记录多代 proposer 并给出趋势 verdict,恒为研究用途,不自动晋升
|
|
40
|
+
- Eval Lab 新增 Corpus 契约命令与 dogfood 样板清单(15 个异质任务,public/private/held_out 齐全)
|
|
41
|
+
- Eval Lab 新增 public/private campaign 与 private-verifier,支持多 seed 可重复计划与 candidate 内容泄漏门禁
|
|
42
|
+
- Eval Lab 新增 anti-hack 审计与 Promotion Policy v1,检测验证弱化与可疑 outlier,promote 须通过多项门禁且默认 dry-run
|
|
43
|
+
- Eval Lab 新增固定预算运行时,支持按节点累计资源消耗,硬门禁超限 fail closed 并写出 budget-ledger
|
|
44
|
+
- Eval Lab 新增可切换 Context Policy(baseline-v1 默认与原先一致,role-specialized-v1 按角色调整预算)
|
|
45
|
+
- 新增 fullstack-v1 dogfood Feature F-2026-005,提供零依赖可运行目标仓与双覆盖验收样板
|
|
46
|
+
- 新增 fullstack-v1 Feature Profile,对 packet 执行确定性结构门禁,未声明 profile 的 legacy packet 行为不变
|
|
47
|
+
- AcceptanceSpec verification 新增可选的实现/验证任务引用、required_evidence 与 integration 声明,保留 legacy 字段兼容
|
|
48
|
+
- TaskGraph 节点新增可选 consumes/produces 声明与 Ready Planner artifact gate,上游产物不可验证时下游阻塞
|
|
49
|
+
|
|
50
|
+
### 改进
|
|
51
|
+
|
|
52
|
+
- TaskSpec 支持可选 execution.workflow,可确定性物化为任务 DAG 类型并展示在 Worker、Task Pool、晨报与 Observe
|
|
53
|
+
- Ready Planner 明确仅做 envelope 级绑定,不重算产物文件 sha256,文件级 hash 在 Outcome projection 与 Feature Verification Bundle 执行
|
|
54
|
+
- DAG 节点 authoring guidance 明确 Pi 是唯一受治理 writer,cursor-prompt 仅作手工 one-shot sidecar
|
|
55
|
+
- Eval Lab propose 与 experiment 命令支持有界提出 experimenting candidate,accept/reject 须通过 scorecard 门禁,不自动改写已接受 skill
|
|
56
|
+
- 文档基线全面校准至 0.15.0,同步半年规划、仓库分析与路线图,harness Pi MED 路由至 grok-4.5
|
|
57
|
+
- Eval Lab dogfood 脚本改为可安全重复运行,并记录 promote --apply 序列供后续分析
|
|
58
|
+
|
|
59
|
+
### 修复
|
|
60
|
+
|
|
61
|
+
- 对齐 Task Outcome 与 Ready Planner 契约:Ready 仅做 envelope 级绑定,Outcome 产物补齐独立 schemaId,失败时写入 outcomeFailure
|
|
62
|
+
- 规范化 shell_verification 为标准 evidence token(兼容旧 shell-verification),未知 outputs.required token 保持兼容不阻塞
|
|
63
|
+
- 清理 0.15.0 版本仍残留在 Unreleased 区块的更新日志条目
|
|
64
|
+
- Eval Lab 运行态(candidate/campaign/scorecard)现被 .gitignore 忽略,旧项目可用 init check-update 刷新 ignore 区块
|
|
10
65
|
|
|
11
66
|
## [0.15.0] - 2026-07-18
|
|
12
67
|
|
|
@@ -63,18 +118,6 @@
|
|
|
63
118
|
- 修复提交信息中包含 'breaking change' 字样被误判为破坏性变更从而阻断发布的问题
|
|
64
119
|
- 补充 format-pool.d.ts 类型声明文件,修复 CI 类型检查报错
|
|
65
120
|
|
|
66
|
-
本页只汇总**文档站读者摘要**;完整版本事实源始终是仓库根目录 [`CHANGELOG.md`](https://github.com/tea-agent/loop-agent/blob/main/CHANGELOG.md)。
|
|
67
|
-
|
|
68
|
-
## [Unreleased]
|
|
69
|
-
|
|
70
|
-
- 修复前端 Mock 策略节点偶尔因解释性前言出现在 `MOCK_STRATEGY:` 之前而被 contract gate 误判失败的问题;节点现在通过显式首行协议生成稳定 canonical 输出,同时保留全局 `first-non-empty` 精确校验和原始 Pi 执行证据。
|
|
71
|
-
- `agent-worker feature verify-final` 现可聚合 hash-bound `backend-test` / `frontend-test` Outcome,生成 Feature Verification Bundle v1;Delivery 与 Closeout 会重新验证 bundle、typed outcome、Feature/Task/workflow/controller identity 和 Delivery HEAD,任一漂移或篡改都会阻止交付。既有 `qa-execute` QA aggregate 继续兼容。
|
|
72
|
-
- 新增 `fullstack-v1` Feature Profile:Feature Packet 可选 `feature.yaml` 声明 profile 与 scope,`agent-worker task validate-feature` 对 `fullstack-v1` packet 执行确定性结构门禁(required backend/frontend/backend-test/frontend-test workflow、frontend-test 依赖实现与后端验证、final-verify 覆盖、测试 workflow 不含产品写路径、writer writeSet 重叠须串行)。fullstack profile 必须有 scope;required AC 必须声明实现、验证与 evidence refs,任一门禁失败 fail closed 并输出阶段缺口与修复建议;未声明 profile 的 generic/legacy packet 行为零变化。
|
|
73
|
-
- AcceptanceSpec `verification` 新增全部 optional 的 `implementation_task_refs`、`verification_task_refs`、`required_evidence`、`integration`(`not-applicable`/`mock-allowed`/`real-required`),保留 legacy `expected_task_refs`,schema 仍为 `.strict()`;Feature review 的 coverage 投影在 dual-mode 下复用 Task Outcome envelope 的 `integrationStatus`:实现 Done 但缺验证 evidence、或 `real-required` 仅由 mock/local 满足时,required AC 派生为 `awaiting-verification`(只读派生,非新状态机),Feature 不得被报告为 deliverable。
|
|
74
|
-
- 为 TaskGraph 节点新增可选 `consumes`/`produces` 声明与 Ready Planner artifact gate:上游 Done 但必需产物(路径/sha256/schema/Feature/producer/source binding)不可验证时,下游以 `required-artifact-missing` 阻塞;artifact 资格是额外门禁,priority 不得越过 gate。gate 原因经 `ReadyExecutionPlan.blocked[*].artifactGate` 投影,供 Feature review、晨报与 Observe 共用。
|
|
75
|
-
- Worker 现为四类 TaskSpec workflow 生成 hash-anchored Task Outcome,并在 promotion 前校验 `run_record`、`dag_json`、`shell_verification` 等已知 required output;Feature review、晨报与 Observe 可引用 outcome 证据,缺失或不一致会以 ContractMismatch/EnvFailure 失败收口。
|
|
76
|
-
- TaskSpec 现支持可选 `execution.workflow`,可确定性物化为任务 DAG 类型并展示在 Worker、Task Pool、晨报与 Observe;旧 QA 任务保持原有执行行为,同时给出需人工选择测试 workflow 的迁移提示。
|
|
77
|
-
|
|
78
121
|
## [0.13.0] - 2026-07-18
|
|
79
122
|
|
|
80
123
|
- 前端实现流程新增需求合同、风险识别、项目能力检查、有界修复和验证追踪;高置信度前端需求可自动进入专用流程。
|
package/README.md
CHANGED
|
@@ -1,358 +1,135 @@
|
|
|
1
1
|
# loop-agent
|
|
2
2
|
|
|
3
|
-
`loop-agent` 是面向 AI coding agent
|
|
3
|
+
`loop-agent` 是面向 AI coding agent 的仓库级任务运行时与治理工具。它把研发任务组织为可审查、可执行、可恢复、可验证的 Agent DAG,并将任务源、写入边界、运行事实和完成证据保存在仓库中。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
发布包提供两个 CLI:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
npm install -g @tea-agent/loop-agent@latest
|
|
19
|
-
loop-agent --version
|
|
20
|
-
loop-agent --help
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## 自动更新提醒
|
|
24
|
-
|
|
25
|
-
通过 npm 全局安装的 `loop-agent` 会在普通交互式命令成功结束后检查 `@tea-agent/loop-agent` 是否有新版本。提醒只写入 `stderr`,不会污染命令原本的 `stdout`;失败命令、CI、管道/重定向、`--help`、`--version`、JSON/Markdown 输出以及 DAG/Loop/Delegate/Pi/Cursor 等 controller-sensitive 路径都会跳过。
|
|
26
|
-
|
|
27
|
-
如果你拒绝版本 A,当前系统用户下不会再提醒 A;之后发布版本 B 时会继续提醒。确认更新时,CLI 会先证明当前安装来自同一 npm global root,然后安装刚确认的精确版本,例如:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm install -g @tea-agent/loop-agent@0.13.0
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
需要完全关闭自动检查时设置:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
LOOP_AGENT_DISABLE_UPDATE_CHECK=1
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
检查当前项目的 loop-agent 配置:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
loop-agent doctor
|
|
43
|
-
loop-agent inspect
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## 自动发布
|
|
47
|
-
|
|
48
|
-
仓库通过 GitHub Actions 定时检查 `main`,达到提交门槛并通过发布检查后,自动更新版本、生成 Release 说明并发布 GitHub Release 与 npm。手动触发默认只执行 dry-run,不产生远端发布副作用;具体配置、版本规则和恢复步骤见 [`docs/exec-plans/completed/2026-07-18-nightly-auto-release.md`](docs/exec-plans/completed/2026-07-18-nightly-auto-release.md)。
|
|
49
|
-
|
|
50
|
-
## 初始化目标项目
|
|
51
|
-
|
|
52
|
-
用户可以用自然语言驱动初始化与维护(这三类入口与目标项目 `AGENTS.md` 的“自然语言入口路由”一致):
|
|
53
|
-
|
|
54
|
-
- **初始化**:“初始化 loop-agent”“loop agent 初始化”“loop agent初始化”“loop-agent 初始化” — 执行完整确定性初始化闭环,补全 README/验证矩阵并复查。
|
|
55
|
-
- **更新校验**(只读):“初始化更新校验”“loop agent初始化更新校验”“检查初始化更新” — 只读运行 `loop-agent init check-update --repo-root . --markdown`,汇报动作与风险,不自动写入。
|
|
56
|
-
- **安全更新**(写入型):“初始化安全更新”“loop agent初始化安全更新”“应用初始化更新” — 先 `check-update`,再 `loop-agent init update --apply-safe`;只执行确定性安全动作,human decisions 存在时停下等用户。
|
|
57
|
-
|
|
58
|
-
在新项目中,最简单的用法是让当前 agent 执行初始化。需要更稳的执行约束时,可以使用下面这段完整提示词:
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
请用 loop-agent 完整初始化当前项目。
|
|
7
|
+
| CLI | 职责 |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `loop-agent` | 单仓库任务、Agent DAG、验证、恢复与治理 |
|
|
10
|
+
| `agent-worker` | 可选的 Feature、TaskSpec、Task Pool 与 Observe 外层编排 |
|
|
62
11
|
|
|
63
|
-
|
|
12
|
+
受治理的 Agent writer 只有 Pi;`cursor-prompt` 仅用于显式手工 one-shot,不进入 DAG 或 Loop 自动写入路径。
|
|
64
13
|
|
|
65
|
-
|
|
14
|
+
## 适合解决什么问题
|
|
66
15
|
|
|
67
|
-
|
|
16
|
+
- 把模糊的 coding 请求转成有任务源、边界和验收标准的执行过程。
|
|
17
|
+
- 在 Contract → Scout → Plan → Implement → Verify → Closeout 节点间保留可审查证据。
|
|
18
|
+
- 用 `allowedPaths`、`forbiddenPaths` 和 DAG `writeSet` 限制模型写入。
|
|
19
|
+
- 在中断、失败或跨会话后,从 `.harness/` 中恢复真实状态。
|
|
20
|
+
- 用 shell verification 而不是模型自述判断任务是否完成。
|
|
21
|
+
- 可选地通过 `agent-worker` 编排 Feature、Ready Queue、QA、交付与只读 Observe 看板。
|
|
68
22
|
|
|
69
|
-
|
|
70
|
-
```
|
|
23
|
+
## 5 分钟开始
|
|
71
24
|
|
|
72
|
-
|
|
25
|
+
### 安装
|
|
73
26
|
|
|
74
27
|
```bash
|
|
75
|
-
|
|
76
|
-
loop-agent
|
|
77
|
-
loop-agent init doctor --repo-root <target-repo>
|
|
28
|
+
npm install -g @tea-agent/loop-agent@latest
|
|
29
|
+
loop-agent --version
|
|
78
30
|
```
|
|
79
31
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
新初始化会写入 `.harness/init-surface.json`,记录当前 controller 版本、初始化投影文件 hash 和 manifest hash。已用旧版本初始化的目标项目,可以用下面的维护入口对齐新版本初始化能力:
|
|
32
|
+
### 初始化当前项目
|
|
83
33
|
|
|
84
34
|
```bash
|
|
85
|
-
loop-agent init
|
|
86
|
-
loop-agent init
|
|
87
|
-
loop-agent init
|
|
88
|
-
loop-agent
|
|
35
|
+
loop-agent init instructions --repo-root .
|
|
36
|
+
loop-agent init --repo-root . --profile full --merge
|
|
37
|
+
loop-agent init doctor --repo-root .
|
|
38
|
+
loop-agent inspect --repo-root .
|
|
89
39
|
```
|
|
90
40
|
|
|
91
|
-
|
|
41
|
+
初始化会保留已有用户内容,并补充 `AGENTS.md`、`harness.json`、`ai_workspace/loop-agent/`、`.agents/skills/`、`.harness/` 和验证脚本等治理入口。
|
|
92
42
|
|
|
93
|
-
|
|
43
|
+
完整说明见[初始化目标项目](website/docs/quick-start/init-target-project.md)。
|
|
94
44
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
## 运行任务
|
|
98
|
-
|
|
99
|
-
创建并运行一个标准 Agent DAG:
|
|
45
|
+
### 运行第一个任务
|
|
100
46
|
|
|
101
47
|
```bash
|
|
102
|
-
loop-agent new-task
|
|
103
|
-
loop-agent dag run-task <task-id> --profile auto --strict-models --output <temp-dir>/<task-id>-dag.json
|
|
104
|
-
loop-agent dag validate --dag <temp-dir>/<task-id>-dag.json --strict-models --strict-governance
|
|
105
|
-
loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd .
|
|
48
|
+
loop-agent new-task example-task "实现一个有明确验收标准的小功能"
|
|
106
49
|
```
|
|
107
50
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
测试结论写回与业务知识图谱(结构化 Git,非 RAG):
|
|
51
|
+
完善 `.harness/tasks/example-task/source/需求.md` 和 `task.json` 中的结构化写入边界,然后执行:
|
|
111
52
|
|
|
112
53
|
```bash
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
# 图谱开荒 / 增量(AI 只写 staging,晋升默认不覆盖已有正式文件)
|
|
118
|
-
# task.json: { "taskKind": "knowledge-graph-bootstrap" }
|
|
119
|
-
loop-agent knowledge graph-init --product-name my-app
|
|
120
|
-
loop-agent knowledge graph-incremental-prepare --feature F-2026-004 --service order
|
|
121
|
-
loop-agent dag run-task <task-id> --strict-models
|
|
122
|
-
loop-agent knowledge graph-promote
|
|
123
|
-
loop-agent knowledge graph-materialize
|
|
124
|
-
loop-agent knowledge query --mode by_feature --feature F-2026-004 --json
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
`knowledge curate` 仍只用于 repair/learned guidance 提案,与图谱查询不是同一能力。细节见 `docs/feature-workflow.md` 与 `docs/design/knowledge-graph-ai-bootstrap.md`。
|
|
128
|
-
|
|
129
|
-
`<temp-dir>` 表示平台原生临时目录;也可以省略 `--output`,再使用命令 JSON 输出里的 `outputPath`。
|
|
130
|
-
|
|
131
|
-
非微小工作需要 exec-plan 时,使用确定性生命周期命令维护计划与索引;`new-task` 不会自动创建计划:
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
loop-agent plan create <plan-id> "<title>"
|
|
135
|
-
loop-agent plan check
|
|
136
|
-
loop-agent plan complete <plan-id> --summary "<summary>"
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
`plan create` 优先复用目标项目模板并回退到发布包内置模板,create/complete 失败时会回滚多文件修改。`dag run-task` 在生成 DAG 草稿前运行同源索引检查,避免遗漏登记直到末端 verify 才暴露。
|
|
54
|
+
loop-agent dag run-task example-task \
|
|
55
|
+
--profile auto \
|
|
56
|
+
--strict-models \
|
|
57
|
+
--output <temp-dir>/example-task-dag.json
|
|
140
58
|
|
|
141
|
-
|
|
59
|
+
loop-agent dag validate \
|
|
60
|
+
--dag <temp-dir>/example-task-dag.json \
|
|
61
|
+
--strict-models \
|
|
62
|
+
--strict-governance
|
|
142
63
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
64
|
+
loop-agent run-dag \
|
|
65
|
+
--dag <temp-dir>/example-task-dag.json \
|
|
66
|
+
--cwd .
|
|
146
67
|
```
|
|
147
68
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
agent-worker task validate-feature <feature-dir>
|
|
152
|
-
agent-worker feature review --feature-dir <feature-dir> --repo <target-repo>
|
|
153
|
-
agent-worker feature run --feature-dir <feature-dir> --repo <target-repo> --dry-run [--git-mode checkpoint]
|
|
154
|
-
agent-worker feature verify-final --feature-dir <feature-dir> --repo <target-repo> --task-id <qa-execute-id>
|
|
155
|
-
agent-worker feature delivery --feature-dir <feature-dir> --repo <target-repo> --qa-evidence <path> --final-verification <path> [--dry-run]
|
|
156
|
-
agent-worker feature closeout --feature-dir <feature-dir> --repo <target-repo> [--apply --owner <owner>]
|
|
157
|
-
agent-worker report metrics --repo <target-repo> --month <YYYY-MM>
|
|
158
|
-
agent-worker task draft-followup <task-id> --worker-run-id <id> --feature-dir <feature-dir> --repo <target-repo>
|
|
159
|
-
agent-worker feature approve-followup --feature-dir <feature-dir> --followup-id <id> --repo <target-repo> --owner <owner> --dry-run
|
|
160
|
-
bash scripts/worker-nightly.sh <feature-dir> <target-repo> <batch-run-id>
|
|
161
|
-
```
|
|
69
|
+
`<temp-dir>` 应使用当前平台的原生临时目录。详细步骤见[第一次运行](website/docs/quick-start/first-run.md)和 [Agent DAG 工作流](website/docs/guides/agent-dag.md)。
|
|
162
70
|
|
|
163
|
-
|
|
71
|
+
## 查看执行状态
|
|
164
72
|
|
|
165
73
|
```bash
|
|
166
|
-
agent
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
--expected-controller-version <version> \
|
|
171
|
-
--expected-controller-fingerprint <sha256:value>
|
|
74
|
+
loop-agent status example-task
|
|
75
|
+
loop-agent dag status
|
|
76
|
+
loop-agent dag doctor --run-id <run-id> --markdown
|
|
77
|
+
loop-agent dag report --run-id <run-id>
|
|
172
78
|
```
|
|
173
79
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
`feature review` 是只读的 Feature 级入口。它从 Feature Packet 和现有 Task Pool 事实派生状态、required AC 覆盖、阻塞、证据和唯一主行动;默认输出简洁人类摘要,`--json` 输出稳定的 schemaVersion 1 读模型。它不会写入 Feature Packet 或 Task Pool。
|
|
177
|
-
|
|
178
|
-
`feature verify-final` 在 clean Delivery HEAD 上复用已完成的 `qa-execute` TaskSpec,执行独立、不会 promote/closeout 或移动 HEAD 的最终验证,并原子投影 canonical QA aggregate 与 HEAD-bound final-verification evidence。`feature delivery` 复用 checkpoint transaction,校验 branch/HEAD/clean、commit trailers、changed files、成功 run、QA、最终验证和 required AC 后,在 `.harness/task-pool/` 原子生成 Delivery manifest、Acceptance Coverage 与 `PR.md`;`--dry-run` 零写入。`feature closeout` 默认只预览 gates;显式 `--apply --owner <owner>` 才会在前后校验与整体回滚保护下写入 Feature Closeout,重复相同 facts 会幂等复用。
|
|
179
|
-
|
|
180
|
-
Morning report 和 Observe snapshot/UI 复用同一 Feature reducer,优先展示 Status、Next Action、Why、Evidence。`report metrics` 同时生成 monthly JSON/Markdown,所有比例都包含分子、分母、样本量、UTC 窗口和缺失数据说明。
|
|
181
|
-
|
|
182
|
-
`feature run` 把 validation、目标仓库 preflight、Ready Queue、现有 `run-ready`、晨报、Observe snapshot 和最终 review 串成一次 Feature 意图。默认不写 Git 且每次最多推进一个 Ready 写任务。显式 `--git-mode checkpoint` 才允许创建本地 `agent/<feature-id>` 分支:每个成功任务通过 write-boundary/sensitive-file audit 后提交 checkpoint;失败任务先保存 binary patch、changed/untracked inventory 与内容,再恢复到最近 checkpoint 并验证 clean。它从不授权 push、远程 PR、merge 或 stash。`--keep-failed-diff` 会保留失败 diff、返回 NeedsAction 并立即停止后续任务。
|
|
183
|
-
|
|
184
|
-
如果 Task 产生业务失败,`feature run` 仍会完成晨报、snapshot 和最终 review,但结果为 `needs-action`、进程退出非零,并保留 batch 与失败证据;无 Ready 时正常退出,并通过 `noReadyReason` 区分已关闭、可交付、待 QA、需人工处理、依赖阻塞或空 Feature。
|
|
185
|
-
|
|
186
|
-
失败可通过显式 Follow-up 决策闭环接续:ProductBug、TestBug、FlakyTest、DependencyFailure 会生成可批准 Task 草稿;EnvFailure 最近两次连续失败后才生成 `ENV-CHECK-*`,否则优先给出 retry;SpecUnclear、ContractMismatch、RiskyChange、NeedsHuman、Unknown 只生成人工行动卡,绝不进入 Ready。人工用 `feature approve-followup --dry-run` 复核 baseline、证据 hash、ID 冲突和事务计划,再带 `--owner` 批准。批准后新增 TaskSpec、重连下游依赖并进入 Ready;原失败 run/state/handoff 保持不变,重复 run 的新草稿会 supersede 旧 unresolved 草稿但保留历史。
|
|
187
|
-
|
|
188
|
-
nightly wrapper 按 feature 互斥,保留批次/超时退出码,并输出 morning report、Observe snapshot 和 controller 版本 artifacts。
|
|
189
|
-
|
|
190
|
-
自 0.8.0 起,`.harness/task-pool/` 是唯一受支持的 Task Pool runtime root,其中包含根级 `runs.jsonl`、`events.jsonl`、`states/`、`artifacts/`、`failure-handoffs/`、`observability/` 和 `reports/`。这是 hard cutover:此前的顶层 Task Pool 位置不读取、不迁移、不合并、不重映射。
|
|
191
|
-
|
|
192
|
-
Task Pool **state identity** 进一步固定为 feature-scoped 复合键 `{ featureId, taskId }`(ADR 0004):
|
|
193
|
-
|
|
194
|
-
- canonical state 路径:`.harness/task-pool/states/<featureId>/<taskId>.json`(schema v2,文件内容必须携带 `featureId` / `taskId`)
|
|
195
|
-
- 同仓库多 Feature 可安全使用相同 Task ID(例如 `F-A/QA-EXEC-001` 与 `F-B/QA-EXEC-001` 互不覆盖)
|
|
196
|
-
- retry 必须显式指定 Feature:`agent-worker task retry <task-id> --feature-id <feature-id> --repo <repo> --reason <reason>`
|
|
197
|
-
- 诊断与迁移:`agent-worker pool doctor --repo <repo> --json`(只读);`agent-worker pool migrate-state --repo <repo>` 默认 dry-run,apply 需 `--owner` + `--reason`
|
|
198
|
-
- 扁平 legacy `states/<taskId>.json` 不得静默解释;存在时新写入 fail-closed,必须经 doctor / migrate 处理
|
|
199
|
-
- Observe 只读:canonical `#/feature/:featureId/task/:taskId` 与 `GET /api/features/:featureId/tasks/:taskId`;legacy bare task route 仅在唯一命中时兼容,歧义返回 409 + candidates
|
|
200
|
-
|
|
201
|
-
## 核心概念
|
|
202
|
-
|
|
203
|
-
- **Agent DAG**:把一次任务拆成 contract、scout、plan、implement、verify、closeout 等可审查节点。
|
|
204
|
-
- **任务源绑定与恢复**:新生成 DAG 会冻结任务源路径、SHA-256 和显式 `REQ/BR/AC`;前端计划漏号时会在 writer 前阻断。运行中断后应修复 task source 并重新生成完整 DAG,不要用二手摘要拼接 impl-only 后半段。
|
|
205
|
-
- **`.harness/`**:记录 task、DAG run、one-shot run、cache 和 live state 等运行态事实。
|
|
206
|
-
- **`harness.json`**:描述项目名、治理根目录、模型路由、executor 和验证脚本;目标项目中的 `ai_workspace/loop-agent/templates/harness.schema.json` 为 IDE 提供补全和字段说明,运行时仍由 Zod schema 校验。
|
|
207
|
-
- **repo-local skills**:目标项目本地 skills 统一放在 `.agents/skills/`,便于项目定制 agent 行为并让外部 agent 自动发现。DAG skill 解析顺序为:用户配置目录 → `.agents/skills/` → 发布包内置 `skills/`。
|
|
208
|
-
- **可选 SDD skill 嵌入**:如果目标项目在 `.agents/skills/` 中提供 `SDD-requirement-analysis`、`SDD-design-analysis`、`SDD-implementation-test-review`,`dag run-task` 会把它们作为知识与方法补充追加到对应的 Contract、Plan、Implement/Repair、Verify、Review 节点。loop-agent 仍控制 DAG、状态、写入边界、验证和收口;不会自动运行 SDD 初始化/扫描 skill,也不会推进 `ai_workspace` 状态或归档。没有这些 repo-local skills 时,生成结果保持原有默认流程。
|
|
209
|
-
- **run-owned skill snapshot**:新 DAG run 会在任何节点执行前,把本次实际注入 prompt 的 resolved skill profiles 冻结到 run 自己的 `.runtime/skill-snapshot.json`。后续节点、dynamic child、approve/resume 都使用同一份 hash-anchored snapshot;run 内修改 skill 只会从下一次 run 生效。
|
|
210
|
-
- **controller identity**:`agent-worker` 把一次 Feature/batch 实际使用的发布包、入口、启动参数和 package 内容 fingerprint 固定下来,并把 identity 传播到 Worker、Task Pool、batch/Feature 与最终验证证据。
|
|
211
|
-
- **只读 Pi 节点安全重试**:仅 planner/scout/reviewer/verifier/closeout 这类没有仓库写入能力的 Pi 节点,遇到模型连接中断、provider 限流、临时不可用或 timeout 时,可在同一 run 内有界重试;生成模板会自动声明默认 `retryPolicy`(总尝试 3 次、最多可配置 5 次、指数退避、单次等待上限 30s)。每次 attempt 保留独立证据,耗时与 Token 用量按尝试聚合,后一次成功不覆盖前一次失败证据。`quota`/`auth`/`invalid-output`/`write-guard` 与未知失败不重试;supervisor、implementer、writer、dynamic、shell、static、docs-only、decision-gate 节点不重试。
|
|
212
|
-
- **`agent-worker` operator skill**:`skills/agent-worker/` 只负责 Feature Packet、TaskSpec、Task Pool、自举 release train 和失败恢复的外层路由;单个 DAG 实现、DAG kernel 修复和节点执行仍由 `loop-agent` 负责,该 skill 不进入默认 DAG role skills。
|
|
213
|
-
- **治理文档**:`docs/` 保存原则、工作流、验证矩阵、runtime 边界、计划和报告。
|
|
214
|
-
- **shell verification**:完成声明必须有可复现命令作为依据,而不是只靠聊天结论。
|
|
215
|
-
|
|
216
|
-
这些治理原则的设计思想吸收了 Anthropic 长时运行 agent harness、OpenAI Codex harness engineering、腾讯端到端 Harness Engineering 和社区 agent harness 实践:人类掌舵,智能体执行;仓库作为记录系统;任务小步推进;用结构化 handoff 与可复现验证跨 session 保持连续性。背景资料收录在 `website/docs/practices/`。
|
|
217
|
-
|
|
218
|
-
## 仓库地图
|
|
219
|
-
|
|
220
|
-
本仓库按职责分区;更细的开工协议与会话规则见 `AGENTS.md`,治理索引见 `docs/README.md`。
|
|
221
|
-
|
|
222
|
-
| 路径 | 职责 |
|
|
223
|
-
|---|---|
|
|
224
|
-
| `bin/`、`src/` | CLI 入口与运行时代码 |
|
|
225
|
-
| `skills/` | repo-local skill 指令与 references |
|
|
226
|
-
| `.harness/` | task、DAG run、cache、live state 等运行态事实 |
|
|
227
|
-
| `docs/` | 长期治理文档、计划、报告与模板 |
|
|
228
|
-
| `website/` | 面向使用者的文档站 |
|
|
229
|
-
| `scripts/`、`test/` | 验证脚本与测试套件 |
|
|
230
|
-
| `examples/` | 可复制 DAG 示例(默认不投影到目标项目) |
|
|
231
|
-
| `features/`、`dogfood/` | 样板 Feature Packet 与 dogfood 样本(本仓库维护用) |
|
|
232
|
-
| `harness.json`、`AGENTS.md`、`CONTEXT.md` | 项目配置、agent 开工地图与术语表 |
|
|
233
|
-
|
|
234
|
-
## 能力概览
|
|
235
|
-
|
|
236
|
-
- 生成、校验、执行和汇总 Agent DAG。
|
|
237
|
-
- 通过 `eval replay` / `eval report` 对 completed DAG evidence 做 hash-anchored、deterministic 的只读重放比较;M1 不执行模型也不授权候选晋升。
|
|
238
|
-
- 通过 `eval candidate register|show|list|transition` 管理不可变 Candidate Bundle 与 append-only lifecycle(M2 registry MVP);不跑 live Pi/DAG,不移动 incumbent alias。
|
|
239
|
-
- 从任务说明生成标准 DAG,并按依赖顺序运行规划、实现、验证和收口节点。
|
|
240
|
-
- 维护 `loop` 长程任务状态,包括目标、轮次、信号、验证事实和收口草稿。
|
|
241
|
-
- 通过 Pi executor 执行只读规划、评审、诊断和有边界写入(唯一受治理 Agent writer)。
|
|
242
|
-
- 保留 `cursor-prompt` 作为显式、手工触发的 one-shot sidecar(不是受治理 DAG/Loop writer)。
|
|
243
|
-
- 通过 shell executor 运行确定性的验证命令。
|
|
244
|
-
- 检查任务状态、运行态工件、文档链接、skill entry 和 runtime boundary 等治理规则。
|
|
245
|
-
|
|
246
|
-
## 内置示例
|
|
247
|
-
|
|
248
|
-
`examples/` 默认不复制到目标项目。可以通过工具内置命令查看或按需复制:
|
|
80
|
+
启动本地只读看板:
|
|
249
81
|
|
|
250
82
|
```bash
|
|
251
|
-
|
|
252
|
-
loop-agent examples show example-dag.json
|
|
253
|
-
loop-agent examples copy example-dag.json --repo-root <target-repo>
|
|
83
|
+
agent-worker observe serve --repo . --port 8787
|
|
254
84
|
```
|
|
255
85
|
|
|
256
|
-
|
|
86
|
+
访问 <http://127.0.0.1:8787/>。Observe 只读取运行事实,不修改 DAG、Task Pool 或 Feature 状态。
|
|
257
87
|
|
|
258
|
-
|
|
88
|
+
## 核心边界
|
|
259
89
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
loop-agent
|
|
264
|
-
|
|
265
|
-
```
|
|
90
|
+
- `.harness/` 保存任务、DAG run、one-shot run 和可选 Task Pool 运行事实。
|
|
91
|
+
- `ai_workspace/loop-agent/` 保存目标项目的长期治理资料。
|
|
92
|
+
- `.agents/skills/` 保存目标项目可审计的 repo-local skills。
|
|
93
|
+
- `agent-worker` 通过已发布的 `loop-agent` 子进程执行 DAG,不维护第二套 runtime kernel。
|
|
94
|
+
- 当前不内置远程 Task Pool、云 Worker 集群、自动 push、自动创建或合并 PR、生产凭据管理。
|
|
266
95
|
|
|
267
|
-
|
|
96
|
+
架构说明见[系统全景](docs/architecture/system-overview.md)和 [runtime 边界](docs/architecture/runtime-boundaries.md)。
|
|
268
97
|
|
|
269
|
-
|
|
98
|
+
## 文档导航
|
|
270
99
|
|
|
271
|
-
|
|
272
|
-
npm run self-host:canary -- --deterministic --output <evidence.json>
|
|
273
|
-
# 或验证已经构建好的候选 tarball
|
|
274
|
-
npm run self-host:canary -- --deterministic --tarball <candidate.tgz> --output <evidence.json>
|
|
275
|
-
```
|
|
100
|
+
### 使用者
|
|
276
101
|
|
|
277
|
-
|
|
102
|
+
- [安装](website/docs/quick-start/installation.md)
|
|
103
|
+
- [初始化目标项目](website/docs/quick-start/init-target-project.md)
|
|
104
|
+
- [第一次运行](website/docs/quick-start/first-run.md)
|
|
105
|
+
- [功能导览](website/docs/overview/feature-map.md)
|
|
106
|
+
- [CLI 参考](website/docs/reference/cli.md)
|
|
107
|
+
- [Observe 看板](website/docs/guides/observe-ui.md)
|
|
278
108
|
|
|
279
|
-
|
|
109
|
+
### 维护者与 Agent
|
|
280
110
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
| `docs/verification-matrix.md` | 不同变更类型对应的验证命令 |
|
|
288
|
-
| `docs/production-readiness.md` | Production Readiness v0.1 支持范围、证据和验收标准 |
|
|
289
|
-
| `docs/architecture/runtime-boundaries.md` | runtime 层边界和依赖方向 |
|
|
290
|
-
| `skills/loop-agent/` | loop-agent skill 入口和 references |
|
|
291
|
-
| `examples/` | 可复用 DAG 示例 |
|
|
292
|
-
| `website/docs/` | 面向使用者的 Docusaurus 文档站内容 |
|
|
293
|
-
| `website/docs/practices/` | Anthropic、OpenAI Codex、腾讯端到端工程与社区 harness 实践资料 |
|
|
111
|
+
- [`AGENTS.md`](AGENTS.md):开工协议与工作规则
|
|
112
|
+
- [`docs/README.md`](docs/README.md):治理文档总索引
|
|
113
|
+
- [`docs/feature-workflow.md`](docs/feature-workflow.md):会话治理与 runtime workflow
|
|
114
|
+
- [`docs/verification-matrix.md`](docs/verification-matrix.md):验证命令选择
|
|
115
|
+
- [`docs/architecture/`](docs/architecture/README.md):架构、事实与演进边界
|
|
116
|
+
- [`CHANGELOG.md`](CHANGELOG.md):版本变化与 breaking changes
|
|
294
117
|
|
|
295
118
|
## 本仓库开发
|
|
296
119
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
本地源码开发:
|
|
120
|
+
开始修改前先阅读 `AGENTS.md`。常用验证:
|
|
300
121
|
|
|
301
122
|
```bash
|
|
302
123
|
npm install
|
|
303
|
-
npm run build
|
|
304
|
-
node bin/loop-agent.js --help
|
|
305
|
-
npm run dev -- --help
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
常用验证命令:
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
npm run typecheck
|
|
312
|
-
npm test
|
|
313
|
-
bash scripts/check-repo.sh
|
|
314
|
-
bash scripts/ci.sh
|
|
315
|
-
npm run docs:build
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
当前 CLI 使用 `commander` 组织 command tree。顶层 help、子命令 help、参数解析和未知命令错误都由 commander 驱动。
|
|
319
|
-
|
|
320
|
-
Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash,不要求使用 WSL 或 POSIX 路径。实际文件操作和 `--output` / `--dag` / `--cwd` 参数使用当前平台原生路径;仓库内引用、JSON/Markdown 证据引用和 glob 约定可继续用 `/` 作为稳定分隔符。
|
|
321
|
-
|
|
322
|
-
## 发布包内容
|
|
323
|
-
|
|
324
|
-
发布包包含静态运行和指导资料:`bin/`、`dist/`、`skills/`(包括 `loop-agent` 与可选的 `agent-worker` operator skill)、必要的治理文档(`docs/README.md`、三份 methodology、显式列出的 `docs/architecture/*.md`)、`docs/skills/`、`docs/templates/`、`docs/init-surface.manifest.json`、知识库运行脚本(`scripts/kb-*.mjs` 与 `kb-bootstrap-init-skeleton.sh`)、`examples/`、`harness.json`、`AGENTS.md`、`README.md` 和 `CHANGELOG.md`。
|
|
325
|
-
|
|
326
|
-
`docs/progress/`、`docs/reports/`、`docs/exec-plans/`、`docs/decisions/`、`docs/design/` 的任务正文与目录 README 不随包发布;`loop-agent init` 会在目标项目生成空目录契约,具体 plan/progress/report/decision 由后续真实任务写入。源仓库专属说明(如 agent-dag playbook、sidecar 说明)也不再打进 npm 包。
|
|
327
|
-
|
|
328
|
-
DAG skill 指令优先从用户配置目录和目标项目 `.agents/skills/` 解析;目标项目未提供本地 skill 时,CLI 会回退到 npm 包内置的 `skills/`。因此普通项目不需要复制 loop-agent 仓库历史文档或根 `skills/` 目录才可获得默认 DAG 能力。
|
|
329
|
-
|
|
330
|
-
## 发布前检查
|
|
331
|
-
|
|
332
|
-
发布 npm 包前至少运行:
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
124
|
npm run typecheck
|
|
336
125
|
npm test
|
|
337
126
|
npm run build
|
|
338
|
-
|
|
339
|
-
npm pack --dry-run
|
|
127
|
+
bash scripts/check-repo.sh
|
|
340
128
|
```
|
|
341
129
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
1. `node scripts/check-npm-publish-policy.mjs` — 发布策略门禁
|
|
345
|
-
2. `npm run typecheck`
|
|
346
|
-
3. `npm test`
|
|
347
|
-
4. `npm run build`
|
|
348
|
-
|
|
349
|
-
### frontend 分支发布限制
|
|
350
|
-
|
|
351
|
-
在 `frontend` 分支执行 `npm publish` 时,必须同时满足:
|
|
352
|
-
|
|
353
|
-
- `package.json` 版本为合法的 SemVer **beta** 预发布版本(例如 `0.13.0-beta.1`)
|
|
354
|
-
- 必须显式指定 `--tag beta`(即 `npm publish --tag beta`)
|
|
130
|
+
完整门禁和特定环境排障分别见:
|
|
355
131
|
|
|
356
|
-
|
|
132
|
+
- [`docs/verification-matrix.md`](docs/verification-matrix.md)
|
|
133
|
+
- [`docs/local-development-environment.md`](docs/local-development-environment.md)
|
|
357
134
|
|
|
358
|
-
|
|
135
|
+
发布和初始化 surface 变更还应运行 `npm pack --dry-run` 与 `bash scripts/check-init-surface.sh`。
|