Sense 57: The Rooms
Sense 57 · Steady · Last touched 2026-08-20
- last_verified: 2026-07-27
Synced from
docs/design/sense_57_the_rooms.mdin the engine repo — that’s the source; this page is a build-time mirror.
Status: proposed
Date: 2026-07-13
Origin: a design conversation that began as “where do Instruments and Cartography belong in the sidebar?” and ended by reframing JinDesk from a taxonomy of pages into a workspace of rooms.
Companion Sense docs: Sense 13 The Canvas (what fills a room) · Sense 42 The Landscape (its Garden and River become two rooms’ canvases) · Sense 25 Identity and Passes (the Access room)
Supersedes: studio_salon_lab.md — the rooms/work-mode metaphor, grown up and made structural.
JinDesk is not a menu of pages. It is five workspaces — rooms — you move between. Three for reading your business through the analysis (Domain · Analysis · Flow), two for building and governing the machine that makes it (Bench · Access). You switch rooms with a keystroke; each room keeps exactly what you left in it. Two rails — evolve and the CLI — frame every room. And the words wear one of two colours, because the tools are jinflow’s; the subject is yours.
Why rooms, not a menu
Section titled “Why rooms, not a menu”A flat sidebar makes you carry all five concerns at once — every page for every kind of work, stacked in one list. But you are almost always working in one face: tending the tenant’s domain, or building signals, or watching runs. The rest is noise you scroll past.
The parallel is Dorico’s mode bar — Setup · Write · Engrave · Play · Print. Its genius is that each mode shows only what that phase needs; you never wade through play tools while writing notes. The rooms do the same: each face gets its own vertical navigation, its own canvas, its own kept state. Navigation stops being a menu you re-read and becomes a set of rooms you flick between — muscle memory, not wayfinding.
The five rooms
Section titled “The five rooms”| # | Room | Question it answers | Canvas | Holds |
|---|---|---|---|---|
| 1 | Domain | what is this about? | the lay of the land | Entities · Taxonomies · Knowledge (Wisdom / 50cents) · Observations |
| 2 | Analysis | how do we read it? | The Garden | Signals · Perspectives · Theses · Verdicts · Cartography · Labs · Boards |
| 3 | Flow | what’s happening? | The River | Findings · Runs · River · Reports (output) |
| ‖ | separator — consume ‖ construct | |||
| 4 | Bench | make & maintain | the maker’s bench | Atelier · Signal Builder · dbt Docs · Tables · Build |
| 5 | Access | who’s allowed | the roster | Passes · Principals · Admin · Tenants |
The Garden and the River are the canonical canvases of the Landscape (Sense 42), now understood correctly as the home views of two different rooms — the Garden is structure (Analysis), the River is time (Flow). The Domain, Bench, and Access canvases are named provisionally; the one firm constraint is that Domain’s canvas is not “the map” — that word now belongs to Cartography, which lives in the Garden.
The ribbon and its bookends
Section titled “The ribbon and its bookends”The switcher is a horizontal ribbon — a full-width band directly beneath the tenant header, Dorico’s mode bar in its literal form: horizontal themes, vertical functionality. The five rooms sit in the middle; two bookends flank them, so the band reads left-to-right:
Overview │ Domain · Analysis · Flow │ Bench · Access │ Tools ⌥1 ⌥2 ⌥3 ⌥4 ⌥5 ⌥6 ⌥7Three breaks structure it — bookend │ consume/construct │ bookend — drawn with one single separator, the same thin line each time. The breaks differ in meaning, not in appearance: the middle one is the altitude line (below), the outer two set the bookends apart from the rooms, but a divider is a divider. No second glyph, no heavier rule — one separator, three uses.
The bookends are not analytical rooms — they have no canvas and answer no “how do we read it?” question. They are the two things that sit around the work:
- Overview (left) — the tenant’s front door: its home, Field Manual, and What is this?. You start here. Its first entry drops the generic word “Overview” and wears the tenant’s own name — you are standing inside this tenant, so it greets you by name.
- Tools (right) — the cross-room utility belt: Inbox, Notebook, Ledger, Actions, Bookmarks, Recents, Compare, CLI. Things you reach for from any room, so they belong to none — collected at the far end rather than repeated in each.
Mechanically the bookends behave exactly like rooms — a ⌥ key, kept state, a vertical nav in the same <aside> column. Conceptually they are the margins of the page, not a chapter in it. The vertical column below the ribbon renders only the active entry’s nav; the room switcher itself has left the sidebar entirely and become the band.
The separator: consume ‖ construct
Section titled “The separator: consume ‖ construct”Between Flow and Bench sits a single line, and it is a line of altitude, not role. Left of it, you consume the analysis — you read your business through the apparatus. Right of it, you construct and govern the machine — you author signals, tune dbt, grant passes. It is deliberately not named by a person (“analyst”) — that would collide with the Analysis room and mislead, since the same person works across all three left-hand rooms. The separator marks where the work changes altitude: from using the product to tending the works.
The two rails
Section titled “The two rails”Two surfaces frame every room and belong to none:
- evolve — the vertical right rail (conversational; Vera).
- the CLI — the horizontal bottom bar (deterministic; Sense 55/56).
They are not rooms and carry no ⌥ key. A mode is a place you go and dwell; a rail is a tool that travels with you. Conversational and deterministic, both present in whichever room you’re standing in — the two-rail interaction model.
The two colours: tools vs subject
Section titled “The two colours: tools vs subject”There are exactly two voices in the words, and they answer one question: who owns this noun?
- Platform — the tools. jinflow’s invariant machinery:
Signal,Perspective,Thesis,Verdict,Finding,River,Run,Report, and the containers —Entities,Taxonomies,Knowledge,Cartography,Observations. Learned once; the same in every tenant. - Domain — the subject. The tenant’s own business words:
Material,Cost Center,Employee. The tool names the box; the business names what’s in it.
Two precisions that keep this honest:
- The colour marks entity names only — a sprinkle, not a wash. Every container is a tool → platform-coloured. Only the tenant’s own entity nouns wear the subject colour. In practice it appears almost exclusively in the Domain room, since Analysis / Flow / Bench / Access are pure tooling.
- The colour rides the terms; the separator stays structural. The two ideas never compete: colour means exactly one thing — tool vs subject — carried on the nav items. The consume‖construct register is the divider, not a third colour.
”Pack” is not present
Section titled “”Pack” is not present”A pack is a tenant without data that knows a lot of stuff — a distribution mechanism, backstage. The user is always at a tenant; they never meet a pack. So there is no “pack voice”: from the tenant’s seat, Material (inherited from a pack) and Signal (jinflow’s) are both just “my app.” The subject colour marks your business’s words, full stop — the fact that a pack seeded them is invisible plumbing, exactly as invisible as the platform that runs them.
Entities, not Dimensions
Section titled “Entities, not Dimensions”The container for the tenant’s business objects is Entities, not Dimensions. This is a ratification, not a coinage: the platform already says “Entities” (the section header in every locale; the SidebarEntity type; coreEntities / analyticalEntities). “Dimension” is a star-schema holdover surviving in the /dimensions route and little else — even the onboarding copy explains it as “browse entities.” The word changes now; the route can migrate to /entities later, non-blocking.
Kept state and the keystroke
Section titled “Kept state and the keystroke”Switching rooms preserves each room’s exact screen — its selection, its scroll, the page you were on. Leave Analysis on a thesis, glance at Flow, return — the thesis is still open. Menus make you re-find your place; rooms hold it.
Rooms switch by keystroke. Not ⌘ — ⌘1..9 is reserved by the browser for tab switching. The binding is ⌥ (Option) + digit, positional across the whole ribbon: ⌥1 Overview … ⌥7 Tools, counting left-to-right, plus clickable tabs. (Matched on event.code = Digit1..7, not event.key — on macOS ⌥+digit emits a special glyph, not the digit.)
Cross-room reference must carry context. “Show this signal’s Findings” should take you into Flow and land on that signal, without disturbing where Flow otherwise was. State-retention plus a context-aware jump, together — the wall becomes a door.
What this does not do
Section titled “What this does not do”- Not a new page taxonomy. Every existing route survives; the rooms group them. Room 1 implementation moves nothing — it re-shelves.
- Not a role system. The rooms describe what you’re doing, not who you are; the Access room governs identity but the rooms themselves grant nothing.
- Not the death of the sidebar. Each ribbon entry still has a vertical nav — seven of them (five rooms + two bookends), one per entry, and only the active one shows in the
<aside>beneath the ribbon.
Implementation phases
Section titled “Implementation phases”- The mode shell. (shipped) A mode-bar in
Sidebar.svelte; the existing nav items regrouped into the five rooms; ⌥/click switching; active-room memory. Reuses every route — nothing breaks.sidebar-numetrix.spec.tsupdated to the new shape. - Colour + separator. (shipped) The tools/subject colour on entity-name nav items; the Flow‖Bench separator; Cartography / Labs / Boards in the Analysis room; Dimensions → Entities on the surface.
- Kept state. (shipped) Per-room last-route memory; the route-following effect; ⌥1–7 switching.
- The ribbon. (shipped) The mode bar promoted from a sidebar icon-row to a full-width horizontal band, with the Overview and Tools bookends folded in (was: the top meta block and the bottom Tools list, stacked in the sidebar). Overview’s first entry wears the tenant name.
- Rails + canvases. (next) evolve + CLI wired as the persistent frame; the signature canvases (the Garden, the River, and the rest).
Related senses
Section titled “Related senses”- Sense 13 The Canvas — a page is a composition of panels; a room is a composition of pages. The Canvas fills a room.
- Sense 42 The Landscape — the Landscape dissolves into the Rooms: its Garden is Analysis’s canvas, its River is Flow’s. The metaphor survives; it just splits across two rooms.
- Sense 25 Identity and Passes — the Access room is its front door.
- Sense 55 The Broadcast / Sense 56 The Run — the CLI rail and the Flow room’s Runs read from here.
Open questions
Section titled “Open questions”- Canvas names for Domain, Bench, Access — the Garden and River are fixed; the other three want landscape-true words (not “map,” which Cartography took).
- The exact ⌥ binding, given macOS Option-key text behaviour.
- Where a sixth room would go — a fleet/Commander view, or a dedicated Strategy room, are plausible later. A room earns its key only if it is a genuine place you dwell, never a bin for leftovers.
Numerical neighbors: ← Sense 56: The Run · Sense 58: The Broker →