Anchor: jgwill/Miadi#483.
Companion lanterns:
jgwill/Miadi:packages/plan-insight/rispecs/plan-perspective-registration.spec.md
miadisabelle/forgewright:rispecs/10-plan-perspective-visibility.spec.md
Status: specification only. This file authorizes no medicine-wheel code
change in the @miadi/plan-insight implementation session.
e23ab5f established the implemented Inquiry Weave pattern:
storage-provider abstraction, JSONL and Neon persistence, REST registration
and query endpoints, and MCP tools.@miadi/plan-insight discovers authoritative
<session>/plans/miette_perspective.md files through
@miadi/hooks-core and projects them as PerspectiveRecord.Medicine-wheel stores a queryable relational projection so plans and all related episodes can find Miette’s perspective. It never becomes the author or source of truth: the session file remains authoritative, and medicine-wheel never generates, edits, or rewrites narrative Markdown.
Consume the exact PerspectiveRecord contract pinned by
@miadi/plan-insight:
id = plan-perspective:<session_id>perspective: 1plan_sha256title, body_markdown, optional
mia_contextepisodes[] relationsPOST /api/plan-perspectives
PerspectiveRecordidsource.registered_atsource.updated_atepisodes[] by exact path, retaining a known episode numberGET /api/plan-perspectives?episode_path=<path>
episode_pathepisodes[].path exactly matchesGET /api/plan-perspectives/:id
Malformed records return 400. Storage failures are explicit server failures; no success-shaped empty fallback is allowed for writes.
Mirror the file layout and provider discipline established for Inquiry Weaves:
The persistence layer stores projections only. It receives no generator, prompt, model, or filesystem authority.
Add mcp/src/tools/plan-perspectives.ts with tools equivalent to:
PerspectiveRecordMCP tools call the same service/storage contract as REST and cannot generate or rewrite perspective prose.
registered_at.No implementation or build is part of the Miadi carrier session.