Ordered bottom-to-top through the stack. Retired chapters stay published as dated history; drafts move. Mix is the control surface throughout — a shell whose message-port idea nods to ARexx and then goes its own way.
ui.* Commands and Widget Schema02ABP Standard Command Vocabulary03ABP Topic Pub/Sub04Mix Language Reference05ABP Display Protocol Specification07Cosmix Self-Aware Layer — Observability Contract07aCosmix Self-Aware Layer — Activity Events07bCosmix Self-Aware Layer — The Uniform Property Surface07cCosmix Self-Aware Layer — Spec Distribution and Capability Discovery08Cosmix Self-Repair Layer — Recovery Within a Fixed Action Space09Cosmix Self-Improve Layer — Proposal Pipeline and Trust Gradient10Cosmix Daemon Identity — UID/GID Registry, Filesystem Layout, and Install-Time Verification12Cosmix Property Substrate12aCosmix Property Substrate — Verbs12bCosmix Property Substrate — Namespace Registration and Schema12cCosmix Property Substrate — Authorization, Transport, Errors, Audit12dCosmix Property Substrate — Bootstrap, Recovery, Versioning, Migration16Cosmix Compositor — cosmix-comp18Mix Citizen Runtime — Mix Scripts as First-Class ABP Daemons19Cosmix Design System — the Resolved Design GraphChapters not listed here are maintained in the private operator hub and are not published on this site; links to them in the reading guide below are shown as plain text.
Cosmix Specification Suite
Status note (2026-08-05): The 2026-04-25 reconsideration is resolved. The renderer-engine re-investigation completed with live evidence: the display stack is Bevy 0.19 (ECS/wgpu) rendering on a Smithay 0.7 protocol core, shipped as
cosmix-comp(0.12.1 at cos50bf6e9) with TTY first light and session-revocation containment proven on hardware (rungs D-3, D-3.1). The former pre-commitments — the cosmix-shell/display-backend split, taffy/cosmic-text, "shell before compositor", postcard as the shell hot path — are superseded where they conflict with the North Star below;00b-architecture-visionis retained as historical exploration only.
Reading guide for the Cosmix protocol and design specifications. Chapters are ordered bottom-to-top through the stack — start at Chapter 01 (the wire protocol that everything speaks) and work up through the display chapters. Every chapter, and every decision revisited under one, is now measured against the North Star first.
The North Star
Take GNOME's coherence, KDE's architecture, Windows' snap, COSMIC's tiling toggle, niri's spatial canvas, and macOS's motion — bind them with SSD frames and a compositor-drawn palette that is also the agent — and let the ECS scene and the bus do what no incumbent can: make the desktop's every opinion animated, addressable, and replaceable without recompiling.
That sentence is the destination. Everything below it is the map: the decided stack, the three planes, eight principles with their decision tests, and the default desktop those principles produce. New specs, new rungs, and revisited past decisions cite this section the way code cites a type — a proposal that fails a decision test is either reworked or must amend the North Star explicitly (version-bumped, journaled), never silently ignored.
Decided stack
- Compositor:
cosmix-comp— Smithay=0.7.0protocol frontend (calloop thread) with Bevy=0.19.0/ wgpu=29.0.4rendering viacosmix-wgpu-dmabuf(zero-copy client-buffer import, KMS direct display). Exact pins are policy, not accident. - Toolkit: CTK (
desktop/ctk) — Bevy ui/feathers-based, AMP-citizen widgets, one theme system (.mixoverlays), Lucide icons. Native apps draw themselves. (The language-agnostic AMP Display Protocol declarative lane was retired with Ch01b/05 on 2026-08-16 —ui.*left ABP at the control-plane pivot; scripts and agents drive webd instead.) - Bus: the cosmix bus (protocol name AMP, Ch01) brokered per-node by
cosmix-noded, meshed over WireGuard, with SPEC 12 property surfaces and Ch03 topics. - Evidence culture: work lands as rungs — small, journaled, live-evidence-backed increments (the discipline that produced D-3/D-3.1).
The three planes
| Plane | Owner | Contents |
|---|---|---|
| Protocol | Smithay on calloop | All authoritative state: windows, focus, buffers, explicit sync, sessions, input, decoration/frame model, hit regions. |
| Render | One scenic path behind a presentation layer that stays the sole KMS commit owner | The scenic path: Bevy ECS — animation, shaders, overview, trusted-tier UI. All render effort concentrates here until it is proven under real-world telemetry (v0.4.1). Alternate engines are triggered, not scheduled: a utility renderer (Smithay GLES, or software tiny-skia/pixman for VMs and headless) and per-frame direct scanout are admitted only when a tripwire fires — and land as additions through the preserved seams, never as rewrites. |
| Control | cosmix-comp-port async task beside calloop | The bus embedded in the core: comp.* verbs, property tree, event topics — attached to the protocol plane so the desktop stays addressable whichever render path is live. |
Principles and their decision tests
- The protocol plane is the sole source of truth; renderers are views. Test: does this proposal make anything outside the protocol plane authoritative? Then rework it.
- The bus is never in the frame path. Bounded queues, own task; comp runs flawlessly with no broker at all. Test: can a slow, flooded, or absent broker cost a frame? Then rework it.
- Power is a measured budget. Reactive scheduling everywhere — reactive
WinitSettingsdefault in every CTK app, demand-driven pump in comp: render only on damage or live animation, skip commits when the scene is static. Idle watts and wakeups/sec are standing journal numbers no rung may regress. Test: what does this cost at idle, on battery, measured? - Mechanism in the compositor, policy on the bus. Window placement,
tiling, workspace behaviour, frames' look — policy is data and services
(a tiling engine is a bus citizen issuing
comp.move), hot-swappable without recompiling. Test: is this opinion compiled in where a service could hold it instead? - Trusted tier vs furniture tier. UI lives in comp only if it must be unspoofable (consent prompts, lock, SSD frames, the palette) — and the trusted tier stays small and renderer-agnostic in its data model, so any future engine can draw a degraded version. Everything else (panels, launcher, notifications) is a layer-shell CTK client: crash-isolated, independently released, indifferent to which engine paints the scene. Test: must this be unspoofable? If not, it's a client.
- Adopt standard protocols wholesale; add value above them.
xdg-decoration (answer
ServerSide; tolerate CSD guests), wlr-layer-shell, portals, XWayland. The bus is the layer above the floor, never a replacement for the floor. Test: does a standard protocol already do this for a thousand guest apps? - Opinionated default, cheap dissent. One coherent desktop out of the box (GNOME's lesson); every deviation a config value or policy service, not a settings maze (KDE's warning). Test: does this add a knob where a better default would do — or hardcode what should be a knob on the bus?
- Evidence before expansion. Every phase lands as rungs with live runs, journaled numbers, and tests both feature ways. Failure stays honest (exit codes, detach reasons) until machinery makes it survivable (today: bounded exit and fast restart; demote-instead-of-exit arrives only if the utility-renderer tripwire ever admits one). Test: what is the live evidence, and where is it journaled?
The default desktop (what the principles produce)
Server-side decorations whose frames are bus surfaces (agent indicators,
unsaved-work state). Floating windows with Windows-grade snap ergonomics and
COSMIC's per-workspace tiling toggle — both mere layout policies writing the
same ECS transforms. Workspaces are the canvas model (v0.4.2): each
output is a camera over a bounded, elastic 2D canvas — the X virtual root
and the Amiga's draggable screens, modernized. Workspaces aren't
containers; they're camera bookmarks: named, screen-sized places the
camera settles onto magnetically, so keybind users experience ordinary
discrete workspaces while the canvas allows free X-Y panning edge to edge
(inertial Super+drag and 2D gestures; dwell-gated edge-push optional and
default-off, because screen edges are load-bearing). Places spawn at the
frontier and garbage-collect when empty (dynamic, GNOME-style); layout
policy is per-place; the plane is bounded because spatial memory needs
edges. Zoom is the unifier: zoom out far enough and the canvas is the
overview, live thumbnails included, because it is a camera move over a
scene that already exists. Every coordinate is addressable — camera pose as
settable comp.props, places as semantic bus addresses
(comp.camera.goto place:mail), place.entered/camera.moved topics for
pagers and agents — and ext-workspace-v1 projects places as flat
workspaces for guest pagers and portals. macOS-grade
motion as physical continuity, interruptible mid-flight, with reduce-motion a
single policy toggle. And one summonable, compositor-drawn command surface
with three depths — app launch, typed bus verbs, natural language into
agentd — the palette that is also the agent: trusted-tier, unspoofable, the
place where the mesh becomes visible to a person who will never learn what a
bus is.
Roadmap phases (rung groups, not leaps)
- Finish the current arc: Rung F (compositor-handled Ctrl+Alt+Fn), E-5
residuals. 1. Power floor (reactive everywhere; demand-driven pump;
standing idle measurements). 2. Bus in the core (
comp-port: register → read-only props/topics → gated verbs) — deliberately early, becausecomp.propstelemetry (frame timing, wedge counts, idle watts) is the evidence the tripwires below read. 3. Scenic buildout — the Bevy-first push: client windows composited into the scene, SSD frames, snap + per-place tiling, the canvas + places + overview, furniture as layer-shell clients, toolkit growth (datatable first). 4. Agentic desktop (agentd × comp verbs × interactd consent — configuration, not construction, if 1–3 land as specified).
Tripwires (what admits an alternate engine — evidence, not schedule)
Alternate render engines and the scanout bypass are not phases. Each is built only when its tripwire fires, from the working baseline, through the seams principle 1 preserves:
- Utility/software renderer — journaled wedge frequency above ~1/month on supported hardware; or a Bevy upgrade stalled beyond a few weeks with a fix required on the desktop; or a real VM/headless deployment need.
- Direct scanout (bypass) — measured fullscreen video/gaming power or latency numbers that composition cannot meet. (dmabuf-feedback v4 is re-sendable, so scanout tranches can be added later without breaking any client — deferral costs nothing.)
- Deeper power work beyond the demand-driven pump — idle battery draw still above target after Phase 1's reactive work lands and is measured.
Seams that make this possible (kept warm at near-zero cost, per principle 1): the presentation layer remains the sole KMS commit owner and does not fuse into Bevy internals; SSD frame model, hit regions, and input live in protocol-plane data any renderer could draw; window layout lives in protocol records, mirrored — never solely owned — by ECS components.
Revisit queue (past decisions to re-read under this section)
00b-architecture-vision— Amiga/Intuition mapping and Phase A/B/C: historical; salvage the taste, discard the crate choices.- Postcard shell↔compositor hot path — superseded: the scenic renderer is in-process; furniture speaks Wayland + bus (see Protocol Boundary).
- "Build the shell before the compositor" — inverted by events; the compositor exists and furniture ships as its clients.
- Ch05 display protocol — retired 2026-08-16 (
ui.*left ABP at the control-plane pivot); the language-agnostic lane for scripts and agents is webd. Ch06 survives as the display-model chapter (the design-system contract is Ch19). - Naming: AMP → cosmix bus is in progress; chapters keep "AMP" for the wire protocol until regenerated, prose should prefer "cosmix bus" for the system (broker + mesh + verbs + topics) as of this version.
Glossary
Terms used across the spec suite. Defined once here; chapters reference this section rather than re-defining.
| Term | Definition | Defined in |
|---|---|---|
| AMP | Agent Mesh Protocol. Human-readable wire format using markdown frontmatter headers + body. The wire protocol of the cosmix bus. | Ch01 |
| canvas | The per-output bounded, elastic 2D plane on which windows live at world coordinates; the screen is a camera over it. Grows at the frontier, shrinks as edges empty. | North Star (v0.4.2); Ch16 (planned) |
| cosmix bus | The system built on AMP: per-node broker (cosmix-noded), service registry, verbs, topics, property surfaces, WireGuard mesh routing. The umbrella name replacing bare "AMP" in prose. | Ch00 (this index) |
| body | The content portion of an AMP message, after the closing --- of the header block. (The ui.window/ui.panel/ui.data body formats are historical — Ch01b/05 retired 2026-08-16.) | Ch01 §1.3 |
| command | The command: header value identifying the message type (e.g., noded.ping; ui.window is historical — Ch01b/05 retired). | Ch01 §5.5, Ch02 |
| cosmix-comp | The Cosmix compositor: Smithay protocol core + Bevy/ECS scenic renderer behind a sole-KMS-owner presentation layer, embedded bus port. | North Star; Ch16 (planned) |
| CTK | Cosmix Tool Kit — the shared Bevy (bevy_ui/feathers) toolkit for native desktop apps; AMP-citizen widgets, one theme system. | North Star; Ch19 (design system); Ch06 (display model) |
| gadget | An interactive region within a rendered widget. Gadgets are HitRects — invisible rectangles the renderer uses for hit-testing and (future) accessibility. Not visible to the user. | Ch06 §2.3 |
| headers | Key-value pairs in the ----delimited frontmatter of an AMP message. Route messages, set properties, carry metadata. | Ch01 §1.2 |
| broker | The per-node bus message router (cosmix-noded). Routes AMP messages between processes, manages service registry, window registry, and topic broker extension. Brokers peer with each other over WireGuard for mesh traffic. | Ch01 §9 |
| mesh | The WireGuard /24 network connecting cosmix nodes. All nodes in the mesh share a single trust domain. | Ch01 §10 |
| Mix | ARexx-inspired scripting language with native bus keywords (send, emit, address, on). Works standalone or with a broker. | Ch04 |
| node | A machine running cosmix-noded, identified by its WireGuard IP and hostname. | Ch01 §10 |
| render engine | A consumer of the presentation layer that fills framebuffers. One exists: the scenic engine (Bevy/ECS). Alternates (utility GLES/software, direct-scanout bypass) are tripwire-admitted, never scheduled — see North Star §Tripwires. | North Star |
| rung | The unit of work: a small, evidence-backed, journaled increment, tested both feature ways, with live-run proof where hardware is involved. | North Star |
| trusted tier / furniture tier | The split of desktop UI: trusted (in-comp, unspoofable — frames, consent, lock, palette — kept renderer-agnostic in its data model) vs furniture (layer-shell CTK clients — panels, launcher, notifications). | North Star |
| window | (Historical — Ch01b/05 retired 2026-08-16; ui.* left ABP.) Was a top-level UI surface created by a process via ui.window (canonical from 01b v0.2.0); the previous term was panel/ui.panel. Live windows are cosmix-comp surfaces (Ch16). | Ch01b §3 (retired), Ch05 §3.1 (retired), Ch06 §2.1, Ch16 |
| place | A named region on the canvas serving as a camera bookmark and semantic address (place:mail). What other desktops call a workspace, minus the container-hood: snapping, per-place layout policy, and lifecycle are camera/policy behaviour, not data structure. Projected to guests via ext-workspace-v1. | North Star (v0.4.2); Ch16 (planned) |
| postcard | Binary Rust-to-Rust serialization format (varint-encoded, serde-based). Retained for bulk mesh data transfer candidates; the former shell↔compositor hot-path role is superseded (see North Star revisit queue). | Ch00 |
| process | Any program connected to its local broker — a Mix script, a daemon, an AI agent. Processes own application state. (The "send AMP commands to create/update UI" role is historical — Ch01b/05 retired 2026-08-16; ui.* left ABP.) | Ch05 §0.4 (retired) |
| service | A process that registers a name with the broker (e.g., maild, toolsd). Services are addressable by name; anonymous processes are not. | Ch01 §9, Ch02 §3 |
| surface | The display model's abstraction of a renderable area. Every window maps to one surface. Surfaces have identity, size, position, layer, and owner. | Ch06 §2.1 |
| topic | A named pub/sub channel in the broker's topic extension. Producers publish snapshots; subscribers receive fan-out deliveries. | Ch03 §3.11.1 |
| widget | (Historical — Ch01b/05 retired 2026-08-16.) Was a UI element within a window, declared via markdown code blocks (~~~textinput id=to). Live widgets are CTK's (toolkit docs; styled per Ch19). | Ch05 §6 (retired), Ch06 §2.2, Ch19 |
Trust gradients — four DISTINCT ladders (don't conflate)
The suite has four "level"-shaped scales that look alike but are orthogonal axes; an Ln in one is unrelated to an Ln/Tn in another. Always qualify which one you mean:
| Ladder | Axis (what it grades) | Home |
|---|---|---|
| T0–T3 | Autonomy tier — how far an agent may act without operator sign-off (propose-only → autonomous). | Ch00 Article IV |
| L0–L4 (change class) | Risk class of a proposed change — read-only learning → code-modifying/destructive. | Ch09 |
| L0–L3 (conformance) | Self-observability conformance — how far up a daemon implements: bare universals (L0), then props.* read surface, then world.* retained topics. | Ch07 (L4–L5 = mutation, Ch12) |
| AuthPolicy capabilities | Per-action permission — read / write / describe / audit on a property namespace. | Ch12 §7 |
(Reconciliation item from the 2026-06-05 spec audit: these were drifting into looking like one ladder. Until renamed, cite the home + axis.)
Architecture vision (historical)
The former display-stack narrative — the Amiga/Intuition mapping, the
cosmix-shell ↔ display-backend split, phasing (A/B/C), taffy/cosmic-text
crate choices, and the postcard/WebRTC hot-path plans — lives in
2026-06-05-00b-architecture-vision.md
and is now historical: superseded by the North Star above wherever the
two disagree. It remains worth reading for the Intuition-derived design
taste that survives into Ch06 and CTK.
Protocol Boundary
Two layers, decided independently. Application protocol is what processes speak — almost always AMP (the cosmix bus wire format), with rare exceptions for things that aren't application traffic at all (shared-memory function calls, real-time media, and the display hot path, which is Wayland). Transport is what carries the bytes underneath — chosen per workload from the working set, with candidates flagged for evaluation. AMP frames are portable across transports; swapping transports does not change the application protocol.
For the workload-classification view and candidate-evaluation criteria, see
_spec/2026-03-24-01-bus-wire-protocol.md §8.
| Boundary | Application protocol | Transport | Rationale |
|---|---|---|---|
| App↔app (same node) | AMP | WebSocket via broker | Language-agnostic, debuggable |
| App↔app (cross-node) | AMP | WebSocket over WG (working); iroh transports under evaluation | Mesh-transparent; transport pluggable per workload |
| Widget↔widget (same window) | function calls | (in-process) | Same process, same memory — not a transport boundary |
| Script↔display backend | AMP | WebSocket via broker | Apps must stay language-agnostic |
| Client app↔compositor (buffers, input, frames) | Wayland protocols | Unix socket + dmabuf | The display hot path IS Wayland; standard protocols adopted wholesale (North Star principle 6) |
| Furniture↔compositor (panels, launcher) | Wayland (wlr-layer-shell) + AMP for semantics | Unix socket / WebSocket via broker | Furniture-tier clients: crash-isolated, engine-indifferent |
Compositor control (comp.* verbs, props, topics) | AMP | WebSocket via broker (cosmix-comp-port) | The desktop as a bus citizen; never in the frame path |
| Scenic renderer↔protocol plane | shared types | (in-process, cross-thread seams) | Path A lives inside cosmix-comp; supersedes the postcard shell↔compositor row |
| File sync blocks | (binary content) | postcard over TCP/WG (planned); iroh-blobs candidate | Bulk binary; candidate evaluation pending — see SPEC 01 §8.3 |
| Audio/video calls (calld) | (media frames) | WebRTC (str0m) | Media pipeline, jitter, echo cancellation |
| Federated panels (cross-mesh) | AMP | SMTP or WebSocket | Sandboxed, origin-tracked |
The rule: if an application could ever need to send or receive it, the application protocol is AMP. Transport is then chosen per workload. Real-time media, Wayland's buffer/input hot path, and in-process render seams are below the AMP layer; bulk binary is application-adjacent (orchestrated via AMP, content moved via a binary transport).
Chapter Format
All chapters use YAML frontmatter — --- delimited key: value headers
followed by a markdown body. This is structurally identical to AMP wire format:
a spec document is a valid AMP message (the frontmatter fields parse as AMP
headers, the document body parses as the AMP body). The three-reader principle
applied to the specs themselves.
Required fields:
---
title: <chapter title>
chapter: <number>
version: <semver or semver-draft>
status: stable | draft | retired # retired: kept verbatim as dated history
date: <last meaningful update, YYYY-MM-DD>
supersedes: <filename or none> # optional
amends: <filename> # optional — for spec deltas
companion: <filename> # optional — for paired specs
---
Specs reference each other by chapter filename (e.g.,
2026-04-07-05-amp-display-protocol.md), not by date-prefixed names.
Chapters
| Ch | Title | Layer | Status |
|---|---|---|---|
| 00b | Architecture Vision — display stack (HISTORICAL; superseded by Ch00 North Star) | Display | v0.1.0 historical |
| 01 | AMP Wire Protocol | Foundation | v0.6.0 draft |
| 01b | AMP UI Vocabulary | Display | v0.2.0 RETIRED 2026-08-16 |
| 02 | AMP Command Vocabulary | Foundation | v0.3.0 draft |
| 03 | AMP Topic Pub/Sub | Messaging | v0.3.0 draft |
| 04 | Mix Language Reference | Scripting | v0.3.0 draft |
| 05 | AMP Display Protocol | Display | v0.3.0 RETIRED 2026-08-16 |
| 06 | Cosmix Display Model | Display | v0.3.0 draft |
| 07 | Self-Aware — conformance + event-emission + world.* contract (core) | Substrate | v0.1.0 draft |
| 07a | Self-Aware — Activity Events (sister taxonomy, unbuilt) | Substrate | v0.1.0 draft |
| 07b | Self-Aware — Property Surface (read model; extended by 12) | Substrate | v0.1.0 |
| 07c | Self-Aware — Spec Distribution & Capability Discovery | Substrate | v0.1.0 |
| 08 | Cosmix Self-Repair Layer | Substrate | v0.1.0 draft |
| 09 | Cosmix Self-Improve Layer | Substrate | v0.1.0 draft |
| 10 | Cosmix Daemon Identity | Substrate | v1.4.3 stable |
| 11 | NetServa NS 4.0 — Cosmix Mesh Node Package Install (Debian 13) | Substrate | v1.0.0-rc.1 draft |
| 12 | Property Substrate — model + conformance + rationale (core, amends 07) | Substrate | v0.2.2 draft |
| 12a | Property Substrate — Verbs (props.*; validate unbuilt) | Substrate | v0.2.2 draft |
| 12b | Property Substrate — Namespace Registration & Schema (backends/derive unbuilt) | Substrate | v0.2.2 draft |
| 12c | Property Substrate — Authorization, Transport, Errors, Audit | Substrate | v0.2.2 draft |
| 12d | Property Substrate — Bootstrap, Recovery, Versioning, Migration | Substrate | v0.2.2 draft |
| 13 | Cosmix Mesh Architecture — Layers, Topology, Membership, and Discovery | Infrastructure | v0.4.7 draft |
| 16 | Cosmix Compositor — cosmix-comp | Display | v0.1.1 draft |
| 18 | Mix Citizen Runtime (companion to 10) | Substrate | v0.1.1 draft |
| 19 | Cosmix Design System — the Resolved Design Graph | Display | v0.7.0 draft |
Chapters 14, 15 and 17 are reserved for not-yet-written infrastructure/display
chapters (see Planned Chapters below); Chapter 16 was drafted 2026-08-05
alongside the shipped cosmix-comp; Chapter 19 was commissioned by Mark
2026-08-09 with the Resolved Design Graph adoption
(_decisions/2026-08-09-resolved-design-graph-adopted.md).
Chapter 13 (Mesh Architecture) was
drafted 2026-06-02 from a measured testbed. Chapter 18 was drafted ahead of them
because it specifies an existing runtime surface (Mix scripts as AMP daemons)
rather than a deferred component. Decided (SPEC 18 §10.1): Chapter 18
stays at 18 and is not renumbered. Slot 15 ("Daemon Infrastructure") is
not back-filled with this content; the 13–17 band's disposition is downstream
of authoring 13–17, not a slot SPEC 18 pre-claims or vacates now.
Reading Order
Start here: Chapter 00's North Star (above), then Chapter 01 — the AMP message format, the single wire protocol that every cosmix component speaks. This is the Exec of the stack: understand it and you understand how everything communicates.
Then: Chapter 02 (command naming conventions) and Chapter 03 (reactive pub/sub) extend the protocol with standard patterns. These are the shared libraries that all services use.
Scripting: Chapter 04 defines Mix, a systems scripting language in the
ARexx tradition. Mix works as a standalone shell (filesystem, HTTP, JSON, regex,
crypto, process management) and gains bus messaging (send, address,
emit) when a broker is available. Like ARexx, the language is useful in both
contexts.
Display: the live display stack is the cosmix-comp compositor
(chapter 16) plus the CTK toolkit (the 2026-07-30 Bevy+CTK decision; CTK's
widget surface is out of chapter 16's scope); native CTK apps draw
themselves. Chapters 01b and 05 — the ABP ui.* display protocol — are
retired (2026-08-16; ui.* left ABP at the control-plane pivot) and
kept as dated history. Chapter 06 remains the display-model "Intuition"
chapter (visual language, interaction model, composition patterns), shared
with the North Star's tiers; the accepted design-system contract is
chapter 19.
Planned Chapters
These chapters don't exist yet. "Planned" means the component exists and could be documented now. "Deferred" means the component doesn't exist yet and the chapter will be written alongside it.
| Ch | Title | Layer | Status |
|---|---|---|---|
| 04a | Mix Builtin Reference | Scripting | planned (115 builtins, currently inline in Ch 04) |
| 14 | Broker Architecture | Infrastructure | planned (was 08, then 11, then 12, then 13; renumbered) |
| 15 | Daemon Infrastructure | Infrastructure | planned (was 09, then 12, then 13, then 14; renumbered) |
| 17 | Desktop Furniture — layer-shell CTK clients: panels, launcher, notifications, palette front-end | Display | deferred (ships with roadmap phase 5; supersedes the former "Shell" scope) |
Historical Note
The spec suite was reorganized on 2026-04-18 from date-prefixed filenames
(e.g., 2026-03-09-amp-v04-cosmix-specification.md) to numbered chapters.
Chapters are versioned by content, not by date. Historical discussions in
_doc/ and _journal/ may reference the older filenames — those references
describe what was true at the time and are not updated retroactively.
On 2026-08-05 this index was refactored (v0.4.0) to carry the North Star:
the renderer reconsideration opened 2026-04-25 closed with the Bevy/Smithay
decision proven live in cosmix-comp, and the index's role widened from
navigation to the standing gate every new and revisited decision passes
through.
Later the same day, v0.4.1 became the first exercise of the North Star's own amendment mechanism: the render plane changed from a scheduled dual path (scenic + utility + scanout bypass) to Bevy-first with tripwire-admitted alternates — all render effort concentrates on the scenic engine; alternate engines are built only when journaled evidence (wedge rate, stalled upgrade, measured power) demands them, through seams principle 1 keeps warm. Decided by Mark, 2026-08-05.
v0.4.2 (same day) replaced the niri-inspired "zoomable strip" workspace
wording with the canvas model: per-output bounded 2D canvases, free X-Y
panning, and workspaces re-founded as places — camera bookmarks with
per-place layout policy, addressable over the bus, projected to guests as
ext-workspace-v1 workspaces. Restores the X-virtual-root / Amiga-screens
spatial lineage on modern machinery; lands within roadmap phase 3. Decided
by Mark, 2026-08-05.