Shell: CRM GroupedRail + SISO tokens (the one shell)
every page family below · 1 shell · 18 Library routes · 24 atlas pages · 10 front doors
The page, rendered
this template composed from real data, inside the CRM shellOpen it full size: /t/U0/example/ · data: example.json · schema.json
Why this template exists
his words · the reading · the ceilings-
His words 0
verbatim, from
00_AGENT_ZERO/source/— never paraphrasedNo verbatim source on this page. -
Reading authored by the seat
His 13:09 to LIBRARY-ZERO: 'you're not using our size of crm side nav, which is Specifically what I told you to do'; 16:50: 'not all of them have side nav so they're connected'; 18:19: 'the side nav is a bit shit'. One shell is what makes 60+ pages across 10 repos and 6 pages.dev sites feel like one place.
Readers. Human: orient, jump between families, collapse it and read. Agent: the rail's link data is the site map; Cmd-K search is the same map as text.
- Where am I in the ecosystem?
- What are the sibling pages?
- Which section of this page do I want?
-
What this page may claim
Claim ceilingMay assert only what the link data says exists; every destination must return 200 or be marked private.Data it rendersA link JSON per site (groups → destinations → status chip); built at publish; the rail reads it, never hand-edited HTML.PrivacyPublic; private destinations show a lock chip, never a payload.Empty stateNo JS: the page still reads; the rail is absent, nav.top remains.Agent entrysiso-shell/shell.mjs rail({groups}) · atlas/crm-rail.js (port v2)
Content contract
his twelve, 18:19; '—' means this family carries nothing therebrand block: site name + subtitle
—
—
the grouped destinations are the map
—
—
—
—
—
—
—
group 'On this page' from the page's anchors
Sections, in order · where it lives
- 1brand block
- 2groups: Now / Plan / Readings / Outside (atlas) · Library / Research / Agents / Projects / Estate (Library)
- 3compact icons
- 4search (Cmd-K)
- 5collapse handle
- 6current-page marker
- Lives at
- siso-shell repo (public) as plain HTML/CSS/JS; atlas/crm-rail.{css,js} is the first port (AGENT-ZERO, 17:05, Luna rail-port)
- Instances
- every page family below
- Count
- 1 shell · 18 Library routes · 24 atlas pages · 10 front doors
- Renders
- SISOCRM product-app GroupedRail.tsx/.css + tokens.css (hashes in briefs/LIBRARY-UI-FABLE.md): grouped nav, compact mode keeps the destination map, 20px collapsed handle, [ toggles, Cmd-K search, persisted preference; tokens: --siso-bg #202020, --siso-orange #FFA726 brand, --siso-gradient-brand 135° red→orange, semantic accents today/tasks/health/focus/reflect/danger, Geist
- Theme
- tokens.css verbatim; the CRM gradient as the one brand gradient; his 'color streams' = the six semantic accents used per section (Research=focus blue, Agents=reflect violet, Projects=today orange, Clients=tasks amber, Health/estate=health green, Blocked=danger rose)
- Rail
- is the rail
- Needs
- —
- Links out
- every family
- Links in
- every family
What to rob
presentation only; licences keptFrom the Action Model sites (built from real data)
Components, exact locations (Luna inventory)
| Component | Where | Renders | How | Quality |
|---|---|---|---|---|
| Actionist grouped registry rail | system-map/nav.js:74-123,125-174; system-map/nav.css:27-177 | page-registry.json sections/pages, status, descriptions and route IDs | Copy nav.js/nav.css and feed a registry JSON with sections and pages. | good — complete persistent grouped navigation and active-route state |
| Command palette | system-map/nav.js:157-171,192-257; system-map/nav.css:183-200 | Registry page title, description, section, ID and keywords filtered by query | Copy the palette DOM/event handlers and point REGISTRY_URL at the Great Library route registry. | good — keyboard navigation, mouse selection, escape close, and command shortcut |
| Collapsed rail handle | system-map/nav.js:40-48,165-173; system-map/nav.css:161-179; blueprint/assets/shell.js:1-19; blueprint/assets/shell.css:1-19 | Only shell state; preserves destination marks while hiding labels | Copy the toggle plus localStorage preference and bind it to the Library grouped rail. | good — compact mode retains route affordances and keyboard toggle |
| Mobile nav drawer/backdrop | system-map/nav.js:136-155,176-189; system-map/nav.css:202-232 | Same registry routes as desktop rail with mobile open/close state | Copy mobile button, backdrop, and responsive CSS; reuse the same registry renderer. | good — responsive drawer has explicit close semantics and backdrop |
From the 21st.dev bank (his picks, his notes)
banging notifications menu, a really good one. We need a good notifications menu and this is a side one so it doesn't take up much spaceShaan · ui-bank note
Rob this notifications-menu composition for shell: crm groupedrail + siso tokens (the one shell).
oh my gosh this apple spotlight is beautiful. Use it for search or something. We already have something like that for search but this is really coolShaan · ui-bank note
Rob this apple-spotlight composition for shell: crm groupedrail + siso tokens (the one shell).
drop-down agent plan, might be useful. We've done a really nice onboarding dropdown and our UI is better, but the way this component works is maybe slightly betterShaan · ui-bank note
Rob this agent-plan composition for shell: crm groupedrail + siso tokens (the one shell).
profile selector popover, pop it in a profile thing / settings. We need one of that for the operatorShaan · ui-bank note
Rob this popover composition for shell: crm groupedrail + siso tokens (the one shell).
this drop down is quite cool, action drop downShaan · ui-bank note
Rob this action-dropdown composition for shell: crm groupedrail + siso tokens (the one shell).
Bank gaps: mind map not covered by shell · exact CRM GroupedRail behavior needs bespoke port
Done when
facts have a receipt; the rest is proposaltemplates/U0/template.html composes parts; example.json is real data.https://github.com/sisodias/siso-shell/tree/main/templates/U0- Counts on this page come from plan/templates.json (6 Sep 18:36), not from a live registry query.
- 'Built' means the template folder exists and renders; the done-when line is the acceptance.


