@tea-agent/loop-agent 0.44.0-next.12 → 0.44.0-next.14
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/CHANGELOG.md +27 -2
- package/README.md +12 -12
- package/dist/adapters/loop-agent.js +34 -0
- package/dist/build-stamp.json +3 -3
- package/dist/cli/command-definitions.js +5 -5
- package/dist/cli/program.js +1 -4
- package/dist/commands/init-legacy-audit.js +330 -0
- package/dist/commands/init-upgrade.js +644 -104
- package/dist/commands/init.js +686 -330
- package/dist/commands/operator-guide.js +99 -0
- package/dist/commands/operator.js +16 -3
- package/dist/executors/dag-pi-executor.js +11 -6
- package/dist/executors/pi-sdk-executor.js +3 -1
- package/dist/executors/pi-writer-tool-policy.js +60 -4
- package/dist/executors/playwright-cli-launcher.js +31 -45
- package/dist/executors/shell-write-guard.js +24 -67
- package/dist/governance/exec-plans.js +10 -1
- package/dist/governance/harness.js +2 -7
- package/dist/governance/manifest-types.js +28 -9
- package/dist/governance/project-capability-scanner.js +263 -0
- package/dist/governance/project-config.js +96 -0
- package/dist/governance/resource-catalog.js +151 -0
- package/dist/infrastructure/console/app-data.js +6 -2
- package/dist/shared/operator/capabilities.js +2 -2
- package/dist/shared/package-metadata.js +23 -7
- package/dist/shared/pi-context-pressure/extension.js +23 -0
- package/dist/shared/pi-context-pressure/index.js +1 -0
- package/dist/shared/pi-context-pressure/telemetry.js +4 -0
- package/dist/shared/pi-context-pressure/tool-result-pruner.js +98 -0
- package/dist/shared/update/npm-client.js +49 -1
- package/dist/task/config-types.js +4 -2
- package/dist/task/source-prepare/build-draft.js +1 -0
- package/dist/task/source-prepare/path-policy.js +17 -7
- package/dist/worker/cli.js +3 -5
- package/dist/worker/console/chat/browser-automation.js +455 -41
- package/dist/worker/console/chat/browser-content.js +74 -0
- package/dist/worker/console/chat/browser-diagnostics.js +250 -0
- package/dist/worker/console/chat/browser-evaluation.js +58 -0
- package/dist/worker/console/chat/browser-operation-queue.js +19 -0
- package/dist/worker/console/chat/browser-pick.js +113 -0
- package/dist/worker/console/chat/browser-routes.js +54 -5
- package/dist/worker/console/chat/browser-screenshot-result.js +47 -0
- package/dist/worker/console/chat/browser-storage.js +89 -0
- package/dist/worker/console/chat/chat-event-store.js +7 -6
- package/dist/worker/console/chat/context-insights.js +84 -19
- package/dist/worker/console/chat/pet/pet-affinity.js +169 -0
- package/dist/worker/console/chat/pet/pet-persist.js +109 -0
- package/dist/worker/console/chat/pet/pet-registry.js +142 -0
- package/dist/worker/console/chat/pet/pet-remarks.js +48 -0
- package/dist/worker/console/chat/pet/pet-routes.js +125 -0
- package/dist/worker/console/chat/pet/pet-service.js +262 -0
- package/dist/worker/console/chat/pet/pet-state.js +99 -0
- package/dist/worker/console/chat/pi-mode-loop-isolation.js +17 -2
- package/dist/worker/console/chat/pi-runtime/custom-tools/browser-tools.js +125 -174
- package/dist/worker/console/chat/pi-runtime.js +8 -3
- package/dist/worker/console/chat/repo-browser.js +80 -2
- package/dist/worker/console/chat/repo-preview-kind.js +155 -0
- package/dist/worker/console/chat/routes.js +43 -7
- package/dist/worker/console/chat/scheduled-goal-request.js +14 -6
- package/dist/worker/console/chat/session-mode.js +1 -1
- package/dist/worker/console/chat/session-store.js +24 -5
- package/dist/worker/console/chat/tools.js +12 -0
- package/dist/worker/console/console-shutdown.js +34 -0
- package/dist/worker/console/server.js +2 -1
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-r1NAPU_5.js → abnfDiagram-N423BO3Z-DASc69AM.js} +1 -1
- package/dist/worker/console/static/assets/{arc-dT5T4sVL.js → arc-h09p-LAc.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-CP_cOq46.js → architectureDiagram-T3A2C74G-CZ3dtLkh.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-sToEZxEf.js → blockDiagram-VBNYF7ZC-DMrRhMXG.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-DSxwwi2m.js → c4Diagram-5PPSVZJV-DQxisHV6.js} +1 -1
- package/dist/worker/console/static/assets/channel-D1zgKZfg.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-B9fh0IkF.js → chunk-2GRJ4B5K-CefVN9zh.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-CAUNl-A6.js → chunk-2Q5K7J3B-DmR1Koq2.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BomeqbNX.js → chunk-5RXB4S5H-NlzrSW7L.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BNAuTOLE.js → chunk-5VM5RSS4-DfelJv-0.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-DfzjRD5y.js → chunk-6Q2QTUOP-BK6RFy58.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-C3uE-yc2.js → chunk-GF5L2VYU-BAeh9lz4.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-C3sQMMYr.js → chunk-JWPE2WC7-ChPS5WzG.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-D_AtEYQL.js → chunk-KBJHAD2P-BoVe5IM6.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-DW4TwhKv.js → chunk-RYQCIY6F-C4q_0Lw9.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-CTQDmJcp.js → chunk-XXDRQBXY-Bb9TvjeY.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-CXNNsY2M.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-CXNNsY2M.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-iMqPuBsL.js → cose-bilkent-JH36ORCC-DmNnL8Ff.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-DktIuDWs.js → cynefin-VYW2F7L2-Contvx58.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-BgVnjyEs.js → cynefinDiagram-MW4NZA55-Cigq7cjk.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-CR25E4bu.js → dagre-VZM6K2ZE-dEbC0nxb.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-CPM2h5HY.js → diagram-7IWD3JNH-CzIztESV.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-DqF0x2g1.js → diagram-B4RE2ZJO-Bo14zbaY.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-G8BYp2eb.js → diagram-LBJQPF4R-C4xUyil6.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-BbC4kT_D.js → diagram-Q27KOJAE-CaBY_uYa.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-CKZwZ-G5.js → diagram-UB23O5K3-ClUXUeiu.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-kJDmheia.js → ebnfDiagram-BXEA7PRR-BbGCgjC6.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DFTVHyxB.js → erDiagram-JOGREHBK-Dr-AcwSl.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-BqdN5_os.js → flowDiagram-UKHOOZJN-BG8Gcfyc.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-SYDjVakh.js → ganttDiagram-PKOTCBZU-CFVaPs5r.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-Bf8bNpGA.js → gitGraphDiagram-DS77QQ5N-ChJ8pm-O.js} +1 -1
- package/dist/worker/console/static/assets/index-B_5GhVIO.js +488 -0
- package/dist/worker/console/static/assets/index-C7YMBluX.css +1 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-DIeAmJ45.js → infoDiagram-6WML65LV-C5J9-uCZ.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-oikqUAlo.js → ishikawaDiagram-WSZJBQD7-BcfjqzDv.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-mKEF_xYT.js → journeyDiagram-NVQOT4AX-BzzCO-rD.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BdWJHPnN.js → kanban-definition-27J2QSJJ-NCHUZ46h.js} +1 -1
- package/dist/worker/console/static/assets/{linear-DGRlieMH.js → linear-BKZlWCUU.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-4P9yPC9c.js → mermaid.core-DbTaQjFE.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-5PTSkos6.js → mindmap-definition-FAOFIHXS-CroYl5xQ.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-DONIFpG5.js → pegDiagram-VL7TDLO6-DgMBx-9k.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-D_Z4S70M.js → pieDiagram-7S7Q4E2Y-CyWDmbq1.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-CAsjh8iY.js → quadrantDiagram-CIZ2JOQS-BgGEOqSP.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-Cx4Dd6ac.js → railroadDiagram-AXF67PYL-BMZ7oeeV.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-cQb7mwyH.js → requirementDiagram-LRYGKXZP-DxqyGhcc.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Cd-DhUdf.js → sankeyDiagram-W5VNT64P-DnSvNCG8.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-AlKYRgIk.js → sequenceDiagram-SI44F4Z6-BiZh6f-R.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CUy_ET4e.js → sizeCapture-X5ZJPWSS-BKXSI8WB.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-CTuVe6Sa.js → stateDiagram-OKZ733FA-CfSgoYFm.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DgHi3vjb.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-ChFLJb-v.js → swimlanes-SLNWSIFB-CyGADcHe.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Bgvdt1Y0.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-DZZeiAPr.js → timeline-definition-Z64GVDOM-HmPaSPOK.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-t4O91cZU.js → vennDiagram-T6HMQDX7-VA2VBbez.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CV5qGHZu.js → wardleyDiagram-T6FBY63Y-BxjiBPZa.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-DyXbytUI.js → xychartDiagram-ELKLHX3M--hUY-qFj.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static/pets/ember/pet.json +167 -0
- package/dist/worker/console/static/pets/ember/spritesheet.png +0 -0
- package/dist/worker/console/static-src/operator-chat/details-rail-surfaces.js +4 -3
- package/dist/worker/console/static-src/operator-chat/open-preview-in-browser.js +57 -9
- package/dist/worker/console/static-src/operator-chat/use-stat-dialog.js +95 -0
- package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +6 -0
- package/dist/worker/console/workspace-context.js +15 -0
- package/dist/worker/console/workspace-initialization.js +25 -16
- package/dist/worker/delivery/package.js +4 -1
- package/dist/worker/materialize/harness-task-lineage.js +4 -2
- package/dist/worker/observe/static/console-theme.css +33 -29
- package/dist/worker/observe/static/operator-chrome.js +1 -42
- package/dist/workflows/dag/backend-test-case-coverage-analysis.js +3 -1
- package/dist/workflows/dag/backend-test-layout.js +27 -7
- package/dist/workflows/dag/backend-test-markdown-workflow.js +3 -1
- package/dist/workflows/dag/backend-test-pytest-collection.js +4 -1
- package/dist/workflows/dag/final-verification.js +45 -10
- package/dist/workflows/dag/frontend-test-case-checklist.js +12 -3
- package/dist/workflows/dag/frontend-test-environment-probe.js +0 -2
- package/dist/workflows/dag/frontend-test-layout.js +41 -12
- package/dist/workflows/dag/hybrid/sources.js +35 -16
- package/dist/workflows/dag/hybrid/templates/backend-test.js +70 -55
- package/dist/workflows/dag/hybrid/templates/frontend-test.js +62 -41
- package/dist/workflows/dag/hybrid/templates/kg-bootstrap.js +6 -6
- package/dist/workflows/dag/hybrid/templates/knowledge-sync.js +5 -5
- package/dist/workflows/dag/skill-instructions.js +102 -32
- package/dist/workflows/dag/skill-snapshot.js +3 -0
- package/dist/workflows/dag/skills.js +7 -7
- package/dist/workflows/dag/test-artifact-namespace.js +73 -0
- package/dist/workflows/dag/validate.js +24 -5
- package/dist/workflows/dag/workspace-checkpoint.js +13 -1
- package/docs/architecture/runtime-boundaries.md +28 -22
- package/docs/init-surface.manifest.json +43 -295
- package/docs/templates/README.md +4 -4
- package/docs/templates/agent-dag.base.json +9 -9
- package/docs/templates/agent-dag.final-verification.json +6 -6
- package/docs/templates/agent-dag.supervised-implementation.json +12 -12
- package/docs/templates/backend-test-dag.generate-pytest.prompt.md +3 -3
- package/docs/templates/backend-test-dag.json +708 -708
- package/docs/templates/backend-test-dag.review-cases.prompt.md +3 -3
- package/docs/templates/frontend-implementation-dag.json +2 -2
- package/docs/templates/frontend-test-case-checklist.md +2 -2
- package/docs/templates/frontend-test-dag.generate-cases.prompt.md +7 -7
- package/docs/templates/frontend-test-dag.json +48 -39
- package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +2 -2
- package/docs/templates/frontend-test-dag.retrospect.prompt.md +1 -1
- package/docs/templates/frontend-test-dag.review-cases.prompt.md +1 -1
- package/docs/templates/hybrid-dag.json +9 -9
- package/docs/templates/knowledge-sync-dag.json +8 -8
- package/package.json +12 -3
- package/resource-catalog.v1.json +1973 -0
- package/resources/agent-bridge/loop-agent/SKILL.md +40 -0
- package/resources/init-history/legacy-surface.v1.json +33 -0
- package/skills/fe-test-ui-scout/SKILL.md +4 -4
- package/skills/fe-test-ui-scout/references/ledger-schema.md +1 -1
- package/skills/init-update/SKILL.md +34 -0
- package/skills/init-update/agents/openai.yaml +6 -0
- package/skills/playwright-cli/SKILL.md +1 -1
- package/skills/playwright-cli-case-generator/SKILL.md +4 -4
- package/dist/worker/console/static/assets/channel-CyBY_yGk.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-D5lN4E_E.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-D5lN4E_E.js +0 -1
- package/dist/worker/console/static/assets/index-B28Onmfy.css +0 -1
- package/dist/worker/console/static/assets/index-CTMZsDmh.js +0 -486
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BsWhs8O7.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-CJcioYGH.js +0 -8
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loop-agent
|
|
3
|
+
description: >-
|
|
4
|
+
Use when a repository is initialized with loop-agent and the user asks to
|
|
5
|
+
implement, fix, review, plan, verify, resume, or inspect work through the
|
|
6
|
+
loop-agent Task and Agent DAG workflow.
|
|
7
|
+
metadata:
|
|
8
|
+
loop-agent:
|
|
9
|
+
schemaVersion: 1
|
|
10
|
+
kind: external-agent-bridge
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# loop-agent bridge
|
|
14
|
+
|
|
15
|
+
This file is a discovery bridge. The installed `loop-agent` package is the
|
|
16
|
+
authority for workflow policy, commands, templates, and built-in Skills. Do not
|
|
17
|
+
infer write permission from this file and do not copy its policy into project
|
|
18
|
+
files.
|
|
19
|
+
|
|
20
|
+
## Route
|
|
21
|
+
|
|
22
|
+
1. Read the repository's own `AGENTS.md` and project instructions when present.
|
|
23
|
+
2. Run `loop-agent --repo-root . operator guide --json`. Treat its typed project
|
|
24
|
+
status and single `next.command` as the controller-owned route for an
|
|
25
|
+
uninitialized, ready, update-required, or blocked workspace.
|
|
26
|
+
3. For a direct read-only surface comparison, run `loop-agent init check-update
|
|
27
|
+
--repo-root . --json`.
|
|
28
|
+
4. For read-only orientation, use `loop-agent inspect --json`, `loop-agent task
|
|
29
|
+
status <task-id> --json`, and `loop-agent dag doctor --run-id <run-id> --json`.
|
|
30
|
+
5. For new implementation work, use `loop-agent task advance` with explicit
|
|
31
|
+
allowed and forbidden paths, then review the generated writeSet before
|
|
32
|
+
approval.
|
|
33
|
+
6. Long-running DAG execution needs a durable owner. Prefer the Console
|
|
34
|
+
operation returned by `agent-worker console`; do not start an unowned
|
|
35
|
+
foreground DAG command that the host may terminate.
|
|
36
|
+
|
|
37
|
+
If a command reports a gate, controller identity mismatch, active run, or human
|
|
38
|
+
decision, stop writing and follow the single `next` action in the typed result.
|
|
39
|
+
Package built-ins are addressed as `builtin:<name>`; project and user Skills are
|
|
40
|
+
addressed as `project:<name>` and `user:<name>` when an explicit source matters.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"catalogVersion": 1,
|
|
4
|
+
"entries": [
|
|
5
|
+
{ "id": "legacy-full-v1-01", "path": "ai_workspace/loop-agent/decisions/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["d2b7cd3a7aada67c8918bc923c298c56d6b24f76ced331cea94c40aa819a8efb"], "canonicalTextSha256": ["d2b7cd3a7aada67c8918bc923c298c56d6b24f76ced331cea94c40aa819a8efb"], "retirement": "remove" },
|
|
6
|
+
{ "id": "legacy-full-v1-02", "path": "ai_workspace/loop-agent/design/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["81c613511fa172c509c25614a24420fdca6895025cf4ffb30f11af245b82a244"], "canonicalTextSha256": ["81c613511fa172c509c25614a24420fdca6895025cf4ffb30f11af245b82a244"], "retirement": "remove" },
|
|
7
|
+
{ "id": "legacy-full-v1-03", "path": "ai_workspace/loop-agent/exec-plans/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["794353280a8251794537df7cbbabaa0ae101ed83cad29d85aa6bd3c494deaa8c"], "canonicalTextSha256": ["794353280a8251794537df7cbbabaa0ae101ed83cad29d85aa6bd3c494deaa8c"], "retirement": "remove" },
|
|
8
|
+
{ "id": "legacy-full-v1-04", "path": "ai_workspace/loop-agent/exec-plans/active/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["109f4cb2ff72281831afd8081d9022b087f2bcf1f7e9a74cc8d4e0a332ca2db3"], "canonicalTextSha256": ["109f4cb2ff72281831afd8081d9022b087f2bcf1f7e9a74cc8d4e0a332ca2db3"], "retirement": "remove" },
|
|
9
|
+
{ "id": "legacy-full-v1-05", "path": "ai_workspace/loop-agent/exec-plans/completed/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["18659db03f919a2468ec07b144afced8fbed1fbf9574836cbe98e0a09c112c48"], "canonicalTextSha256": ["18659db03f919a2468ec07b144afced8fbed1fbf9574836cbe98e0a09c112c48"], "retirement": "remove" },
|
|
10
|
+
{ "id": "legacy-full-v1-06", "path": "ai_workspace/loop-agent/harness-methodology-verification.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["0549642cf39664e0518400a7816c249347234861d548601478a7d8e4a52019db"], "canonicalTextSha256": ["23befc817df9e5ece4b8bdd3d9cefa709f3eebbb6549cdbfd3b94518827287d1"], "retirement": "remove" },
|
|
11
|
+
{ "id": "legacy-full-v1-07", "path": "ai_workspace/loop-agent/progress/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["346e5c59a5f9affb466d549942e65a9738573c70cbcd565e654e74bb35ab3a6b"], "canonicalTextSha256": ["346e5c59a5f9affb466d549942e65a9738573c70cbcd565e654e74bb35ab3a6b"], "retirement": "remove" },
|
|
12
|
+
{ "id": "legacy-full-v1-08", "path": "ai_workspace/loop-agent/reports/README.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["991df05df343d3438f1ad7b5d1267fab82afcb37a590b38deba3943fc94c94e0"], "canonicalTextSha256": ["991df05df343d3438f1ad7b5d1267fab82afcb37a590b38deba3943fc94c94e0"], "retirement": "remove" },
|
|
13
|
+
{ "id": "legacy-full-v1-09", "path": "ai_workspace/loop-agent/templates/adr.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["93177f43902f32079db85031c06bda501bd2fe5c167ab00c51bf5591e6c7821d"], "canonicalTextSha256": ["c0315f1112ce05f66a6f41ab7865aba03e218c70afaf20153f2735d4e081cf4d"], "retirement": "remove" },
|
|
14
|
+
{ "id": "legacy-full-v1-10", "path": "ai_workspace/loop-agent/templates/agent-dag-authority-surface-audit.prompt.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["c7fc215523a5fd8027b0ec476144d7d5b8274818adc7c9b6cf9a7d5f394352af"], "canonicalTextSha256": ["02023a687cfa8b67daa171da9d73d18885c80353f38157ac2966f456a0804f76"], "retirement": "remove" },
|
|
15
|
+
{ "id": "legacy-full-v1-11", "path": "ai_workspace/loop-agent/templates/agent-dag-decision-envelope.schema.json", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["4baa9a83f7ca78849cd370969c8634d5e75d5addef85a0671da4084def967736"], "canonicalTextSha256": ["ff62c6515487b2e0c29043b7d71db7423e8331088b97cb3d05d7958cde5b7c33"], "retirement": "remove" },
|
|
16
|
+
{ "id": "legacy-full-v1-12", "path": "ai_workspace/loop-agent/templates/agent-dag-decision-gate-dogfood-report.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["bc708ebca250ff64640159333325363367fd9b69d8d46b3ab9420d316acd40ce"], "canonicalTextSha256": ["0f0b17546647755639ea5937332dfe04c663b5edbf379b43210bc92c77898eaa"], "retirement": "remove" },
|
|
17
|
+
{ "id": "legacy-full-v1-13", "path": "ai_workspace/loop-agent/templates/agent-dag-decision-gate.prompt.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["61f2964bbf2dbe025ad69d402ac29b8d555ebf9c325d52d7b371908586167bd3"], "canonicalTextSha256": ["a6c89374ca343edb171d05a118143ebe96c77f14d532af487e554d9c511f1cb8"], "retirement": "remove" },
|
|
18
|
+
{ "id": "legacy-full-v1-14", "path": "ai_workspace/loop-agent/templates/agent-dag-process-supervisor.prompt.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["cd20efd90a23001ca05e745e9a79c14b85d8926aa471b519625e1b8138e82938"], "canonicalTextSha256": ["660af472281b66d474fb8f269798dbee7714bbff92eb2837d8fbc23831b13892"], "retirement": "remove" },
|
|
19
|
+
{ "id": "legacy-full-v1-15", "path": "ai_workspace/loop-agent/templates/agent-dag-review-verdict.prompt.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["04961e5e728cbddbcf07c4ef77437d2a6367e254345298ce1653d50bfede0629"], "canonicalTextSha256": ["c63750b0230744730e68caba8830dba1ea347dd31e0f107a81e8edff0b9521ef"], "retirement": "remove" },
|
|
20
|
+
{ "id": "legacy-full-v1-16", "path": "ai_workspace/loop-agent/templates/exec-plan.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["f8ca330a8b22db7261165bd128a6ad2e86d9c3b63a39d5a734915bc305d8c00c"], "canonicalTextSha256": ["4c34349cc6e79ac71923ea3408d94cff809aaac94d9390a7a93a1146d90b4b18"], "retirement": "remove" },
|
|
21
|
+
{ "id": "legacy-full-v1-17", "path": "ai_workspace/loop-agent/templates/feature-spec.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["8ce457e9239a41855cabf85f4c2910d9455e7303a48e38253870ed5152258282"], "canonicalTextSha256": ["0fcfb89c50a4ba38120cb34827f01f1023b8a1de2c8a6cddcf0137764e63219d"], "retirement": "remove" },
|
|
22
|
+
{ "id": "legacy-full-v1-18", "path": "ai_workspace/loop-agent/templates/progress-log.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["5db2b5a0ac22a980e334775c3d111ea340e867285b9763477e17ee6c9f45fe7b"], "canonicalTextSha256": ["0df84ccd0c93bdbfbf98245c691be6ac71738679685568991a01d4e2134be540"], "retirement": "remove" },
|
|
23
|
+
{ "id": "legacy-full-v1-19", "path": "ai_workspace/loop-agent/templates/qa-report.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["7eb8eff6e35f8bfc1dfcdbf16c149a97929e389288c49e3b15e4b2f7c3b0dd45"], "canonicalTextSha256": ["2f1e54542175569f13243f8d0b6b29663893919072e21fa2a25abac67b53accf"], "retirement": "remove" },
|
|
24
|
+
{ "id": "legacy-full-v1-20", "path": "ai_workspace/loop-agent/templates/sprint-contract.md", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["6f1daaf7f06f772ffe3177fc18bb1ac10866863b671a472c645912469d6a5b7d"], "canonicalTextSha256": ["23cbcd347087e0bc4e0d1eb8853421b9aa948c40e332c2d99714879469ff213c"], "retirement": "remove" },
|
|
25
|
+
{ "id": "legacy-full-v1-21", "path": "scripts/check-active-plan-status.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["24821c2bb128a9b86fadf5a1a0006f23cc5557ad93cba7a959144bdf7753845d"], "canonicalTextSha256": ["24821c2bb128a9b86fadf5a1a0006f23cc5557ad93cba7a959144bdf7753845d"], "retirement": "remove" },
|
|
26
|
+
{ "id": "legacy-full-v1-22", "path": "scripts/check-architecture-boundaries.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["38f07e0758bcf369266d1a6eb08cefeb1592ea857f7deaf3153ac8c096965a07"], "canonicalTextSha256": ["38f07e0758bcf369266d1a6eb08cefeb1592ea857f7deaf3153ac8c096965a07"], "retirement": "remove" },
|
|
27
|
+
{ "id": "legacy-full-v1-23", "path": "scripts/check-doc-index.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["e207c9458a65f4a5ae954704cab61888c070a6a8c671fdb8b5070138c1f9f05e"], "canonicalTextSha256": ["e207c9458a65f4a5ae954704cab61888c070a6a8c671fdb8b5070138c1f9f05e"], "retirement": "remove" },
|
|
28
|
+
{ "id": "legacy-full-v1-24", "path": "scripts/check-doc-links.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["5e57e80018dcc3fba0868876acfaeddcaf46845a046fe593290455b3940d9ca1"], "canonicalTextSha256": ["5e57e80018dcc3fba0868876acfaeddcaf46845a046fe593290455b3940d9ca1"], "retirement": "remove" },
|
|
29
|
+
{ "id": "legacy-full-v1-25", "path": "scripts/check-engineering-structure.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["d9a2ab94c35960033725b5c6fb9535cf91eefa7295fc07bcd904930627df09a8"], "canonicalTextSha256": ["d9a2ab94c35960033725b5c6fb9535cf91eefa7295fc07bcd904930627df09a8"], "retirement": "remove" },
|
|
30
|
+
{ "id": "legacy-full-v1-26", "path": "scripts/check-exec-plan-index-sync.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["a70395b3cd17106d1d53e877880f46a73e4dcbcea5a4fb32ea2661aebfd520bf"], "canonicalTextSha256": ["a70395b3cd17106d1d53e877880f46a73e4dcbcea5a4fb32ea2661aebfd520bf"], "retirement": "remove" },
|
|
31
|
+
{ "id": "legacy-full-v1-27", "path": "scripts/check-harness-runtime-clean.sh", "mode": "copied", "releaseFamily": "legacy-full-v1", "templateIdentity": "loop-agent-0.11-full-init", "rawSha256": ["4f0fe0d161e9cbb6b371392e776337c0416ac9e95aee4586e626deed9a6da51e"], "canonicalTextSha256": ["4f0fe0d161e9cbb6b371392e776337c0416ac9e95aee4586e626deed9a6da51e"], "retirement": "remove" }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fe-test-ui-scout
|
|
3
|
-
description: 在写 frontend-test Wave PRD/回归目录之前,对真实运行的被测页面做只读锚点侦察,产出并维护 {testRoot}/rag/ui-anchors.md 锚点台账(默认 testcase/frontend/rag/ui-anchors.md)。用 playwright-cli snapshot/find 逐字面验证命中数与唯一性,防止 PRD 验收标准引用不存在或不唯一的文案。触发词:frontend-test、锚点、台账、ui-anchors、侦察、写 PRD 前、snapshot/find 校准、Wave PRD。
|
|
3
|
+
description: 在写 frontend-test Wave PRD/回归目录之前,对真实运行的被测页面做只读锚点侦察,产出并维护 {testRoot}/rag/ui-anchors.md 锚点台账(默认 .harness/testcase/frontend/rag/ui-anchors.md)。用 playwright-cli snapshot/find 逐字面验证命中数与唯一性,防止 PRD 验收标准引用不存在或不唯一的文案。触发词:frontend-test、锚点、台账、ui-anchors、侦察、写 PRD 前、snapshot/find 校准、Wave PRD。
|
|
4
4
|
references:
|
|
5
5
|
- path: references/ledger-schema.md
|
|
6
6
|
required: true
|
|
@@ -13,7 +13,7 @@ references:
|
|
|
13
13
|
## 定位
|
|
14
14
|
|
|
15
15
|
写 Wave PRD / 校准回归目录 AC **之前**的前置侦察。产出锚点台账
|
|
16
|
-
`{testRoot}/rag/ui-anchors.md`(默认
|
|
16
|
+
`{testRoot}/rag/ui-anchors.md`(默认 `.harness/testcase/frontend/rag/ui-anchors.md`):每个「页面 × 状态」下真实可见、
|
|
17
17
|
`find` 可命中的字面清单。PRD 的每条 `find "..."` 断言必须能在台账找到对应行;
|
|
18
18
|
台账没有的字面禁止写进验收标准。
|
|
19
19
|
|
|
@@ -23,7 +23,7 @@ references:
|
|
|
23
23
|
|
|
24
24
|
## 输入
|
|
25
25
|
|
|
26
|
-
- 被测 baseUrl(来自 `{testRoot}/rag/context.md` 的 `environmentProbe=reachable` URL;默认
|
|
26
|
+
- 被测 baseUrl(来自 `{testRoot}/rag/context.md` 的 `environmentProbe=reachable` URL;默认 `.harness/testcase/frontend/rag/context.md`)
|
|
27
27
|
- 目标 Wave 的 AC 清单(回归目录中本 Wave 范围的行)
|
|
28
28
|
- 既有台账(增量更新,不整表重写)
|
|
29
29
|
|
|
@@ -56,7 +56,7 @@ references:
|
|
|
56
56
|
|
|
57
57
|
## 输出
|
|
58
58
|
|
|
59
|
-
- `{testRoot}/rag/ui-anchors.md`(增量更新;默认
|
|
59
|
+
- `{testRoot}/rag/ui-anchors.md`(增量更新;默认 `.harness/testcase/frontend/rag/ui-anchors.md`)
|
|
60
60
|
- 侦察小结(对话内输出,不落盘;结论回写 PRD 草稿的锚点引用)
|
|
61
61
|
|
|
62
62
|
## References
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 文件位置与命名
|
|
4
4
|
|
|
5
|
-
- 路径:`{testRoot}/rag/ui-anchors.md`(默认
|
|
5
|
+
- 路径:`{testRoot}/rag/ui-anchors.md`(默认 `.harness/testcase/frontend/rag/ui-anchors.md`)
|
|
6
6
|
- 编码:UTF-8,LF;表格用 GitHub Flavored Markdown。
|
|
7
7
|
- 台账是**增量账本**:修订不删除历史行;失效行改状态列并注明原因。
|
|
8
8
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init-update
|
|
3
|
+
description: Safely audit and update an existing loop-agent initialization when the user explicitly invokes /skill:init-update. Uses controller-owned candidate evidence and decisions; never deletes files directly.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Init Update
|
|
7
|
+
|
|
8
|
+
Use this Skill only after explicit invocation. It helps an existing workspace adopt the current initialization surface without treating old controller files as user content or guessing that user files are disposable.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. Confirm the intended workspace and run `loop-agent --version` so the controller identity is visible.
|
|
13
|
+
2. Run `loop-agent init check-update --legacy-audit --repo-root . --json` for a read-only explanation. Distinguish `coreState` from `migrationState`.
|
|
14
|
+
3. Start or resume the controller-owned lifecycle with `loop-agent init upgrade --repo-root . --json`. Continue the same `runId` until it completes, reaches a genuine model merge, or needs a user decision.
|
|
15
|
+
4. Explain automatic actions, external consumers, modified files, and uncertain provenance in grouped language. Ask the user only where the controller reports a human decision.
|
|
16
|
+
5. Convert explicit choices into the run-bound decision file exactly as reported. Each legacy decision must retain its `candidateId`, `path`, and `expectedSha256`; never invent a path, hash, candidate id, glob, or directory decision.
|
|
17
|
+
6. Resume with `loop-agent init upgrade --repo-root . --continue --run-id <runId> --decision-file <repo-relative-json> --json`.
|
|
18
|
+
7. Report removed files, retained files, unresolved consumers, `coreState`, `migrationState`, and the resumable `runId`.
|
|
19
|
+
|
|
20
|
+
## Decision Rules
|
|
21
|
+
|
|
22
|
+
- Prefer `retain-project-content` when the file is valid project content.
|
|
23
|
+
- Use `preserve-unproven` when ownership remains uncertain.
|
|
24
|
+
- Use `delete-listed-file` only after the user explicitly approves the exact listed candidates. Manual Skill invocation alone is not deletion approval.
|
|
25
|
+
- A candidate with consumers must be migrated and re-audited before deletion. Do not bypass the controller when it refuses the decision.
|
|
26
|
+
- If the user postpones a choice, leave the run in `review-required`; a ready core can continue running DAGs.
|
|
27
|
+
|
|
28
|
+
## Hard Boundaries
|
|
29
|
+
|
|
30
|
+
- Do not call `rm`, `Remove-Item`, `git clean`, directory deletion, or a custom deletion script.
|
|
31
|
+
- Do not edit `.harness/init-surface.json`, init-upgrade state, receipts, candidate ids, or hashes by hand.
|
|
32
|
+
- Do not treat modified, staged, untracked, symlinked, junction-backed, referenced, or unproven content as automatically removable.
|
|
33
|
+
- Do not continue mutation while the controller reports active DAG, Worker, or chat runtime activity.
|
|
34
|
+
- Do not expose credentials, provider configuration, or unrelated user files.
|
|
@@ -55,7 +55,7 @@ request
|
|
|
55
55
|
|
|
56
56
|
## 推荐执行流程
|
|
57
57
|
|
|
58
|
-
使用 `{testRoot}/rag/context.md`(默认
|
|
58
|
+
使用 `{testRoot}/rag/context.md`(默认 `.harness/testcase/frontend/rag/context.md`)中已由 environment shell 标记为 `reachable` 的非生产 `baseUrl` 和默认浏览器 session;不得创建 named session。交互前先获取 snapshot,并只使用 snapshot 中可见的 ref 或已知安全 locator。截图写入当前 case 的 `{evidenceDir}/<caseId>/`,canonical 文件名仍是 `final.png`。
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
61
|
playwright-cli open --browser=chrome http://localhost:5173
|
|
@@ -13,7 +13,7 @@ description: 根据 FE-test RAG 知识包生成可由受限 playwright_cli runti
|
|
|
13
13
|
|
|
14
14
|
## 输入与边界
|
|
15
15
|
|
|
16
|
-
默认产物根是
|
|
16
|
+
默认产物根是 `.harness/testcase/frontend/`。若任务配置了 `frontendTest.testRoot`,把下列路径中的 `.harness/testcase/frontend/` 整段替换为该根(不要只替换 `.harness/testcase/`)。
|
|
17
17
|
|
|
18
18
|
- 只读取 `{testRoot}/rag/context.md`、`coverage-map.md` 与已有 `{testRoot}/cases/`。
|
|
19
19
|
- 若存在 `{testRoot}/rag/ui-anchors.md` 锚点台账,必须一并读取并作为 UI 断言的唯一事实源;台账缺失时按 RAG 知识包生成,但不得引用台账外的具体控件字面(缺失信息标 `blocked`)。
|
|
@@ -40,8 +40,8 @@ description: 根据 FE-test RAG 知识包生成可由受限 playwright_cli runti
|
|
|
40
40
|
(例:`FE-LOGIN-001-core`)。禁止把验收标准写成 caseId。
|
|
41
41
|
- `acIds` = **验收标准 ID 列表**,形态 `AC-FE-*` / `AC-*`
|
|
42
42
|
(例:`["AC-FE-001"]`)。禁止把用例 ID 放进 acIds。
|
|
43
|
-
- `casePath` 必须等于 `{casesDir}/<caseId>.md`(默认
|
|
44
|
-
`evidenceDir` 必须等于 `{evidenceDir}/<caseId>/`(默认
|
|
43
|
+
- `casePath` 必须等于 `{casesDir}/<caseId>.md`(默认 `.harness/testcase/frontend/cases/<caseId>.md`);
|
|
44
|
+
`evidenceDir` 必须等于 `{evidenceDir}/<caseId>/`(默认 `.harness/testcase/frontend/evidence/<caseId>/`)。
|
|
45
45
|
- `manifest` 使用 `schemaVersion: 1`,每项只含 `caseId`、`casePath`、`dimension`、`acIds`、
|
|
46
46
|
`evidenceDir`。所有 ID、路径和 evidenceDir 必须唯一,并位于 `{testRoot}/` 内。
|
|
47
47
|
- `index.md` 按功能点列出 case、维度、AC、数据依赖、API 映射和预期执行状态。
|
|
@@ -75,7 +75,7 @@ description: 根据 FE-test RAG 知识包生成可由受限 playwright_cli runti
|
|
|
75
75
|
7. 明确的 UI/API 预期与数据清理结果;无法满足的环境或数据依赖必须写为 `blocked`。
|
|
76
76
|
|
|
77
77
|
所有文件型输出均由 controller 绑定到执行节点提供的
|
|
78
|
-
`{evidenceDir}/<case-id>/` 工作目录(默认
|
|
78
|
+
`{evidenceDir}/<case-id>/` 工作目录(默认 `.harness/testcase/frontend/evidence/<case-id>/`)。截图一律使用 canonical 语法
|
|
79
79
|
`playwright-cli screenshot --filename final.png`;如确有从最新 snapshot 解析出的真实元素 ref,写为
|
|
80
80
|
`playwright-cli screenshot e5 --filename final.png`。`pdf` 必须写为
|
|
81
81
|
`playwright-cli pdf --filename final.pdf`。`snapshot` 无 filename 时仅返回响应;需要文件时使用
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ag as o,ah as n}from"./mermaid.core-4P9yPC9c.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-C3uE-yc2.js";import{_ as i}from"./mermaid.core-4P9yPC9c.js";import"./chunk-5VM5RSS4-BNAuTOLE.js";import"./chunk-XXDRQBXY-CTQDmJcp.js";import"./chunk-KBJHAD2P-D_AtEYQL.js";import"./chunk-2GRJ4B5K-B9fh0IkF.js";import"./index-CTMZsDmh.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-C3uE-yc2.js";import{_ as i}from"./mermaid.core-4P9yPC9c.js";import"./chunk-5VM5RSS4-BNAuTOLE.js";import"./chunk-XXDRQBXY-CTQDmJcp.js";import"./chunk-KBJHAD2P-D_AtEYQL.js";import"./chunk-2GRJ4B5K-B9fh0IkF.js";import"./index-CTMZsDmh.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
|