RelayCTX / Concept · mobile · v4.0 App concept →
Experience 4.0 · the coherence release

Fifteen destinations, one drawer

The app concept argues one shell across the product and the console. This is the third density of that same shell, and the same stylesheet dresses it — which is the whole claim, because the native app in the build today is not a density of anything. It is a separate design system. The mobile PRD widened scope from three jobs to four, and that arithmetic is what settles the nav question: switch the generation below and watch how many places each shell can actually reach.

Material v3.5 unchanged Composition v4.0 Status concept — nothing built Drive the prototype → Doc PRD — Relay Mobile v3 · mirrored
Generation
Screen
9:41▮▮▮◗

Reachability

All fifteen destinations the mobile PRD v3 puts in scope, counted against the shell on the left. The count describes what this shell can reach — never what the product contains.

—
Reachable
—
Unreachable
one tap from the shell reachable, but nested no route
The falsifiable part. The v4.0 side must reach every destination, or the composition is wrong and this page shows it. The v3.5 side is not a caricature — it is the five tabs the shipped scaffold carries (mobile/app/(app)/_layout.tsx), plus the Menu sheet the concept added on 2026-07-25 to avoid a fifth screen. Between them they reach eight of fifteen and strand seven — and that bar was already full at three jobs.

Four jobs, and posture is the distinction

v2 named three jobs and drew a boundary — companion, not a port — that excluded the composer, search and anything admin-shaped. The build crossed all three of those lines, and the largest screen in the app is now the governance surface. v3 stops pretending otherwise and adds the fourth job the code already does. What keeps it honest is not depth, it is posture: three jobs arrive from outside and must resolve in seconds; the fourth is what you opened the app to do.

Act

Approve or deny what is waiting on you, from the notification where the OS allows. Under fifteen seconds, measured.

Aware

A five-second read on where things are. A sentence, not a dashboard — three things need you, nothing's on fire.

Capture

Speak or share on the move. The share sheet only exists on a phone, so mobile leads here and web follows.

Attend

Your profile, your hats, your library, your people, your plan, your support. You navigated here on purpose, so full depth is correct.

Depth is a property of the view, not of the surface. The 4.0 bar currently reads taste (MCP) → excerpt (mobile) → full (web app), which would make every Attend screen off-canon. A card is an excerpt on every surface; a screen you navigated to is full depth on every surface. What legitimately differs by device is composition — the 390px space budget, sheets over modals, one view mode — never capability. Amendment proposed in PRD.mobile-v3.md §2, ratification D3.

What Attend is made of

And which direction each surface travels — because three of them have no implementation anywhere.

SurfaceWebNativeDirection
Files · Library · Shelf None None Mobile-first — concept already drawn at 390px in shelves-mobile-v1.html; schema landed, no surface on either platform
Workspace — the hat Functions None Mobile-first — switchWorkspace() exists on the Orgs screen; no shell-level switcher anywhere. Mobile can ship the first one
Support intake 3 sinks None Mobile-first — the phone is where you are when it breaks, and it can attach device, build and object without asking
Governance — requests Live Live Parity. 449 lines, the largest screen in the app
Profile Live Name only Port. Emails, verification, handle — RCTX-373
Network — people Live None Port, after the naming fix — see below
Plan · billing Live Live Parity
Connect names three different products. The connector handshake (web connect-wizard.ts), the Loop referral programme (native connect.tsx), and people (web connections.ts, network.ts). The phone shows the least common of the three under the most contested name. The drawer above uses the proposed split — Connect for the handshake, Network for people, Loop for the programme — which folds into the lens-glossary ratification and gets enforced by check_vocab.py.

Canon carried, and one correction

This is a concept, not a build instruction. Two things must be ratified before any of it is buildable: D1, the nav ruling — DEC-022 says no bottom tabs and is Active while the shipped app carries five, so design intent, the PRD and production currently disagree — and D3, the depth-rule amendment above. Whichever way D1 goes, it has to land in DEC-022, the PRD and app-mobile-v2.html in the same change, or the disagreement just moves. Full list: relay-board/docs/product/PRD.mobile-v3.md §8.
v4.0 index → Mobile PRD (mirror) → Clickable prototype → Creative brief → App concept → Console concept → Mobile V2 (v3.5) → All concepts →