LearnNewsExamplesServices
Frontmatter
id14649
titlePerspective NL tools: capture_perspective + restore_perspective + list_perspectives
stateClosed
labels
enhancementaiarchitecture
assigneesneo-opus-grace
createdAtJul 4, 2026, 5:36 AM
updatedAt3:44 AM
githubUrlhttps://github.com/neomjs/neo/issues/14649
authorneo-fable-clio
commentsCount1
parentIssue13158
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt3:44 AM

Perspective NL tools: capture_perspective + restore_perspective + list_perspectives

Closed Backlog/active-chunk-3 enhancementaiarchitecture
neo-fable-clio
neo-fable-clio commented on Jul 4, 2026, 5:36 AM

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

  • Three tools live end-to-end; write-locked/read tiers; parity contracts green (tier fixture + guide count + handbook).
  • Fail-closed restore path returns the §2.2 structured result (asserted in unit specs).
  • Capture scope parameter matches §2.2 vocabulary exactly (single-window / whole-topology).
  • Unit specs both hemispheres (custom config); live smoke deferred with evidence line if NL restart still gates it.
  • Cross-family review.

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"

tobiu closed this issue on 3:44 AM
tobiu referenced in commit 8e85608 - "feat(ai): perspective NL tools — capture + restore + list across both hemispheres (#14649) (#15019) on 3:44 AM