@tea-agent/loop-agent 0.43.0-next.1 → 0.43.0-next.11
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 +144 -9
- package/dist/application/dag/run-dag.js +5 -0
- package/dist/application/evaluation/budget.js +19 -1
- package/dist/application/task-lifecycle/advance.js +17 -4
- package/dist/application/task-lifecycle/observe.js +43 -29
- package/dist/application/task-lifecycle/plan-transitions.js +5 -4
- package/dist/build-stamp.json +3 -3
- package/dist/executors/dag-pi-executor.js +1237 -586
- package/dist/executors/pi-executor.js +22 -1
- package/dist/executors/pi-sdk-executor.js +140 -39
- package/dist/executors/shell-executor.js +8 -4
- package/dist/shared/frontend-execution-policy.js +23 -0
- package/dist/task/config-types.js +4 -0
- package/dist/task/source-prepare/ledger-reconciliation.js +2 -2
- package/dist/task/source-prepare/ledger-review.js +6 -9
- package/dist/task/source-prepare/semantic-intake.js +16 -26
- package/dist/task/source-prepare/source-fidelity-pi.js +28 -9
- package/dist/task/source-references.js +48 -23
- package/dist/worker/console/chat/assistant-content.js +23 -2
- package/dist/worker/console/chat/browser-policy.js +113 -0
- package/dist/worker/console/chat/browser-routes.js +140 -0
- package/dist/worker/console/chat/explore-tools.js +13 -0
- package/dist/worker/console/chat/pi-runtime/custom-tools/ask-user-question.js +44 -0
- package/dist/worker/console/chat/pi-runtime/custom-tools/explore-tools.js +202 -0
- package/dist/worker/console/chat/pi-runtime/custom-tools/goal-tools.js +79 -0
- package/dist/worker/console/chat/pi-runtime/custom-tools/operator-tools.js +86 -0
- package/dist/worker/console/chat/pi-runtime/custom-tools/todo-write.js +38 -0
- package/dist/worker/console/chat/pi-runtime/inspection-types.js +28 -0
- package/dist/worker/console/chat/pi-runtime/inspection.js +439 -0
- package/dist/worker/console/chat/pi-runtime/sdk-bindings.js +153 -0
- package/dist/worker/console/chat/pi-runtime/sdk-session.js +5 -0
- package/dist/worker/console/chat/pi-runtime.js +207 -1178
- package/dist/worker/console/chat/routes.js +208 -71
- package/dist/worker/console/chat/scm-routes.js +217 -0
- package/dist/worker/console/chat/scm-service.js +283 -0
- package/dist/worker/console/chat/scm-tools.js +111 -0
- package/dist/worker/console/chat/sdd-data-alignment.js +65 -9
- package/dist/worker/console/chat/session-catalog.js +32 -0
- package/dist/worker/console/chat/session-mode-view.js +49 -0
- package/dist/worker/console/chat/session-mode.js +219 -0
- package/dist/worker/console/chat/session-store.js +22 -6
- package/dist/worker/console/chat/shortcuts.js +6 -0
- package/dist/worker/console/chat/terminal-routes.js +216 -0
- package/dist/worker/console/chat/terminal-sessions.js +348 -0
- package/dist/worker/console/chat/terminal-tools.js +211 -0
- package/dist/worker/console/chat/tool-preview.js +11 -0
- package/dist/worker/console/chat/tools.js +2 -0
- package/dist/worker/console/server.js +2 -28
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-B0Q0nClf.js → abnfDiagram-N423BO3Z-CTSK0xbU.js} +1 -1
- package/dist/worker/console/static/assets/{arc-DCPjC19G.js → arc-_2MfctFP.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-CP5n9jmG.js → architectureDiagram-T3A2C74G-DsDe2wTg.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-CmaWi_Wg.js → blockDiagram-VBNYF7ZC-Dtz_779U.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-Ct5tcMfZ.js → c4Diagram-5PPSVZJV-LaULi-gw.js} +1 -1
- package/dist/worker/console/static/assets/channel-CqS4yBWT.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-C0osm1Zf.js → chunk-2GRJ4B5K-DuHBqqX8.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-CDWviED7.js → chunk-2Q5K7J3B-BZgZs1dn.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-mtSk1-j7.js → chunk-5RXB4S5H-tzwmlIO_.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-D5J9PHC7.js → chunk-5VM5RSS4-CeYrLkSn.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-Begg4WAa.js → chunk-6Q2QTUOP-C92cgilm.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-sF1AEy7T.js → chunk-GF5L2VYU-XOXpGC0F.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-BqbsWXZb.js → chunk-JWPE2WC7-CGHbJyCH.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-BKJrPcJ6.js → chunk-KBJHAD2P-Bs2-LTzf.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-CcwNMRho.js → chunk-RYQCIY6F-rN7up7E4.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-BEJi3iIs.js → chunk-XXDRQBXY-B_fWjKpR.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DVOxNOq0.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DVOxNOq0.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-DRLgTvVu.js → cose-bilkent-JH36ORCC-DE3SdJvB.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-BoAVG3cs.js → cynefin-VYW2F7L2-B-4yuRAX.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-Bzol06hR.js → cynefinDiagram-MW4NZA55-TiCPFuO8.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-UmliJM77.js → dagre-VZM6K2ZE-7crzLMzA.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-BWLcJkFo.js → diagram-7IWD3JNH-Cvr-x6Fd.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-CgApOm-O.js → diagram-B4RE2ZJO-BzcRHUjH.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-Bh3RgTLs.js → diagram-LBJQPF4R-BjkAXilh.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-Dsh-D5nE.js → diagram-Q27KOJAE-BkzyATK7.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-Dkbbpcpb.js → diagram-UB23O5K3-rZuTarYP.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-3EBaA3t3.js → ebnfDiagram-BXEA7PRR-CAYENaN1.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-Bq2Dc5ok.js → erDiagram-JOGREHBK-DCEam0Uq.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-De7y55ha.js → flowDiagram-UKHOOZJN-e_dH4wVO.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-fLiDbQRh.js → ganttDiagram-PKOTCBZU-CvZa2zOK.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-Du617mp1.js → gitGraphDiagram-DS77QQ5N-CbT5TuKp.js} +1 -1
- package/dist/worker/console/static/assets/index-CUPeoE8W.js +468 -0
- package/dist/worker/console/static/assets/index-SAANIK8g.css +1 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-BwmlF-XP.js → infoDiagram-6WML65LV-BWzHQa_Z.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-zsGtS59u.js → ishikawaDiagram-WSZJBQD7-BTjlovtU.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-DTTPTe3f.js → journeyDiagram-NVQOT4AX-DkvQoCc1.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-BkXg9aP-.js → kanban-definition-27J2QSJJ-CHSzGi3W.js} +1 -1
- package/dist/worker/console/static/assets/{linear-7U2ue5IE.js → linear-DZMkTCWH.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-BUuGHmWO.js → mermaid.core-BIMhty7A.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-7q6fX0Sv.js → mindmap-definition-FAOFIHXS-Dx-tyMl3.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-CkQPJN55.js → pegDiagram-VL7TDLO6-C6G34rbY.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-CCal_tfX.js → pieDiagram-7S7Q4E2Y-CHK9XOfm.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-B7bpxyAZ.js → quadrantDiagram-CIZ2JOQS-CDARkI0w.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-CJmww7D-.js → railroadDiagram-AXF67PYL-DiuUe0ZQ.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-D6ldWJEv.js → requirementDiagram-LRYGKXZP-RE61UR56.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-VGh33I9e.js → sankeyDiagram-W5VNT64P-KDNLHMEG.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-CCkDrIjU.js → sequenceDiagram-SI44F4Z6-CeVgXnD9.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-NC8f5Otb.js → sizeCapture-X5ZJPWSS-CXwGyjjG.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-_92ezZdF.js → stateDiagram-OKZ733FA-BjTfozab.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BXoYsyr2.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-BdUCGtbP.js → swimlanes-SLNWSIFB-BaXOB8GT.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-DfKliS4e.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-CdD1H8ia.js → timeline-definition-Z64GVDOM-C3r2hqUU.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-Dkdk3oFo.js → vennDiagram-T6HMQDX7-MWKgl1S9.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CKu2uPPY.js → wardleyDiagram-T6FBY63Y-C9iFcZPk.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-ClqAnuG8.js → xychartDiagram-ELKLHX3M-DqnM24Jp.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/operator-chat/active-turn-tail.js +10 -0
- package/dist/worker/console/static-src/operator-chat/chat-link.js +94 -0
- package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +122 -10
- package/dist/worker/console/static-src/operator-chat/compaction-message.js +7 -0
- package/dist/worker/console/static-src/operator-chat/pending-user-message.js +27 -15
- package/dist/worker/console/static-src/operator-chat/process-label.js +41 -0
- package/dist/worker/console/static-src/operator-chat/turn-group-equality.js +13 -0
- package/dist/worker/console/static-src/operator-chat/turn-process-disclosure.js +10 -0
- package/dist/worker/console/static-src/operator-chat/use-searchable-hidden.js +51 -0
- package/dist/worker/console/static-src/operator-chat/useChatSessions.js +44 -24
- package/dist/worker/console/static-src/operator-chat/useChatStream.js +18 -2
- package/dist/worker/console/static-src/operator-chat/useChatThread.js +41 -8
- package/dist/worker/console/static-src/operator-chat/useComposer.js +26 -11
- package/dist/worker/console/static-src/operator-chat/user-turn-anchor-equality.js +21 -0
- package/dist/worker/console/workspace-context.js +15 -1
- package/dist/worker/observe/node-transparency.js +81 -72
- package/dist/worker/observe/routes.js +20 -1
- package/dist/worker/observe/static/dag-inspector-humanize.js +3 -0
- package/dist/worker/observe/static/dom.js +20 -1
- package/dist/worker/observe/static/format-pool.d.ts +2 -0
- package/dist/worker/observe/static/format-pool.js +6 -0
- package/dist/worker/observe/static/format.js +7 -0
- package/dist/worker/observe/static/inspect-workspace.js +34 -7
- package/dist/worker/observe/static/inspector-submission.js +32 -0
- package/dist/worker/observe/static/kpi.js +1 -0
- package/dist/worker/observe/static/relations.js +2 -0
- package/dist/worker/observe/static/router.js +13 -0
- package/dist/worker/observe/static/run-processing.js +2 -0
- package/dist/worker/observe/static/shell-chrome.js +36 -3
- package/dist/worker/observe/static/state.js +35 -2
- package/dist/worker/observe/static/styles.css +263 -39
- package/dist/worker/observe/static/task-failure-labels.d.ts +4 -0
- package/dist/worker/observe/static/task-failure-labels.js +67 -0
- package/dist/worker/observe/static/task-history.js +12 -0
- package/dist/worker/observe/static/views/batch.js +6 -13
- package/dist/worker/observe/static/views/dag-graph.js +50 -3
- package/dist/worker/observe/static/views/dag-inspector.js +742 -268
- package/dist/worker/observe/static/views/dag-trajectory.js +3 -0
- package/dist/worker/observe/static/views/dag.d.ts +6 -0
- package/dist/worker/observe/static/views/dag.js +49 -11
- package/dist/worker/observe/static/views/dags.js +2 -0
- package/dist/worker/observe/static/views/dashboard.js +21 -12
- package/dist/worker/observe/static/views/failures.js +21 -11
- package/dist/worker/observe/static/views/feature.js +11 -29
- package/dist/worker/observe/static/views/pool.js +37 -28
- package/dist/worker/observe/static/views/run.js +48 -5
- package/dist/worker/observe/static/views/session-timeline.js +189 -240
- package/dist/worker/observe/static/views/task.js +81 -62
- package/dist/workflows/dag/budget-enforcement.js +53 -3
- package/dist/workflows/dag/frontend-capacity.js +9 -0
- package/dist/workflows/dag/frontend-closeout.js +1 -1
- package/dist/workflows/dag/frontend-design-policy.js +2 -1
- package/dist/workflows/dag/frontend-durable-tools.js +193 -0
- package/dist/workflows/dag/frontend-execution-groups.js +24 -0
- package/dist/workflows/dag/frontend-implementation-contract.js +13 -0
- package/dist/workflows/dag/frontend-input-projection.js +76 -0
- package/dist/workflows/dag/frontend-plan-completeness.js +186 -0
- package/dist/workflows/dag/frontend-plan-recovery-policy.js +18 -0
- package/dist/workflows/dag/frontend-plan-render.js +10 -3
- package/dist/workflows/dag/frontend-prewrite-gate.js +3 -3
- package/dist/workflows/dag/frontend-recovery-controller.js +7 -7
- package/dist/workflows/dag/frontend-recovery-lineage.js +13 -0
- package/dist/workflows/dag/frontend-recovery-run.js +4 -0
- package/dist/workflows/dag/frontend-review-context.js +2 -1
- package/dist/workflows/dag/frontend-review-scopes.js +139 -0
- package/dist/workflows/dag/frontend-session-budget.js +249 -0
- package/dist/workflows/dag/frontend-shadow-dual-write.js +20 -2
- package/dist/workflows/dag/frontend-shape-facts.js +12 -2
- package/dist/workflows/dag/frontend-shape.js +30 -1
- package/dist/workflows/dag/frontend-test-execution-evidence.js +3 -2
- package/dist/workflows/dag/frontend-typed-event-store.js +11 -0
- package/dist/workflows/dag/frontend-verification-trace.js +1 -1
- package/dist/workflows/dag/init-hybrid.js +65 -167
- package/dist/workflows/dag/node-execution.js +38 -155
- package/dist/workflows/dag/prompt.js +4 -0
- package/dist/workflows/dag/rerun-plan.js +7 -1
- package/dist/workflows/dag/runner.js +26 -1
- package/dist/workflows/dag/types.js +6 -0
- package/docs/operations/README.md +1 -0
- package/docs/templates/frontend-design-contract.md +4 -4
- package/docs/templates/frontend-implementation-contract.schema.json +34 -2
- package/docs/templates/frontend-implementation-dag.json +14 -13
- package/package.json +6 -3
- package/skills/frontend-bounded-implement/SKILL.md +3 -3
- package/skills/frontend-bounded-implement/references/code-standards.md +3 -3
- package/skills/frontend-contract/SKILL.md +2 -1
- package/skills/frontend-contract/references/contract-protocol.md +22 -4
- package/skills/frontend-design-review/SKILL.md +22 -16
- package/skills/frontend-design-review/references/review-checklist.md +7 -7
- package/skills/frontend-plan/SKILL.md +21 -2
- package/skills/frontend-plan/references/decision-contract.md +42 -23
- package/skills/frontend-review/SKILL.md +22 -29
- package/skills/frontend-review/references/review-findings.md +24 -43
- package/skills/frontend-scout/references/scout-evidence.md +4 -0
- package/dist/worker/console/static/assets/channel-DAS07MdS.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-Cwk-5jiW.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-Cwk-5jiW.js +0 -1
- package/dist/worker/console/static/assets/index-C0O48S_P.js +0 -449
- package/dist/worker/console/static/assets/index-CzKf4U8P.css +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DyJg5gzW.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-B1cw_0Uy.js +0 -8
|
@@ -8,14 +8,16 @@
|
|
|
8
8
|
source-fidelity ledger. Do not infer fragment IDs from prose.
|
|
9
9
|
- Record observable outcomes, applicable UI states, runtime/environment constraints,
|
|
10
10
|
non-goals, risks, and verification expectations without choosing implementation.
|
|
11
|
-
-
|
|
12
|
-
|
|
11
|
+
- Runtime owns requirement text, source binding and disposition. Use typed questions
|
|
12
|
+
and constraints for uncertainties; blocked terminal facts name their owner.
|
|
13
13
|
|
|
14
14
|
## Evidence and handoff
|
|
15
15
|
|
|
16
16
|
- Register static, behavior, Mock, and real-integration evidence expectations as
|
|
17
17
|
required, optional, or not-applicable. The classification follows the source and
|
|
18
|
-
risk; it is not selected for model convenience.
|
|
18
|
+
risk; it is not selected for model convenience. These are source expectations
|
|
19
|
+
for the non-blocking frontend-test handoff, not implementation test gates.
|
|
20
|
+
This implementation workflow executes only npm run build.
|
|
19
21
|
- Register a non-blocking frontend-test handoff for UI-visible or interactive work.
|
|
20
22
|
- Preserve exact command labels and referenced paths. Do not invent evidence,
|
|
21
23
|
connector results, APIs, or verification commands.
|
|
@@ -29,6 +31,22 @@ enumerate or downgrade them.
|
|
|
29
31
|
|
|
30
32
|
## Terminal
|
|
31
33
|
|
|
32
|
-
Commit facts
|
|
34
|
+
Commit facts from the complete current scope, then `complete_contract_scope` only
|
|
35
|
+
after its evidence, constraints and source-bound deliverables are recorded. Scope
|
|
36
|
+
checkpoints survive interruption; confirming an ID alone is not completion.
|
|
37
|
+
Call `finalize_contract` with
|
|
33
38
|
`ready`, `ready-with-assumptions`, or `blocked`. If the task is too large for one
|
|
34
39
|
bounded writer, record a split proposal instead of broadening the contract.
|
|
40
|
+
|
|
41
|
+
A successful receipt means the fact was saved durably. Replays are idempotent;
|
|
42
|
+
changed facts require explicit `replace:true`. Correct rejected calls and retry,
|
|
43
|
+
but do not mutate after a successful terminal. Never drop tail conditions to fit.
|
|
44
|
+
|
|
45
|
+
## Execution ownership
|
|
46
|
+
|
|
47
|
+
`record_requirement` may include `execution:{groupId,kind,summary}`. Use `behavior`,
|
|
48
|
+
`constraint`, or `exclusion`; reuse an existing group only when semantics agree.
|
|
49
|
+
Keep permission, threshold and failure-path differences separate. Do not merge
|
|
50
|
+
source IDs or independent acceptance conditions. Unclassified requirements remain
|
|
51
|
+
independent. Later scopes receive the shared group index. A group is a planning
|
|
52
|
+
proposal; independent design review must check every member's complete text.
|
|
@@ -9,36 +9,36 @@ references:
|
|
|
9
9
|
|
|
10
10
|
# Frontend Design Review
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
capacity diagnostic
|
|
14
|
-
|
|
15
|
-
bound Mock strategy, task bounds, and traceable design evidence supplied by the
|
|
16
|
-
upstream context. Do not rediscover task sources, search specification roots, or
|
|
17
|
-
replace frozen evidence with nearby-code conventions. Use only exact, bound evidence
|
|
18
|
-
paths when additional reading is necessary; never invent connector results.
|
|
12
|
+
Audit the canonical contract or its hash-bound indexed sections, guided by the
|
|
13
|
+
capacity diagnostic. Check Mock strategy, task bounds and exact bound evidence.
|
|
14
|
+
Do not rediscover sources, search specification roots or invent connector results.
|
|
19
15
|
|
|
20
16
|
## Authoritative Terminal
|
|
21
17
|
|
|
22
|
-
|
|
18
|
+
Submit findings one at a time with `record_design_finding` using stable IDs.
|
|
19
|
+
Use `replace:true` for revisions. The terminal automatically includes saved findings;
|
|
20
|
+
do not repeat their array. Correct rejected calls, then commit one successful terminal:
|
|
23
21
|
|
|
24
22
|
- `approve_design` when no blocking design defect remains;
|
|
25
23
|
- `request_design_changes` when a blocker exists. It must include a typed
|
|
26
|
-
`issueCategory`, at least one `evidenceRef`, and non-empty findings.
|
|
24
|
+
`issueCategory`, at least one `evidenceRef`, and non-empty findings (saved or supplied).
|
|
27
25
|
|
|
28
26
|
The typed terminal is the only authoritative outcome. Do not require or emit a
|
|
29
27
|
`VERDICT:` line, JSON verdict, revision patch, or a second final-design-review
|
|
30
|
-
verdict.
|
|
31
|
-
|
|
28
|
+
verdict. Requested changes end this run; recovery owns the bounded follow-up.
|
|
29
|
+
|
|
30
|
+
Check every execution group against its members' complete outcomes. Permissions,
|
|
31
|
+
thresholds and error paths remain independent ACs with corresponding planned implementation.
|
|
32
|
+
The shared static build target checks buildability only.
|
|
32
33
|
|
|
33
34
|
## Blocking Conditions
|
|
34
35
|
|
|
35
|
-
- Any criterion lacks implementation
|
|
36
|
+
- Any criterion lacks planned implementation; UI states lack reasons; a
|
|
36
37
|
dependency lacks permission; confirmed primitives/rules are ignored; design claims
|
|
37
38
|
lack knowledge-base or required openspec specification evidence; paths cross
|
|
38
|
-
write bounds;
|
|
39
|
-
interaction, responsive, accessibility, data, or failure behavior requires guessing.
|
|
39
|
+
write bounds; the frozen npm run build command is missing.
|
|
40
40
|
- `MOCK_STRATEGY: blocked`; missing permitted target paths, endpoint/schema-to-fixture
|
|
41
|
-
mapping
|
|
41
|
+
mapping or dev/test-only activation; a second Mock framework;
|
|
42
42
|
inline fake data; commented real requests; Mock-on production defaults; test-only
|
|
43
43
|
production imports; or Mock evidence reported as real integration.
|
|
44
44
|
|
|
@@ -48,7 +48,7 @@ conflict, or unresolved UI decisions.
|
|
|
48
48
|
|
|
49
49
|
## Method And Human-readable Output
|
|
50
50
|
|
|
51
|
-
Map criteria to steps/files/states
|
|
51
|
+
Map criteria to planned steps/files/states, audit paths/evidence, classify Blocking
|
|
52
52
|
or Advisory, and never edit files.
|
|
53
53
|
|
|
54
54
|
### Spec Evidence Rules
|
|
@@ -58,3 +58,9 @@ evidence paths bound in its upstream context. Successful paired reads are the on
|
|
|
58
58
|
summaries do not substitute for them. A concise human-readable summary may list
|
|
59
59
|
checked items and findings, but it is never a control protocol. Each requested
|
|
60
60
|
change names its criterion/section, gap, and required plan change.
|
|
61
|
+
|
|
62
|
+
## Implementation workflow boundary
|
|
63
|
+
|
|
64
|
+
Plan lists what to implement and where. Only npm run build is executed. Missing
|
|
65
|
+
unit tests, test frameworks, test plans, or behavior evidence never block this
|
|
66
|
+
workflow. Existing tests are preserved; tests can be added later in frontend-test.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Coverage
|
|
4
4
|
|
|
5
5
|
- Route/component, non-goals, assumptions, and unresolved ambiguity are explicit.
|
|
6
|
-
- Each acceptance criterion maps to steps, files, UI behavior,
|
|
6
|
+
- Each acceptance criterion maps to planned steps, files, UI behavior, and states.
|
|
7
7
|
- Success/error/loading/empty/disabled/permission/retry/stale/boundary states are handled or N/A.
|
|
8
8
|
|
|
9
9
|
## Project Fit
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
## Verification
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
23
|
+
- The only frozen command is npm run build.
|
|
24
|
+
- Do not require test plans, test files, a test framework, or behavior evidence.
|
|
25
|
+
- Behavior correctness and all tests are deferred to frontend-test and non-blocking.
|
|
26
26
|
|
|
27
27
|
## Mock Safety
|
|
28
28
|
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
- Prefer native mock; browser intercept only for existing e2e; request adapter only for reversible local preview.
|
|
32
32
|
- Real request stays default; activation is explicit, reversible, local/test-only, and production-off.
|
|
33
33
|
- Plans use only DAG-frozen shell entrypoints.
|
|
34
|
-
- Mock strategies
|
|
35
|
-
- `not-needed`
|
|
34
|
+
- Mock strategies keep production defaults off; Mock behavior tests are deferred.
|
|
35
|
+
- `not-needed` records its rationale and preserves any Real Integration Gap.
|
|
36
36
|
- Mock-backed checks prove frontend states only; real integration remains pending until actual backend evidence exists.
|
|
37
37
|
|
|
38
38
|
## Verdict Matrix
|
|
39
39
|
|
|
40
|
-
- Request revision for coverage gaps, unsafe scope, unauthorized deps, unresolved required interaction, missing
|
|
40
|
+
- Request revision for coverage gaps, unsafe scope, unauthorized deps, unresolved required interaction, missing build entrypoint, skipped local specification fallback (`openspec/schemas/`, `openspec/project-specs/`, or `ai_workspace/`), unsafe/missing Mock strategy, or Mock evidence presented as real integration.
|
|
41
41
|
- Request revision for component selection non-conformance: spec-defined components silently replaced or self-invented without a declared deviation, `uiComponentChoices` missing for UI-visible work, or a `uiComponentChoices` `specReference.path` not cited in the `openspec-citations` block / not actually read.
|
|
42
42
|
- Knowledge-base unavailable but relevant OpenSpec or `ai_workspace/` rules applied is advisory only.
|
|
43
43
|
- Optional cleanup that cannot affect acceptance is advisory.
|
|
@@ -4,7 +4,7 @@ description: Use only for the tool-only frontend decision planning node.
|
|
|
4
4
|
references:
|
|
5
5
|
- path: references/decision-contract.md
|
|
6
6
|
required: true
|
|
7
|
-
maxChars:
|
|
7
|
+
maxChars: 6800
|
|
8
8
|
- path: references/design-decisions.md
|
|
9
9
|
required: true
|
|
10
10
|
maxChars: 3400
|
|
@@ -29,11 +29,30 @@ cite `evidencePath` of an existing file; greenfield is `decision=new`.
|
|
|
29
29
|
Bind every file in the Contract-owned `requiredDeliverables` inventory. It records
|
|
30
30
|
explicit source obligations, not every path mentioned by a requirement.
|
|
31
31
|
|
|
32
|
+
Large UX work runs in bounded scopes against that shared registry. Complete every
|
|
33
|
+
assigned requirement; preserve earlier scopes' shared bindings when correcting an
|
|
34
|
+
entry. Ledger previews are incomplete. Use `read_plan_facts` to retrieve full
|
|
35
|
+
fields, following `nextOffset` with `expectedRevision` pinned. For oversized
|
|
36
|
+
strings use `stringOffset` and follow `nextStringOffset`; restart pagination when
|
|
37
|
+
the revision changes. Never submit a truncated preview as a replacement payload.
|
|
38
|
+
|
|
32
39
|
Cross-slice citations must close in the same session: when a requirement cites a
|
|
33
40
|
verification target committed in another slice's session, re-commit that target
|
|
34
41
|
here with the same id and `replace=true` (union backfill) before finalize. A
|
|
35
42
|
`duplicate` receipt is a correction invitation, not a prohibition.
|
|
36
43
|
|
|
37
44
|
The runtime owns protected skeleton fields, path/command validation, materialization,
|
|
38
|
-
and final schema checks. Finish with
|
|
45
|
+
and final schema checks. Finish with one successful `finalize_plan` (correct rejected facts and retry); return no Markdown
|
|
39
46
|
narrative. Record a genuine evidence gap when frozen facts are insufficient.
|
|
47
|
+
|
|
48
|
+
## Implementation boundary
|
|
49
|
+
|
|
50
|
+
Plan implementation actions and locations; this workflow runs only npm run build.
|
|
51
|
+
Missing tests or test plans never block it. Preserve existing tests; add tests
|
|
52
|
+
later in frontend-test.
|
|
53
|
+
|
|
54
|
+
Submit `finalize_plan({implementationSteps: [{requirementIds, action}]})`.
|
|
55
|
+
Cover every frozen ID, including constraints/exclusions (what to preserve/avoid).
|
|
56
|
+
An action may cover related IDs and must describe changes within approved paths,
|
|
57
|
+
not just repeat filenames or AC titles. Fix rejected missing/unknown/blank steps
|
|
58
|
+
and retry. Runtime renders AC-linked canonical steps; no test plan is required.
|
|
@@ -6,24 +6,21 @@
|
|
|
6
6
|
implementation paths and verification target IDs.
|
|
7
7
|
- Record observable state and interaction behavior, including trigger and expected
|
|
8
8
|
behavior. IDs and paths alone are not behavioral coverage.
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
- Every non-static verification target `id` is the stable machine trace token and
|
|
12
|
-
must later appear in a real `describe` / `it` / `test` title. There is no free-form
|
|
13
|
-
`symbol` field.
|
|
9
|
+
- Use a shared static build target for requirement coverage; build does not prove behavior.
|
|
10
|
+
- Do not create behavior test targets, require test titles, or design tests.
|
|
14
11
|
- Static targets are for project-wide commands and are traced by file and command
|
|
15
12
|
only.
|
|
16
13
|
|
|
17
|
-
###
|
|
14
|
+
### Build target mapping
|
|
18
15
|
|
|
19
|
-
Each
|
|
20
|
-
|
|
21
|
-
is declared, is rejected. Copy state names verbatim; never invent synonyms.
|
|
16
|
+
Each static build target names the requirements mapped to its implementation file.
|
|
17
|
+
Use the frozen build commandId. This mapping is not evidence of tested behavior.
|
|
22
18
|
|
|
23
19
|
```json
|
|
24
20
|
{
|
|
25
|
-
"id": "VT-
|
|
26
|
-
"
|
|
21
|
+
"id": "VT-BUILD",
|
|
22
|
+
"commandId": "<frozen-build-commandId>",
|
|
23
|
+
"file": "src/App.tsx",
|
|
27
24
|
"requirementIds": ["AC-FE-001", "AC-FE-005"],
|
|
28
25
|
"uiStates": ["disabled-minus", "default"]
|
|
29
26
|
}
|
|
@@ -47,7 +44,7 @@ carries behavior, implementation targets, and verification target ids:
|
|
|
47
44
|
"applicable": true,
|
|
48
45
|
"expectedBehavior": "minus button disabled at count 0",
|
|
49
46
|
"implementationTargets": ["src/components/SmokeCounter.tsx"],
|
|
50
|
-
"verificationTargetIds": ["VT-
|
|
47
|
+
"verificationTargetIds": ["VT-BUILD"]
|
|
51
48
|
}
|
|
52
49
|
],
|
|
53
50
|
"interactions": [
|
|
@@ -56,7 +53,7 @@ carries behavior, implementation targets, and verification target ids:
|
|
|
56
53
|
"trigger": "User clicks refresh",
|
|
57
54
|
"expectedBehavior": "reloads runs",
|
|
58
55
|
"implementationTargets": ["src/App.tsx"],
|
|
59
|
-
"verificationTargetIds": ["VT-
|
|
56
|
+
"verificationTargetIds": ["VT-BUILD"]
|
|
60
57
|
}
|
|
61
58
|
]
|
|
62
59
|
}
|
|
@@ -76,8 +73,7 @@ non-static verification target files to the writer writeSet separately.
|
|
|
76
73
|
"src/App.tsx"
|
|
77
74
|
],
|
|
78
75
|
"verificationTargetIds": [
|
|
79
|
-
"VT-
|
|
80
|
-
"VT-COUNTER-LOCAL-CONSTRAINTS"
|
|
76
|
+
"VT-BUILD"
|
|
81
77
|
]
|
|
82
78
|
}
|
|
83
79
|
```
|
|
@@ -95,9 +91,11 @@ facts".
|
|
|
95
91
|
|
|
96
92
|
## UX vocabulary (registry first)
|
|
97
93
|
|
|
98
|
-
- Record `record_state_registry` BEFORE `record_state_flow`: one
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
- Record `record_state_registry` BEFORE any `record_state_flow`: one compact
|
|
95
|
+
global vocabulary of UI-state and interaction names. Details use complete execution
|
|
96
|
+
group scopes; reuse shared names across scopes, never one name per AC or a
|
|
97
|
+
rename of an already-recorded concept (kebab-case behavior-domain names, e.g.
|
|
98
|
+
`planner-task-edit`, `focus-queue-move`).
|
|
101
99
|
- UI states use the contract's declared authoritative ids (`declaredUiStates`
|
|
102
100
|
in the plan input) when the source declares a state table.
|
|
103
101
|
- Retry slices see `committedUx` in the plan input: reuse those exact names.
|
|
@@ -111,9 +109,8 @@ One component choice may cover many states/interactions via `covers`.
|
|
|
111
109
|
`reuse-existing` requires an existing-file `evidencePath`; greenfield uses `new`.
|
|
112
110
|
|
|
113
111
|
For Mock/API, keep the real request path enabled by default. Select only a strategy
|
|
114
|
-
allowed by the frozen task capability. Active Mock requires
|
|
115
|
-
|
|
116
|
-
real/no-remote evidence or records a real-integration gap.
|
|
112
|
+
allowed by the frozen task capability. Active Mock requires production-default-off activation; Mock tests are deferred. `not-needed` records the reason Mock is unnecessary or skipped and any real-integration gap;
|
|
113
|
+
no behavior test evidence is required here.
|
|
117
114
|
|
|
118
115
|
Add dependencies only when authorized. Record unsupported dependency, path, API,
|
|
119
116
|
design, or verification needs as blocking evidence gaps; never invent a command or
|
|
@@ -123,11 +120,33 @@ widen the write set.
|
|
|
123
120
|
|
|
124
121
|
The runtime owns `schemaVersion`, `sourceBinding`, risk, canonical target files,
|
|
125
122
|
`requiredDeliverables`, aliases, command allowlisting, path containment, and final
|
|
126
|
-
validation. Submit
|
|
127
|
-
|
|
123
|
+
validation. Submit editable decision facts, then call `finalize_plan`; correct
|
|
124
|
+
rejected facts and retry until one successful terminal commit. The deterministic design policy materializes the canonical implementation
|
|
128
125
|
contract: every file in the Contract's explicit source-bound delivery inventory
|
|
129
126
|
must be planned (`requiredDeliverables` gate). Permissions, prohibitions, examples
|
|
130
127
|
and read-only references do not create delivery obligations. Plan receives this
|
|
131
128
|
inventory as `requiredDeliverables`; it cannot add, remove or reinterpret it.
|
|
132
129
|
Missing files and UX name collisions are reported by finalize_plan before commit
|
|
133
130
|
and checked again by the policy shell.
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
Use `record_plan_group_coverage` for a complete declared execution group with shared
|
|
134
|
+
targets/VTs; runtime expands to all canonical members. Submit individual coverage
|
|
135
|
+
for differences. Constraints/exclusions create no invented UI or tests; keep genuine
|
|
136
|
+
source expectations for a non-blocking frontend-test handoff; do not require tests here.
|
|
137
|
+
|
|
138
|
+
Submit Mock policy with `record_mock_api` and empty endpoints, then one endpoint per
|
|
139
|
+
`record_mock_endpoint`. Use `replace:true` for revisions, plus `remove:true` to
|
|
140
|
+
withdraw an endpoint. Use stable finding/fact identities; successful receipts mean
|
|
141
|
+
durable commits. Resume missing work instead of regenerating full JSON or history.
|
|
142
|
+
|
|
143
|
+
## Implementation steps submission
|
|
144
|
+
|
|
145
|
+
Submit `finalize_plan` with `implementationSteps: [{requirementIds, action}]`.
|
|
146
|
+
Each action says what to change and where within the approved implementation
|
|
147
|
+
paths. Cover every frozen requirement ID, including constraints and exclusions
|
|
148
|
+
(state what to preserve or avoid). One action may cover several related IDs.
|
|
149
|
+
Do not merely repeat file names or AC titles. Missing, unknown or blank steps
|
|
150
|
+
return a correctable receipt; fix the steps and call finalize_plan again.
|
|
151
|
+
The runtime renders these into canonical `implementationSteps` strings with AC
|
|
152
|
+
references. No test plan or new tests are required by this protocol.
|
|
@@ -9,46 +9,39 @@ references:
|
|
|
9
9
|
|
|
10
10
|
# Frontend Review
|
|
11
11
|
|
|
12
|
-
Use
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
design-review prose, OpenSpec, or `ai_workspace/`; the bound context is authoritative.
|
|
12
|
+
Use `contracts/frontend-review-context.json`, its hash-bound contract index and diff,
|
|
13
|
+
and only files named by the diff. Read the findings guide and capacity diagnostic;
|
|
14
|
+
use indexed sections when advised. Do not reopen task sources, plans, OpenSpec,
|
|
15
|
+
design-review prose or `ai_workspace/`.
|
|
17
16
|
|
|
18
17
|
## Authoritative Terminal
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
Submit findings one at a time with `record_review_finding` using stable IDs.
|
|
20
|
+
Use `replace:true` for revisions. The terminal automatically includes saved findings;
|
|
21
|
+
do not repeat their array. Correct rejected calls, then commit one successful terminal:
|
|
21
22
|
|
|
22
23
|
- `approve_review` when no Critical/Important finding remains;
|
|
23
24
|
- `request_review_changes` for a defect, missing required evidence, forbidden
|
|
24
25
|
write, or unmet acceptance criterion. It must include a typed `issueCategory`,
|
|
25
|
-
at least one `evidenceRef`, and non-empty findings.
|
|
26
|
+
at least one `evidenceRef`, and non-empty findings (saved or supplied).
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this run and is handled by the recovery controller rather than a same-run repair
|
|
30
|
-
branch.
|
|
28
|
+
Only the typed terminal controls the outcome; no `VERDICT:` line or JSON verdict.
|
|
29
|
+
Requested changes end this run; the recovery controller owns follow-up.
|
|
31
30
|
|
|
32
31
|
## Review Scope
|
|
33
32
|
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
and
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
baseline-matched diagnostics on unchanged files, and none on writer-changed files.
|
|
47
|
-
Report debt, never `lint passed`; `failed`/`unavailable` blocks. Typecheck, build,
|
|
48
|
-
and test still require successful final exits.
|
|
49
|
-
- Evaluate component/design claims against bound evidence; do not replace it with a
|
|
50
|
-
repository-wide search or connector query.
|
|
51
|
-
- Treat shell exit status as authoritative. Do not edit files.
|
|
33
|
+
- Map every requirement to corresponding implementation in the cumulative diff
|
|
34
|
+
and bound target files. Report missing implementation or altered requirements.
|
|
35
|
+
- Check allowed paths, forbidden paths, approved dependencies and source-bound
|
|
36
|
+
design constraints. Preserve production Mock isolation and real-request defaults.
|
|
37
|
+
- Inspect the archived npm run build result; it is the only required command.
|
|
38
|
+
- Do not require unit tests, a test framework, test plans, lint, separate typecheck,
|
|
39
|
+
behavior evidence or Mock tests. Existing tests are preserved.
|
|
40
|
+
- Behavior correctness, edge cases and regressions belong to the non-blocking
|
|
41
|
+
frontend-test handoff and may be tested later. Do not expand into a correctness audit.
|
|
42
|
+
- Build success proves buildability only. Do not report tested behavior or real
|
|
43
|
+
integration without actual evidence. Treat shell exit status as authoritative.
|
|
44
|
+
- Do not edit files or perform repository-wide rediscovery.
|
|
52
45
|
|
|
53
46
|
## Evidence And Output
|
|
54
47
|
|
|
@@ -1,49 +1,30 @@
|
|
|
1
1
|
# Frontend Review Findings Guide
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Scope and severity
|
|
4
4
|
|
|
5
|
-
- **Critical**:
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
- **Critical/Important**: missing requirement implementation, unauthorized writes
|
|
6
|
+
or dependencies, production Mock isolation violation, altered source requirements,
|
|
7
|
+
failed/missing npm run build, or a false verification/integration claim.
|
|
8
|
+
- **Advisory**: behavior correctness, edge cases, regression concerns and missing
|
|
9
|
+
tests. Record these for later frontend-test work; they do not block implementation.
|
|
8
10
|
|
|
9
11
|
## Evidence
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
##
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
handler/fixture/adapter and consumer diff, verification, production imports, and
|
|
30
|
-
the real-integration gap.
|
|
31
|
-
6. Check bound design evidence, responsive/a11y behavior, dependencies, and maintenance.
|
|
32
|
-
7. Classify findings and derive the verdict mechanically.
|
|
33
|
-
|
|
34
|
-
```text
|
|
35
|
-
- [Critical|Important|Minor] path:line — Problem; impact; required correction; evidence.
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Pass Rules
|
|
39
|
-
|
|
40
|
-
- No Critical or Important findings remain.
|
|
41
|
-
- Required static and behavior nodes ran and passed.
|
|
42
|
-
- Lint is `passed` or evidence-backed `baseline-debt`; typecheck, build, and test are
|
|
43
|
-
passed. Any debt count and affected unchanged files remain disclosed.
|
|
44
|
-
- Changed files are authorized.
|
|
45
|
-
- Criteria and applicable states have implementation and evidence.
|
|
46
|
-
- Required Mock-backed behavior passed; any generated Mock-specific verification also
|
|
47
|
-
passed; Mock is not enabled by default in production. For default-auto skipped
|
|
48
|
-
Mock, the real request remains default and the Real Integration Gap is preserved.
|
|
49
|
-
- Optional unavailable knowledge/browser/visual/manual checks remain explicit risks.
|
|
13
|
+
Cite the bound contract, actual cumulative diff, tight file locations and archived
|
|
14
|
+
build result. Never substitute an implementation summary for the diff or invent
|
|
15
|
+
verification results. Use only evidence supplied in the canonical review context.
|
|
16
|
+
|
|
17
|
+
## Review sequence
|
|
18
|
+
|
|
19
|
+
1. Establish changed files and authorized write boundaries.
|
|
20
|
+
2. Map each requirement to corresponding implementation.
|
|
21
|
+
3. Check source-bound design constraints, dependency permission and production Mock isolation.
|
|
22
|
+
4. Confirm npm run build passed and classify findings within this scope.
|
|
23
|
+
|
|
24
|
+
## Pass rules
|
|
25
|
+
|
|
26
|
+
All requirements have corresponding implementation, changes stay authorized,
|
|
27
|
+
production Mock safety is preserved, and npm run build passed. No blocking finding
|
|
28
|
+
within this scope remains. Missing unit tests, test frameworks, test plans, lint,
|
|
29
|
+
separate typecheck or behavior evidence are not blockers. Existing tests are kept.
|
|
30
|
+
Behavior and real integration remain unverified unless separate evidence exists.
|
|
@@ -21,3 +21,7 @@ the exact evidence. Do not recursively inspect unrelated directories.
|
|
|
21
21
|
Commit `complete` only when the target surface is sufficiently proven for Plan to
|
|
22
22
|
reuse without repository discovery. Otherwise commit `blocked` and list every
|
|
23
23
|
unresolved path or ownership question. Do not shift discovery work into Plan.
|
|
24
|
+
|
|
25
|
+
A successful typed receipt is durable. Reuse only facts bound to the same source
|
|
26
|
+
and fresh file evidence; changed or missing evidence requires Scout refresh. Do
|
|
27
|
+
not replay stale success or repeat complete discovery merely because a reply was lost.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ag as o,ah as n}from"./mermaid.core-BUuGHmWO.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-sF1AEy7T.js";import{_ as i}from"./mermaid.core-BUuGHmWO.js";import"./chunk-5VM5RSS4-D5J9PHC7.js";import"./chunk-XXDRQBXY-BEJi3iIs.js";import"./chunk-KBJHAD2P-BKJrPcJ6.js";import"./chunk-2GRJ4B5K-C0osm1Zf.js";import"./index-C0O48S_P.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-sF1AEy7T.js";import{_ as i}from"./mermaid.core-BUuGHmWO.js";import"./chunk-5VM5RSS4-D5J9PHC7.js";import"./chunk-XXDRQBXY-BEJi3iIs.js";import"./chunk-KBJHAD2P-BKJrPcJ6.js";import"./chunk-2GRJ4B5K-C0osm1Zf.js";import"./index-C0O48S_P.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};
|