@tea-agent/loop-agent 0.12.0 → 0.13.0-beta.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 +155 -153
- package/CHANGELOG.md +338 -265
- package/README.md +345 -298
- package/bin/agent-worker.js +22 -22
- package/bin/loop-agent.js +21 -21
- package/dist/application/dag/generate-task-dag.js +28 -28
- 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 +27 -7
- package/dist/cli/program.js +8 -4
- package/dist/commands/cursor-prompt.js +6 -6
- package/dist/commands/eval.js +235 -0
- package/dist/commands/init.js +544 -506
- package/dist/commands/knowledge.js +129 -31
- package/dist/commands/loop-benchmark.js +11 -11
- package/dist/commands/pi-reuse-benchmark.js +16 -16
- package/dist/executors/pi-sdk-executor.js +38 -24
- package/dist/executors/shell-executor.js +34 -2
- package/dist/executors/shell-presets.js +20 -0
- package/dist/executors/shell-verification.js +7 -0
- package/dist/governance/manifest-types.js +4 -0
- package/dist/infrastructure/evaluation/candidate-store.js +435 -0
- package/dist/infrastructure/evaluation/store.js +40 -0
- package/dist/sidecars/cursor-prompt/executor.js +1 -1
- package/dist/task/config-types.js +28 -1
- package/dist/task/runtime.js +27 -27
- package/dist/worker/cli.js +96 -1
- package/dist/worker/delivery/package.js +3 -3
- package/dist/worker/feature/decision-loader.js +37 -6
- package/dist/worker/feature/next-action.js +10 -2
- package/dist/worker/feature/ready-plan-projection.js +81 -0
- package/dist/worker/feature/reducer.js +2 -1
- package/dist/worker/feature/review.js +19 -2
- package/dist/worker/feature/run.js +27 -2
- package/dist/worker/follow-up/approve.js +5 -2
- package/dist/worker/follow-up/factory.js +1 -1
- package/dist/worker/observability/read-model.js +246 -41
- package/dist/worker/observe/routes.js +173 -15
- package/dist/worker/observe/spec-evidence.js +281 -0
- package/dist/worker/observe/static/api.js +46 -27
- package/dist/worker/observe/static/app.js +150 -150
- package/dist/worker/observe/static/constants.js +148 -148
- package/dist/worker/observe/static/copy.js +67 -67
- package/dist/worker/observe/static/dag-helpers.js +172 -172
- package/dist/worker/observe/static/dag-layout.d.ts +31 -31
- package/dist/worker/observe/static/dag-layout.js +83 -83
- package/dist/worker/observe/static/dag-model.js +72 -72
- package/dist/worker/observe/static/dom.js +61 -61
- package/dist/worker/observe/static/format-pool.js +67 -67
- package/dist/worker/observe/static/format.js +292 -292
- package/dist/worker/observe/static/index.html +308 -308
- package/dist/worker/observe/static/kpi.js +94 -94
- package/dist/worker/observe/static/relations.js +133 -128
- package/dist/worker/observe/static/router.js +93 -85
- package/dist/worker/observe/static/run-processing.js +148 -148
- package/dist/worker/observe/static/shell-chrome.js +68 -68
- package/dist/worker/observe/static/state.js +253 -253
- package/dist/worker/observe/static/styles.css +1902 -1890
- package/dist/worker/observe/static/views/batch.js +227 -226
- package/dist/worker/observe/static/views/dag-graph.js +172 -172
- package/dist/worker/observe/static/views/dag-inspector.js +607 -477
- package/dist/worker/observe/static/views/dag.js +362 -362
- package/dist/worker/observe/static/views/dashboard.js +445 -442
- package/dist/worker/observe/static/views/failures.js +143 -143
- package/dist/worker/observe/static/views/feature.js +492 -453
- package/dist/worker/observe/static/views/pool.js +350 -347
- package/dist/worker/observe/static/views/run.js +453 -453
- package/dist/worker/observe/static/views/session-timeline.js +205 -205
- package/dist/worker/observe/static/views/shell.js +7 -7
- package/dist/worker/observe/static/views/task.js +314 -260
- package/dist/worker/observe/static/views/timeline.js +163 -163
- package/dist/worker/pool/doctor.js +165 -0
- package/dist/worker/pool/migrate-state.js +303 -0
- package/dist/worker/pool/run-store.js +205 -17
- package/dist/worker/pool/types.js +17 -1
- package/dist/worker/pool/validation.js +100 -15
- package/dist/worker/report/morning-report.js +12 -2
- package/dist/worker/runner/run-ready.js +41 -26
- package/dist/worker/task-graph/ready-planner.js +136 -0
- package/dist/workflows/dag/backend-test-analysis-contract.js +120 -0
- package/dist/workflows/dag/canvas-observer.js +275 -275
- package/dist/workflows/dag/convergence/controller.js +16 -8
- package/dist/workflows/dag/dynamic-runtime/map.js +90 -2
- package/dist/workflows/dag/failure-routing.js +12 -1
- package/dist/workflows/dag/init-hybrid.js +2404 -360
- package/dist/workflows/dag/node-execution.js +9 -0
- package/dist/workflows/dag/prompt.js +9 -0
- package/dist/workflows/dag/report.js +35 -1
- package/dist/workflows/dag/runner.js +28 -2
- package/dist/workflows/dag/task-demand-routing.js +383 -0
- package/dist/workflows/dag/types.js +51 -13
- package/dist/workflows/dag/upstream-artifacts.js +1 -0
- package/dist/workflows/dag/validate.js +59 -1
- package/docs/README.md +106 -104
- package/docs/agent-dag-recovery-playbook.md +195 -184
- package/docs/agent-dag-runner.md +67 -67
- package/docs/architecture/README.md +26 -26
- package/docs/architecture/dag-execution.md +140 -140
- package/docs/architecture/evolution.md +54 -53
- package/docs/architecture/facts-and-state.md +71 -58
- package/docs/architecture/runtime-boundaries.md +191 -191
- package/docs/architecture/system-overview.md +93 -93
- package/docs/architecture/worker-and-feature.md +85 -81
- package/docs/cursor-prompt-sidecar.md +36 -36
- package/docs/decisions/README.md +18 -15
- package/docs/design/README.md +167 -77
- package/docs/development-principles.md +73 -73
- package/docs/exec-plans/README.md +6 -6
- package/docs/exec-plans/active/README.md +15 -9
- package/docs/exec-plans/completed/README.md +85 -73
- package/docs/feature-workflow.md +389 -261
- package/docs/harness-methodology-debugging.md +153 -153
- package/docs/harness-methodology-tdd.md +130 -130
- package/docs/harness-methodology-verification.md +27 -27
- package/docs/init-surface.manifest.json +289 -280
- package/docs/loop-agent-harness.md +142 -130
- package/docs/production-readiness.md +96 -96
- package/docs/progress/README.md +64 -54
- package/docs/reports/README.md +117 -94
- package/docs/skills/README.md +7 -7
- package/docs/skills/vetted-skill-registry.md +29 -27
- package/docs/templates/adr.md +60 -60
- package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
- package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
- package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
- package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
- package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
- package/docs/templates/agent-dag-report.schema.json +473 -473
- package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
- package/docs/templates/agent-dag.base.json +190 -190
- package/docs/templates/agent-dag.final-verification.json +185 -185
- package/docs/templates/agent-dag.schema.json +411 -383
- package/docs/templates/agent-dag.supervised-implementation.json +501 -501
- package/docs/templates/backend-test-analysis.schema.json +44 -0
- package/docs/templates/backend-test-dag.generate-pytest.prompt.md +202 -139
- package/docs/templates/backend-test-dag.json +311 -276
- package/docs/templates/backend-test-dag.retrospect.prompt.md +125 -125
- package/docs/templates/backend-test-dag.review-cases.prompt.md +81 -81
- package/docs/templates/exec-plan.md +64 -64
- package/docs/templates/feature-spec.md +53 -53
- package/docs/templates/frontend-design-contract.md +42 -33
- package/docs/templates/frontend-task-constraints.md +35 -25
- package/docs/templates/frontend-task-requirement.md +70 -61
- 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/harness.schema.json +221 -221
- package/docs/templates/hybrid-dag.json +188 -188
- package/docs/templates/init-evolution-review.md +35 -35
- package/docs/templates/interactive-ui-round2-experiment.md +66 -66
- package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -0
- package/docs/templates/knowledge-sync-dag.json +178 -0
- package/docs/templates/knowledge-sync-draft.schema.json +71 -0
- package/docs/templates/product-line/AGENTS.md +8 -8
- package/docs/templates/product-line/README.md +9 -9
- package/docs/templates/product-line/acceptance.yaml +14 -14
- package/docs/templates/product-line/closeout.yaml +9 -9
- package/docs/templates/product-line/design.md +13 -13
- package/docs/templates/product-line/links.md +10 -10
- package/docs/templates/product-line/requirement.md +17 -17
- package/docs/templates/product-line/task-graph.yaml +15 -15
- package/docs/templates/product-line/task.yaml +64 -64
- package/docs/templates/product-line/test-plan.md +7 -7
- package/docs/templates/production-readiness-checklist.md +57 -57
- package/docs/templates/progress-log.md +17 -17
- package/docs/templates/project-start-checklist.md +9 -9
- package/docs/templates/qa-report.md +48 -48
- package/docs/templates/sprint-contract.md +29 -29
- package/docs/templates/worker-dogfood-evidence.md +80 -80
- package/docs/templates/worker-dogfood-setup.md +68 -68
- package/docs/verification-matrix.md +70 -66
- package/examples/decision-gate-agent-dag.json +177 -177
- package/examples/example-dag.json +46 -46
- package/examples/hybrid-loop-agent-dag.json +189 -189
- package/harness.json +66 -66
- package/package.json +88 -46
- package/scripts/check-product-line-docs.sh +29 -29
- package/scripts/check-task-pool-root.sh +32 -32
- package/scripts/kb-bootstrap-init-skeleton.sh +240 -0
- package/scripts/kb-graph-incremental-prepare.mjs +386 -0
- package/scripts/kb-graph-incremental-prepare.sh +5 -0
- package/scripts/kb-graph-materialize.mjs +105 -0
- package/scripts/kb-graph-materialize.sh +4 -0
- package/scripts/kb-graph-promote.mjs +164 -0
- package/scripts/kb-graph-promote.sh +4 -0
- package/scripts/kb-query.mjs +554 -0
- package/scripts/kb-query.sh +5 -0
- package/skills/agent-worker/SKILL.md +39 -37
- package/skills/agent-worker/references/agent-worker-operator.md +60 -43
- package/skills/ai-engineering-context/SKILL.md +48 -48
- 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/code-review-core/SKILL.md +20 -20
- package/skills/codebase-scout/SKILL.md +19 -19
- package/skills/frontend-design-review/SKILL.md +66 -59
- package/skills/frontend-design-review/references/review-checklist.md +58 -37
- package/skills/frontend-implementation/SKILL.md +47 -51
- package/skills/frontend-implementation/references/code-standards.md +32 -34
- package/skills/frontend-implementation/references/design-spec.md +46 -46
- package/skills/frontend-implementation/references/node-contracts.md +76 -32
- package/skills/frontend-review/SKILL.md +59 -53
- package/skills/frontend-review/references/review-findings.md +47 -42
- package/skills/frontend-verification/SKILL.md +53 -40
- package/skills/frontend-verification/references/verification-checklist.md +68 -56
- package/skills/grill-me/SKILL.md +10 -10
- package/skills/grill-with-docs/SKILL.md +88 -88
- package/skills/grill-with-docs/adr-format.md +47 -47
- package/skills/grill-with-docs/context-format.md +60 -60
- package/skills/init-capability-evolution/SKILL.md +70 -70
- package/skills/loop-agent/SKILL.md +151 -151
- package/skills/loop-agent/references/README.md +67 -67
- package/skills/loop-agent/references/command-reference.md +505 -452
- package/skills/loop-agent/references/docs-converge.md +126 -126
- package/skills/loop-agent/references/harness-policy.md +263 -263
- package/skills/loop-agent/references/hybrid-dag.md +238 -233
- package/skills/loop-agent/references/learned/README.md +21 -21
- package/skills/loop-agent/references/long-running-loop.md +57 -57
- package/skills/loop-agent/references/model-routing.md +36 -36
- package/skills/loop-agent/references/multi-worktree.md +54 -54
- package/skills/loop-agent/references/one-shot-runs.md +85 -85
- package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
- package/skills/loop-agent/references/pi-prompt.md +23 -23
- package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
- package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
- package/skills/loop-agent/references/task-workflow.md +89 -89
- package/skills/loop-agent/references/verification-and-failure-handling.md +139 -139
- 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 +101 -101
- package/skills/requesting-code-review/code-reviewer.md +168 -168
- package/skills/systematic-debugging/CREATION-LOG.md +119 -119
- package/skills/systematic-debugging/SKILL.md +296 -296
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
- package/skills/systematic-debugging/condition-based-waiting.md +115 -115
- package/skills/systematic-debugging/defense-in-depth.md +122 -122
- package/skills/systematic-debugging/find-polluter.sh +63 -63
- package/skills/systematic-debugging/root-cause-tracing.md +169 -169
- package/skills/systematic-debugging/test-academic.md +14 -14
- package/skills/systematic-debugging/test-pressure-1.md +58 -58
- package/skills/systematic-debugging/test-pressure-2.md +68 -68
- package/skills/systematic-debugging/test-pressure-3.md +69 -69
- package/skills/test-driven-development/SKILL.md +20 -20
- package/skills/using-git-worktrees/SKILL.md +215 -215
- package/skills/verification-before-completion/SKILL.md +154 -154
- package/skills/webapp-testing/SKILL.md +19 -19
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
# Worker Dogfood Setup Template
|
|
2
|
-
|
|
3
|
-
Use this template to create a disposable target repository for a real `agent-worker` sample. It is deliberately a target-repo recipe, not a substitute for product requirements.
|
|
4
|
-
|
|
5
|
-
## Preconditions
|
|
6
|
-
|
|
7
|
-
- Install one published controller version and record it:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install -g @tea-agent/loop-agent@<version>
|
|
11
|
-
npm list -g @tea-agent/loop-agent --depth=0
|
|
12
|
-
loop-agent --version
|
|
13
|
-
agent-worker --version
|
|
14
|
-
agent-worker --help
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
- Before any write-capable Worker command, resolve one controller identity for the batch. Record its package version, absolute launch entry, binary SHA-256, and portable package fingerprint. If the run is part of a release or self-hosting train, carry the expected version/fingerprint as explicit CLI gates.
|
|
18
|
-
- Create a clean, disposable target repository. Do not use `npm link`, `npm run dev`, or a workspace controller for a real-evidence run.
|
|
19
|
-
- Put requirement, acceptance, design, test plan, and QA case matrix next to the TaskSpec. `agent-worker` materializes immutable copies into the harness task source before DAG generation.
|
|
20
|
-
|
|
21
|
-
## Setup checklist
|
|
22
|
-
|
|
23
|
-
- [ ] Target has a committed baseline and a passing `loop-agent init --profile full --merge` preflight.
|
|
24
|
-
- [ ] Existing test demonstrates the desired behavior is missing or unimplemented.
|
|
25
|
-
- [ ] TaskSpec has narrow `allowed_paths` and explicit `forbidden_paths`.
|
|
26
|
-
- [ ] Task Pool dependencies are either backed by real prior runs or intentionally recorded as pre-existing evidence.
|
|
27
|
-
- [ ] The chosen model/provider and `--pi-model` smoke override, if any, are recorded.
|
|
28
|
-
- [ ] `--loop-agent-bin` resolves to the intended published package, and expected controller version/fingerprint are recorded before target writes.
|
|
29
|
-
- [ ] If this is a self-hosting run, published N remains fixed for the whole batch; candidate N+1 is installed and verified in a separate slot.
|
|
30
|
-
|
|
31
|
-
## Execute
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
agent-worker batch run-ready \
|
|
35
|
-
--feature-dir <feature-dir> \
|
|
36
|
-
--repo <target-repo> \
|
|
37
|
-
--loop-agent-bin <published-loop-agent-entry> \
|
|
38
|
-
--expected-controller-version <version> \
|
|
39
|
-
--expected-controller-fingerprint <sha256:value> \
|
|
40
|
-
--limit 1 \
|
|
41
|
-
--check-repo \
|
|
42
|
-
[--pi-model <model>]
|
|
43
|
-
|
|
44
|
-
agent-worker observe snapshot --repo <target-repo> > <evidence-dir>/observe-snapshot.json
|
|
45
|
-
agent-worker report morning --repo <target-repo> --output <evidence-dir>/morning-report.md
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
For a failed task, do not delete state or alter JSONL evidence. Fix the external/root cause, then make the retry explicit:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
agent-worker task retry <task-id> --repo <target-repo> --reason "<root cause corrected>"
|
|
52
|
-
agent-worker batch run-ready --feature-dir <feature-dir> --repo <target-repo> --limit 1 --check-repo
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The retry run must have a distinct `workerRunId` and retain `retryOfWorkerRunId` in its Task Pool evidence.
|
|
56
|
-
|
|
57
|
-
## Versioned self-hosting takeover
|
|
58
|
-
|
|
59
|
-
From a source checkout, use the repo-maintainer deterministic canary after building or packing candidate N+1:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
npm run self-host:canary -- \
|
|
63
|
-
--deterministic \
|
|
64
|
-
--tarball <candidate.tgz> \
|
|
65
|
-
--output <candidate-canary-evidence.json>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
The deterministic canary must prove isolated-slot containment, both candidate bin identities, package fingerprint, full init/governance checks, a zero-execution Feature dry-run, static/shell-only observed DAG executors, and no PATH controller fallback. It does not claim to trap every possible Pi SDK/absolute path and does not replace a separately authorized live Pi run or the DAG skill-snapshot tests.
|
|
1
|
+
# Worker Dogfood Setup Template
|
|
2
|
+
|
|
3
|
+
Use this template to create a disposable target repository for a real `agent-worker` sample. It is deliberately a target-repo recipe, not a substitute for product requirements.
|
|
4
|
+
|
|
5
|
+
## Preconditions
|
|
6
|
+
|
|
7
|
+
- Install one published controller version and record it:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @tea-agent/loop-agent@<version>
|
|
11
|
+
npm list -g @tea-agent/loop-agent --depth=0
|
|
12
|
+
loop-agent --version
|
|
13
|
+
agent-worker --version
|
|
14
|
+
agent-worker --help
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- Before any write-capable Worker command, resolve one controller identity for the batch. Record its package version, absolute launch entry, binary SHA-256, and portable package fingerprint. If the run is part of a release or self-hosting train, carry the expected version/fingerprint as explicit CLI gates.
|
|
18
|
+
- Create a clean, disposable target repository. Do not use `npm link`, `npm run dev`, or a workspace controller for a real-evidence run.
|
|
19
|
+
- Put requirement, acceptance, design, test plan, and QA case matrix next to the TaskSpec. `agent-worker` materializes immutable copies into the harness task source before DAG generation.
|
|
20
|
+
|
|
21
|
+
## Setup checklist
|
|
22
|
+
|
|
23
|
+
- [ ] Target has a committed baseline and a passing `loop-agent init --profile full --merge` preflight.
|
|
24
|
+
- [ ] Existing test demonstrates the desired behavior is missing or unimplemented.
|
|
25
|
+
- [ ] TaskSpec has narrow `allowed_paths` and explicit `forbidden_paths`.
|
|
26
|
+
- [ ] Task Pool dependencies are either backed by real prior runs or intentionally recorded as pre-existing evidence.
|
|
27
|
+
- [ ] The chosen model/provider and `--pi-model` smoke override, if any, are recorded.
|
|
28
|
+
- [ ] `--loop-agent-bin` resolves to the intended published package, and expected controller version/fingerprint are recorded before target writes.
|
|
29
|
+
- [ ] If this is a self-hosting run, published N remains fixed for the whole batch; candidate N+1 is installed and verified in a separate slot.
|
|
30
|
+
|
|
31
|
+
## Execute
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
agent-worker batch run-ready \
|
|
35
|
+
--feature-dir <feature-dir> \
|
|
36
|
+
--repo <target-repo> \
|
|
37
|
+
--loop-agent-bin <published-loop-agent-entry> \
|
|
38
|
+
--expected-controller-version <version> \
|
|
39
|
+
--expected-controller-fingerprint <sha256:value> \
|
|
40
|
+
--limit 1 \
|
|
41
|
+
--check-repo \
|
|
42
|
+
[--pi-model <model>]
|
|
43
|
+
|
|
44
|
+
agent-worker observe snapshot --repo <target-repo> > <evidence-dir>/observe-snapshot.json
|
|
45
|
+
agent-worker report morning --repo <target-repo> --output <evidence-dir>/morning-report.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
For a failed task, do not delete state or alter JSONL evidence. Fix the external/root cause, then make the retry explicit:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
agent-worker task retry <task-id> --repo <target-repo> --reason "<root cause corrected>"
|
|
52
|
+
agent-worker batch run-ready --feature-dir <feature-dir> --repo <target-repo> --limit 1 --check-repo
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The retry run must have a distinct `workerRunId` and retain `retryOfWorkerRunId` in its Task Pool evidence.
|
|
56
|
+
|
|
57
|
+
## Versioned self-hosting takeover
|
|
58
|
+
|
|
59
|
+
From a source checkout, use the repo-maintainer deterministic canary after building or packing candidate N+1:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm run self-host:canary -- \
|
|
63
|
+
--deterministic \
|
|
64
|
+
--tarball <candidate.tgz> \
|
|
65
|
+
--output <candidate-canary-evidence.json>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The deterministic canary must prove isolated-slot containment, both candidate bin identities, package fingerprint, full init/governance checks, a zero-execution Feature dry-run, static/shell-only observed DAG executors, and no PATH controller fallback. It does not claim to trap every possible Pi SDK/absolute path and does not replace a separately authorized live Pi run or the DAG skill-snapshot tests.
|
|
@@ -1,66 +1,70 @@
|
|
|
1
|
-
# 验证矩阵
|
|
2
|
-
|
|
3
|
-
用能证明声明的最窄命令。
|
|
4
|
-
|
|
5
|
-
| 变更类型 | 最低验证 | 更强验证 |
|
|
6
|
-
|---|---|---|
|
|
7
|
-
| 仅文档或治理 | `bash scripts/check-repo.sh` | `bash scripts/ci.sh` |
|
|
8
|
-
| TypeScript runtime | `npm run typecheck` | `npm test` |
|
|
9
|
-
| CLI 行为 | `npm run typecheck` + 定向 Vitest | `npm test` + CLI smoke |
|
|
10
|
-
| Feature reducer/review | `npx vitest run test/worker/feature test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature review --help` |
|
|
11
|
-
| Feature run orchestration | `npx vitest run test/worker/feature test/worker/runner/run-ready.test.ts test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature run --help` |
|
|
12
|
-
| Follow-up 分类与事务 | `npx vitest run test/worker/follow-up test/worker/feature test/worker/pool test/worker/report test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js task draft-followup --help` + `node bin/agent-worker.js feature approve-followup --help` |
|
|
13
|
-
| Feature Git transaction | `npx vitest run test/worker/delivery test/worker/feature test/worker/runner test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature run --help` + temporary Git repo smoke |
|
|
14
|
-
| Final verification / Delivery / Closeout | `npx vitest run test/worker/delivery test/worker/
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
bash
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
1
|
+
# 验证矩阵
|
|
2
|
+
|
|
3
|
+
用能证明声明的最窄命令。
|
|
4
|
+
|
|
5
|
+
| 变更类型 | 最低验证 | 更强验证 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| 仅文档或治理 | `bash scripts/check-repo.sh` | `bash scripts/ci.sh` |
|
|
8
|
+
| TypeScript runtime | `npm run typecheck` | `npm test` |
|
|
9
|
+
| CLI 行为 | `npm run typecheck` + 定向 Vitest | `npm test` + CLI smoke |
|
|
10
|
+
| Feature reducer/review | `npx vitest run test/worker/feature test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature review --help` |
|
|
11
|
+
| Feature run orchestration | `npx vitest run test/worker/feature test/worker/runner/run-ready.test.ts test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature run --help` |
|
|
12
|
+
| Follow-up 分类与事务 | `npx vitest run test/worker/follow-up test/worker/feature test/worker/pool test/worker/report test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js task draft-followup --help` + `node bin/agent-worker.js feature approve-followup --help` |
|
|
13
|
+
| Feature Git transaction | `npx vitest run test/worker/delivery test/worker/feature test/worker/runner test/worker/agent-worker-cli.test.ts` | `npm test` + `node bin/agent-worker.js feature run --help` + temporary Git repo smoke |
|
|
14
|
+
| Final verification / Delivery / Closeout | `npx vitest run test/worker/delivery test/worker/feature test/worker/agent-worker-cli.test.ts` | `npm test` + verify-final/Delivery/Closeout CLI help + temporary Git repo evidence/hash/tamper/apply rollback smoke。Closeout 覆盖在 `test/worker/delivery/**` 与 CLI,不存在独立 `test/worker/closeout/` 目录 |
|
|
15
|
+
| Task Pool feature-scoped identity / migration | `npx vitest run test/worker/pool test/worker/runner/run-ready.test.ts test/worker/feature test/worker/follow-up test/worker/delivery test/worker/report test/worker/observability test/worker/observe test/worker/agent-worker-cli.test.ts` + `npm run typecheck` | 平台临时目录 dual-Feature smoke(同名 `QA-EXEC-001` 不串线)+ `pool doctor` / `pool migrate-state` dry-run + Observe canonical/legacy 409 |
|
|
16
|
+
| Controller identity / pinning | `npx vitest run test/worker/package-metadata.test.ts test/worker/repo-preflight.test.ts test/worker/loop-agent-client.test.ts test/worker/run-task/run-task.test.ts test/worker/runner/run-ready.test.ts test/worker/feature/run.test.ts test/worker/delivery/final-verification.test.ts test/worker/delivery/package.test.ts test/worker/agent-worker-cli.test.ts` + `npm run typecheck` | `npm test` + build + 两个 CLI `--version` + 写入型命令 help |
|
|
17
|
+
| DAG resolved skill snapshot / resume | `npx vitest run test/dag-skill-snapshot.test.ts test/dag-approve-resume.test.ts` + `npm run typecheck` | `npm test` + snapshot tamper/pause-resume/dynamic profile smoke |
|
|
18
|
+
| Versioned self-hosting candidate canary | `npx vitest run test/self-host-canary.test.ts test/package-surface.test.ts` + `npm run build` | `npm run self-host:canary -- --deterministic --output <evidence.json>` + `npm pack --dry-run` |
|
|
19
|
+
| Public skill / init mirror surface | `bash scripts/check-skill-entry.sh` + `npx vitest run test/init-command.test.ts test/package-surface.test.ts` | 临时目标项目 full init + skill/mirror hash 对照 + `bash scripts/check-repo.sh` |
|
|
20
|
+
| DAG 工作流 | 定向 DAG 测试 | `npm test` |
|
|
21
|
+
| Eval Replay MVP | `npx vitest run test/eval-replay.test.ts test/eval-cli.test.ts test/cli-contract.test.ts` + `npm run typecheck` | `bash scripts/check-command-registry-drift.sh` + `bash scripts/check-architecture-boundaries.sh` + `node bin/loop-agent.js eval --help` + `bash scripts/check-repo.sh` |
|
|
22
|
+
| Eval Candidate Registry MVP | `npx vitest run test/eval-candidate-registry.test.ts test/eval-cli.test.ts test/cli-contract.test.ts` + `npm run typecheck` | `npm run build` + `bash scripts/check-command-registry-drift.sh` + `bash scripts/check-architecture-boundaries.sh` + `node bin/loop-agent.js eval --help` + `HARNESS_ALLOW_ACTIVE_DAG_RUNS=1 bash scripts/check-repo.sh` |
|
|
23
|
+
| Eval run association W2.3 | `npx vitest run test/eval-run-association.test.ts test/eval-replay.test.ts test/dag-report.test.ts test/run-dag.test.ts` + `npm run typecheck` | `npm run build` + `bash scripts/check-architecture-boundaries.sh` + `bash scripts/check-command-registry-drift.sh` + `HARNESS_ALLOW_ACTIVE_DAG_RUNS=1 bash scripts/check-repo.sh` + `npm run docs:build` + `git diff --check` |
|
|
24
|
+
| 前端 DAG 模板 / 前端节点生成 | `npm run typecheck` + 定向 DAG 测试 | `npm test` + `bash scripts/check-repo.sh` |
|
|
25
|
+
| Production readiness hardening | `bash scripts/check-repo.sh` + 定向 DAG/CLI 测试 | `bash scripts/ci.sh` + docs build + package smoke |
|
|
26
|
+
| 脚本或 CI | 运行变更的脚本 | `bash scripts/ci.sh` |
|
|
27
|
+
| Package / publish 入口 | `npm run build` + `node bin/loop-agent.js --help` | `npm pack --dry-run` |
|
|
28
|
+
| 完整交付 | `bash scripts/ci.sh` | CLI smoke + 相关手工检查 |
|
|
29
|
+
|
|
30
|
+
常用命令:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run typecheck
|
|
34
|
+
npm test
|
|
35
|
+
npm run build
|
|
36
|
+
bash scripts/check-repo.sh
|
|
37
|
+
bash scripts/ci.sh
|
|
38
|
+
node bin/loop-agent.js --help
|
|
39
|
+
node bin/loop-agent.js --version
|
|
40
|
+
node bin/agent-worker.js --version
|
|
41
|
+
npm run dev -- --help
|
|
42
|
+
npm pack --dry-run
|
|
43
|
+
npm run self-host:canary -- --deterministic --output <evidence.json>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
deterministic self-host canary 必须只执行 static/shell DAG,并在 evidence 中证明 `piExecutorObserved=false`、`modelExecutorObserved=false`、`featureExecutedTasks=[]`、PATH controller trap 未触发且候选入口位于隔离 slot。它不证明 candidate Pi/model/provider 路径,也不替代 `test/dag-skill-snapshot.test.ts` 对候选 skill resolution、snapshot hash 和 resume 的验证。
|
|
47
|
+
|
|
48
|
+
测试资源策略:`npm test` 会先运行可并行的纯测试,再串行运行会启动 CLI、`tsx` 或 Git 子进程的集成测试。纯测试根据 `os.availableParallelism()` 自适应使用 1 至 4 个 Worker;可用 `LOOP_AGENT_FAST_TEST_WORKERS` 在 CI 或受限机器上显式覆盖。传入测试文件时,例如 `npm test -- test/worker/observe/server.test.ts`,仍按常规 Vitest 方式只运行该范围,不会启动两阶段完整测试。
|
|
49
|
+
|
|
50
|
+
产品线 Feature/Task/QA 文档或 TaskSpec 约束变更还应运行:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
bash scripts/check-product-line-docs.sh
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
该检查对仓库中的 feature packet 执行 `agent-worker task validate-feature`,覆盖 AC 唯一性、依赖/环、TaskSpec 路径与验证命令、QA verdict 与 success closeout 顺序。
|
|
57
|
+
|
|
58
|
+
Windows 上通过 Git Bash 或已配置的兼容 Bash 运行 `scripts/*.sh`。跨平台 CLI 代码对真实文件操作用原生路径;`/` 仅用于稳定 repo 引用、JSON/Markdown 证据引用和 glob 约定。
|
|
59
|
+
|
|
60
|
+
没有相关门禁的新鲜命令输出,不得声明完成。
|
|
61
|
+
|
|
62
|
+
Production Readiness v0.1 工作以 `docs/production-readiness.md` 与 `docs/templates/production-readiness-checklist.md` 为验收契约。最终 hardening closeout 需要:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
bash scripts/ci.sh
|
|
66
|
+
npm run docs:build
|
|
67
|
+
npm run build
|
|
68
|
+
node bin/loop-agent.js --help
|
|
69
|
+
npm pack --dry-run
|
|
70
|
+
```
|