@tea-agent/loop-agent 0.13.0-alpha.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -0
- package/CHANGELOG.md +57 -53
- package/README.md +12 -3
- package/dist/application/dag/generate-task-dag.js +28 -58
- package/dist/application/evaluation/candidate-hash.js +75 -0
- package/dist/application/evaluation/candidate.js +52 -0
- package/dist/application/evaluation/replay.js +289 -0
- package/dist/application/evaluation/types.js +130 -0
- package/dist/cli/command-definitions.js +17 -4
- package/dist/cli/program.js +8 -4
- package/dist/commands/eval.js +235 -0
- package/dist/commands/init.js +131 -24
- package/dist/executors/pi-sdk-executor.js +38 -24
- package/dist/executors/shell-executor.js +226 -15
- package/dist/executors/shell-presets.js +20 -0
- package/dist/executors/shell-verification.js +7 -0
- package/dist/governance/manifest-types.js +1 -0
- package/dist/infrastructure/evaluation/candidate-store.js +439 -0
- package/dist/infrastructure/evaluation/store.js +40 -0
- package/dist/task/config-types.js +23 -0
- package/dist/worker/observe/routes.js +18 -3
- package/dist/worker/observe/spec-evidence.js +1 -1
- package/dist/worker/observe/static/dom.js +160 -1
- package/dist/worker/observe/static/state.js +14 -0
- package/dist/worker/observe/static/views/dag-inspector.js +35 -4
- package/dist/worker/observe/static/views/dag.js +9 -0
- package/dist/worker/observe/static/views/dashboard.js +702 -445
- package/dist/worker/observe/static/views/session-timeline.js +15 -1
- package/dist/workflows/dag/backend-test-analysis-contract.js +120 -0
- package/dist/workflows/dag/backend-test-case-manifest.js +503 -0
- package/dist/workflows/dag/backend-test-execution-contract.js +353 -0
- package/dist/workflows/dag/backend-test-result-contract.js +568 -0
- package/dist/workflows/dag/decision-envelope.js +57 -2
- package/dist/workflows/dag/dynamic-runtime/map.js +90 -2
- package/dist/workflows/dag/frontend-implementation-contract.js +240 -0
- package/dist/workflows/dag/frontend-project-capability.js +309 -0
- package/dist/workflows/dag/frontend-repair.js +341 -0
- package/dist/workflows/dag/frontend-risk.js +161 -0
- package/dist/workflows/dag/frontend-verification-trace.js +190 -0
- package/dist/workflows/dag/init-hybrid.js +2407 -297
- package/dist/workflows/dag/node-execution.js +9 -0
- package/dist/workflows/dag/prompt.js +9 -0
- package/dist/workflows/dag/repair-artifact.js +43 -3
- package/dist/workflows/dag/report.js +35 -1
- package/dist/workflows/dag/runner.js +28 -2
- package/dist/workflows/dag/skill-instructions.js +4 -2
- package/dist/workflows/dag/task-demand-routing.js +383 -0
- package/dist/workflows/dag/types.js +71 -13
- package/dist/workflows/dag/upstream-artifacts.js +1 -0
- package/dist/workflows/dag/validate.js +59 -1
- package/docs/README.md +6 -3
- package/docs/agent-dag-recovery-playbook.md +5 -3
- package/docs/agent-dag-runner.md +3 -3
- package/docs/architecture/README.md +3 -3
- package/docs/architecture/dag-execution.md +1 -1
- package/docs/architecture/evolution.md +13 -13
- package/docs/architecture/facts-and-state.md +1 -1
- package/docs/architecture/runtime-boundaries.md +7 -7
- package/docs/architecture/system-overview.md +3 -3
- package/docs/architecture/worker-and-feature.md +3 -3
- package/docs/design/README.md +124 -42
- package/docs/development-principles.md +4 -4
- package/docs/exec-plans/active/README.md +12 -11
- package/docs/exec-plans/completed/README.md +33 -0
- package/docs/feature-workflow.md +114 -39
- package/docs/init-surface.manifest.json +30 -3
- package/docs/loop-agent-harness.md +9 -8
- package/docs/production-readiness.md +1 -1
- package/docs/progress/README.md +23 -1
- package/docs/reports/README.md +65 -6
- package/docs/skills/vetted-skill-registry.md +2 -0
- package/docs/templates/agent-dag.schema.json +29 -1
- package/docs/templates/agent-dag.supervised-implementation.json +127 -8
- package/docs/templates/backend-test-analysis.schema.json +44 -0
- package/docs/templates/backend-test-case-manifest.schema.json +190 -0
- package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
- package/docs/templates/backend-test-dag.generate-pytest.prompt.md +81 -16
- package/docs/templates/backend-test-dag.json +311 -40
- package/docs/templates/backend-test-dag.retrospect.prompt.md +44 -30
- package/docs/templates/backend-test-dag.review-cases.prompt.md +10 -8
- package/docs/templates/backend-test-execution.schema.json +133 -0
- package/docs/templates/backend-test-result.schema.json +99 -0
- package/docs/templates/branch-merge-report.md +93 -0
- package/docs/templates/frontend-design-contract.md +9 -0
- package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
- package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
- package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
- package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
- package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
- package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
- package/docs/templates/frontend-eval/metrics.md +138 -0
- package/docs/templates/frontend-eval/smoke-targets.md +53 -0
- package/docs/templates/frontend-implementation-contract.schema.json +27 -0
- package/docs/templates/frontend-task-constraints.md +10 -0
- package/docs/templates/frontend-task-requirement.md +9 -0
- package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -0
- package/docs/templates/frontend-test-dag.json +23 -0
- package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -0
- package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -0
- package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -0
- package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -0
- package/docs/templates/knowledge-graph-bootstrap-dag.json +1 -1
- package/docs/templates/knowledge-sync-dag.json +1 -0
- package/docs/verification-matrix.md +4 -1
- package/examples/decision-gate-agent-dag.json +4 -4
- package/examples/hybrid-loop-agent-dag.json +1 -1
- package/package.json +2 -2
- package/scripts/kb-bootstrap-init-skeleton.sh +2 -1
- package/scripts/kb-graph-incremental-prepare.mjs +19 -5
- package/scripts/kb-graph-promote.mjs +12 -1
- package/skills/ai-engineering-context/SKILL.md +2 -2
- package/skills/analyze-product-dependencies/SKILL.md +67 -0
- package/skills/analyze-product-dependencies/agents/openai.yaml +4 -0
- package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -0
- package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -0
- package/skills/analyze-product-dependencies/references/example.md +76 -0
- package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -0
- package/skills/analyze-product-dependencies/references/input-contract.md +11 -0
- package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -0
- package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -0
- package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -0
- package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -0
- package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -0
- package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -0
- package/skills/analyze-product-requirements/SKILL.md +90 -0
- package/skills/analyze-product-requirements/agents/openai.yaml +4 -0
- package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -0
- package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -0
- package/skills/analyze-product-requirements/references/example.md +86 -0
- package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -0
- package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -0
- package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -0
- package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -0
- package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -0
- package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -0
- package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -0
- package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -0
- package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -0
- package/skills/browser-tools/SKILL.md +196 -0
- package/skills/browser-tools/browser-content.js +103 -0
- package/skills/browser-tools/browser-cookies.js +35 -0
- package/skills/browser-tools/browser-eval.js +53 -0
- package/skills/browser-tools/browser-hn-scraper.js +108 -0
- package/skills/browser-tools/browser-nav.js +44 -0
- package/skills/browser-tools/browser-pick.js +162 -0
- package/skills/browser-tools/browser-screenshot.js +34 -0
- package/skills/browser-tools/browser-start.js +86 -0
- package/skills/browser-tools/package-lock.json +2556 -0
- package/skills/browser-tools/package.json +19 -0
- package/skills/frontend-design-review/SKILL.md +6 -1
- package/skills/frontend-design-review/references/review-checklist.md +25 -4
- package/skills/frontend-implementation/SKILL.md +25 -30
- package/skills/frontend-implementation/references/code-standards.md +20 -22
- package/skills/frontend-implementation/references/node-contracts.md +17 -53
- package/skills/frontend-review/SKILL.md +10 -4
- package/skills/frontend-review/references/review-findings.md +8 -3
- package/skills/frontend-verification/SKILL.md +22 -9
- package/skills/frontend-verification/references/verification-checklist.md +17 -5
- package/skills/grill-with-docs/SKILL.md +5 -5
- package/skills/grill-with-docs/adr-format.md +3 -3
- package/skills/init-capability-evolution/SKILL.md +5 -5
- package/skills/loop-agent/SKILL.md +5 -5
- package/skills/loop-agent/references/README.md +3 -3
- package/skills/loop-agent/references/command-reference.md +98 -24
- package/skills/loop-agent/references/docs-converge.md +15 -15
- package/skills/loop-agent/references/harness-policy.md +2 -2
- package/skills/loop-agent/references/hybrid-dag.md +32 -22
- package/skills/loop-agent/references/multi-worktree.md +1 -1
- package/skills/loop-agent/references/orchestrator-and-interventions.md +8 -8
- package/skills/loop-agent/references/task-workflow.md +1 -1
- package/skills/loop-agent/references/verification-and-failure-handling.md +6 -4
- package/skills/playwright-cli/SKILL.md +420 -0
- package/skills/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright-cli/references/running-code.md +241 -0
- package/skills/playwright-cli/references/session-management.md +225 -0
- package/skills/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright-cli/references/tracing.md +139 -0
- package/skills/playwright-cli/references/video-recording.md +143 -0
- package/skills/playwright-cli-case-generator/SKILL.md +74 -0
- package/skills/requesting-code-review/SKILL.md +1 -1
- package/skills/systematic-debugging/CREATION-LOG.md +3 -3
- package/skills/systematic-debugging/SKILL.md +1 -1
- package/skills/systematic-debugging/test-academic.md +1 -1
- package/skills/systematic-debugging/test-pressure-1.md +1 -1
- package/skills/systematic-debugging/test-pressure-2.md +1 -1
- package/skills/systematic-debugging/test-pressure-3.md +1 -1
- package/skills/verification-before-completion/SKILL.md +1 -1
package/docs/design/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 设计笔记
|
|
2
2
|
|
|
3
|
-
`docs/design/` 存放将 `loop-agent` 作为更大产品线 agent 平台内仓库本地 runtime 的规划笔记。这些是设计输入,不是 `src/`
|
|
3
|
+
`docs/design/` 存放将 `loop-agent` 作为更大产品线 agent 平台内仓库本地 runtime 的规划笔记。这些是设计输入,不是 `src/` 已具备该能力的证明——**除非**页首明确写了实现校准条,且有 `src/` / CHANGELOG / completed plan 旁证。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**维护日:2026-07-16** — 索引与归档建议按当前代码(`@tea-agent/loop-agent@0.12.0` + 主干 Unreleased)再采样。
|
|
6
6
|
|
|
7
7
|
| 文档 | 用途 |
|
|
8
8
|
|---|---|
|
|
@@ -10,57 +10,143 @@
|
|
|
10
10
|
| `taskspec-to-loop-agent-mapping.yaml` | 同上契约的结构化对照表 |
|
|
11
11
|
| `state-and-failure-taxonomy.md` | 文档、Task Pool、DAG、Loop 共用的 canonical status 与 failure taxonomy |
|
|
12
12
|
| `frontend-implementation-workflow.md` | 前端 DAG 实现 / 评审 / 验证工作流与证据约定 |
|
|
13
|
+
| `frontend-mock-data-workflow.md` | 前端任务先读取规范、识别项目 Mock 服务、生成 Mock 合同并做专项验证的已实现设计 |
|
|
14
|
+
| `dag-source-binding-and-recovery.md` | 新生成 DAG 的权威任务源绑定、前端需求编号覆盖门禁与中断后完整重生成规则 |
|
|
13
15
|
| `full-chain-test-knowledge-base.md` | 全流程测试知识库分层、目录、对象模型、与 backend-test-dag / Feature QA 的读写映射 |
|
|
14
16
|
| `full-chain-testing-system-redesign.md` | **综合重设计**:知识库权威层 + I/T/V/K 四类 DAG + knowledge-sync v2 硬化与迁移 |
|
|
15
17
|
| `testing-knowledge-base-impl-spec.md` | **知识库实现细节 v1(先冻结)**:目录、schema、ID、读写矩阵、校验规则、MVP 清单 |
|
|
16
18
|
| `knowledge-graph-and-query-spec.md` | **业务知识图谱 + 查询协议 v1**:实体/边、knowledge-links、kb-query 分层、索引 materialize |
|
|
17
19
|
| `knowledge-graph-ai-bootstrap.md` | **AI 构建图谱 + 初始化 B0–B6**:staging 提案、人审晋升、bootstrap DAG、增量更新 |
|
|
18
20
|
| `verification-subdag-plugin.md` | 独立测试全流程 Verification DAG 与三种实现 DAG 的 compose 设计(若分支存在) |
|
|
21
|
+
## 归档策略(何时迁入 `archive/`)
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
满足以下**多数**条件时可归档:
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
1. 对应能力已在 `src/` 落地,且有 `docs/exec-plans/completed/*` 或 dated report / CHANGELOG 版本说明;
|
|
26
|
+
2. 文档主体是**阶段性计划 / 月度 WBS / 已关闭路线图**,不再驱动实现决策;
|
|
27
|
+
3. 继续放在 design 根目录会让新人误判为「未做完」或「下一件必做」。
|
|
23
28
|
|
|
24
|
-
|
|
25
|
-
|---|---|
|
|
26
|
-
| `dynamic-workflow-dag-engine-roadmap.md` | Dynamic Workflow 适配分析与阶段规划;**页首有实现状态 / Pi-only 校准条**(已落地 vs 设计输入);正文 Cursor 叙述视为历史 |
|
|
27
|
-
| `六个月规划.md` | 长期路线;**页首 2026-07-15 / 0.11.0 校准**;第 1–2 月为 archive/reports 指针,当前有效前瞻从第 3 月起 |
|
|
28
|
-
| `产品线共享知识库.md` | 产品线文档仓库作为上游事实源;**页首 2026-07-15 / 0.11.0 校准**(模板+Feature dogfood 已落地 vs docs-sync 未来) |
|
|
29
|
-
| `研发模式.md` | 10 个工作日 Feature 团队工作流 |
|
|
30
|
-
| `腾讯实践对当前项目的指引.md` | 腾讯 Harness Engineering 实践对本仓库的映射笔记;源文见 `website/docs/practices/tencent-harness-engineering/index.md` |
|
|
29
|
+
**不要归档**(仍放根目录):
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
- 仍被代码/CLI/映射表**持续引用**的契约(taxonomy、taskspec mapping、frontend workflow 等);
|
|
32
|
+
- 仍有 **active exec-plan** 或大段 **planned/deferred** 的设计真源(如 Eval Lab);
|
|
33
|
+
- 长期路线与方法论笔记(六个月规划、腾讯实践、研发模式)——可加校准条,不必塞进 archive;
|
|
34
|
+
- 纯视觉 token 参考(`DESIGN-*.md`)。
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 契约与实现映射(优先读 · 仍活)
|
|
39
|
+
|
|
40
|
+
| 文档 | 用途 | 归档建议 |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `taskspec-to-loop-agent-mapping.md` / `.yaml` | TaskSpec → loop-agent task 契约 | **保留**(随 schema 更新) |
|
|
43
|
+
| `state-and-failure-taxonomy.md` | 状态 / failure taxonomy | **保留** |
|
|
44
|
+
| `frontend-implementation-workflow.md` | 前端 DAG 实现/评审/验证约定 | **保留**(活工作流) |
|
|
45
|
+
| `full-chain-test-knowledge-base.md` | 测试知识库分层与对象模型 | **保留**(K 族权威设计) |
|
|
46
|
+
| `full-chain-testing-system-redesign.md` | I/T/V/K 综合重设计 | **保留**(后续 T/V 与 hardening 仍可能引用;MVP 已部分 ship) |
|
|
47
|
+
| `testing-knowledge-base-impl-spec.md` | 知识库实现细节 v1 | **保留**(规格冻结;DAG 细节另文) |
|
|
48
|
+
| `knowledge-graph-and-query-spec.md` | 图谱 + 查询协议 v1 | **保留**(Phase A 已实现,规格仍真源) |
|
|
49
|
+
| `knowledge-graph-ai-bootstrap.md` | AI bootstrap B0–B6 / staging | **保留**(bootstrap MVP 已实现,增量/产品化仍引用) |
|
|
50
|
+
|
|
51
|
+
**执行 Contract(knowledge 已完成归档):** `docs/exec-plans/completed/2026-07-14-knowledge-sync-and-graph.md`
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 实验 / 评测(设计输入 · 进行中)
|
|
56
|
+
|
|
57
|
+
| 文档 | 用途 | 归档建议 |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `recursive-self-improvement-eval-lab.md` | Harness Eval Lab 设计真源 | **保留 active**:M1 + M2 W2.1–W2.3 已实现;W2.4 / M3+ 未做。执行计划:`docs/exec-plans/active/2026-07-16-recursive-self-improvement-eval-lab.md` |
|
|
60
|
+
|
|
61
|
+
> 设计 README 旧句「W2.3 仍未实现」已过时:W2.3 run association **已合入**(见 active plan 进度与 `CHANGELOG.md [Unreleased]`)。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 路线与产品线笔记(非实现证明 · 保留 + 校准条)
|
|
66
|
+
|
|
67
|
+
| 文档 | 用途 | 归档建议 |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| `dynamic-workflow-dag-engine-roadmap.md` | Dynamic Workflow 阶段规划 | **保留**:页首有落地校准;高风险 shard/merge 等仍是 roadmap |
|
|
70
|
+
| `六个月规划.md` | 长期路线 | **保留**:页首 **2026-07-16** 已补 0.12.0 / Task Pool v2 / Ready Planner / Eval 指针;第 3–6 月仍有效前瞻 |
|
|
71
|
+
| `产品线共享知识库.md` | 产品线文档仓库上游事实源 | **保留**(docs-sync 等仍多为未来) |
|
|
72
|
+
| `研发模式.md` | 10 日 Feature 团队工作流 | **保留**(方法论) |
|
|
73
|
+
| `腾讯实践对当前项目的指引.md` | 外部实践映射 | **保留**(背景;源文在 website practices) |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 视觉参考(保留)
|
|
78
|
+
|
|
79
|
+
| 文档 | 用途 | 归档建议 |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| `DESIGN-cursor.md` | Observe 暖白 / Cursor 风格 token | **保留**(视觉参考) |
|
|
82
|
+
| `DESIGN-lovable.md` | Lovable 暖色视觉参考 | **保留** |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 本次已迁入 `archive/`(2026-07-16)
|
|
87
|
+
|
|
88
|
+
| 文档 | 原因 |
|
|
35
89
|
|---|---|
|
|
36
|
-
| `2026-07-14-loop-agent-self-update-notifier.md` |
|
|
37
|
-
| `
|
|
38
|
-
| `DESIGN-lovable.md` | Lovable 风格的暖色视觉系统参考 |
|
|
90
|
+
| `archive/2026-07-14-loop-agent-self-update-notifier.md` | 自更新提醒 **已实现**(0.11.0 + report/completed plan);设计不再是「尚未实现」 |
|
|
91
|
+
| `archive/2026-07-16-priority-ready-planner-contract.md` | Ready Planner **已实现并 closeout**;原 M0 RED「未实现」状态条会误导 |
|
|
39
92
|
|
|
40
|
-
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 已归档(历史)
|
|
41
96
|
|
|
42
97
|
| 文档 | 用途 |
|
|
43
98
|
|---|---|
|
|
44
|
-
| `archive/2026-07-07-agent-worker-plan.md` |
|
|
45
|
-
| `archive/2026-07-07-taskspec-plan.md` |
|
|
46
|
-
| `archive/2026-07-10-下一阶段任务-功能开发完成.md` |
|
|
47
|
-
| `archive/2026-07-10-observe-ui.md` |
|
|
48
|
-
| `archive/2026-07-10-observe-ui-optimization.md` |
|
|
49
|
-
| `archive/2026-07-10-observe-ui-goal.md` |
|
|
50
|
-
| `archive/2026-07-14-observe-ui-roadmap.md` |
|
|
51
|
-
| `archive/2026-07-11-第一月规划.md`
|
|
52
|
-
| `archive/2026-07-
|
|
53
|
-
| `archive/2026-07-
|
|
99
|
+
| `archive/2026-07-07-agent-worker-plan.md` | Worker 落地计划(已实现于 `src/worker/`) |
|
|
100
|
+
| `archive/2026-07-07-taskspec-plan.md` | TaskSpec v0.1 设计(已实现) |
|
|
101
|
+
| `archive/2026-07-10-下一阶段任务-功能开发完成.md` | 样本/失败硬化完成记录 |
|
|
102
|
+
| `archive/2026-07-10-observe-ui.md` | Observe UI v0(OBS-001~010) |
|
|
103
|
+
| `archive/2026-07-10-observe-ui-optimization.md` | 中文 DAG-first / 过程时间线 |
|
|
104
|
+
| `archive/2026-07-10-observe-ui-goal.md` | OBS 进度看板(全部 done) |
|
|
105
|
+
| `archive/2026-07-14-observe-ui-roadmap.md` | Observe R1–R5 路线图(已完成) |
|
|
106
|
+
| `archive/2026-07-11-第一月规划.md` / `第一月wbs.md` | 首月闭环历史 |
|
|
107
|
+
| `archive/2026-07-12-第二月规划.md` | 第二月 Feature 闭环历史 |
|
|
108
|
+
| `archive/2026-07-14-loop-agent-self-update-notifier.md` | CLI 自更新提醒设计(已实现) |
|
|
109
|
+
| `archive/2026-07-16-priority-ready-planner-contract.md` | Ready Planner M0 合同(已实现) |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 根目录文件 — 归档建议一览(2026-07-16)
|
|
114
|
+
|
|
115
|
+
| 文件 | 建议 | 说明 |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| `README.md` | 保留 | 本索引 |
|
|
118
|
+
| `taskspec-to-loop-agent-mapping.*` | 保留 | 活契约 |
|
|
119
|
+
| `state-and-failure-taxonomy.md` | 保留 | 活契约 |
|
|
120
|
+
| `frontend-implementation-workflow.md` | 保留 | 活工作流 |
|
|
121
|
+
| `full-chain-test-knowledge-base.md` | 保留 | K 族设计真源 |
|
|
122
|
+
| `full-chain-testing-system-redesign.md` | 保留(可选日后拆「已落地摘要」) | 综合草案;部分已 ship |
|
|
123
|
+
| `testing-knowledge-base-impl-spec.md` | 保留 | 规格冻结 |
|
|
124
|
+
| `knowledge-graph-and-query-spec.md` | 保留 | 协议真源 |
|
|
125
|
+
| `knowledge-graph-ai-bootstrap.md` | 保留 | bootstrap 设计真源 |
|
|
126
|
+
| `recursive-self-improvement-eval-lab.md` | **保留 active** | Eval Lab 真源 |
|
|
127
|
+
| `dynamic-workflow-dag-engine-roadmap.md` | 保留 | roadmap + 校准 |
|
|
128
|
+
| `六个月规划.md` | 保留 | 路线;校准条已含 0.12 / Unreleased |
|
|
129
|
+
| `产品线共享知识库.md` | 保留 | 上游知识库愿景 |
|
|
130
|
+
| `研发模式.md` | 保留 | 方法论 |
|
|
131
|
+
| `腾讯实践对当前项目的指引.md` | 保留 | 实践映射 |
|
|
132
|
+
| `DESIGN-cursor.md` / `DESIGN-lovable.md` | 保留 | 视觉 |
|
|
133
|
+
| ~~`2026-07-14-loop-agent-self-update-notifier.md`~~ | **已归档** | 见上 |
|
|
134
|
+
| ~~`2026-07-16-priority-ready-planner-contract.md`~~ | **已归档** | 见上 |
|
|
135
|
+
|
|
136
|
+
### 暂不建议归档(但可标注「部分落地」)
|
|
137
|
+
|
|
138
|
+
- **knowledge 四件套 + full-chain\***:exec-plan 已 complete,但设计文仍是目录/schema/增量协议的权威;归档会切断引用习惯。若未来拆出「实现状态」短页,可把**纯进度段落**迁 archive,规格正文仍留根。
|
|
139
|
+
- **六个月规划 / Dynamic Workflow roadmap**:含未来月与未完成 primitive;只做页首校准,整篇归档会丢前瞻。
|
|
140
|
+
|
|
141
|
+
---
|
|
54
142
|
|
|
55
143
|
## 命名约定(2026-07-09 起)
|
|
56
144
|
|
|
57
145
|
| 名称 | 含义 | 状态 |
|
|
58
146
|
|---|---|---|
|
|
59
147
|
| `loop-agent` | 仓库本地 runtime / 治理控制器 CLI | 已发布 |
|
|
60
|
-
| `agent-worker` | 产品线 TaskSpec 批处理适配层 CLI
|
|
61
|
-
| `agent-platform` | 早期规划设想名;**不是**当前 CLI
|
|
62
|
-
|
|
63
|
-
当前真实分层:
|
|
148
|
+
| `agent-worker` | 产品线 TaskSpec 批处理适配层 CLI | 已发布 |
|
|
149
|
+
| `agent-platform` | 早期规划设想名;**不是**当前 CLI | 仅未来 monorepo/上层服务语境 |
|
|
64
150
|
|
|
65
151
|
```text
|
|
66
152
|
产品线 docs / TaskSpec / TaskGraph
|
|
@@ -70,16 +156,12 @@
|
|
|
70
156
|
→ cursor-prompt(显式手工 one-shot sidecar,非受治理 writer)
|
|
71
157
|
```
|
|
72
158
|
|
|
73
|
-
命令示例一律使用 `agent-worker`,不要再写 `agent-platform task ...`。
|
|
74
|
-
|
|
75
159
|
## 维护规则
|
|
76
160
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
6. 过期月规划 / 已落地专题设计迁入 `archive/`,并更新本 README
|
|
85
|
-
7. 运行 `bash scripts/check-repo.sh`
|
|
161
|
+
1. 保持 TaskSpec 字段、status、failure category、命令示例与契约文档一致。
|
|
162
|
+
2. 未来平台组件标为目标架构,除非已存在于 `src/` 或 `scripts/`。
|
|
163
|
+
3. 命令示例只用 `agent-worker` / `loop-agent`。
|
|
164
|
+
4. `config-types` / profile routing 变更时更新 mapping 文档。
|
|
165
|
+
5. failure / Task Pool state 变更时更新 taxonomy。
|
|
166
|
+
6. **过期月规划 / 已关闭实现合同**迁入 `archive/`,并更新本 README。
|
|
167
|
+
7. 运行 `bash scripts/check-repo.sh`(或至少 check-doc-index / check-doc-links)。
|
|
@@ -9,7 +9,7 @@ loop-agent 是面向 agentic coding 的工作流 runtime。仓库应保持小而
|
|
|
9
9
|
这个模型吸收了 Anthropic 长时运行 agent harness、OpenAI Codex harness engineering、腾讯端到端 Harness Engineering 和社区 agent harness 实践中的共同经验:用短入口文档导航长期知识,用结构化任务状态和 handoff artifact 跨 session 传递事实,用独立验证和评审回路约束 agent 输出,并把人类注意力集中在意图、边界、架构和反馈系统上。面向使用者的背景资料收录在 `website/docs/practices/`。
|
|
10
10
|
|
|
11
11
|
- 仓库是记录系统。决策、契约、计划、测试、报告与交接属于 tracked files。
|
|
12
|
-
- `AGENTS.md` 是操作地图,不是知识 dump。长期方法论与决策属于 `
|
|
12
|
+
- `AGENTS.md` 是操作地图,不是知识 dump。长期方法论与决策属于 `ai_workspace/loop-agent/`。
|
|
13
13
|
- 工作以小步、可逆、可验证的增量推进。
|
|
14
14
|
- 状态不确定时,先跑基线验证再开新工。
|
|
15
15
|
- 完成由新鲜证据定义,而非意图或信心。
|
|
@@ -19,7 +19,7 @@ loop-agent 是面向 agentic coding 的工作流 runtime。仓库应保持小而
|
|
|
19
19
|
1. 一次任务只推进一个有边界的工作块。
|
|
20
20
|
2. 设计新行为前先搜索现有代码、文档、脚本与测试。
|
|
21
21
|
3. Shell 验证是完成权威。
|
|
22
|
-
4. Runtime 状态在 `.harness/`;持久决策在 `
|
|
22
|
+
4. Runtime 状态在 `.harness/`;持久决策在 `ai_workspace/loop-agent/`。
|
|
23
23
|
5. Pi writer 节点必须由显式 allowed/forbidden paths 与 writeSet 约束;Cursor 仅可作为 `cursor-prompt` one-shot sidecar,不进入受治理 DAG/Loop 写入路径。
|
|
24
24
|
6. Pi review/planning 路径是 advisory,除非后跟确定性验证。
|
|
25
25
|
7. 反复出现的约束应固化为文档、测试、脚本、检查或模板。
|
|
@@ -31,9 +31,9 @@ loop-agent 是面向 agentic coding 的工作流 runtime。仓库应保持小而
|
|
|
31
31
|
|
|
32
32
|
- 源码:`src/`
|
|
33
33
|
- 测试:`test/`
|
|
34
|
-
- Skill 指令:源码仓库和 npm 包内置在
|
|
34
|
+
- Skill 指令:源码仓库和 npm 包内置在 `.agents/skills/`,目标项目 repo-local skills 在 `.agents/skills/`
|
|
35
35
|
- 验证与维护脚本:`scripts/`
|
|
36
|
-
- 治理与交接产物:`
|
|
36
|
+
- 治理与交接产物:`ai_workspace/loop-agent/`
|
|
37
37
|
|
|
38
38
|
## 变更纪律
|
|
39
39
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
# 进行中的执行计划
|
|
2
|
-
|
|
3
|
-
本目录存放当前进行中的 execution plan。
|
|
4
|
-
|
|
5
|
-
源码仓库可在本 README 旁保留具体 active plan 文件。npm 包只携带本 README 作为目录契约,不复制 loop-agent 源码历史的 active plan;目标仓库自行生成 active plan。
|
|
6
|
-
|
|
7
|
-
当前 active execution plan:
|
|
8
|
-
|
|
9
|
-
- [`2026-07-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
# 进行中的执行计划
|
|
2
|
+
|
|
3
|
+
本目录存放当前进行中的 execution plan。
|
|
4
|
+
|
|
5
|
+
源码仓库可在本 README 旁保留具体 active plan 文件。npm 包只携带本 README 作为目录契约,不复制 loop-agent 源码历史的 active plan;目标仓库自行生成 active plan。
|
|
6
|
+
|
|
7
|
+
当前 active execution plan:
|
|
8
|
+
|
|
9
|
+
- [`2026-07-16-recursive-self-improvement-eval-lab.md`](2026-07-16-recursive-self-improvement-eval-lab.md) — Eval Lab:**M0+M1+M2(W2.1–W2.3) done**;W2.4 alias/promotion 与 M3+ live campaign 仍 todo(设计真源 `docs/design/recursive-self-improvement-eval-lab.md`;CHANGELOG `[Unreleased]`)
|
|
10
|
+
- [`2026-07-16-frontend-mock-node.md`](2026-07-16-frontend-mock-node.md) — 前端 DAG Mock 策略节点与安全验证
|
|
11
|
+
|
|
12
|
+
- 已归档:`../completed/2026-07-16-fe-test-dag.md`、`../completed/2026-07-17-frontend-implementation-capability-deepening.md`、`../completed/2026-07-17-backend-test-capability-deepening.md`、`../completed/2026-07-16-backend-test-remediation.md`、`../completed/2026-07-16-frontend-demand-auto-routing.md`、`../completed/2026-07-16-frontend-mock-data-workflow.md`、`../completed/2026-07-14-knowledge-sync-and-graph.md`、`../completed/2026-07-15-repair-artifact-gate-runtime-contract.md`、`../completed/2026-07-14-observe-ui-r5.md`、`../completed/2026-07-14-observe-ui-r4.md`、`../completed/2026-07-14-observe-ui-r3.md`、`../completed/2026-07-14-observe-ui-r2.md`、`../completed/2026-07-14-observe-ui-r1.md`、`../completed/2026-07-14-init-canonical-layout.md`、`../completed/2026-07-12-observe-warm-console-redesign.md`、`../completed/2026-07-14-website-docs-ia-and-converge.md`、`../completed/2026-07-13-versioned-self-hosting-bootstrap.md`、`../completed/2026-07-12-pi-only-agent-runtime.md`、第二月 M2-01~M2-08、`../completed/2026-07-11-observe-dashboard-page-system.md`、`../completed/2026-07-11-observe-dashboard-detail-refinement.md`、`../completed/2026-07-11-observe-terminal-dag-kpi.md`、`../completed/2026-07-11-observe-polling-efficiency.md`、`../completed/2026-07-11-command-performance-guardrails.md` 及更早计划。
|
|
@@ -4,6 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
npm 包携带本 README 作为目录契约。具体 completed plan 属于目标仓库历史,不从 loop-agent 源码历史复制。
|
|
6
6
|
|
|
7
|
+
- [`2026-07-16-fe-test-dag.md`](2026-07-16-fe-test-dag.md) — FE-test RAG:`taskKind: "frontend-test"` 串行浏览器用例/证据 DAG(MVP + PR #25;prompt 深度 / 真实 browser smoke 等 residual 另开)
|
|
8
|
+
- [`2026-07-17-frontend-implementation-capability-deepening.md`](2026-07-17-frontend-implementation-capability-deepening.md) — frontend-implementation Contract/trace/repair、风险裁剪、React/Next/Vue capability、a11y/openSpec seed(M0–M6 核心完成;W2.7/W3.8/W6.8 residual)
|
|
9
|
+
- [`2026-07-17-backend-test-capability-deepening.md`](2026-07-17-backend-test-capability-deepening.md) — backend-test 执行合同、结果分类、Case Manifest/Traceability 与 M4 docs/init/tmpdir smoke 收敛(M0–M4 全完成)
|
|
10
|
+
- [`2026-07-17-review-findings-remediation.md`](2026-07-17-review-findings-remediation.md) — 收敛主干 review findings
|
|
11
|
+
- [`2026-07-16-frontend-mock-data-workflow.md`](2026-07-16-frontend-mock-data-workflow.md) — 前端 Mock 数据治理链
|
|
12
|
+
- [`2026-07-16-frontend-demand-auto-routing.md`](2026-07-16-frontend-demand-auto-routing.md) — 前端需求确定性自动路由
|
|
13
|
+
- [`2026-07-16-dag-source-binding-recovery.md`](2026-07-16-dag-source-binding-recovery.md) — DAG 任务源绑定与恢复门禁
|
|
14
|
+
- [`2026-07-16-backend-test-remediation.md`](2026-07-16-backend-test-remediation.md) — backend-test 报告、writeSet 与 prompt 修复
|
|
15
|
+
- [`2026-07-14-knowledge-sync-and-graph.md`](2026-07-14-knowledge-sync-and-graph.md) — knowledge-sync 与知识图谱 MVP 完成归档
|
|
16
|
+
- [`2026-07-16-target-agents-routing-observe.md`](2026-07-16-target-agents-routing-observe.md) — 让根与初始化目标 AGENTS 正确路由后端测试,并提供本地只读看板入口和安全更新回归
|
|
17
|
+
- [`2026-07-16-init-upgrade-continuity.md`](2026-07-16-init-upgrade-continuity.md) — 修复 apply-safe 降级 recorded state、补齐 knowledge taskKind/公共 CLI 指引,并将 kb runtime scripts 纳入 packageRequired
|
|
7
18
|
- [`2026-07-15-repair-artifact-gate-runtime-contract.md`](2026-07-15-repair-artifact-gate-runtime-contract.md) — 显式 `repairNodeId` + 严格 repair writer 契约、DagSpec `runtimeContract` capability preflight,以及 run-owned controller identity(resume 漂移 fail-closed)
|
|
8
19
|
- [`2026-07-14-backend-test-dag-template.md`](2026-07-14-backend-test-dag-template.md) — 通过 `taskKind: "backend-test"` 生成需求分析、功能用例、pytest 自动化、执行与复盘的 Pi-only 专用 DAG
|
|
9
20
|
- [`2026-07-14-observe-ui-r5.md`](2026-07-14-observe-ui-r5.md) — Observe 原生 ES module 拆分、四态 helper、Pool hash 筛选与入口 re-export
|
|
@@ -72,3 +83,25 @@ npm 包携带本 README 作为目录契约。具体 completed plan 属于目标
|
|
|
72
83
|
- [`2026-07-15-task-pool-v2-feature-scoped-task-identity.md`](2026-07-15-task-pool-v2-feature-scoped-task-identity.md)
|
|
73
84
|
- [`2026-07-15-init-update-surface-coverage.md`](2026-07-15-init-update-surface-coverage.md)
|
|
74
85
|
- [`2026-07-15-readonly-node-retry.md`](2026-07-15-readonly-node-retry.md)
|
|
86
|
+
|
|
87
|
+
- [`2026-07-16-init-natural-language-routing.md`](2026-07-16-init-natural-language-routing.md)
|
|
88
|
+
|
|
89
|
+
- [`2026-07-16-observe-inspector-node-consistency.md`](2026-07-16-observe-inspector-node-consistency.md)
|
|
90
|
+
|
|
91
|
+
- [`2026-07-16-repair-artifact-pass-normalization.md`](2026-07-16-repair-artifact-pass-normalization.md)
|
|
92
|
+
|
|
93
|
+
- [`2026-07-16-decision-envelope-fence-tolerance.md`](2026-07-16-decision-envelope-fence-tolerance.md)
|
|
94
|
+
|
|
95
|
+
- [`2026-07-16-decision-envelope-prompt-contract.md`](2026-07-16-decision-envelope-prompt-contract.md)
|
|
96
|
+
|
|
97
|
+
- [`2026-07-17-source-target-structure-alignment.md`](2026-07-17-source-target-structure-alignment.md)
|
|
98
|
+
|
|
99
|
+
- [`2026-07-17-review-findings-remediation.md`](2026-07-17-review-findings-remediation.md)
|
|
100
|
+
|
|
101
|
+
- [`2026-07-16-backend-test-analysis-contract-artifact.md`](2026-07-16-backend-test-analysis-contract-artifact.md)
|
|
102
|
+
|
|
103
|
+
- [`2026-07-17-release-0130-reconcile.md`](2026-07-17-release-0130-reconcile.md)
|
|
104
|
+
|
|
105
|
+
- [`2026-07-17-observe-dashboard-incremental-polling.md`](2026-07-17-observe-dashboard-incremental-polling.md)
|
|
106
|
+
|
|
107
|
+
- [`2026-07-18-origin-main-merge-43e86ad.md`](2026-07-18-origin-main-merge-43e86ad.md)
|
package/docs/feature-workflow.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
3. **Contract**:写明交付物、非目标、完成标准、验证命令、失败条件
|
|
13
13
|
4. **Implement**:做最小连贯变更,同步更新必要文档、脚本与测试
|
|
14
14
|
5. **Verify**:按 `verification-matrix.md` 跑命令;完成声明用新鲜输出
|
|
15
|
-
6. **Handoff**:在 `
|
|
15
|
+
6. **Handoff**:在 `ai_workspace/loop-agent/progress/`、`ai_workspace/loop-agent/reports/`、exec plan 或 ADR 中记录证据
|
|
16
16
|
|
|
17
17
|
## Orient
|
|
18
18
|
|
|
@@ -65,7 +65,7 @@ Bug 修复的 contract 应含复现路径,以及证明修复的回归测试或
|
|
|
65
65
|
|
|
66
66
|
验证是完成权威。
|
|
67
67
|
|
|
68
|
-
- 用 `
|
|
68
|
+
- 用 `ai_workspace/loop-agent/verification-matrix.md` 选最窄的证明命令
|
|
69
69
|
- 完整重跑命令
|
|
70
70
|
- 读 exit code 与输出
|
|
71
71
|
- 修失败或报告确切失败状态
|
|
@@ -84,6 +84,39 @@ loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd .
|
|
|
84
84
|
|
|
85
85
|
`<temp-dir>` 为平台原生临时目录。macOS/Windows 上实际文件操作用原生路径;`/` 仅用于稳定 repo 引用、JSON/Markdown 证据引用和 glob 约定。
|
|
86
86
|
|
|
87
|
+
## 业务模板(taskKind)与治理 Profile
|
|
88
|
+
|
|
89
|
+
这两层要分开:
|
|
90
|
+
|
|
91
|
+
| 层 | 入口 | 作用 | 合法取值 |
|
|
92
|
+
|----|------|------|----------|
|
|
93
|
+
| 业务模板 | `task.json.taskKind` | 选专用 DAG 节点链 | `standard` / `frontend-implementation` / `frontend-test` / `backend-test` / `knowledge-sync` / `knowledge-graph-bootstrap` 等 |
|
|
94
|
+
| 治理 profile | `dag run-task --profile` | 风险与流程强度 | **仅** `auto` / `minimal` / `standard` / `reviewed` / `supervised` |
|
|
95
|
+
|
|
96
|
+
专用业务流水线**不要**写成 `--profile frontend-test` / `--profile backend-test` / `--profile knowledge-sync` / `--profile knowledge-graph-bootstrap`:CLI 会拒绝这些值。正确做法是写 `task.json.taskKind`(`knowledge-sync` 还须 `featureId`)。
|
|
97
|
+
|
|
98
|
+
| 用户描述关键词 | 正确入口 | 模板 |
|
|
99
|
+
|--------------|----------|------|
|
|
100
|
+
| 后端测试、接口测试、pytest 自动化 | `taskKind: "backend-test"` | backend-test-dag |
|
|
101
|
+
| 前端功能测试、浏览器测试、Playwright CLI | `taskKind: "frontend-test"` | frontend-test-dag |
|
|
102
|
+
| 前端实现、UI/组件开发 | `taskKind: "frontend-implementation"`(或 standard 下高置信自动分类) | frontend-implementation |
|
|
103
|
+
| 测试知识回写 / 知识同步 | `taskKind: "knowledge-sync"` + `featureId` | knowledge-sync-dag |
|
|
104
|
+
| 业务知识图谱开荒 / 增量 | `taskKind: "knowledge-graph-bootstrap"` | knowledge-graph-bootstrap-dag |
|
|
105
|
+
| 普通实现、修复、功能 | `taskKind: "standard"` + `--profile auto`(默认) | 由 governance / 任务源分类推断 |
|
|
106
|
+
|
|
107
|
+
**后端测试示例:**
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
loop-agent new-task <task-id> "后端测试任务"
|
|
111
|
+
# 将需求文档放入 .harness/tasks/<task-id>/source/需求.md
|
|
112
|
+
# 将参考文档放入 .harness/tasks/<task-id>/source/references/
|
|
113
|
+
# 在 .harness/tasks/<task-id>/task.json 设置:
|
|
114
|
+
# { "taskKind": "backend-test", ... }
|
|
115
|
+
loop-agent dag run-task <task-id> --execute --cwd .
|
|
116
|
+
# 需要收紧治理时再叠加合法 profile,例如:
|
|
117
|
+
# loop-agent dag run-task <task-id> --profile supervised --execute --cwd .
|
|
118
|
+
```
|
|
119
|
+
|
|
87
120
|
这不是线性 OS-CIVH runtime 状态机。代码里 DAG 有三个命令阶段:
|
|
88
121
|
|
|
89
122
|
1. `dag run-task` 加载 `.harness/tasks/<task-id>/source/需求.md`、可选 `执行约束.md`、`task.json` 与 adapter 验证命令,写出 DAG spec
|
|
@@ -104,50 +137,83 @@ contract-pi
|
|
|
104
137
|
|
|
105
138
|
`implement-pi` / `repair-pi` 使用 `executor: "pi"` 与 `toolProfile: "write"`。受治理 runtime 不再生成或接受 `implement-cursor` / `repair-cursor`;旧 Cursor DAG 会在 schema 校验阶段失败,需要重新生成。
|
|
106
139
|
|
|
107
|
-
|
|
140
|
+
专用模板选择与 governance profile 是两层独立路由。显式声明的专用 `taskKind` 始终优先;对于默认 `standard` 任务,生成器会根据任务标题、`source/需求.md` 和结构化 `allowedPaths` 做保守、确定性的需求分类。只有高置信的前端实现需求才自动选择 `frontend-implementation` 模板;由显式 profile、`workflowPolicy` 或 supervised quality gate 选中的 supervised 模板不会被自动分类降级。后端、前后端混合、明确排除前端或无法可靠判断的需求继续使用 governance profile 选出的通用模板,绝不会自动进入 `backend-test-dag`。已有 `taskKind: "frontend-implementation"` 继续作为兼容入口和有意覆盖:
|
|
108
141
|
|
|
109
142
|
```text
|
|
110
143
|
frontend-contract-pi
|
|
111
144
|
-> frontend-scout-pi
|
|
145
|
+
-> frontend-mock-assess-pi
|
|
146
|
+
-> frontend-mock-contract-gate-shell
|
|
112
147
|
-> frontend-plan-pi
|
|
113
|
-
-> frontend-design-gate-pi
|
|
114
|
-
-> frontend-
|
|
115
|
-
-> frontend-
|
|
148
|
+
-> [frontend-design-gate-pi -> frontend-first-design-gate-shell -> frontend-plan-revision-pi] # small risk 可裁剪
|
|
149
|
+
-> [frontend-requirement-coverage-shell]
|
|
150
|
+
-> frontend-implementation-contract-shell
|
|
116
151
|
-> frontend-final-design-review-pi
|
|
117
152
|
-> frontend-final-design-gate-shell
|
|
118
153
|
-> frontend-implement-pi
|
|
154
|
+
-> [frontend-mock-verify-shell]
|
|
119
155
|
-> frontend-static-verify-shell
|
|
120
156
|
-> frontend-behavior-verify-shell
|
|
157
|
+
-> frontend-verification-trace-shell
|
|
158
|
+
-> frontend-failure-assess-shell
|
|
159
|
+
-> frontend-repair-contract-shell
|
|
160
|
+
-> frontend-repair-pi
|
|
161
|
+
-> frontend-static-reverify-shell
|
|
162
|
+
-> frontend-behavior-reverify-shell
|
|
163
|
+
-> frontend-verification-retrace-shell
|
|
121
164
|
-> frontend-review-pi
|
|
122
165
|
-> frontend-review-gate-shell
|
|
123
166
|
-> frontend-closeout-pi
|
|
124
167
|
```
|
|
125
168
|
|
|
126
|
-
|
|
169
|
+
`frontend-mock-assess-pi` 是 contract/scout 之后、plan 之前的只读策略节点。它先确认接口契约与后端就绪度,再按项目能力选择已有原生 Mock、浏览器拦截、请求适配层或 `not-needed`。static/behavior shell 命令在 DAG 生成时已固化,策略只能选择能由这些入口验证的方案;缺少契约、无法保证生产默认关闭、所选策略没有可执行验证或只能靠注释真实请求时输出 `MOCK_STRATEGY: blocked`。`not-needed` 仍需真实或无远程接口的行为证据。Mock 代码由唯一 writer `frontend-implement-pi` 按已批准计划实现,不增加第二个 writer。
|
|
170
|
+
|
|
171
|
+
前端链在计划前显示 Mock/API/schema 读取、生成期能力 seed、五态策略和 contract gate。可在 `task.json.frontendMock` 设置 `policy: auto|required|disabled`、安全的 `serviceRoot` 和生成时固化的专项 `verifyCommands`。已有原生服务时优先复用;没有原生能力时可使用现有浏览器拦截或可逆 request adapter。不安全或不完整的显式 required 合同只生成无 writer 的评估 DAG;有可信专项命令时实现后先运行 `frontend-mock-verify-shell`,再进入静态和行为验证。规范读取证据继续显示在 Observe 节点详情中。
|
|
172
|
+
|
|
173
|
+
新生成 DAG 还会冻结 `sourceBinding`(任务源路径、SHA-256 与显式 `REQ/BR/AC` 编号)。前端任务存在显式编号时,`frontend-requirement-coverage-shell` 只检查 `frontend-plan-revision-pi` 输出的当前生效计划证据,缺少任一编号就阻断最终 design review 和 writer;即使首轮 design review 直接通过,revision 节点也必须复述完整 Requirement Coverage,避免从已被取代的原计划借用编号。DAG 中断后应修复 task source 并重新生成完整 DAG;不要用聊天摘要拼接 impl-only 后半段。严格治理会拒绝没有 `sourceBinding`、也没有只读 planner 上游的 v3 孤立 writer。
|
|
174
|
+
|
|
175
|
+
这条链在实现前加入两阶段 design gate:首轮 design review 同时接受 `VERDICT: pass` 和 `VERDICT: request-revision`,request-revision 时由只读 `frontend-plan-revision-pi` 消费原计划与 design findings 完成修订,再经 `frontend-final-design-review-pi` 和 `frontend-final-design-gate-shell` 最终门禁;只有最终 `VERDICT: pass` 才授权写入。`MOCK_STRATEGY: blocked`、真实请求被注释、生产默认启用 Mock 或 Mock 与接口契约不一致都不得通过。design gate 失败路由为 `ContractMismatch` / `frontend-plan-revision-and-rerun`,不路由为 `ProductBug` / `dev-fix`。
|
|
127
176
|
|
|
128
|
-
|
|
177
|
+
这条链还将前端静态验证与行为验证分开建模,并在 verify 后增加 verification-trace 与单轮 bounded repair(失败可评估/修复/复验;contract/path/依赖/凭据等不可自动修)。Mock-backed 行为验证只证明页面状态和交互,不证明真实后端已就绪或接口已联通。后端未被实际调用时,closeout 必须写明 `Frontend status: mock-validated`、`Real integration: pending`,并列出 `<task-id>-real-api-integration-verify`。该 follow-up 不会自动创建或运行;后端就绪后需要显式创建/执行新的复验任务。生成期会注入确定性风险分级与 React/Next/Vue 等强证据 capability;a11y 仅在项目已有 lint/axe 类工具时声明 static/component 级证据。当前仍不包含浏览器自动化、视觉回归或 browser-level a11y executor。
|
|
129
178
|
|
|
130
|
-
|
|
179
|
+
后端测试任务只有在显式声明 `task.json.taskKind = "backend-test"` 时才选择专用模板;它面向测试工程,不是普通后端实现模式,也不新增 governance profile:
|
|
131
180
|
|
|
132
181
|
```text
|
|
133
182
|
analyze-inputs-pi
|
|
183
|
+
-> backend-test-analysis-contract-shell
|
|
184
|
+
-> backend-test-environment-scout-pi
|
|
185
|
+
-> backend-test-execution-contract-shell
|
|
134
186
|
-> generate-backend-functional-cases-pi
|
|
187
|
+
-> emit-backend-case-manifest-pi
|
|
188
|
+
-> backend-test-case-manifest-shell
|
|
135
189
|
-> review-backend-cases-pi
|
|
136
190
|
-> review-backend-cases-gate-shell
|
|
137
191
|
-> generate-backend-pytest-pi
|
|
192
|
+
-> backend-test-traceability-gate-shell
|
|
138
193
|
-> execute-backend-pytest-shell
|
|
194
|
+
-> parse-backend-test-result-shell
|
|
195
|
+
-> classify-backend-test-result-pi
|
|
139
196
|
-> test-retrospect-pi
|
|
197
|
+
-> backend-test-outcome-gate-shell
|
|
140
198
|
```
|
|
141
199
|
|
|
142
200
|
这条链覆盖后端功能测试从需求分析到复盘评级的全链路流程:
|
|
143
201
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
202
|
+
- `analyze-inputs-pi`:只读输出严格的 Backend Test Analysis v1 JSON;`backend-test-analysis-contract-shell` 确定性校验 source binding、AC IDs、schema 与敏感值,并把规范化结果写入当前 run 的 `contracts/backend-test-analysis.json`。gate 节点记录 artifact path / SHA-256 / schema ID,随 lifecycle 目录整体迁移;非法或来源不一致时 fail-closed,后续 case/pytest writers 不执行。
|
|
203
|
+
- `backend-test-environment-scout-pi`(read-only):发现 pytest 配置、test roots、已有 fixture/client、文档化命令与 env *名称*(禁止全仓搜 secrets);输出 Backend Test Execution Contract v1 纯 JSON。
|
|
204
|
+
- `backend-test-execution-contract-shell`:`jsonArtifactGate.schemaId=backend-test-execution-v1`,校验并 materialize 当前 run 的 `contracts/backend-test-execution.json`;unknown schemaId / path traversal / secret 值 fail-closed。
|
|
205
|
+
- `emit-backend-case-manifest-pi`(read-only):从 `testcase/md/**` + 已验证 analysis 产出 Backend Test Case Manifest v1 纯 JSON(模型不写 `.harness/**`)。
|
|
206
|
+
- `backend-test-case-manifest-shell`:`jsonArtifactGate.schemaId=backend-test-case-manifest-v1` → `contracts/backend-test-case-manifest.json`;caseId 唯一/格式、显式 AC 覆盖或 evidenceGaps、未知 AC、skipped 无 gapReason fail-closed;`coverageSummary` 由 gate 确定性计算/核对。
|
|
207
|
+
- `backend-test-traceability-gate-shell`:pytest 生成后、execute 前校验 `generated` 的 file/symbol 存在;skipped/unsupported 必须有 gapReason。
|
|
208
|
+
- `generate-backend-functional-cases-pi`:在 execution gate 之后,只消费已验证 analysis/execution 证据,按契约字段生成结构化后端功能测试用例(Markdown),用例 ID 带 `BE-` 前缀(如 `BE-ORDER-001`),写入 `testcase/md/`
|
|
209
|
+
- `review-backend-cases-pi`:评审后端功能测试用例,输出审查报告 + `VERDICT: pass` / `VERDICT: request-revision`
|
|
210
|
+
- `review-backend-cases-gate-shell`:只有评审首条 verdict 为 `VERDICT: pass` 时才允许继续生成 pytest;`request-revision` 或其它结果 **fail-closed 即停**,**不会**自动回到 generate 节点修订(本模板不启用 convergence;修好用例或约束后重新 `dag run-task`)
|
|
211
|
+
- `generate-backend-pytest-pi`:依赖 review gate **与** execution contract,将功能用例转化为 pytest;可写 `testcase/**/test_*.py` 与可选 `helpers/**`/`factories/**`;只使用已验证 fixture/env name/`testRoot`/API 字段;禁止改 conftest/配置与生产代码
|
|
212
|
+
- `execute-backend-pytest-shell`:先对 `contracts/backend-test-execution.json` 做确定性 preflight(framework、`testRoot` 存在且与生成期冻结的 Adapter 路径一致、required env、external base URL env;`managed-command` 无 sourceRef 证据 fail-closed),再执行 `pytest testcase/`;JUnit 写入 `$HARNESS_DAG_RUN_DIR/reports/backend-test-junit.xml`,原始 `pytestExitCode` 写入 `reports/backend-test-pytest-exit.txt`。当 JUnit 非空且 exit 为 0/1 时节点 FINISHED(断言失败不跳过下游);禁止改测试源码或生产代码
|
|
213
|
+
- `parse-backend-test-result-shell`:确定性 materialize Backend Test Result v1 → `contracts/backend-test-result.json`(损坏/缺失 JUnit fail-closed)
|
|
214
|
+
- `classify-backend-test-result-pi`:read-only 结构化分类(ProductBug|TestBug|EnvFailure|ContractMismatch|FlakyTest|Unknown);单次失败不得 FlakyTest;collection/command/report-error 不得 ProductBug
|
|
215
|
+
- `test-retrospect-pi`:在 pass 与 assertion-fail 路径均运行;通过率与失败列表只来自 Result v1;不得把失败改写成通过
|
|
216
|
+
- `backend-test-outcome-gate-shell`:仅以 Result v1 `outcome`/counts 收口;全绿 exit 0,否则非零;忽略 retrospective Markdown
|
|
151
217
|
|
|
152
218
|
最终验证后的知识库回写可通过 `task.json.taskKind = "knowledge-sync"` 选择专用模板(与 `backend-test` 一样走 taskKind 路由,不占用 governance `--profile`)。
|
|
153
219
|
|
|
@@ -164,6 +230,10 @@ analyze-inputs-pi
|
|
|
164
230
|
knowledge-sync-collect-pi
|
|
165
231
|
-> knowledge-sync-draft-pi
|
|
166
232
|
-> knowledge-sync-validate-shell
|
|
233
|
+
-> knowledge-sync-review-qa-pi
|
|
234
|
+
-> knowledge-sync-review-domain-pi # parallel with qa/evidence
|
|
235
|
+
-> knowledge-sync-review-evidence-pi
|
|
236
|
+
-> knowledge-sync-multi-review-gate-shell # all VERDICT: pass
|
|
167
237
|
-> knowledge-sync-apply-pi
|
|
168
238
|
-> knowledge-sync-pointer-pi
|
|
169
239
|
```
|
|
@@ -173,38 +243,41 @@ knowledge-sync-collect-pi
|
|
|
173
243
|
1. **knowledge-sync-collect-pi**:只读汇总 final verification / AC / 用例 / 缺陷 / 需求 delta 候选
|
|
174
244
|
2. **knowledge-sync-draft-pi**:写入 `features/<featureId>/testing/sync/pending/knowledge-sync-draft.json`
|
|
175
245
|
3. **knowledge-sync-validate-shell**:校验该路径 draft 的 schema、`featureId` 一致、operations 目标路径、finalVerification 门禁
|
|
176
|
-
4.
|
|
177
|
-
5. **knowledge-sync-
|
|
246
|
+
4. **多视角审查(并行)**:QA/验收、领域/产品、证据/审计 三个只读 reviewer;聚合门禁要求全部 `VERDICT: pass`
|
|
247
|
+
5. **knowledge-sync-apply-pi**:仅在 `features/<featureId>/testing/**`(及该 Feature 的 `requirement-delta.md`、`ai_workspace/loop-agent/test-reports/**`)受控回写
|
|
248
|
+
6. **knowledge-sync-pointer-pi**:写 `features/<featureId>/testing/runs/latest.md` 与 `sync/applied/KS-*.json`
|
|
178
249
|
|
|
179
|
-
设计说明见 `
|
|
250
|
+
设计说明见 `ai_workspace/loop-agent/design/full-chain-test-knowledge-base.md` §11;JSON 示例见 `ai_workspace/loop-agent/templates/knowledge-sync-dag.json`。
|
|
180
251
|
|
|
181
252
|
业务知识图谱**初始化**可通过 `task.json.taskKind = "knowledge-graph-bootstrap"` 选择专用模板。跑前先落 B1 骨架:
|
|
182
253
|
|
|
183
254
|
```bash
|
|
184
|
-
|
|
255
|
+
loop-agent knowledge graph-init --product-name <name>
|
|
185
256
|
# 编辑 knowledge/bootstrap/scope.yaml 后再 run-task
|
|
186
257
|
```
|
|
187
258
|
|
|
188
|
-
(需有 `knowledge/bootstrap/scope.yaml` 与 `status.yaml
|
|
259
|
+
(需有 `knowledge/bootstrap/scope.yaml` 与 `status.yaml`;`graph-init` 幂等,默认不覆盖已有 scope/status,可用 `--force`。)
|
|
189
260
|
|
|
190
|
-
图谱索引与 Phase A
|
|
261
|
+
图谱索引与 Phase A 查询(package-backed CLI,非 RAG):
|
|
191
262
|
|
|
192
263
|
```bash
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
264
|
+
loop-agent knowledge graph-materialize
|
|
265
|
+
loop-agent knowledge query --mode by_feature --feature F-2026-004 --json
|
|
266
|
+
loop-agent knowledge query --mode by_id --id SVC-order --json
|
|
267
|
+
loop-agent knowledge query --mode search --text "预占" --json
|
|
197
268
|
```
|
|
198
269
|
|
|
199
270
|
**增量更新(非全量开荒)**:缩小 scope 后复用同一 `knowledge-graph-bootstrap` DAG(propose 仅针对 seeds/includes;promote 仍默认不覆盖已有正式文件):
|
|
200
271
|
|
|
201
272
|
```bash
|
|
202
|
-
|
|
203
|
-
|
|
273
|
+
loop-agent knowledge graph-incremental-prepare --feature F-2026-004 --service order
|
|
274
|
+
# 可选:--reset-staging
|
|
204
275
|
# 审阅 knowledge/bootstrap/scope.yaml(update_mode: incremental)
|
|
205
276
|
# task.json.taskKind = "knowledge-graph-bootstrap"
|
|
206
277
|
loop-agent dag run-task <id>
|
|
207
|
-
|
|
278
|
+
# 如需手工晋升已审阅的 staging,再按顺序执行:
|
|
279
|
+
loop-agent knowledge graph-promote
|
|
280
|
+
loop-agent knowledge graph-materialize
|
|
208
281
|
```
|
|
209
282
|
|
|
210
283
|
测试知识日常写回仍用 `knowledge-sync`(`featureId` 必填),与图谱增量入口分离。
|
|
@@ -214,13 +287,15 @@ kg-bootstrap-preflight-shell
|
|
|
214
287
|
-> kg-bootstrap-inventory-shell
|
|
215
288
|
-> kg-bootstrap-propose-pi
|
|
216
289
|
-> kg-bootstrap-validate-shell
|
|
217
|
-
-> kg-bootstrap-review-pi
|
|
218
|
-
-> kg-bootstrap-review-
|
|
290
|
+
-> kg-bootstrap-review-structure-pi
|
|
291
|
+
-> kg-bootstrap-review-evidence-pi # parallel with structure/safety
|
|
292
|
+
-> kg-bootstrap-review-safety-pi
|
|
293
|
+
-> kg-bootstrap-multi-review-gate-shell # all VERDICT: pass
|
|
219
294
|
-> kg-bootstrap-promote-shell
|
|
220
295
|
-> kg-bootstrap-materialize-shell
|
|
221
296
|
```
|
|
222
297
|
|
|
223
|
-
AI 只写 `knowledge/bootstrap/staging/**`;禁止 self-`asserted
|
|
298
|
+
AI 只写 `knowledge/bootstrap/staging/**`;禁止 self-`asserted`;**结构 / 证据 / 边界安全** 三视角审查全部通过后才 promote(默认不覆盖已有正式文件);materialize 写 `knowledge/graph/` 索引。设计见 `ai_workspace/loop-agent/design/knowledge-graph-ai-bootstrap.md`,示意 JSON 见 `ai_workspace/loop-agent/templates/knowledge-graph-bootstrap-dag.json`。
|
|
224
299
|
|
|
225
300
|
前端测试模板(`frontend-test-dag`)后续沿用对称命名即可接入。
|
|
226
301
|
前端 shell 验证优先使用任务源 `需求.md` / `执行约束.md` 中声明的前端验证命令,例如 `npm run typecheck`、`npm run build`、`npm test`;解析不到时再使用 adapter 验证命令和模板 fallback。
|
|
@@ -231,11 +306,11 @@ AI 只写 `knowledge/bootstrap/staging/**`;禁止 self-`asserted`;review-gat
|
|
|
231
306
|
verify-shell -> verify-pi -> review-pi -> review-gate-shell -> closeout-pi
|
|
232
307
|
```
|
|
233
308
|
|
|
234
|
-
supervised 模板在实现路径上增加 write-set audit
|
|
309
|
+
supervised 模板在实现路径上增加 write-set audit、有界计划修订、只读 verdict 格式恢复、soft/hard shell 验证、process supervision、有界 repair、decision gates 与可选 convergence retry。初审 `request-revision` 不再直接终止:只读 `plan-revision-pi` 最多修订一轮,再由终审和 pass-only gate 决定是否授权 writer。初审与终审遗漏 `VERDICT:` 时各允许一个只读格式修复节点;格式结论不明确时必须转为 `request-revision`,shell gate 不会从正文猜测 pass。
|
|
235
310
|
|
|
236
311
|
### 只读 Pi 节点安全重试
|
|
237
312
|
|
|
238
|
-
所有生成模板都会为安全的只读 Pi 节点(planner/scout/reviewer/verifier/closeout,且 `writePolicy=read-only|none`、非 writer、非 dynamic、非 decision-gate)自动声明默认 `retryPolicy`(总尝试 3 次,手工配置最多 5 次,指数退避,单次等待上限 30s)。supervisor 与 implementer 明确不在资格范围。仅重试 `timeout`、`network`、`rate-limit`、`unavailable`;`quota`、`auth`、`invalid-output`、`write-guard` 与未知失败不重试。每次 attempt 保留独立证据,详见 [
|
|
313
|
+
所有生成模板都会为安全的只读 Pi 节点(planner/scout/reviewer/verifier/closeout,且 `writePolicy=read-only|none`、非 writer、非 dynamic、非 decision-gate)自动声明默认 `retryPolicy`(总尝试 3 次,手工配置最多 5 次,指数退避,单次等待上限 30s)。supervisor 与 implementer 明确不在资格范围。仅重试 `timeout`、`network`、`rate-limit`、`unavailable`;`quota`、`auth`、`invalid-output`、`write-guard` 与未知失败不重试。每次 attempt 保留独立证据,详见 [ai_workspace/loop-agent/agent-dag-runner.md](./agent-dag-runner.md#retry-read-only-pi-nodes)。
|
|
239
314
|
|
|
240
315
|
### 可选 repo-local SDD skill 增强
|
|
241
316
|
|
|
@@ -266,7 +341,7 @@ supervised 模板在实现路径上增加 write-set audit、soft/hard shell 验
|
|
|
266
341
|
- 选择验证命令
|
|
267
342
|
- 记录 handoff 证据
|
|
268
343
|
|
|
269
|
-
声称 Production Readiness v0.1 的低/中风险单仓库任务,另须遵循 `
|
|
344
|
+
声称 Production Readiness v0.1 的低/中风险单仓库任务,另须遵循 `ai_workspace/loop-agent/production-readiness.md` 与 `ai_workspace/loop-agent/templates/production-readiness-checklist.md`。该标准冻结支持范围、非目标、必需 DAG 证据、failure routing 字段与最终验证门禁。
|
|
270
345
|
|
|
271
346
|
## Exec-plan 生命周期
|
|
272
347
|
|
|
@@ -322,9 +397,9 @@ loop-agent run-dag --dag <temp-dir>/<task-id>-dag.json --cwd .
|
|
|
322
397
|
|
|
323
398
|
任务需要时使用方法论文档:
|
|
324
399
|
|
|
325
|
-
- 行为变更与 bug 修复:`
|
|
326
|
-
- 完成或 handoff 声明:`
|
|
327
|
-
- 失败与意外行为:`
|
|
400
|
+
- 行为变更与 bug 修复:`ai_workspace/loop-agent/harness-methodology-tdd.md`
|
|
401
|
+
- 完成或 handoff 声明:`ai_workspace/loop-agent/harness-methodology-verification.md`
|
|
402
|
+
- 失败与意外行为:`ai_workspace/loop-agent/harness-methodology-debugging.md`
|
|
328
403
|
|
|
329
404
|
## Handoff
|
|
330
405
|
|
|
@@ -336,4 +411,4 @@ Handoff 应说明:
|
|
|
336
411
|
- 是否影响契约、文档、测试或脚本
|
|
337
412
|
- 剩余风险或后续工作
|
|
338
413
|
|
|
339
|
-
较大工作应更新 `
|
|
414
|
+
较大工作应更新 `ai_workspace/loop-agent/progress/`、`ai_workspace/loop-agent/reports/`、active exec plan 或 `ai_workspace/loop-agent/decisions/`,以便下一会话不依赖聊天历史。
|