prismatic-lumen — Prismatic Lumen: the owner oversees and moves the whole mesh from one page, which owns nothing
Lumen is a declared term naming one composed view over the runtime: a page that reads blackboard, peers, mesh and monitor with freshness and reconnect recovery, offers one authorised action whose result comes from the journal, and has measured latency before any is claimed.
PLANNED 0 of 4 issues done
- ready
- 1
- blocked
- 3
- active
- 0
- verify
- 0
- done
- 0
- cancelled
- 0
Problem
The owner wants one place, on desktop, phone and in Claude Code, from which the whole mesh is understood and driven, and named it Prismatic Lumen on 2026-10-18. The parts exist on separate surfaces (/ui/mesh, majordomus monitor, mesh.* tools, the peer blackboard 5a is landing), and the name exists in no record, so the first worker to build it would also invent its nouns, a second UI and its own state, which rules no-new-nouns and derived-once forbid. Proposed in ADR 0201 (The persistent runtime is the authority; every operator surface, Lumen included, is a client of it); ADR 0209 (Prismatic Lumen names the owner's mesh-wide view, and it owns no scheduler, event bus, store or API) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c296#0, chatgpt-majordomus:c296#8, chatgpt-majordomus:c296#9, chatgpt-majordomus:c296#14, chatgpt-majordomus:c296#18.
Outcome
Lumen is a declared term naming one composed view over the runtime: a page that reads blackboard, peers, mesh and monitor with freshness and reconnect recovery, offers one authorised action whose result comes from the journal, and has measured latency before any is claimed.
Current state
git grep -i lumen returns nothing on master 707a04c7ce8. apps/majordomus-cli/src/ui/mesh.rs renders the mesh. view::kpi_not_observed (I2943) and 5a's blackboard.snapshot, live push, socket.js and /ui/peers (I2980-I2983) are on unlanded peer branches, not on master; neither record is in this tree. safe-self-update owns self-update; web-sign-in and runtime-trust own authorisation.
Desired state
docs/CONCEPTS.md defines Lumen by the capabilities it composes; /ui/mesh (or the route the owner names) is that page; one mesh action is offered through an existing capability; latency is recorded against a baseline.
Scope
- docs/CONCEPTS.md
- apps/majordomus-cli/src/ui/mesh.rs
- share/ui
- docs/MAJORDOMUS_UI.md
- .ai/repo/benchmarks
Out of scope
- A scheduler, event bus, store or API of Lumen's own
- Federation across other Prismatic projects
- Scheduled reports and notifications
- A gateway for Pages or mobile clients
- Self-update (safe-self-update)
- Anything before v1.0.0-alpha.1
Acceptance criteria
- Every criterion of intent the-owner-oversees-the-mesh-from-one-page has its evidence
- No capability, store or event type is added for Lumen alone
Validation
- majordomus plan validate
Risks
- The critique of 2026-10-18 rates over-engineering risk as the main one: an orchestration framework disguised as UI
- Overlaps 5a's /ui/peers and f6's /proceed entrypoint, each proposed on its own unlanded branch; sequencing must follow them once they land
- It follows everything-is-followed-in-one-stream in practice; the edge is kept off the milestone so two milestones of one order are not reordered.
Issues
Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.
| issue | status | wave | depends on | title |
|---|---|---|---|---|
| I3137 | READY | 0 | — | Lumen is a declared term of the vocabulary, defined by the capabilities it composes |
| I3138 | BLOCKED | 1 | I3137, I3182 | One page shows the whole mesh from the blackboard, peers and monitor with each figure's freshness, and recovers after a reconnect |
| I3139 | BLOCKED | 5 | I3138, I1205 | The mesh page offers one authorised action through an existing capability, and shows its result from the journal |
| I3140 | BLOCKED | 2 | I3138 | The mesh page's latency is measured against a recorded baseline before any target is claimed |
The graph
flowchart LR
I3137["I3137<br/>Lumen is a declared term of the vocabulary, defined by the capabilities it composes"]:::ready
I3138["I3138<br/>One page shows the whole mesh from the blackboard, peers and monitor with each figure's freshness, and recovers after a reconnect"]:::blocked
I3139["I3139<br/>The mesh page offers one authorised action through an existing capability, and shows its result from the journal"]:::blocked
I3140["I3140<br/>The mesh page's latency is measured against a recorded baseline before any target is claimed"]:::blocked
I3137 --> I3138
I3138 --> I3139
I3138 --> I3140
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxLinked from this diagram (4)
- I3137 Lumen is a declared term of the vocabulary, defined by the capabilities it composes
- I3138 One page shows the whole mesh from the blackboard, peers and monitor with each figure's freshness, and recovers after a reconnect
- I3139 The mesh page offers one authorised action through an existing capability, and shows its result from the journal
- I3140 The mesh page's latency is measured against a recorded baseline before any target is claimed
Canonical record: .ai/repo/project/milestones/prismatic-lumen.yaml. Read it back with majordomus plan show prismatic-lumen.