LearnNewsExamplesServices
Frontmatter
id14773
titledockPerspective.v1 vs shipped dockLayout.v2: reconcile the schema naming
stateClosed
labels
documentationenhancementaiarchitecture
assigneesneo-opus-grace
createdAtJul 4, 2026, 3:17 PM
updatedAt3:32 AM
githubUrlhttps://github.com/neomjs/neo/issues/14773
authorneo-fable-clio
commentsCount0
parentIssue13158
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt3:32 AM
milestonev13.2

dockPerspective.v1 vs shipped dockLayout.v2: reconcile the schema naming

Closed Backlog/active-chunk-4 documentationenhancementaiarchitecture
neo-fable-clio
neo-fable-clio commented on Jul 4, 2026, 3:17 PM

Context

A naming seam between design authority and shipped substrate, surfaced by the fable budget-regime planning audit (2026-07-04): ADR 0029 §2.2 names a NEW persisted schema neo.harness.dockPerspective.v1; the perspective substrate that actually landed (#14651/#14652/#14667, merged) ships neo.harness.dockLayout.v2 (capture-scope + fingerprint + perspective fields on the existing envelope family) + dockLayoutCollection.v1. Two names, one capability territory. Filed to the delegatable bar: non-fable implementable — it is a decision-then-docs leaf with a bounded code option.

The Problem

Future leaves (#14653/#14668 restore, #14669 store, #14616 presets, #14649 NL tools) will cite one name or the other; unreconciled, the substrate accumulates dual vocabulary and a future agent burns a session proving they are (or are not) the same thing. The ADR's anti-anchor already bans "a third collection shape" — the reconciliation must not mint one.

The Architectural Reality

  • Shipped truth: DockZoneModel.LAYOUT_SCHEMA = 'neo.harness.dockLayout.v2' (+ LAYOUT_SCHEMA_V1 read-path, LAYOUT_COLLECTION_SCHEMA), with captureScope: 'window'|'topology', windowFingerprint, perspectiveName, windowDocuments — functionally covering §2.2's capture scopes.
  • ADR posture: amend-this-first (a leaf that contradicts a section amends the ADR in its own reviewed change, ADR-0005 lifecycle).
  • Two clean resolutions: (a) amend ADR 0029 §2.2 to name the shipped dockLayout.v2 envelope as the perspective carrier (v1 of the CAPABILITY, v2 of the ENVELOPE — one sentence + table row edit), or (b) ship a thin dockPerspective.v1 alias/wrapper — REJECTED-by-default: it is the "third collection shape" the ADR's own anti-anchor forbids unless a falsifier shows the envelope cannot carry a §2.2 obligation.

The Fix

One PR, option (a) unless falsified during intake: amend ADR 0029 §2.2 naming (ADR-0005 lifecycle, cross-family review), sweep the open dock tickets' prose for the stale name, and add the schema-name row to HarnessDockZoneModel.md's persistence section so both tiers agree.

Acceptance Criteria

  • One canonical schema name for perspectives across ADR 0029, the model contract doc, and open ticket prose.
  • The anti-anchor holds: no third collection shape introduced.
  • ADR amendment follows the ADR-0005 lifecycle (its own reviewed change, cross-family).
  • Cross-family review.

Out of Scope

Restore semantics (#14653/#14668) · the store leaf (#14669) · any envelope field changes.

Related

Parent #13158 · authority ADR 0029 §2.2 + ADR 0005 lifecycle · shipped substrate #14651/#14652/#14667. Decision Record impact: amends ADR 0029 (naming only). Live latest-open sweep: latest 20 at 2026-07-04T13:15Z, no equivalent. A2A in-flight sweep: all-states 30 at 13:15Z, no competing claim. Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "dockPerspective dockLayout v2 schema naming reconciliation"

tobiu closed this issue on 3:32 AM
tobiu referenced in commit c4a590f - "docs(learn): perspective schema naming reconciled — the dockLayout.v2 envelope is the carrier (#14773) (#15021) on 3:32 AM