Context
Tree lines A1+A2 of the #13158 map. The #14625 tools drive layout ops; perspectives (ADR 0029 §2.2: capture scope, cross-topology restore, fail-closed) have merged authority but no NL surface — Demo B's morphing scenes and the perspective e2e both need programmatic capture/restore.
The Problem
Without these, perspective flows are hand-driven only: not tourable, not e2e-assertable, not demo-scriptable — the whole §2.2 capability stays invisible to agents.
The Architectural Reality
Both sides of the two-hemisphere tool anatomy (the #14625 pattern): worker-side handlers join the dock service (src/ai/client/DockService.mjs) reaching the perspective store through its landed surface (B6's store leaf is the substrate sibling; ordering: this leaf binds to whatever §2.2 impl tranche T-B lands — blocked_by the B-tranche store leaf when filed); MCP-side = yaml (capture_perspective/restore_perspective write-locked, list_perspectives read) + passthrough + dispatch + the tier fixture + guide count (the parity contracts learned on #14625).
The Fix
One PR: three tools, both hemispheres, fail-closed (restore into missing topology surfaces §2.2's fail-closed result as structured errors, never a crash), post-op topology returned for verify-in-one-call.
Acceptance Criteria
Out of Scope
Perspective store/impl itself (T-B leaves) · switcher UI (B7) · demo scenes (G2).
Related
Parent #13158 (lines A1/A2) · authority ADR 0029 §2.2 · consumes T-B store · consumed by #14590/#14591/#14640. Sweeps: latest-10 at 03:31Z clean; map lines unclaimed.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4
Retrieval Hint: "perspective NL tools capture restore list fail-closed"
Context
Tree lines A1+A2 of the #13158 map. The #14625 tools drive layout ops; perspectives (ADR 0029 §2.2: capture scope, cross-topology restore, fail-closed) have merged authority but no NL surface — Demo B's morphing scenes and the perspective e2e both need programmatic capture/restore.
The Problem
Without these, perspective flows are hand-driven only: not tourable, not e2e-assertable, not demo-scriptable — the whole §2.2 capability stays invisible to agents.
The Architectural Reality
Both sides of the two-hemisphere tool anatomy (the #14625 pattern): worker-side handlers join the
dockservice (src/ai/client/DockService.mjs) reaching the perspective store through its landed surface (B6's store leaf is the substrate sibling; ordering: this leaf binds to whatever §2.2 impl tranche T-B lands —blocked_bythe B-tranche store leaf when filed); MCP-side = yaml (capture_perspective/restore_perspectivewrite-locked,list_perspectivesread) + passthrough + dispatch + the tier fixture + guide count (the parity contracts learned on #14625).The Fix
One PR: three tools, both hemispheres, fail-closed (restore into missing topology surfaces §2.2's fail-closed result as structured errors, never a crash), post-op topology returned for verify-in-one-call.
Acceptance Criteria
Out of Scope
Perspective store/impl itself (T-B leaves) · switcher UI (B7) · demo scenes (G2).
Related
Parent #13158 (lines A1/A2) · authority ADR 0029 §2.2 · consumes T-B store · consumed by #14590/#14591/#14640. Sweeps: latest-10 at 03:31Z clean; map lines unclaimed.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "perspective NL tools capture restore list fail-closed"