This consolidates the two parallel iteration lines (r2 and r2a) that had drifted apart — some screens
were only ahead on one side, some only on the other. This is the single reconciled set: the left-shell
everywhere, the boxless answer lane with Book/Connect on a side rail, the pre-answers swipe stack, the real
experts directory + expert profile + booking-details pages, and real confirmed bookings. Twelve screens, one
navigable flow, all grounded in staging.marngi.com (gate 2026).
The "One question, many minds" ask hero lives in the main pane; the left sidebar (ChatGPT/Claude-style) carries search/discover, recent brain conversations, and Bookings/Connections/Your brain. Asking a question goes to the swipe stack; "Search & discover" goes to the experts directory.
Open →Grounded in staging's /pre-answers. After you ask, matched brains each draft their perspective as a stacked deck you swipe through (pills + arrows), each with a Ready/Drafting state and "keep talking to →". This is where the home ask lands. Interactive — swipe it.
Grounded in staging's /chats — the reply flows in the page, no box. Book/Connect don't sit between the last answer and the composer (that blocked "keep chatting") — they live in a persistent right rail, with one subtle contextual "book" nudge only where the brain defers to a human.
"Find the right person to ask" — search + category chips + a grid of expert cards (Ask · ★ · tags · From $200). This is the primary browse surface now; the ask flow still goes to the swipe stack.
Open →The full expert page: verified name + ★5.0 (120 reviews), 1:1 Video Consultation ($200), Ask / Book session, About me, and topics they can answer.
Open →A stranger arriving from a shared link sees the same sidebar shell, but it adapts — Explore/discover + a "Create your own brain" CTA + Sign in, not an empty conversations list.
Open →"Add to Claude / Add to ChatGPT" → a permission modal (the trust moment) → connected. Honest that a fully-silent install isn't possible; consent stays.
Open →Real confirmed bookings — Upcoming / Past, each with expert, date/time, 20/40-min duration, amount paid, status (Join call / Confirmed / Completed), reschedule, receipt & session notes.
Open →Who's-joining form + a summary card (duration/date/time/format/payment/Join call/Confirmed/total + expert-payout breakdown) + session-thread link back to the chat + cancellation policy.
Open →The Connect-side booking flow: when someone books through a connected brain inside Claude, availability surfaces in the host, they pick a slot, then a handoff brings them to Marnji to confirm-and-pay (Stripe). Reachable from Book buttons.
Open →A dedicated surface to get an expert's brain out there — copy link, social share, a QR, and an embed snippet for their own site.
Open →Single brain per owner (no switcher), a first-class @handle claim/change flow with live availability checking, explicit re-index states (queued/re-indexing/done/failed+retry), source-freshness copy trimmed to what's real, activity split into real-vs-coming-soon with a zero-state, and Connect now shows its real beta constraint. New: a "Your availability" section built on repeating weekly hours — with the expiry/empty warning surfaced in the always-visible page header, because that's the failure that silently killed booking on all 15 published brains.
Open →The two lines had drifted. r2 had the correct pre-answers swipe stack and the fuller boxless-answers
conversion; r2a had the Khoa-directed Book/Connect side-rail fix, the real experts directory + expert profile +
booking-details pages (grounded in staging screenshots Khoa provided), and had already repointed "Discover" and
booking rows to the right destinations. Each had something the other was missing. This set takes the best of
each and wires it into one flow — nothing is silently dropped, but results.html (an earlier
"matched-results" screen, superseded first by the experts directory for browsing and then by the pre-answers
stack for the post-ask moment) is retired from the active flow since it duplicated both.
Left sidebar shell, everywhere. Grounded in staging's thin left icon rail (toggle · new-chat · discover · help), evolved into a wide labelled sidebar: New question · Search & discover · Recent conversations · Your brain · Bookings / Connections · profile at the foot. The public page keeps the same shell but adapts its content for a logged-out guest — one consistent shell, content that knows who's looking.
No end-user MCP jargon anywhere users would see it — "add to Claude / your apps," not the acronym. No Spotify/royalty language. Same warm system throughout: ink #181614, Fraunces + Figtree, cream/terracotta, arch avatars, pill buttons.
Maya audited the dashboard against the real build + API before we hand it to build, and flagged six places
where the design promised more than v1 can deliver. All six are now reflected in 07-dashboard.html:
1 · Single brain, not multiple. Removed "Your brains" plural, the "+ New brain" button, and any owner/brain switcher — one account is one brain (a schema change, deliberately not happening now). The dashboard is now unambiguously "Your brain."
2 · @handles — the claim/change moment, designed and wired up. A new interactive modal (live availability
check, reserved-name refusal, taken-name suggestions, edit-mode "breaking links" warning) covers both the
first-claim flow (an existing expert still on a long auto-slug like the real marnji.com/drlaurenburnsoam
prompted to claim a shorter @handle, old link kept working) and changing an already-claimed one. Try
it — type "admin" (reserved), "lauren" (taken, with suggestions), or anything else (available).
3 · Re-index states, made explicit. The source list now shows all four real states side by side — Indexed, Queued, Re-indexing… (with the honest "takes about a minute"), and Failed with an inline error + Retry — instead of only ever showing the happy path.
4 · Source freshness trimmed to what's real. Dropped "synced weekly" from the website source — that implied a recurring re-crawl service that doesn't exist. Kept "Indexed" and "edited since last index."
5 · Activity strip split real from aspirational, plus a zero state. "Conversations this week" and "Bookings" stay as real counted numbers; "App connections" (not tracked yet) is now a clearly separated coming-soon line, not a fabricated number. Added a toggle to see the brand-new-brain zero state (0/0) alongside the established-brain view — the busy state was the only one designed before, and it's not what a new owner sees.
6 · "What your brain knows" — my call, flagged. The confident-vs-"ask me live" split needs topic/confidence
inference we don't have. Rather than mark it as a future phase and keep promising it, I redesigned a v1 we can
actually build now: "What your brain is built from" — topic chips derived directly from source titles/types
(mechanical, not inferred), tagged v1 · source-derived so it's clear this isn't a confidence score.
Happy to swap back to the confidence-split design as a labelled Phase 2 if that reads better once we have the
derivation — flagging both options rather than deciding silently.
Connect beta framing now matches the exact copy live on staging (walked staging.marngi.com/drlaurenburnsoam
to ground it): a BETA tag next to Connect, and "Beta — connecting currently works with your brain
only, one app at a time."
In QA, every one of the 15 published brains had zero future availability — all expired — so booking and reschedule had nothing to offer. Experts set availability as one-off dated events in a separate wizard, so it runs out and nobody is told. The dashboard had the Book door and a price but no availability at all. This section closes that gap.
Recurring weekly hours are the primary model. "Tue 9:00–12:00, Thu 14:00–17:00" that repeat, with no end date — that is the fix for expiry. One-off dates are demoted to exceptions ("block out a date", "add a one-off time"), deliberately styled as secondary so nobody sets up their whole calendar that way again.
The warning lives outside the tabs — this is the one place I departed from the brief. The section itself sits under the Book door in the Reach tab, as asked. But the alert can't live there: a warning behind an unselected tab reproduces exactly the silent-expiry failure it exists to prevent. So the "runs out in 12 days" / "people can't book you right now" banner sits in the always-visible page header, above the tabs, and its button jumps to the section that fixes it. State where the expert already looks; editing wherever it fits.
Three states, all designed, switchable in the mock. Weekly hours set (healthy, green, "18 bookable slots in the next 30 days · keeps rolling forward") · Running out (one-off dates expiring on a named date, with a "switch to repeating weekly hours" fix) · Never set up (brand-new expert — and the copy names the real problem: the Book door is on, so people land on an empty calendar). The Book door's own status line and the header alert change with the state, because in the real product those three must never disagree.
What's bookable next is four week-columns with a dot per slot (hollow = already booked), so "my calendar dies in two weeks" is visible as a shape before you read a number. Session length + price (20 min $90 · 40 min $150) sit in the same section so the whole bookable offer is in one place — this also corrected the Book door, which advertised a single "$150 / session" though the product supports both lengths. Timezone is explicit (Sydney, AEDT, UTC+11) with a plain-language note that people booking from elsewhere see their own zone — an expert should never have to wonder which zone their hours are in.
Marnji · consolidated prototype — reconciles the r2 and r2a iteration lines into one flow, dashboard revised against real API constraints (2026-07-27) · design-only, for build by Ben · Sana · grounded in staging.marngi.com.