LearnNewsExamplesServices
Frontmatter
id15254
titleFM cockpit SSOT: Surface Registry (S1–S4) + telltale state taxonomy
stateOpen
labels
enhancementdesignai
assigneesneo-opus-grace
createdAt2:06 PM
updatedAt2:19 PM
githubUrlhttps://github.com/neomjs/neo/issues/15254
authorneo-opus-grace
commentsCount1
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

FM cockpit SSOT: Surface Registry (S1–S4) + telltale state taxonomy

Open Backlog/active-chunk-6 enhancementdesignai
neo-opus-grace
neo-opus-grace commented on 2:06 PM

Context

D#15249 (the FM design-first sandbox, W4 of the conformance wave) is ruled: all 12 per-surface OQs resolved by the design authority on 2026-07-16 (see the disposition comment). The structural ruling: the cockpit SSOT (apps/agentos/design/fleet-manager-cockpit-plan.html) gains a compact Surface Registry — direction + constraints per surface — while spec DETAIL lands in build-ticket ACs under the #15242 sign-off pattern. This ticket delivers that SSOT delta. It is the citation target for graduation criterion 2: W4 build tickets cite their registry entries, so this delta unblocks the FM wave's ticket filing.

Release posture context (D#15209 beat 6, operator-ruled): v13.2 is quality-gated on FM front-door completeness — the registry is the durable spec trail the next conformance audit checks against.

The Problem

Four cockpit surfaces have build demand but no design anchor in the SSOT: the per-agent mailbox pane (S1), wake/rate-limit telltales (S2), the catch-up view (S3), and chat (S4, deferred). The SSOT is a 25.3KB narrative-direction doc (§01 direction mock → §02 honest state → §03 lanes → §04 critical path) — bolting full per-surface spec sections in would break its genre and navigability (the divergence matrix's A-falsifier). Without a registry, the next build wave reproduces the original failure: build first, design nowhere durable.

The Architectural Reality

  • apps/agentos/design/fleet-manager-cockpit-plan.html — the SSOT (committed via #14512; design authority: @neo-opus-grace). Section idiom: .sec blocks with .sec-head/.sec-num; card idiom: .lane/.lane-head/.lane-body/.subs (reusable for registry entries without new layout CSS).
  • Primitives stay centralized: apps/agentos/TOKENS.md, CARD-CONTRACT.md, VisualSystem.md — the registry references them, never duplicates them.
  • Spec-detail channel: build-ticket ACs with design sign-off (the shape #15242 already carries).

The Fix

Add §05 — Surface Registry to the SSOT: one compact entry (~15 lines) per surface carrying placement, object-model, composition constraints, and scope state, encoding the D#15249 resolutions:

  • S1 — Agent mailbox pane: tab inside AgentDetail (object permanence: the mailbox belongs to the agent object); read-only for v13.2; MUST-NOT: no operator mark-read (unread IS the swarm's actionable queue — operator-side mark-read silently swallows peer handoffs); flat-chronological with thread-collapse on partOfThread; freshness labels the PANE (data-as-of), never rows; convergence rule: chat (v13.3) is the actionable evolution of THIS pane, never a second surface. Dock-liftability = later follow-up under the D#15204 grammar.
  • S2 — Wake + throttle telltales: two orthogonal axes — wake: on | off | suppressed | unknown × throttle: none | overage | rate-limited | unknown — rendered as a taxonomy TABLE in the registry; exception-based card rendering (nominal earns zero card pixels per the #15037 density contract; any non-nominal state earns exactly one compound chip; full table in detail); honest degradation: unknown renders as unknown, never healthy; wake state has substrate today (#14537), throttle truth is a named W2 wiring leaf — design proceeds with unknown as default until it lands.
  • S3 — Catch-up: a PROJECTION of ActivityStream (#14606) — same feed contract, digest mode, invoked not ambient; fleet digest → agent digest drill; anchor = explicit "mark caught-up", soft fallback last cockpit visit; feeds build ticket #14620.
  • S4 — Chat: scope state DEFERRED (v13.3 candidate, ruled at D#15209 beats 5–6); design prior art chat-creation-plan.html; when it returns it evolves S1 per the convergence rule.

One file touched; zero code, zero app surface.

Acceptance Criteria

  • §05 renders in the doc's existing idiom (.sec + reused card classes; minimal additive CSS only for the taxonomy table).
  • All four entries carry the D#15249 OQ resolutions faithfully (placement, object-model, constraints, scope state), each citing D#15249.
  • The S1 MUST-NOT (no operator mark-read) is explicit and rationale-carrying.
  • The S2 wake × throttle taxonomy table is present with the exception-based card rule.
  • A registry preamble states the authority split: registry = direction + constraints; build-ticket ACs = spec detail (the #15242 pattern).
  • No change outside apps/agentos/design/fleet-manager-cockpit-plan.html.

Out of Scope

  • Any view implementation (W1/W2 build tickets own that).
  • Filing the S1–S3 build tickets (the wave decomposition owns that; this delta unblocks it).
  • Changes to TOKENS.md / CARD-CONTRACT.md / VisualSystem.md.

Related

  • D#15249 (design dispositions — the source of every entry), D#15209 (beats 5–6 scope/posture rulings)
  • #14560 (parent epic), #15242 (sign-off-AC pattern), #14537 (S2 pairing), #14620 (S3 consumer), #14606 (ActivityStream), #15037 (density contract)

Decision Record impact: none (design-artifact extension under a low-blast graduation).

Origin Session ID: 75ed6708-c66b-4989-862d-2286e87abbf1 Retrieval Hint: "FM cockpit surface registry telltale taxonomy D#15249 dispositions" Live latest-open sweep: latest 20 open checked 2026-07-16 ~12:05Z — no equivalent. A2A claim window scanned same minute — no competing claim.