Review build 2026-10-01·2026-10-01Two voices, one chapter — Default — Warm Host beside Your voice in 06 (Peyton ask 2026-10-01: “can the previous tab-style voice option be designed into the playbook as a list option, so they see Default — Warm Host and Your voice? Maybe a dropdown? Preview a design.”) — today the Book prints ONE voice (hers once saved, else Warm Host) and the pair exists only in the edit sheet’s tab row; the voice that actually replies (Warm Host + house rules, until the voice QA gate) is nowhere on the chapter once hers is saved. NEW 13.4-voice-options (Today · A the list · B the dropdown · C the spread) · 13.4-voice (S2, the contract if C is picked) · -s1 (a read drafted her voice — the one lantern, Confirm / Tweak) · -states (S0 · S3 · S5) · -t · -m · -s1-m. Designer rec: C — side by side at 768+, the list at 375, one markup; stroke = who wrote it (dotted MystFlo / solid you), emerald = who speaks, lantern = needs you; no control pretends to switch before S3 (AC-SOUND-02). Awaiting Peyton’s pick.
The founder’s knowledge page, drawn state by state. Five tabs by stage (Peyton 2026-09-05): Build (Start · Doors · Building · Landed) is the zero state, the two doors, ONE “Building your Brain” line in every state, and the landed page; Playbook (Draft → confirm · The book · Examples) is the draft rising as a sheet, the confirm lifecycle and the book in Ink & Air; Loop (Weeks later · Build again) is the same page weeks later and the same line re-run for Teach more / Read again; Edit (Book → edit · Chapters · Depth sheets) is editing from the book; More holds Components, Future, the trimmed Advisor Backlog and the Register. One frame per beat; a retired frame is one line on the register and its anchor still lands.
Chapter edit sheets live on Edit → Chapters. How you look in the book reviews on Playbook → The book — 2.11a and 2.3. The one line in flight reviews on Build → Building — BS-1 / RA-scope. If this line is missing, the shared preview was overwritten.
2026-10-01 · 2026-10-01 · TWO VOICES, ONE CHAPTER — HOW YOU SOUND SHOWS BOTH (Peyton ask 2026-10-01; Chief Designer): “can the previous tab-style voice option be designed into the playbook as a list option, so they see ‘Default — Warm Host’ and ‘Your voice’? Maybe a dropdown? Preview a design.” Finding: at playbook level the two voices are NOT visible together today — the index row Branding is title + Confirmed + one door (V3 one-door lock, 2026-08-26), and chapter 06 prints one voice: hers under sounds like you — because you confirmed it does once saved, else Warm Host under MystFlo’s default voice — not yours yet (BrandingChapterBody.tsx). Both appear only inside HowYouSoundSheet’s tab row, a sheet already slated to retire (PR-7). So the voice that replies today is absent from the page exactly when the claim line prints. Three ways drawn on 13.4-voice-options: A the list (two rows, radio-style — honest, vertical, but a dead radio until S3), B the dropdown (hides both behind a tap, promises a switch it can’t keep, and the Book’s one token is already display-only), C the spread (both voices side by side in the Book’s own two-up grammar; dotted edge = MystFlo-authored, solid = yours; one emerald dot = speaking; one lantern = needs you). Rec C. Contract if picked: 13.4-voice (S2) · -s1 (draft to confirm, .ed-decide grammar, sample reply, Confirm / Tweak — Peyton ruling 2026-10-01) · -states (S0 slot · S3 preview door · S5 lead swap + one-tap revert) · 768 · 375 · 375 S1. The sheet’s tab row stays a reading filter until PR-7; the Book never grows a tab. Copy fix regardless of pick: the shipped book bubble says Your assistant, in your voice over a Warm Host reply. Ledger: parity/parity-brain.md addendum 2026-10-01.
2026-09-23 · 2026-09-23 · CH.03 WHAT YOU SELL — PER TYPE, EVERY ROW THE SAME FOUR LINES, THE PER-OFFERING SHEET (#5227; Peyton 2026-09-21/22: “chapter 3 has this weird design for all program, product, services — which could be different and nothing seems to be saving anything inside it … too much space with no context”): REDRAWN 13.4-sell-open / -m — name · short description · price · link (Service.link, stored since #2076, never rendered) on every row, the shared field vocabulary Peyton approved 09-23 (What’s included · What’s not included · Date · Time · Where · Spots · Who it’s for · Deposit — Time and Where NEW, Spots renames Capacity, payment policy = one business-level line on every row), the type first on the meta line as Program ▾, the fold asks only the type’s questions (#5227 table, PR #5232 offeringShapeSlotsForType), empty = the question where the answer goes, needed to book on the two a booking can’t run without. NEW 13.4-sell-mixed / -m (mug with price tiers, a journal whose old deposit still prints, a mentoring hour), 13.4-sell-draft / -m (a marked row: decide card only — PR #5221). Peyton sign-off, same day: the per-offering sheet (13.4-sell-sheet / -m) and every Edit this one › are DELETED — “we’ve been using the Teach your Brain pill directly”; an empty question opens Teach anchored to that offering + field (the 13.5 TeachThisCue host), the type token is display-only, corrected through Teach. Running heads = the type. AC-PB-C03-03 ↗ holds (no in-fold edit door; Teach is the only edit path). Ledger: parity-brain.md addenda 2026-09-23 / 23b / 23c.
2026-09-15 · 2026-09-15 · #4851 WHERE TO FIND YOU — EVERY REGISTERED FIELD, IN THE PLAYBOOK, EDITED IN PLACE (Peyton 2026-09-15: “shape, don’t hide” · “use more column based design” · “don’t make the designed playbook so lengthy, use the editorial design style” · “it move into the playbook directly, so add there instead of using ‘edit’ tab and the old ‘co-edit’ sheet”; awaiting sign-off) — NEW 13.2: the chapter IS the form. 02-physical · 02-editing · 02-online · 02-nothing-saved · 01-your-business · index ×3, + 375 twins and one 768 rule card. Values read as editorial lines and are tapped to edit where they stand (.ink-val → .ink-open, auto-save to draft); an empty field is an inline slot in its cluster, never a row that navigates. 13 ruled rows → 4 clusters, two-up. This retires the co-edit / depth-sheet route for these fields — PlaybookBusinessDetailsSheet.tsx stops being their home (dead code flagged, not deleted); the index door reads open →. Placement per her screenshots: website/Instagram/socials stay in 01. One registry edit recommended: business_classification → section: whereHow. Retired: “Physical place only. Online only hides this block.” — prior 2026-09-12b: #4778 AI STOP ROW on the Building-your-Brain line (Peyton-approved 2026-09-12) — NEW BS-1c / -m: when the AI stops mid-read (capacity / no provider key / empty wallet) the checklist stays and the site row becomes ✗ Stopped while reading — {host} + the reason verbatim from readStopCopy.ts + a muted error_code · HH:MM UTC ref line + one Try again door; caption waiting on you. Drawn from the shipped component; two findings flagged in the frame (no Needs-you seat for the lantern; Try again is the wrong door for the wallet / provider reasons) and one build gap (readActive mount omitted readStopReason on the pre-gate path — closed same day in b7cbec4bf). 768 follows the BS tier rule. — prior 2026-09-12: #4714 TEACH BAR + PEEK — SIGNED TO SHIPPED (PR #4723 merged). The 09-10c frames were drawn ahead of the build; two Peyton rulings on 2026-09-11 moved the build off them, so 2.0-teach-bar / -m and 2.0-teach-peek / -m are redrawn from the merged code. The bar is an opaque dark pill (bg-black/.80, content width, no node glyph, no chevron) — the draft's ink-glass fill went invisible white-on-white over a playbook card, because the bar is position:fixed and a white card is often what's under it. The peek uses transparentBackdrop + transparentHeader — no dim, the real playbook stays bright and scrollable behind it — and the ⤒ More ways to share affordance is deleted (redundant once the backdrop shows the playbook anyway); a dropped file still expands. 2.0-empty-chapter's CTA was already correct. Also fixed: -m-wave1 was leaking 5 unclosed <div>s, nesting every later frame inside the 375 phone box. — prior 2026-09-10c: #4714 TEACH BAR + PEEK, wave 1 (Peyton 2026-09-10, signed in chat): a persistent Teach your Brain bar at the foot of the Book opens the ONE Teach sheet as a quarter-height peek (desktop; 375 opens the full sheet in wave 1) — NEW 2.0-teach-bar / -m · 2.0-teach-peek / -m (week 2, keyboard-pinned) / -m-wave1 · 2.0-empty-chapter CTA amended Add → → Teach your Brain › + the missing -m twin · wave 2 placeholder (post-Read rows not drawn by design). Assistant Brain Check door: assistant-lifecycle.html#sec-5d. — prior 2026-09-10b: Unconfirmed read → resume / discard → save → confirmed drawn as one flow (map · 2.0-return · discard · sheet resume): ONE resume seat = the Building-your-Brain line; rail keeps #4693's one-door shape, no button retargeted; 2.0-resume retired. Opening hours asked on the line (1.4-ask hours), the orphaned Where-to-find-you row removed. Share anything is a door, never inside the sheet. Merged forward onto #4705's landed 10a (below) — no conflict, different chapters of the same page. — prior 2026-09-10a-CORRECTION (CTO gate, PR #4711): an earlier draft of this pass wrongly renamed the rail's drafted-row button to Save to Brain as a second invocation point — #4693 (same-day, one door/one lantern) already retired that button entirely. Fixed: the rail's drafted row stays #4693's shipped one-door shape (onOpenBook, no button, no lantern, renders graft); row title staying “Ready to confirm” vs. becoming “Ready to save” is copy-only. AC-BRAIN-189 (PRD) corrected to match. — prior 2026-09-10a (landed, #4705): Customer Q&A chapter — SIX heads, fixed order (Booking · Paying & refunds · What's included · Logistics · What to expect · About the business; tail Your other answers), House rules retired, category = f(slug) — redrawn on 3.2 / 2.3 / 2.3-dense (+ 375 twins). NEW 2.3-qa / -m: a non-retreat founder's chapter 05 in three states — confirmed · fresh read pending (non-lit draft row, AC-185 marks in place, one gold) · conflict / looks-alike / needs-context rows. — prior 2026-09-09c: #4443 PR-3 §8 amendments — every staged image is vision-read (the grey Not read — coming soon row is for an unreadable image only); ✓ rows carry no per-item details count — the batch caption is the only count. — prior 2026-09-09b: #4443 PR-3 — one Read, one sequential queue, one consolidate: queue · mid · consolidate · done (+ 375 twins, one 768); fold rule 3 + count; grey Not read — coming soon. — prior 2026-09-09a: PR-2 final shape — one spinner, waiting-on-you lantern, empty + settled-failure frames — prior 2026-09-06b: PRD v5.27 — the line asks, nothing else does: Row B is a five-row labelled list with per-field guidance, corrected only by the inline Other — tell us what’s right; the editor sheet is retired; verb lock That’s me — continue ✦ / Continue →. — prior 2026-09-06a: Peyton morning rulings: f34-walk deck retired into the two doors · Teach-sheet pasted-link inline line · Building line both doors — prior 2026-09-05d: banner comment fix (PR #4515) republished; content unchanged from 05c — Pass 2 — the ONE line drawn in the copy contract’s strings (eyebrow, ✓ / ◐ / ✗ rows, Other on every question), one book everywhere, guest two-door body, BS-0 armed + refuse, Row B second confirm, the example-shelf component, rails on RA-*, 375 twins now walked by the deckprior: 2026-09-05b · a · 2026-09-04i · h · g · f · e · d · c · b · a · 2026-09-03e · d · c · b · a · 2026-08-30bk (product lock — clear)Shelves: Start · Doors · Building · Landed · Draft → confirm · The book · Examples · Weeks later · Build again · Book → edit · Chapters · Depth sheets · Components · Future · Backlog · Register
2026-09-15c · 2026-09-15 · CHAPTER FOLD + LIST CAP — WHAT YOU SELL AND CUSTOMER Q&A (#4835 PR-3, Peyton ask 2026-09-15): “i don’t see the expand and collapse button for each section and maybe if the list get long in each section, show the latest 5 and the rest expand, when the user choose to export a copy, it would export all” — scoped to What you sell and FAQ. NEW 2.3-fold / -m and 2.3-qa-fold / -m; 768 stated on the shared 2.3-sell-t card. Chapter fold: one text door on the chapter head, right of the title on the baseline — Collapse ▴ open, Expand ▾ closed — in .ink-edit ink, the same grammar as the row’s More/Less (Hide rejected: beside the Assistant reads badge it reads as privacy). Closed prints the folio, the title, the deck’s prose and one count line — offeringsIndexPreview() (25 offerings, from $28 to $1,200) / faqsIndexPreview() + topics (23 of 23 answered · 6 topics), the deck’s own suffix dropped so one count is on screen, never two — then the door; the chapter’s hairline and number stay, no card, no chrome. Default open on every open of the book, session-only; a read that lands into a closed chapter opens it. Other chapters unchanged this pass. List cap: inside the two chapters, the first 5 rows in book order per type group (index mode, >6) / per Q&A head, then Show all N ▾ under the fifth row (N = the eyebrow’s count) revealing the rest in place, Show fewer ▴ after; ≤5 = no door; card mode (≤6) is untouched by construction. Draft rows are never behind a cap: while a head is capped its AC-BRAIN-185 rows (new · changed · looks-like-one-you-have · needs-context) print first, then confirmed rows to five; revealed or Saved, book order returns. Export carries everything: Save a copy ▾ builds from BusinessProfile via exportPlaybook.ts, never the DOM — no UI change, stated in the frame. Doors are <button>s with aria-expanded / aria-controls, 36px desktop / 44px phone, never unmounted on toggle; height reveal only; prefers-reduced-motion instant; no lantern. Amends 15b: the index no longer “stacks forever, no See all” — the held per-group fallback landed at 5, not 12; 2.3-dense’s “FAQs stack forever” is read as the no-spread rule and stands. Cited: AC-PLAYBOOK-13 · AC-BRAIN-64 · AC-OFFER-07 · AC-BRAIN-108 (amended) · AC-BRAIN-185 · AC-BRAIN-137(a); the fold, the cap and the drafts-first rule are NEW (PRD debt) for the build to mint. Ledger: parity-brain.md addendum 2026-09-15c.
2026-09-19 · 2026-09-19 · #f-ed-decide + #f-ed-ch-partial (Chief Designer audit 2026-09-19): IR2pb-v2 already signed the two-reading block; 13.4 never carried it. What shipped was a ghost line + — now: {current} (FAQ changed rows showed the OLD answer only) and a 2-column DraftCompare screen the spec rules out. NEW 13.4-decide / -t / -m — confirmed recessive, drafted full ink, Keep mine / Use new one (FAQ Looks-like = Keep both / Replace mine) on the cream paper. NEW 13.4-ch-partial / -t / -m — margin Still need · N + live .ed-ask tail. DraftCompare retired. Device only; required stamp + tail DATA are sibling.
2026-09-18 · 2026-09-18 · THE EDITORIAL BOOK — PAPER, SPREADS, ONE DOOR PER CHAPTER (Peyton 2026-09-18): “The playbook design looks really bad on frontend, weird gap, repeated ask on Not quite — Teach your Brain, hard to tell the difference between section, hard to see clarity of the information … make it an artsy, creative visualisation of the business brain (with a lot of content) but yet very magazine, editorial … right color contrast, text sizes … we previously have the layout for the Look — brand style guide display — use that instead of plain text … consider that the brain can include lengthy or long lists of information.” What changed: the Book’s LOOK, not its data. NEW 13.4 — two papers (cream 01–06 / charcoal 07–10, one ink pair, body ≥7:1), a cover + contents spread, every chapter as a margin | body spread (numeral 84 · title 48 · lede 22 · body 15/1.7 at 62ch), the fact grid (auto-fill, never a hole) in place of .ink-clusters, the numbered catalogue for offerings, the two-column Q&A programme, 06 as a brand-guidelines spread built from 2.11a’s painted grammar, the charcoal zone opener, and a rhythm ladder (--ed-ch-top/-bot/-block/-facet/-gutter) with ONE owner per gap. One Teach door per chapter, chapter-worded, in the margin (the shipped code prints Not quite? Teach your Brain › under every prose field — three call sites). Long content (13.4-long): ≥~180-word prose runs two columns at lg, lists 8+ two columns / 20+ capped, offerings 5 per type + Show all, Q&A 5 per head + Show all, >120-char index values flip label-above, margin notes state the true total, nothing is ever ellipsis-truncated. Frames: cover · 02+03 · 05 · 06 · zone + 07 + 09 · long · 768 rule · 375 cover / -ch-m / -brand-m. Unchanged: registry dispatch, density ladder, empty-as-slots, the band (AC-BRAIN-137), the tape, the Teach bar, Book-steps-aside (AC-BRAIN-256), one lantern. 2.3 / 13.3 are superseded as the LOOK only. ↗ AC-PB-09 · 10 · 11 · 12 · 13 (PRD v2.2). Build: Book editorial pass issue #5019, after #4950 consolidation. Ledger: parity-brain.md addendum 2026-09-18. Contrast sync (CTO, 2026-09-18, binds the build): text uses --ed-ink / --ed-ink-82 / --ed-ink-70 only (cream: 12.4 / 7.3 / 5.0:1; charcoal: 12.4 / 9.6 / 6.9:1) — the earlier eyebrow alpha (.45 = 2.6:1) failed AC-PB-11’s own floor; --ed-ink-45/-30/-18 are rules, dotted underlines and decoration only.
2026-09-17b · 2026-09-17 · THE BOOK STEPS ASIDE ON READ (#4954 Phase 0b, Peyton ruling 2026-09-17): “make sure book close as well so that user can see the line running. It would be weird looking at the book with no real-time progress line shown. Even if it doesn’t need the founder, it shows what it is doing so that the founder is aware.” What changed: today (PR #4822) the Read tap in the docked Teach peek closes the peek only — the Book stays put, the read runs invisibly underneath it, and the Book yields only when the line needs an answer. From now on Read closes the peek and the Book, on every Teach door, whether or not the run has a question: she lands on /brain scrolled to the ONE Building your Brain line (eyebrow + working / waiting on you / done captions unchanged), and when the pass lands the existing ready notice (Done — opening your playbook · Open now / Stay here, AC-BRAIN-127c) reopens the Book on the draft rows with the Save to Brain band — nothing new is built for the return leg. NEW 2.0-read-yield (desktop 1180, three beats: peek with a staged chip and Read → · the Book gone, the line Reading — rates-2026.pdf working · Done — ready to review and the Book reopened on the drafts) · -m (375; at 375 beat 1 is the full Teach sheet, wave-1 rule unchanged) · -wiz (one frame — beat 2 inside the wizard Brain-check Book takeover, assistant-lifecycle.html#sec-5d: the takeover yields to the embedded Brain page showing the line, Connect sheet still mounted underneath, then reopens the Book on the drafts). Supersedes #4822’s stay-on-the-Book-while-reading behaviour — 2.0-teach-bar carries an amendment chip and wave 2 now points here; the bar, the peek and the reserved post-Read ROW grammar (f-pb-peek-read, the removal verb) are all unchanged, and this pass does not invent them. Strings are the copy contract’s (spec-brain-progress-line-copy.md) and the BS-* / 1.4-* line frames’ — no new strings minted. ↗ AC-BRAIN-256 · AC-BRAIN-213 · 190 / 191 · 127g · 127c; one NEW (PRD debt) line for scroll restore. 768 follows the BS tier rule, not a per-state frame. Registered in MF_STAGE_RANK (51 / 51 / 51.5) and MFSUB_MAP (Playbook · Draft → confirm). Ledger: parity-brain.md addendum 2026-09-17b.
2026-09-17a · 2026-09-17 · FIELD PARITY — THE CHAPTER IS THE FORM, EVERY CHAPTER (council: CTO · Architect · CPO · Chief Designer; Peyton approved the plan). NEW 13.3 — six book frames on the shapes 13.2 never drew: the policies ruled index (two columns at lg 1024, one eyebrow, no header row), Why you half-filled with a ghost slot and the ask-row section tail (one gold, one dim), AI prose as Teach-only, Revenue as the private chapter (lock chip derived from assistantReadable), and Branding with the Warm Host default as ink prose (MystFlo’s default voice — not yours yet) beside the founder-voice state. Amended: 13.2’s two-up now breaks at lg 1024 (was 900); the Q&A chapter gains a >30 head jump-line. Retired with a banner in every header: the 2.3-edit co-edit slide family and the depth sheets for Your business · Where · Why you · Revenue · Who you serve · How you run · Direction · Your story; How you sound (2.9 / 2.9w) retired as an edit home only. Ledger addendum 2026-09-17a.
2026-09-15b · 2026-09-15 · WHAT YOU SELL — THE GAP + MANY OFFERINGS (#4835, Peyton review of the 15a preview): two problems on the fold frame. (1) The gap. 15a had the expanded card grow in place at 2-up with its row-mate keeping its own height — which leaves a hole beside the open card, exactly what a magazine spread never has. 2.3-sell redrawn: the expanded card spreads to full measure (grid-column: 1 / -1), holds its row’s top edge (the thing she clicked stays put vertically, only wider), and its row-mate steps down to lead the next row (CSS order, DOM untouched); the fold column inside the spread is capped at the 720 guard so the air to the right is the margin, not a hole. Rejected: one-open accordion (institutionalises the gap and kills side-by-side), single column always (three 900px bars for a 3-item menu; breaks the 2-up lock), stretch-to-match (the gap with a border). (2) Many offerings. NEW 2.3-sell-many / -m (768 on the shared -t card): the shelf rule — chapter total ≤6 = cards (2.3-sell), >6 = the index: the chapter’s own .ink-fact hairline row, name left · price right · the ▾ door glyph, one step quieter than the card, grouped by Service.type (program · product · service · other — the real enum; there is no event / workshop type) under .ink-facet eyebrows with counts, fixed order, empty heads absent. The whole row is the door (44px); no glyph when nothing is behind it; an open row becomes the full card in place; the index stacks forever like FAQs — no See all (held fallback: a per-group fold at 12). Not a table: no header, no third column, no zebra, no rules. 2.3-dense’s “6 stands in for 8–20” amended to “6 is the ceiling”. Ledger: parity-brain.md addendum 2026-09-15b.
2026-09-15a · 2026-09-15 · WHAT YOU SELL — THE OFFERING ROW FOLDS OPEN (#4835, Peyton ask 2026-09-14 — drawn in parallel with PR-1): the designed book showed an offering as name · date · one-line · price and nothing more, because the Teach door had no slot for the body — a Luma page or a program PDF was squashed into one line. NEW 2.3-sell / -t / -m: the row keeps the shipped .ink-offer shell and gains a quiet text door — More ▾ in .ink-edit ink, no chrome, and no door at all when there is nothing to expand. Open, the fold prints When (dates verbatim) · How long · the full details body on the 720px prose guard · What’s included · Questions about this one (the one faqs[] store, offering-tagged) · Less ▴. Independent toggles; 2-up cards grow in place with the row-mate keeping its own height; solid ink (confirmed data — the Double Law does not apply); no lantern; height reveal only, prefers-reduced-motion instant. Venue has no field on Service (the Teach mapper folds it into details) — flagged in the frame, not drawn as a row. 768 is stated on its tier card (stacked like 375 at a wider measure). NEW (PRD debt) for the fold itself; AC-PLAYBOOK-13 / AC-OFFER-02 / 05 / 07 / AC-BRAIN-64 cited. Ledger: parity-brain.md addendum 2026-09-15a.
2026-09-12b · 2026-09-12 · AI STOP ROW ON THE BUILDING LINE (#4778, Peyton-approved 2026-09-12): one new held variant of BS-1 — BS-1c / -m. The site read fine; OUR side stopped (AI capacity, no provider key, empty wallet). The ✗ row keeps rule 5’s held shape and grammar — Stopped while reading — uglywooretreats.com, reason as quiet meta verbatim from src/lib/brain/readStopCopy.ts (ONE source for the full-page checklist and the Teach-sheet URL hero), one door Try again that re-runs the same url through the free crawl and the standing confirm gate (never “a different link”, never the screenshot door). Head caption waiting on you (AC-BRAIN-190; a stop is a needs-you state per the 2026-09-08 ruling). No AC id yet — marked NEW (PRD debt). Registered in BSTART_STAGE_RANK (23), the Building shelf (20.8) and MFSUB_MAP; 768 stated on the BS-0-t tier card, not a per-state frame. Ledger: parity-brain.md addendum 2026-09-12b.
2026-09-10a · 2026-09-10 · UNCONFIRMED READ → RESUME / DISCARD → SAVE → CONFIRMED + HOURS ASKED ON THE LINE + SHARE ANYTHING IS A DOOR (Chief Designer; Peyton's three asks off the live preview, relayed by the team lead; reconciled vs origin/main 23f44c213): (1) The flow, drawn once — 2.0-confirm-flow is the map (read lands → unconfirmed → she leaves / opens / saves / discards → saved → in her Brain, plus the OTHER resume the Teach sheet holds); 2.0-return / -t / -m is step 8 redrawn on the seat that shipped: the Building-your-Brain line re-mounts from the server draft with ✓ Read · ✓ Drafted · ● Save — your playbook is waiting on you (doors Open your playbook → · quiet Discard this read), caption waiting on you; the rail's drafted row (#4693's shipped one-door shape, onOpenBook, no button) is drawn for the first time, title optionally Ready to save · 7 (copy-only vs. shipped Ready to confirm), graft while the line holds the lantern — CORRECTION (CTO gate, PR #4711): an earlier draft of this pass wrongly renamed the rail row's button to Save to Brain as a second save invocation; #4693 already retired that button same-day, fixed to match; 2.0-return-discard / -m draws the discard branch with the shipped Undo toast. Calls: ONE resume seat (the line), never a box under it and never a rail row — the shipped resumeReadRow box and the never-built 2.0-resume rail row both retire (AC-BRAIN-189 amended: the line, not the rail); the two “Resume” rows are differentiated by seat + sentence — the sheet's own composer-draft row is drawn for the first time at 1.3-sheet resume / -m as Your last share is still here — 4 details, not yet in your Brain · Review → · Discard. (2) Hours on the line — 1.4-ask hours / -t / -m + answered: the orphaned Where to find you index row (the lone coEditDoors survivor) is removed; an AskRow Asked — when are you open? fires after ✓ Drafted for in-person founders with empty business_hours (Same every day · Varies by day + 7-row grid · By appointment only · Other · Skip), the answer is a draft confirmed on Save to Brain. Backend gap stated for the CTO: no business_hours extraction path exists on either door. (3) Share anything is a door — rule written onto 1.3-share: the YOUR CALL · Share anything → panel is never rendered inside the sheet (that mount is a no-op, deleted in code). Register: three lines. Ledger: parity/parity-brain.md 2026-09-10 addendum (rail-identity note amended). All new frames signed by Peyton, seat = the line.
2026-09-09c · 2026-09-09 · PR-3 QUEUE — §8 AMENDMENTS (team-lead/CTO on #4443): every staged image is vision-read for facts, own row, own charge, whatever the photo/screenshot guess — the grey Not read — coming soon row is only for an image that can’t be read at all (meta We can’t read this kind of image yet.); the brand-LOOK extraction is what private beta froze. ✓ rows carry no per-item {n} details found (one whole-corpus classify, no per-source attribution) — the batch caption under the group is the only count. Stamp bump to publish the amended frames; no structural change.
2026-09-09b · 2026-09-09 · TEACH READ LINE — PR-3 QUEUE (Chief Designer, Peyton ruling 2026-09-09 on #4443: ONE Read, one sequential queue, one consolidate): four new frames on Build · Building, each with a 375 twin plus one 768 carrying the family tier rule — 1.4-read queue (right after the tap: count caption 21 received · reading 1 of 21, ONE ◐, empty nodes for the rest, the tail folded to 3 + 17 more queued), queue mid (✓ rows, a red ✗ Couldn’t read — with its one door, a grey Not read — coming soon for an image we can’t read at all — every other image is vision-read; no door, no lantern — the ◐ moved on, two folds), queue consolidate (every row settled, receipt caption, then the ONE earned ◐ Drafting — your playbook — the classify now runs once after the last row, so the spinner is honest here and only here) and queue done (partial’s ✓ Drafted → ✓ Done leg over the receipt; the ✗ settles into Needs you). Fold rule: a run of ≥5 same-status rows shows 3 + a count row, tap to expand; ◐ and every ✗ never fold. Supersedes 1.4-read reading for trays of 2+ (its pending Reading — rows become to-do Read — rows; N = 1 is the same frame minus the count caption). Copy contract §8 (queue row grammar + fold + count caption), ledger addendum 2026-09-09 PR-3. Signed by Peyton 2026-09-09 (an unreadable image settles in turn; up-front rejected). Amended the same day: the grey row is only for an image that can’t be read at all — every other image is vision-read for facts, own row, own charge — and ✓ rows carry no per-item details count (one whole-corpus classify; the batch caption is the only count). PR-3 build unblocked.
2026-09-09a · 2026-09-09 · TEACH READ LINE — FINAL PR-2 SHAPE (Chief Designer, post CTO gate BLOCKING 1/2 + design gate B2/B3/N1/N2(a) on #4443): 1.4-read reading / -m redrawn to ONE spinner (first unresolved row ◐, the rest quiet dots, staging order, caption working, no research row). 1.4-read none / -m redrawn to the final all-failed shape — caption waiting on you, a real gold StepRow status="lantern" row (Nothing landed in your playbook. Your N items are still in the tray. · Back to what you staged · Open →), one door per ✗ row (Reconnect wins over the rail jump), “nothing charged” dropped, the rail's need-row yielding its gold; reachable only when no upload cleared Phase 1. Two NEW settled states that had no frame: 1.4-read empty / -m (classify landed, every source ✓, Nothing here fits a playbook field yet. · Look again →, no lantern) and 1.4-read settled failure / -m (item read and kept — charged, searchable — but Couldn't sort {label} into your playbook; ONE ✗ row, the server's reason, no door). 1.4-tray retry / -m (B3): the batch block and the Reconnect Google button are retired from the frame (never built; the line owns the outcome sentence and the Reconnect door) and the per-chip reasons on REOPEN are labelled specified-not-built (the tray snapshot carries no reasons). Shelf maps + Building rank carry the two new ids. Harness scenes reading / none / empty / settled-failure + mockup shots added to capture-brain-building-line-evidence.mjs.
2026-09-06b · 2026-09-06 · PRD v5.27 — "the line asks, nothing else does" (Peyton, /design): the identity confirm (Row B / Row B · updated / -m) drops the single fact string for a five-row labelled list — Business · What you do · Founder · Location · Website / IG — each with one line of field guidance (Contact stays read-only evidence, not listed). The only correction is the inline Other — tell us what’s right free-text field (placeholder e.g. It’s Bloom Retreats Bali, run by Miri, based in Ubud, submit Continue →), parsed into a re-proposed list marked · updated for a second confirm. The field-by-field editor sheet is retired (Fix it field by field → gone; f34-share-staged-identify, f34-teach-basics, f13-biz + sheet / -t / -m → register). Verb lock (Peyton, Option B — one word): That’s me — continue ✦ replaces — run ✦ on this line only; Continue → replaces Use this → on every Other submit; run is retired from the Building line. Row A keeps its face options and gains the guest-search Other caption. AC-BRAIN-194 (details list) / 195 (Other → re-proposal) minted in copy contract §4a. Structure unchanged — stamp only, no shelf move.
2026-09-06a · 2026-09-06 · PEYTON MORNING RULINGS (Chief Designer): (1) the 18-slide f34-walk deck (single-panel “Research my business”) and the 1.5 gallery (f1-b … f1f-walled) are retired into the two doors — bodies deleted, one register line each, every id still resolves; (2) BS-0a gains the Accepted — this is a website. Research is ready. line under the field, the SAME slot BS-0b turns lantern (.door-state, one slot, two inks; Google Doc string drawn on the new BS-0b-m); (3) the Teach sheet gets the same slot under a pasted link’s chip — link ok (Google Doc → a file · Luma → a page, neutral) · link walled (Notion — we can’t open this link. Screenshot or PDF it., lantern) · link connect (Google not connected → Connect Google →, AC-BRAIN-154), 375 / 768 / 1180 each, sibling of 3b’s honest-empty; (4) BS-1 / BS-1t + 375 twins redrawn in the copy contract — one eyebrow, ✓ / ◐ / ✗ rows with verb + exact object, the agent-ask row with Other — tell us what’s right / Use this → / Skip on the Teach frame, the Notion ✗ once on the line and once under Needs you; the ✦ Kickstarting seat and the mixed founder names are gone (Uglywoo Retreats on every Build frame). Doors deck: the URL-field states leave; Doors is the Teach sheet only.
2026-09-05d · 2026-09-05 · STAMP BUMP ONLY (orchestrator): PR #4515 un-nested a <!-- PASS 2 --> mention inside the 05a top-of-file banner comment that closed it early and leaked banner text onto the live page. The deploy overlay keeps live on an equal build id, so this bump exists to publish that fix. No frame, id, or shelf changed.
2026-09-05c · 2026-09-05 · PASS 2 — REDRAWS (Chief Designer; strings only from _specs/spec-brain-progress-line-copy.md): every live line now reads Building your Brain with the three head captions (working / waiting on you / done) and the §2/§3 row grammar — Read — uglywooretreats.com · 6 pages, Researching — what’s public under …, Leaving out — the rest of The Offline Club, Drafting — your playbook, Done — your playbook is ready, Done — opening your playbook; a ✗ row leaves the line for the rail (RA-fail). Every question row carries Other — tell us what’s right with its inline field and Use this → (Row A replaces Neither…; Row B puts Other first and demotes the sheet to Fix it field by field →; agent asks gain Skip — carry on without it). New frames: BS-0a armed (+ 375, folds IR1), BS-0b refuse (folds the 34-walk family onto the BS-0 chrome), Row B · updated (the second confirm after Other, folds 1f″), the example-shelf component (the carousel from the retired 1.3). Redrawn: the guest body is the same two doors as BS-0 at all three tiers (AC-BRAIN-119, no rail); BS-1t rows are per-source-type → kickstart with the scope word → the same expand rows; every RA-* frame (+ 375) carries the unified Where you stand · Needs you · Activity rail (veiled on RA-scope); ONE book on every shelf drawing (Q3 = A — 24 second-book tomes removed from live frames); Read again replaces Research again on every founder surface (Q5). Review tooling: the deck now walks 375 / 768 twins that were authored inside a pane-level wrapping step (Playbook · Edit shelves were empty at 375 since the 2026-08-17 restructure). Still open, by design: the #4489 read-spine frames keep their signed eyebrow pending Peyton’s sign-off; 768 twins for the new frames follow the layout rule (stated, not drawn).
2026-09-05b · 2026-09-05 · TWO FOLDS INTO THE FIVE-TAB STRUCTURE (Chief Designer, orchestrator ask): (1) PR #4489 (design/4443-rail-progress-frames, d93b3cd52) — the Teach read line 1.4-read reading / partial / none retag to Build → Building as states of the one Building-your-Brain line, seated in the MAIN-column read-spine per shipped AC-BRAIN-127g (Peyton 2026-09-05 — never the rail; the rail only gets the couldn’t-read registry a failed row settles into), and the staging-tray sub-states link / staged / dup / limit / retry retag to Build → Doors. All eight carry a Peyton sign-off pending · transferred from PR #4489 chip — the review gate moves to this PR, it does not disappear. Their parity-brain.md addendum (8 rows) and the Design HQ stamp ride along; the 15j “pre-reversal menu” pointer follows 15j to the register. (2) 2026-09-04f–i (design/brain-research-lifecycle, 883b92702, the branch the live preview was deployed from): BL-1a / BL-1b — Research again as a permanent stacked sibling row of Teach your Brain more on the loop rail, quiet vs lantern at 90+ days (+ 375 twins) — retag to Loop → Weeks later (PASS 2: copy becomes Read again, Q5 = A); 1.3-share site (pasted homepage = page-vs-whole-site chip, no longer counted as a door) to Build → Doors; BL-4 (four-door map) and 33e-biz-web (website first-save offer) retired to the register as that build already ruled. The f–i stamp history: f — research is a door, not a nudge; g — scope-note the website-appeared case; h — freshness frames move to Brain · loop; i — two doors, permanent. Nesting verified by a DOM parse and in Chrome: no desktop frame sits under a 375/768 tier box, and the stepper count per shelf equals the authored desktop-frame count.
2026-09-05a · 2026-09-05 · FIVE TABS BY STAGE — pass 1, structure (Chief Designer audit, Peyton rulings Q1–Q6 the same day): the file stops being organised by PR history and mirrors the six-stage flow. Top tabs are now Build · Playbook · Loop · Edit · More (Q1 = A); shelves are one stage or one door each — Build: Start · Doors · Building · Landed; Playbook: Draft → confirm · The book · Examples; Loop: Weeks later · Build again; Edit: Book → edit · Chapters (book order 01–10) · Depth sheets; More: Components · Future · Backlog · Register. What moved: every frame re-tagged (no id renamed, nothing physically moved); the two canonical stories (BS-* / BL-*), the agent states (RA-*), the inline gate rows, the landing sheet and the lifecycle each own exactly one seat. What retired (to the register, one line each, tagged retired, git holds the pixels): the single-hero intake (1.3 / 1.3-in / IR1), the page-state gallery (1.5 / f1), the sheet gate (1f / 1f-walk / TQ-gate / TQ-scope), the landed duplicates (IR3 / 1.6-teach / 2.2 / 2.2b), the index edit door (2.5 — Q4 = A, the book owns editing), the re-check consent (5.2, AC-BRAIN-24 retired v5.13), the coverage ledger (8b), the 4-chapter landing sample and 2.0-canon (merged), the stale book drawings, and the Advisor deck beyond a trimmed reference set (Q2 = B). Merges (notes + AC lines folded verbatim onto the target, source cited): IR1 → BS-0 (armed state) · IR2 → BS-1 · 1.4 + RA-teach → BS-1t · RA-gate + 1f″ → Row B · walled ×2 → one · IR2pb → IR2pb-all · 2.0-canon → 2.0-full. Ruling 6 (ONE line, “Building your Brain”) is written into the brief and every Building / Build-again frame note; Research and Teach are two methods of feeding one agent, the ask rows carry an Other — type what’s right option, the status set is ✓ / ◔ / ◔ waiting on you / ✗. Not in this pass (pass 2, each frame marked <!-- PASS 2 -->): guest two-door body, rail on RA-*, one book on BS-2 / BL-*, unified-line rows, BS-0 armed, Row B “· updated”, the Other option drawn, the URL refusals as one frame, the example carousel on 2.3-template. Every deleted pill and tab name is an mfTab() alias, so #phase-research-style links in the PRD, the specs, parity/parity-brain.md and the click-through docs still land. PRD v5.26 (one-line section, AC reconciliation, C1–C5 hygiene) lands in the same PR. Verified in Chrome: 16 shelves, every canonical frame on exactly one shelf, no console errors.
2026-09-04e · 2026-09-05 · RAIL CAP COMPLETED — the other two doors (Chief Designer, from the PR #4477 review, H3): 04b specified the cap for all three rail sections — “applies to Where you stand, Needs you, and Activity alike” — but only ever DREW it for Needs you, so the build shipped two doors against no frame. Worse, BL-2 contradicted its own acceptance line: 3 of 8 open means 5 missing, over the threshold, yet Where you stand drew no door. Three additions, no frame re-sorted, no id renamed. (1) BL-2 / BL-2-m gain Where you stand’s door (View all 5 →) — the frame now obeys the rule it states; its sheet is the new BL-2w / -m, flat, because a missing section has no derived “why” to group by (only BL-2s groups, and only because “couldn’t read” does). (2) Activity’s door moves to a frame where it can honestly happen — a same-day read has two Activity rows, so BL-3 / -m draws it months in (9 events → 3 + door), and doubles as the NO-door case: Where you stand (1 row) and Needs you (2 rows) sit under the threshold and correctly draw nothing. Sheet at BL-3a / -m. (3) The door grammar is now pinned in one place — all six .rail-more instances are the same row: 44px, label left, → right at --fg-40, at the END of the section’s rows, and never carrying a row’s ::before edge or bottom hairline, because it opens a list rather than being an item in one. That is the drift the review found in shipped code (B1/B2: Needs you’s door renders as a .brain-unread-row and inherits the Edge·you rule; Where you stand’s is a 32px text button below the hint line; Activity’s is a header link) — the frames are now the reference those fixes point at. 768 stays a layout rule, stated not drawn: the cap counts ROWS, not pixels, so it is tier-invariant.
2026-09-04d · 2026-09-04 · ARCHIVE SPLIT + ENTRY-FRAME RAIL UNIFICATION (Peyton ask): the same-day Archive collapse (04b, below) is un-collapsed one level — Research start · Research · Web · Research · Teach return as three separately findable pills (seven total with Brain start / Brain · loop / Others / Backlog), the exact pre-collapse row, id mapping restored verbatim (120 ids, zero re-sorted). Six entry frames — IR2 / IR3 on Web, 1.4-teach / 1.6-teach on Teach, all four with their 375 twins — move off the old .rail-block grammar onto the unified Where you stand · Needs you · Activity rail (percentage + track added, "what we couldn't read"/"how you look" fold into Needs you, Activity headings become real rail-sec-h). The other ~150 legacy frames under these three pills are untouched — this pass is entry frames only, matching the same minimal-redesign scope as 04b/c. Headline "Start your Brain" → "Build your Brain"; two-door steer line now justifies website-first by coverage ("it covers more of your business"), not speed; the duplicated "Edit a chapter" list is dropped from BS-2/BL-1/BL-2 (matches shipped — coEditDoors already hides it, Peyton lock 2026-08-31); the stale-row warning triangle is removed, the word "stale" carries the verdict, monochrome per the one-lantern rule.
2026-09-04c · 2026-09-04 · ACTIVITY RECONCILED TO SHIPPED: all 22 Activity lists in this file now draw the shipped ActivityRow grammar (subject · quiet vN pill · Open Doc on saved rows · time right) in production’s real vocabulary — Research landed · Confirmed on your playbook · Our read written · Saved Business playbook V{n}. See all → only past 5 rows, as ActivityChrome does, so it is gone from every frame. Four frames had been drawing the retired vN · label list; eighteen drew a bare label+time list. Activity itself is unchanged: production correctly gates it on playbookStarted (dormant during the read, logging once a playbook exists) and the frames now match — no new build.
2026-09-04b (teach-rows) · updated 2026-09-04 · PER-SOURCE-TYPE ROWS on the Teach progress line (#4446, AC-BRAIN-127g(a) as amended 2026-09-04) — landed on main concurrently with the Brain start/loop pass below (same-day sibling branch, not a supersession of it). The what you shared beat stops being one blended row and becomes N rows grouped by SOURCE TYPE — never one row per file. 4 frames: #f34-teach-live / -m (established Brain — PDF · Google Doc · 3 screenshots · pasted text, all plain done seals, then the one research row) and #f34-share-next / -m (empty Brain, reconciled — it drew grouped rows before the clause existed and drew them wrong). Row grammar: the title is what she'd call it, the meta is only what the title cannot say; the seal is the verb, so no row repeats "— read". Three honesty rules fall out of the data contract, not taste. (1) Never stagger per-group state ("— in" / "— folding in" retired) — extraction finishes at stage time, so every shared row is terminal together; staggering invents a phase the backend cannot report. (2) The details count is beat-scoped, never per row — OrganizedSections carries no provenance and foundCount is one batch scalar, so "rates-2026.pdf — 4 details" would be invented attribution; the caption sits once under the group. (3) No Instagram row from screenshots — the instagram kind comes only from an instagram.com URL; the igLikely filename/ratio heuristic is disqualified (it matches any square or 4:5 image, so a square brand photo would be labelled Instagram), so the old Instagram profile + 3 posts row splits into Instagram + 3 screenshots. Screenshots show a count and never filenames — that is the whole answer to the OS-generated-name problem, and it means the dropped filename argument at BrainPage.tsx:2458 never needs plumbing. 768 is a layout RULE, not frames: single column at every measure, only the truncation budget changes. Plumbing landed same-day (#4455): ShareSourceItem, TeachResearchArgs.sources, and groupShareSources() → { kind, labels, count }, one row per distinct kind. The render is still unbuilt — nothing reads sources yet. Four traps for that build, all silent-failure: never de-dup sources (two screenshots can share a label); never take a count off items; absent sources falls back to the blended row and is never back-filled; and groupShareSources() is first-appearance order only, so the named-before-counted banding must be applied on top of it.
2026-09-04b (brain start/loop) · 2026-09-04 · BRAIN START + BRAIN · LOOP: two canonical stories lead Import and the pill row collapses to five — Brain start · Brain · loop · Archive · Others · Backlog. The three surviving legacy shelves (foyer · web · teach) fold behind Archive — nothing deleted, no id renamed, every legacy deep link still resolves one click deeper. Share loop does not fold in: it was retired the same day (#4441) and its anchors live on #retired-register. BL-2s row grammar fixed: the why-group head carries the reason, the row keeps what it feeds (AC-BRAIN-47 amended for the grouped seat only). PRD v5.22 signs the zero-state amendments — two equal doors + the rail drawn veiled from the start. Superseded one level by 04d, above: Archive itself is no longer a pill.
2026-09-04a · 2026-09-04 · AC-127a/127g(a) MIS-CITATION FIX (Peyton ruling). Doc-only, no frame content changed. #f34-teach-live's acceptance list cited AC-BRAIN-127a for a DISPLAY rule ("two rows only"). 127a is a dispatch clause (what the pass RUNS — share corpus only, no public lookup); the row grammar has always been 127g(a). The bullet splits in two: 127g(a) owns the row grammar, 127a keeps its public-lookup ban. The two rows only numeral is retired — already stale against shipped code, since AC-BRAIN-139's additive leg (#4407) runs no research pass and correctly draws ONE row; the honesty rule is what both cases obey. 127g(a) now requires the what you shared beat to group by SOURCE TYPE (Instagram · PDF · Google Doc/Sheet · pasted text · screenshots) — specified-not-built (#4446): the classify output carries a content taxonomy, not source provenance, so the rows need a source-type inventory threaded from the composer first. Canonical text amended in _specs/spec-brain-ingest-parity-127.md §5.
2026-09-03e · 2026-09-03 · IDENTITY-RELATION GUARD on the Teach line (#4423, Peyton ask "read the link and compare with the existing brain"): 2 new frames on Research · Teach as state variants of #f-ra-ask seated on the established-Brain Teach line — #f34-teach-identity (ambiguous → "is {host} part of {name}?", Yes adds + remembers the host / No skips) and #f34-teach-mismatch (different → "this page reads as {X}" · "Your Brain is {name}", Same business — add it / Not mine — skip), plus -m twins. AskRow primitive (#4397) reused verbatim; the lantern moves from the rail to the line while the ask waits. AC-BRAIN-178..180 cited.
Review build 2026-09-03d · updated 2026-09-03 · #4397 BUILT + signed: the inline gate rows shipped (32a7e1f2e, Designer PASS at 375 / 768 / 1440). Frame amendments: #f-inline-gate-confirm / -m fact line is body weight (the exact search string), not step-meta; the -m twins carry the spec §2 full strings; #f1-notquite is the editor-only sheet — title ✦ Fix what’s wrong, context trimmed, nothing-staged rung is Done (CPO ruling 2026-09-03; Confirm & run ✦ retired — the inline Row B is the sole paid tap). Decision-9 notes on 1f / 1f″ carry dated amendments, not rewrites. AC renumber applied file-wide: inline gate 166..169 → 167..170 (#4399 collision — 166 is now the bare-root-URL ask), Row 0 → 171/172 HELD.
2026-09-03c · 2026-09-03 · Cross-links: the escape rows on the new #f-inline-gate-chapter / -confirm frames ("Neither…" / "Not quite…") now link "1f" / "1f″" to the shipped #f1f editor and #f1f-found reconfirm; those two frames carry back-link bullets explaining the new inline-row entry path. No visual content of #f1f/#f1f-found changed.
2026-09-03b · 2026-09-03 · INLINE IDENTITY GATE (#4386, Peyton ruling): "the line asks, the sheet edits" — the shipped BusinessIdentityGate fork + confirm re-seat as one lantern row on the progress line instead of a self-opening sheet. 4 new frames on Import → Research · Web: #f-inline-gate-chapter (Row A, which business) and #f-inline-gate-confirm (Row B, is this you? + the paid "That's me — run ✦" row), plus -m twins. The 4-field editor stays the escape hatch, never self-rising. Specified-not-built at the time; AC-BRAIN-167..170 (renumbered from 166..169 on 2026-09-03, #4399 collision).
2026-09-03a · 2026-09-03 · RESEARCH AGENT PROGRESS LINE (#4386, Peyton ruling): 8 new frames on Import → Research · Web / Research · Teach (`#f-ra-*` + `-m` twins) draw the proactive research loop — scoping, the confirmed scope line, a clarify question, expanding into tagged sources, narrowing out the parent, a failed-source row, the done state, and the Teach-door kickstart. All specified-not-built, AC-BRAIN-155..164. · 30az OUR-READ RETIREMENT FOLD-IN: the playbook (IR2pb / -v2 / -m) now opens TLDR + recap + "How you show up" with the quiet ↻ Read again row at its foot — /brain/read is retired entirely.
2026-08-30bk · 2026-09-02 · PRODUCT LOCK — CLEAR. Stale-prose sweep (6 sentences, incl. the lifecycle ASCII map and the IR2pb callout) + repaired an orphaned <b> my own quote-rewrite created, which had silently collapsed the Import → Teach shelf 11 → 8. · Prior (30bj): Stale-prose sweep: 6 leftover sentences still described the retired 3-action band (review agent found 3, grep found 3 more — including the 2.0-lifecycle ASCII map and the IR2pb callout). Zero remaining band references to a “trio”. · Prior (30bi): ↗ AC-BRAIN-137 ruled: draft band = 2 actions (Save to Brain · Not quite — re-read), confirmed band = 1 (Save a copy). Save a copy removed from all 15 draft bands file-wide; the 375 overflow menu and the last two 32px buttons retired because the third button is gone. · Prior (30bh): Re-read targeting dropped (Peyton): no chapter chip, no scroll inference — she types what's wrong in plain English. 2.0-reread tip is now one general prompt; A2 collapsed 3 variants → 2. · Prior (30bg): 2.0-gap-add left panel corrected to the canonical chapter list (it had the field kit's offerings list); rail resume row now carries lantern on the shared class, and the missing-list demotes when it is present so the rail shows one gold moment. · Prior (30bf): Post-lock pass: NEW 2.0-resume (step 8, pending read on the rail); 2.0-reread rebuilt on the shipped Teach sheet with an adaptive lantern tip (3 trigger variants); 2.0-gap-add verified already using the existing co-edit chrome. · Prior (30be): ↗ AC-BRAIN-150 [now AC-BRAIN-186, #4442] ruled (Peyton): the Save to Brain click is always required, whoever wrote the change; the in-progress edit auto-saves to a resumable draft, but a draft is not a save. 2.0-delta and 2.0-saved updated — no visual change, the open-question language is gone. Nothing in this file is flagged open. · Prior (30bd): Slide 3 (2.3-dense + 375 twin) brought to slide 7's standard — recap section, the · Recap index row, and the missing chapter 07. Slides 2 / 4 / 5 deliberately unchanged. Full session summary is in the HTML comment at the top of this file. [what 30bd said, now superseded] “Still unruled, exclude from lock: AC-BRAIN-150 [now AC-BRAIN-186] (does a founder's own typed edit need the confirm at all).” Ruled 2026-09-02 — the confirm is always required; nothing is excluded from the lock.
2026-08-30bb · pass 4 · 2026-09-02 · AC ids landed from CPO and replace every placeholder on the lifecycle frames (PLAYBOOK-32/33/34, BRAIN-182–189 — renumbered from 146–153, #4442, collided with unrelated shipped main work); AC-PLAYBOOK-17 cited as amended, not superseded; export-omits-empty-chapters cited from its text rather than re-derived; 2.0-lifecycle collapsed to ONE slide; AC-BRAIN-150 (confirm re-arm) was flagged open in 2.0-delta and 2.0-saved — since ruled, see 30be.
2026-08-30bb · pass 3 · 2026-09-02 · LIFECYCLE + THREE RULINGS: new 2.0-lifecycle map organises the 8-step cycle (5 steps reused, 3 drawn new — 2.0-saved, 2.0-delta, 2.0-reread) · AC-PLAYBOOK-17 REVERSED by Peyton — every empty chapter now shows its data structure (public + Add →, private + Coming soon, no CTA), applied across all 17 chapter instances; CPO amendment pending · Recap stays unnumbered, lock only at section-header level · 2.3-look retired as a slide, notes folded into 2.3.
2026-08-30bb · pass 2 · 2026-09-02 · SIX PEYTON ITEMS: chapter index lists 01–10 individually with a lock on private chapters (no more 07–10 range) · Recap set at chapter-title scale · read-labels are real filled chips · contrast pass on paper text (.40/.45/.50 alphas failed AA, now .68/.70) · blank-slide root cause fixed — <body> carries data-mfsub so closest() matched it and every untagged unit claimed every shelf (2.2b was appearing as a blank slide 1 on Designed playbook) · NEW 2.0-empty-chapter decision frame: AC-PLAYBOOK-17 needs a re-sign.
2026-08-30bb · 2026-09-02 · PLAYBOOK BAND + RECAP CONSISTENCY (Peyton call): every Designed-playbook book frame wears the same header band anatomy, the book opens with its recap section, and the composed 2.0-full draws recap + filled chapters as ONE scroll. Masthead condensed to this line.
2026-08-30ba · 2026-09-02 · CAROUSEL TIER FIX: the desktop deck no longer emits 768/375 units as blank slides (they were leaking through a pane-level .step wrapper). No frame was deleted.
2026-08-30az · 2026-08-31 · OUR-READ RETIREMENT FOLD-IN (Peyton ruling): the playbook (IR2pb / -v2 / -m) now opens TLDR + recap + "How you show up" (the folded-in reputation read) with the quiet ↻ Read again row at its foot — /brain/read is retired entirely; then the Assistant-reads chapters, then the internal playbook, every chapter head wearing an Assistant reads / Assistant doesn't read label (f35 readby grammar).
2026-08-30ay · IR2pb RENDER FIX: the book is ONE continuous paper column inside the sheet (book-stage host), nothing clips under the band, 64px reveal shows the dimmed Brain page.
2026-08-30ax · 2026-08-31 · Sheet landing + RC-open: IR2pb as a sheet over the Brain page (Save to Brain · Not quite — re-read · Save a copy ▾); new RC-open (7a) research-done beat with the auto-open notice (AC-BRAIN-127c/134).
2026-08-30aw · 2026-08-31 · Playbook shelf reorg (Peyton call): Playbook now has exactly four shelves — Designed playbook (Ink & Air book + example books) · Playbook summary (the on-Brain-page index, 2.0 canonical first) · Co-edit (the edit sheets, incl. the active Sell/Q&A depth sheets) · Archived (Customer Q&A leftovers). Share loop moved to Import — it is an ingest journey; the J3c apply spine stays live.
Older decisions live in the HTML comments at the top of this file (View Source) — trimmed from the page 2026-08-31 (Peyton call).
Desktop — a slide deck: one frame per view. ‹ › (or arrow keys) step the deck; the chip names the frame.
Tablet — a slide deck: one frame per view. ‹ › (or arrow keys) step the deck.
Mobile — a slide deck: one frame per view. ‹ › (or arrow keys) step the deck.
The Brain is the founder’s single knowledge page — the place every assistant reads from, so teaching it once is what beats a VA who churns. One flow, one direction: she opens the page, picks one of two doors (paste her website, or teach it from files, text, screenshots, a Google Doc), and ONE progress line — “Building your Brain” — runs the agent, asks its questions inline, and lands a draft playbook she confirms rather than authors (“sounds like you — because you confirmed it does”). Weeks later the same page carries the loop — freshness, gaps, teach more, read again — and the book itself owns editing. This file is the pixel contract for that whole journey: drawn FROM prd-pl-brain.md (master), with branding, FAQ-generation and gather-inputs sub-PRDs cited per frame. Shelves mirror the stages, never a PR.
_specs/spec-brain-progress-line-copy.md — cited, never re-drafted here.research-shared-material is #3129’s target state, not this contract (see BS-1t).<!-- PASS 2 --> marker.PlaybookPage.tsx): title · her words · one door. Provenance rides each line as a quiet chip-origin (from your site / from what you shared / our research); a row marks only what differs (+ you told us · ✓ you confirmed · ◔ thin). One save, whole book (AC-BRAIN-137) — never per-row Use.prd-pl-brain.md §“Playbook state flow”. Persona packs pre-fill internal sections (founder corrects rather than authors); ONE Brain history, of the confirmed playbook (vN on Activity).The product-level structure the shelves mirror (Chief Designer audit §1, approved Peyton 2026-09-05). Every feature owns exactly one seat; guest is stage 0 and never enters the rail. The PRD’s five-phase FILL sequence (Import → Recognize → Customer-ready → Teach inside → Live, Peyton 2026-07-15, prd-pl-brain.md §“The build flow”) still describes what fills when; it no longer organises this file.
0 GUEST 1 START (zero state) 2 BUILDING — one line, two doors
┌───────────────┐ ┌────────────────────┐ ┌────────────────────────────────┐
│ /brain, no │ │ ┌───────┐┌───────┐ │ │ Door A · paste URL → free peek │
│ account: │ ──► │ │ Web ││ Teach │ │ ───► │ Door B · Teach sheet → Read │
│ example books │gate │ └───────┘└───────┘ │ │ (files · text · screenshots │
│ open; every │ │ steer line, 1 caveat│ │ · Google Doc) │
│ real tap → │ │ example covers │ │ ▼ same line, seeded diff. │
│ account gate │ │ rail VEILED │ │ "Building your Brain" │
└───────────────┘ └────────────────────┘ │ Researching — … / Reading — … │
│ inline ask rows: Row A which │
│ business · Row B is this you │
│ · ≤2 agent asks · Other → │
│ type what's right · That's me │
│ — run ✦ (sheet = editor only) │
│ ✓ done · ◐ working · ◐ waiting│
│ on you · ✗ couldn't read →rail│
│ rail LIVE: Where you stand · │
│ Needs you · Activity dormant │
└───────────────┬────────────────┘
▼
5 EDIT — from the book 3 LAND — draft → confirm
┌──────────────────────────────┐ ┌────────────────────────────────────┐
│ /brain/book → 2.3-edit slide │ ◄─────── │ playbook rises as a SHEET, │
│ chapters in book order, one │ tap a │ unconfirmed: TLDR + recap + How │
│ field kit; depth sheets │ chapter │ you show up (+ Read again row), │
│ (what you sell + listing │ │ Assistant reads / doesn't read, │
│ layer · Q&A · sound · look) │ │ provenance chips; band = Save to │
│ Share anything from a form │ │ Brain · Not quite — re-read │
│ row (origin docks left) │ │ ─► confirm ─► vN ─► index (BS-2): │
└──────────────┬───────────────┘ │ ONE book · Example playbooks · 5 → │
│ │ rail settles (58% · 3 of 8 · …) │
│ └────────────────┬───────────────────┘
│ ▼
│ 4 LOOP — the same page, weeks later
│ ┌─────────────────────────────────────────────┐
└─────────► │ rail: Where you stand (%, gap rows, stale) │
│ Needs you (unread · look gap · 90-day │
│ nudge) · Activity (vN, Open Doc) │
│ cap: 3 rows + View all N → (sheet) │
│ Build again = the SAME line, fewer rows: │
│ Teach more (additive = source rows only) │
│ Read again → agent rows → V2 what changed │
│ → confirm again · resume row for a draft │
└─────────────────────┬───────────────────────┘
└──► back to 3 (confirm)
EXAMPLES ride stage 0/1 as the pitch (carousel + template book) and stage 3+ as
one hairline row (reference). They are never a stage of their own.
prd-pl-brain.md §The build flow) — on this file that is the rail’s gap order (Needs you before Where you stand’s internal rows), not a shelf.AC-BRAIN-* / AC-PLAYBOOK-* / AC-BRANDSIG-* / AC-OFFER-* → prd-pl-brain.md · AC-VOICE-* / AC-STYLE-* → prd-pl-brain-branding.md · AC-FAQGEN-* → prd-pl-brain-faq-generation.md · AC-URLX-* → prd-pl-brain-gather-inputs.md.AC-BRAIN-10/11 id collision across two PRDs — citations in this file always mean prd-pl-brain.md. Governance history: parity/parity-brain.md.retired, hidden on every shelf, and resolves to its line under the register. Deleted pill and tab names are mfTab() aliases..url-legend + .fallback-row + .ds-example triple is retired on this screen.BrainIntakeScreen.tsx (hero + fallback door re-composed as an equal pair) · Where you stand = BrainGapQueue · Needs you = BrainReadRegistry variant="compact" · Activity = ActivityChrome fed by brainActivityLog. Specified-not-built here is the PLACEMENT, not the parts: shipped draws them Teach → Needs you → Where you stand (reverse of this frame), and mounts no rail at all on an empty start (AC-BRAIN-119/120). Activity is NOT part of that delta — shipped gates it on playbookStarted and these frames draw the same thing: dormant until a playbook exists, logging from then on. Row grammar reconciled 2026-09-04 — every Activity list in this file now draws the shipped ActivityRow (subject · quiet vN pill · Open Doc on saved rows · time right), and See all → renders only past 5 rows as ActivityChrome does. The old label+time list and the retired vN · label leading-version list are both gone.f-ir-1 (IR1 · Filled — Research armed) — merged 2026-09-05 (pass 1: note only; the armed state is drawn on this frame in pass 2) mergeTwo ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
f-ir-1, retired 2026-09-05): the only distinct beat was “URL typed, Research lit”; its “no rail yet” caption was superseded by v5.22 — the rail is present, veiled..input-shell; no legend re-appears under the doors — the one caveat per door already says what a link can be.Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
.door-state.need) — same slot BS-0a fills in neutral ink. Not a toast, not a rail row — nothing is “needed” yet, she simply has the wrong door. Research dims; Teach stays lit. One lantern on the page.Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
_specs/spec-brain-progress-line-copy.md §2/§3 only.BrainReadRegistry entry, drawn once each side). Never “Try again” on a walled host.playbookStarted gate, verified on origin/main @ bb5a1fe5c. No new build. Where you stand and Needs you DO fill during the read; only Activity waits.Teach your Brain more row as IR3, same door (19).ActivityChrome (≤5 rows, See all → Pulse Activity only past 5) fed by brainActivityLog = version log + our-read log, mounted only when playbookStarted. Verified on origin/main @ bb5a1fe5c: production is right, and this frame now draws it that way — dormant while the read runs, then logging from the first real playbook status onward (edits, re-reads, teaches). Nothing to build here.f-ir-2 (IR2-v3 · Researching — honest progress) — merged 2026-09-05 merge8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
StepRow); title stays body ink, the meta is quiet (--fg-40), the door is a quiet underline — no alert box, no amber. Nothing on this row asks for attention it hasn’t earned: the line reads as still working.leading-relaxed, never truncated; the door sits on its own line under it with a 44px target on mobile.8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
<Verb> — <exactly what> grammar every other ✗ row uses — title Couldn’t read — uglywooretreats.com (share origin: Couldn’t read — what you shared), meta check the link, try another page, or share a screenshot. Never the 14-word sentence as a bold title (it wrapped to three lines at 375). copy contract §2 still carries the one-string form — Chief Writer to ratify the splitunreadFromSkippedUrls projection, why-line We hit an error trying to read it.). Never a second copy, never a toast.--fg-55 → 80% on hover), side by side on one line at desktop, wrapping to two rows at 375 (flex-wrap) — each a 44px target on mobile.8 sections. Rows appear here as the read lands.
We hit an error trying to read it.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
readStopCopy.ts ↑ top view at 375 ↑↓buildingLineCaption.ts): the eyebrow stays the locked 3-word enum, so the ROW is what says “stopped” — never a fourth head word, never working (nothing runs, no spinner anywhere on this line).<Verb> — <exactly what>: title Stopped while reading — uglywooretreats.com (share origin: — what you shared). The reason is quiet meta, verbatim from src/lib/brain/readStopCopy.ts — ONE source for both surfaces, never re-typed at a call site: ai_capacity → AI is at capacity — this one's on us. No charge for what didn't go through. · topup_required → Your wallet is empty — add funds to keep reading. · failed → the mapped message, else Couldn't finish this read — try again in a moment. (drawn: ai_capacity, the #4784 OpenRouter-402 class). #4959: leftover no_byok_key is not a stop reason and never opens a Connect-AI / own-key door — it lands on failed with the generic line. Amended 2026-09-12 (Peyton, binding, builder wave 2): failed now covers EVERY EF failure on the read paths (write_failed, synthesis_failed, classify_failed, rate_limited, an unreadable 402…) with the EF’s own founder-voice error string as the meta when it has one — only 401 (session expired → sign-in) draws no row.readStopRef, builder wave 2): <error_code> · HH:MM UTC — ai_capacity · 07:43 UTC — 11px, white/40, between the reason and the door. A founder’s screenshot alone identifies the failure; never a bare timestamp, never PII or the raw vendor body; http_<status> when the EF gave no code.retryStoppedRead). Never Try a different link (a different link doesn’t fix a billing stop) and never the screenshot door (the site was never the problem). Honest by construction on this path: the re-run re-enters at the FREE crawl and the paid bundle still sits behind the confirm gate — no silent re-charge, so #4275’s “no one-tap re-run that re-charges her” still holds.liveUnreads unchanged by #4778) — Needs you · 1 is Instagram only. Drawn as shipped, not as wished (see Design).StepRow status="failed", text-destructive); the copy beside it stays monochrome — reason line at white/40 on this surface. It is a row, never an alert box, never a toast.topup_required names a fix (add funds) but the only door is Try again — tapping it on an empty wallet stops again with the same words. Follow-up: Add funds → wallet once ruled. no_byok_key is retired (#4959) — leftover EF codes map to generic failed, never a Connect-AI door. ai_capacity — the drawn case — is the one reason where Try again IS the fix.BusinessReadHero (the URL hero inside the Teach sheet) renders this exact ✗ row through BrainReadingProgress stopped under the same eyebrow, ALONE — no pending rows beneath it, because that surface has no gate or reputation leg until a read runs. Reason line there was white/50 at draw time — aligned to white/40 in b7cbec4bf, so both surfaces now carry one ink. Not redrawn: the row IS this row.8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
b7cbec4bf: readActive = shareGateReadActive || crawlFailed || readStopReason !== null, pinned by BrainPage.readStopMount.test.ts; the frame now depicts a reachable state on the pre-gate path too. As found: the component shipped the row (BrainResearchChecklist → readStopReason, tested), but the page-level mount readActive = shareGateReadActive || crawlFailed (BrainPage.tsx :2245) does not include readStopReason. On the day-one path a stop BEFORE the confirm gate — the free crawl returning ai_capacity, the 2026-06-17 depleted-key incident class — resets researchPhase to null with gatePending still null, so the research screen unmounts and this row never renders. The same mount fix AC-BRAIN-41 gave crawlFailed was owed here and is now in. Ledger row stays NEEDS-RENDER-CHECK until a real capacity stop is walked on the route.f34-share-next (1.4 · After Save) and f-ra-teach (RA-teach · Door B) — merged 2026-09-05 mergeresearch-shared-material (#3129) — specified-not-built. Do not relabel the sheet button Research until that tap actually runs research.nothing runs until you answer
8 sections. Rows appear here as the read lands.
Couldn’t open notion.so/uglywoo/handbook — screenshot or PDF it.
Nothing yet — starts once your playbook exists.
AC-BRAIN-203): while lookStyleMoodboard is frozen the Add a moodboard · Share anything → row does not render in Needs you at all — not veiled, not uncounted, gone — because Needs you is the actionable list and a row she can’t act on contradicts its name; the coming-soon veil lives where the vision lives (chapter 06 / 2.11a). The row returns, uncounted, when the flag flips. Removed from BS-1 / BS-1-unavail / BS-1-unreach / BS-2 and their 375 twins.View all N → (BL-2). Threshold is a Peyton call.privateBetaFreeze.ts coEditDoors: true already hides PlaybookPage’s chapter list (Peyton lock, 2026-08-31). Where you stand owns what’s missing; the tome owns reading and editing chapters (2.3). Chapter sheets stay live — reached from the rail’s Add rows.Instagram is walled — we can’t read it as a link. Share a screenshot.
Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
See what you'd get
Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
See what you'd get
Two ways in. Pick the one you have — you can do the other any time.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after. Stuck? Let MystFlo help setup →
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
Example shelf follows — same as BS-0-m.
8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
Example shelf follows — same as BS-0-m.
8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
Example shelf follows — same as BS-0-m.
8 sections. Rows appear here as the read lands.
We hit an error trying to read it.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
Example shelf follows — same as BS-0-m.
8 sections. Rows appear here as the read lands.
Instagram is walled — share a screenshot of your profile.
Nothing yet — starts once your playbook exists.
Example shelf follows — same as BS-0-m.
nothing runs until you answer
8 sections. Rows appear here as the read lands.
Couldn’t open notion.so/uglywoo/handbook — screenshot or PDF it.
Nothing yet — starts once your playbook exists.
Example shelf follows — same as BS-0-m.
Easiest next share — a booking PDF or a screenshot of how you confirm.
Instagram is walled — we can’t read it as a link. Share a screenshot.
stale row, counted, tappable. Never a ring, never a second %.BrainReadNudge (90-day soft nudge, consent-gated, session-only dismiss) seats under Needs you as one row + why — same copy, new seat. Never auto-runs (f16).ActivityChrome, drawn 2026-09-04 in its real vocabulary — production emits exactly four labels: Research landed (playbook version, research_confirm) · Confirmed on your playbook (any other trigger) · Our read written (read note) · Saved Business playbook V{n} (Doc export, carries Open Doc). ≤5 rows; See all → Pulse Activity (f4c) only past 5, so it does not render at three. Drawn here as section 3 of the named rail rather than as a loose block under the gap queue; that seat is the only new part.ActivityRow is flex-nowrap + truncate, so in a rail this narrow Saved Business playbook V2 clips to a stub. Drawn wrapped here so the row stays readable — the fix (container-width wrap for the rail seat, or a shorter saved-Doc label) is a Peyton call, not decided here.ActivityChrome renders that link only when there are more than 5 events. Cap rule as BS-2.Soft nudge — nothing runs unless you say so.
ActivityChrome label: MystFlo added 12 FAQs and your policies (trigger support_seed, actor = support). Production emits four labels today (BL-1 note); this one needs a PRD row in prd-pl-brain.md before build.al-row: label · version chip · time. "MystFlo" is the first word so the actor is the first thing read; no avatar, no colour.Instagram is walled — we can’t read it as a link. Share a screenshot.
AC-BRAIN-57 — the re-run stays consent-gated, paid, and dismissible; no re-run ever starts without an explicit founder action. Unchanged by this frame: the row is a door, tapping it is still the only way anything runs.AC-BRAIN-57 — the 90-day threshold now governs the row's copy and weight only, never whether the door exists. Supersedes the "soft nudge card that appears at 91 days" reading drawn in 5.1. Open call flagged to Peyton (CPO recommends copy-only, drawn here as recommended).prd-pl-brain.md, website ask with "skip — don't have one yet") — the skip path shipped; this is the come-back path that never did.website_url transition from empty → set makes this row appear for the first time on an account that never had one. First-ever read is exempt from the 90-day gate, which measures time since the last read and cannot gate a read that never happened. First appearance is drawn at 33e-biz-web..teach-row verbatim — icon + title + one-line description — stacked directly under Teach your Brain more, which is the same stacked disclosure pattern, not a horizontal control. Side-by-side was rejected: the rail column is too narrow for a pair, and two doors of equal weight read as one choice when they are stacked and as a fork when they are beside each other.TEACH_SUB_LIVE string ("Paste, drop a file or link, share a screenshot.") is the correct copy..playbook-grid__rail (≥900px) / the mobile work stack below it, "never both at once". .work-stack .rail-confirm is already styled in this file, so the row lands in the mobile stack with no new work. No hand-drawn 375/768 twin is needed or wanted here.gate-card in 5.1 (the "It's been 91 days" nudge) — retired by this row. (2) BL-1's freshness half, which draws the nudge as a Needs you item rather than a standing door. The first gate-card in 5.1 — the event-first price probe — is untouched and stays specified-not-built per AC-BRAIN-57's own Test cell..missing-item.need under Needs you. A read that is not stale yet is quiet, full stop — no lantern — and does not belong under Needs you at all, because it is not asking for anything. BL-1-m now carries the same stacked Research again row as every other tier.Edit a chapter
AC-BRAIN-57 — soft nudge at roughly 90 days, consent-gated, dismissible, never a timer alone starting a run. Same door as BL-1a; only copy and weight change.AC-BRAIN-57 — still no re-run without an explicit tap. Lighting the row is not running the read..teach-row, same seat, same title, same icon, same order. The one difference is that the "Last read N days ago" sub-line takes .teach-sub.need → --lantern. Nothing appears, nothing unlocks, nothing has to be dismissed..rail-block:has(.rail-resume) .missing-item.need). This line needs the same guard: an unconfirmed paid read outranks a stale read, so while a resume row is present this sub-line stays quiet. That selector does not exist yet — build scope, not drawn as a second gold moment here.Edit a chapter
AC-BRAIN-127 — repeat passes derive What's new / What this would update display-time from the prior brain_read_notes row. Stays specified-not-built; this map does not change that, it names the four entries that must land on it.AC-BRAIN-57 — every one of the four entries is consent-gated and paid at the tap. No entry runs a read implicitly.websiteRead.onRead pipeline), never four pipelines. A second research path is a bug, not a feature.View all N → summary row. Applies to Where you stand, Needs you, and Activity alike. Threshold (4) is a Peyton call..rail-more row: 44px, label left, → right, at the END of the section, and never carrying a row’s left edge or hairline.BrainReadRegistry.tsx gains a limit + summary row; the sheet is ModalWrapper presentation="sheet" hosting the same component unlimited. Specified-not-built./press — tried 3 times, we’ll stop asking is a degrade state, not the group’s reason, so it stays). The ungrouped seat — f5 and the capped rail in BL-2 — keeps f5’s four-part grammar verbatim, reason included. AC-BRAIN-48 ↗ unchanged: Try again degrades after 3..rail-more grammar as Needs you; the sheet behind it is FLAT, because a missing section has no “why” to group by..rail-more row in all three: 44px, label left, → right at --fg-40, sitting at the END of the section’s rows. It is not a row — no ::before edge, no bottom hairline — because it opens a list, it isn’t an item in one.Add →, superseded by answer waiting when a draft is already staged. No lantern in the sheet: the one gold moment stays on the page behind it (U12).BrainGapQueue.tsx door + WhereYouStandSheet.tsx. Built — door grammar drifts (PR #4477 review B1/B2: renders as a 12px text button at min-h-[32px], below the 44px floor, and sits after the “Easiest next share” hint instead of at the end of the rows).ActivityRow grammar (subject · quiet vN pill · Open Doc on saved rows · time right). The cap changes how many, never the row.ActivityChrome.tsx (railCap prop) + ActivityViewAllSheet.tsx. Built — door placement drifts (PR #4477 review B1/B2: the door renders in the section HEADER, replacing “See all →”, and carries no 44px floor). Non-rail callers keep the ≤5-row / See-all-to-Pulse behavior untouched.presentation="sheet" ↑ top view at 375 ↑↓Open Doc where the event has one (saved_doc); the rest carry subject + vN + time only.ActivityViewAllSheet.tsx currently passes title with no subtitle, so its band is a half-height outlier next to the other two sheets. One prop.ActivityRow grammar, unlimited. No groups, no re-sort — newest first, same as the rail./brain, before signing up AC-BRAIN-08 · AC-BRAIN-15 ↑ top view at 375 ↑↓/brain with no account, I can see exactly what the playbook would hold and open a finished example before I ever sign up — but nothing about MY business renders until I do.BrainIntakeScreen renders identically for guest and member; only the header and the CTA behavior change (onGuest prop). The retired two-door pair (Instagram + files) is gone from this drawing.useAuth().isGuest, shell RS1/RS3 — no GUEST badge, retired 2026-07-24).Example playbooks · 5 → hairline row under “Teach your Brain more” (CPO + Chief Designer 2026-08-16, V3 lock 2026-08-18 — #3608).The example shelf is the 4-persona SUBSET with authored playbooks (examplePlaybooks.ts: Retreat host / Bloom Retreats · Workshop host / The Clay Room · Drop maker / Ember Goods · Custom-order / Stitch & Story) plus a drawn example read cover (“What we understood” — AC-BRAIN-98). Not the full 8-persona picker roster (1b).
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after.
Grab your Instagram profile plus 3–4 posts — captions visible. Instagram only shows profiles when you’re logged in — screenshot from your own account.
WaitlistModal directly (useGuestGate.tsx); “early access” leads because most visitors are new founders.AuthModal in login mode, one level up so it sits above this dialog.Paste your website. We read your pages, then look up what else is public under your business name. ~5 min.
Grab your Instagram profile plus 3–4 posts — captions visible. Instagram only shows profiles when you’re logged in — screenshot from your own account.
How should we reach you? (fill at least one)
Already got private access? Sign in
BrainPromiseList) and the “See what you’d get” text rows are replaced by a shelf of the five persona example covers — the covers ARE the promise. Nothing extra sits under the shelf (Peyton pick: no “11 chapters” line). The 11 section hints are NOT lost: they relocate into every book as the structural deck line under each chapter title (see f33 and f35).Example playbooks · 5 → hairline row on the populated index (9-preview, both tiers) — as a sheet/overlay, never a standing second shelf under her books. Post-playbook the “Build mine” foot of f35 loses its persona-tagging side effect (persona already set) and reads as a plain back-to-Brain door.EXAMPLE (never wrapped persona strings); the TITLE is the persona (“Retreat host”) — who the book is for, readable before any fictional name; the business is a small credit line under it; “Tap to read” pinned at the foot. Each cover wears its persona’s own fictional Look palette (the same palette its Branding chapter shows) — cream/charcoal, stoneware/kiln, deep sage, char/ember, linen/indigo — so the shelf reads as five differently designed books, which IS the pitch that her book gets her colours. White stays uniquely HER real playbook (sharpens the one-invert lock): an example cover is never white. Tap a cover → that persona’s template book (f35), same Ink & Air system, same colored cover.lg:hidden fork), and a new persona later is just one more playbook on the sliding side. Not an option-picker: Research → stays the single hero action, vertically first; browsing playbooks sideways is how a shelf works — the covers never become config radio buttons.persona_slug is unset — records that persona as hers, so the tailored/generic question map follows her pick. Choosing does NOT change the generated book’s design (one design; her content, her Look).Paste your website. We read your pages, then look up what else is public under your business name. ~5 min.
Grab your Instagram profile plus 3–4 posts — captions visible. Instagram only shows profiles when you’re logged in — screenshot from your own account.
Paste your website. We read your pages, then look up what else is public under your business name. ~5 min.
Grab your Instagram profile plus 3–4 posts — captions visible. Instagram only shows profiles when you’re logged in — screenshot from your own account.
AC-BRAIN-126 — sheet title is Teach your Brain. Left pane stays What you can share. Composer stays the one well. Specified-not-built vs shipped Share anything title.AC-BRAIN-93 — one no-website door. Instagram profile + posts is a first-class start. Guest tap is 1.2, not this sheet. Intake capability line on guest Start may keep Share anything.AC-BRAIN-63 — same sheet; composer never changes; charge on the primary, never on drop. Empty primary stays disabled.AC-BRAIN-101 — desktop ≥1024 is guidance LEFT 40% / composer RIGHT 60%. 768/375 stack, guidance above the box.AC-BRAIN-08 — guests never see this sheet.AC-BRAIN-136 (IN BETA, Peyton override 2026-08-31 — ruling 5: "we need the IG path first and the description of their business — else the research agent wouldn't work well"): when identity is unresolved (day-one, nothing named yet — identityName empty on the share path), the left pane leads with the locked copy-contract line naming the WHY — "No website? No problem. Share your Instagram profile or a few full-page screenshots so we can find your business — or type your business name and what you do." This is a reframe of THIS SAME door, not a new sheet. Once a name IS known (repeat share on an existing Brain), the plain 1.3-share framing above stands as-is.PostReadShareAsk panel (kicker YOUR CALL · Share anything →) is legal only OUTSIDE the sheet — the intake / after-read page (nextStepSlot), the rail's Needs you rows, the line's ✗ rows, the band's Not quite — re-read. Its third mount, inside this sheet (postReadAsk prop), is a no-op and is deleted. The left pane is guidance; the only actions in the sheet are the composer's own (Read · Link Docs ▾ · the resume row on 1.3-sheet resume).AC-BRAIN-93 — the door’s nouns are real in one composer: Instagram profile, three posts, a PDF, other docs.AC-BRAIN-63 — charge fires on Read, never on drop. Confirm chrome is Before we read. Drawn verb is Read; Research it ✦ is the #3129 target only.AC-BRAIN-146 — a PDF/DOCX/TXT upload that extracts real text lands as an unconfirmed playbook draft through the SAME organize-content pipeline a paste already uses — never just RAG chunks with no playbook-facing draft.AC-BRAIN-147 — a file with no extractable text (scanned/image-only, corrupt, or extraction fails) shows the honest-empty message below, never a false-success "chunks created" message with no draft.mg-seal-mid rotating (Motion-is-earned, U13 — motion only while the read is live, then stop), same icon+text grammar as the playbook field rows' Saving state. No new spinner invented..warn-text — the same amber "nothing gathered on this one yet" pattern already used elsewhere on the playbook. No new visual chrome. Copy mirrors AC-BRAIN-145's Google Doc/Sheet sentence, noun swapped to PDF..chip-state under the chip row — the same slot BS-0a/0b use under the Research field, and the composer’s ONE inline surface: the same line, type (.caption 12px · --fg-55 · 8px above) and wide chips as 3f · Already added and 3g · Limit reached (PR #4490 shipped them inline, not as toasts), and the seat 3b’s .warn-text honest-empty line takes. One grammar in one box: dup · limit · honest-empty · link accepted · link walled. Neutral here; lantern on link walled. Never a toast, never a second composer..attach-chip · .sw.doc / .sw.link · .nm · .rm. The name is what she pasted, hostname stripped of https:// and www.google_not_connected / credentials_expired are honest, named states — never a silent empty draft. Expired reads Reconnect Google → in the same seat (playbook §4 connection verbs).opacity:.35) rather than disappearing — the sheet’s shape never changes with state. Same inline surface as 3f · Already added — the door to Google sits in the line, not in a toast.AC-BRAIN-150 — a connected file/doc read (result.input?.file) never starts a website research pass and never opens BusinessIdentityGate with blank fields. The proposals classify DID find (here: 3 of 30 FAQ pairs shown, the rest confirmable below) stay visible — reusing the SAME confirm-then-save proposals card every other door uses (BrainGapProposalCard), never re-drawn as a new component.IdentifyMePanel's exact chrome — no new visual language — widened to name BOTH remaining paths: share your website, or your Instagram profile (a Doc read worked fine; only the identity is missing, unlike 1.3-share's genuine no-website case).AC-BRAIN-136 (IN BETA, ruling 5) — this is a composer-alternative STATE of 1.3-share's sheet, not a new sheet or a wizard step. Submitting seeds GateIdentity and re-enters startShareResearch (PR-C3) — she lands on the SAME identity gate (TQ-gate) any other share reaches, now pre-filled from what she typed..sf-row field grammar verbatim (label left / input right, the playbook's own field rows) — so typing here reads as the same kind of typing she'll do everywhere else in the product, not a bespoke onboarding widget.AC-BRAIN-63 — same sheet, composer never changes, charge on the primary and never on drop. The primary stays Read.AC-BRAIN-125 — the pasted URL is kept and written to sales_channel_urls today. NEW (PRD debt): a pasted ROOT domain, on an account with no website_url, should also register as website_url — so a Teach-built Brain has a website on file for the Research again row to act on. The row itself is permanent and does not depend on this — registering the URL is what gives it something to read, not what makes it appear.BrainShareSheet.tsx records "site-read stays on Research my business (intake), not this composer." So the distinction is carried by copy on the chip — never a second primary, never a second field..attach-chip / .nm / .ht verbatim — the existing "we'll read this page" hint simply gains its second clause. No new component.$N, no ✦ anywhere in this composer — the Read primary is the only charge point and it is already honest.AC-BRAIN-63 — charge stays on Read, never on drop. Drawn verb is Read. No Research it ✦. No new charge-confirm.AC-BRAIN-101 — same 40/60 chrome as 1.3-share. 768/375 stack, guidance above the box.linktr.ee/you with a Kept hint — Shopify / Etsy use the same grammar. No “Before we read” block.linktr.ee/you. Moodboard row stays coming-soon veiled. Never say free.AC-BRAIN-80 — drawn tap on the sheet stays Read. This beat is the after. Dispatch is research-shared-material (#3129) — specified-not-built. Do not relabel the sheet button Research until that tap actually runs research.AC-BRAIN-127g(a) (amended 2026-09-04; rows reconciled here 2026-09-04b, #4446) — this frame drew grouped rows before the clause existed, and drew them in a grammar the amendment retires. Two corrections, both honesty fixes, not restyling. (1) The old rows staggered per-group state — Instagram profile + 3 posts — in as done above PDF + Google Doc — folding in as seal · mid. The pass does not walk source groups in sequence; extraction finishes at stage time, so every shared row is terminal together. The staggered verbs invented a phase the backend cannot report. All shared rows are now plain done seals and carry no state verb. (2) Instagram profile + 3 posts conflated two different source kinds into one row. The profile is an instagram.com URL; the 3 posts are screenshots. They split — Instagram and 3 screenshots — because a screenshot is never evidence of Instagram (the igLikely filename/ratio heuristic is disqualified: it matches any square or 4:5 image, so a square brand photo would be labelled Instagram). Full grammar on the established-Brain twin, 1.4-teach.AC-BRAIN-127 (amended 2026-08-31) — post-dump Teach lands the read on the playbook, unconfirmed, then confirm writes the playbook. This beat stays the empty-brain start (↗ AC-BRAIN-93). Production stay-on-sheet is ↗ AC-BRAIN-125 until the build.9 details found across everything you shared
BusinessIdentityGate.tsx, both doors converge here (spec-brain-ingest-parity-127 canonical flow). Nothing new is built; this draws the share-anchored copy variant that was missing from the file.shareIntakeCopy.ts): sheet-context reads "From what you shared, this looks like you — confirm before we search." instead of 1f's site-read framing.AC-BRAIN-127g(a)): what you shared — read, not your site — read — same honesty rule as IR2-v3.AC-BRAIN-80 — drawn tap stays That's me — run ✦. Confirming here dispatches the SAME public-lookup pass a site read would run, under the name confirmed in this sheet.BusinessIdentityGate instance — the sheet rises on the pass finishing, never before, and closing it is safe (confirming later resumes, nothing is lost).AC-BRAIN-148 — `shareResearchFromOrganize.ts` now runs the SAME shipped `detectBusinessFaces` the site-read door runs, and threads its result onto `startShareResearch`'s `gatePending.faces`. Reused, never a second detector.AC-BRAIN-149 to `/city-chapters/`, `/chapters/`, `/locations/`, `/cities/`, `/branches/`, `/studios/`) OR from chapter language + first-person copy with no URL at all (the example below — an Instagram share, no link) — the detector was never URL-only.AC-BRAIN-155 — Door B runs seed → scope → ask → expand → narrow → synthesise with the share as seed; the Teach gate carries faces exactly as the site door does (TQ-scope), never a plain gate.AC-BRAIN-138 — share-origin passes lead with What you shared — read before any site or reviews row.AC-BRAIN-128 — the kickstart state's row copy gains the confirmed scope word: Kickstarting your research — reading Bali.AC-BRAIN-164 — on an established Brain this line never re-mounts the gate: the stored scope rides in silently (1.4-teach).AC-BRAIN-162 — from here on the rows are identical to Door A: expanding (one row per source) → narrowing → synthesising → reputation → consolidating → done.variant: 'share' strings, not a third eyebrow.AC-BRAIN-127g (spec-brain-ingest-parity-127 §5) — from the Read tap the Teach pass narrates on the main Brain page, above the playbook (the read-spine seat), in the research-checklist grammar. Never a modal, never toast-only, never a stay-on-sheet spinner.AC-BRAIN-43 sources-not-stages holds here.AC-BRAIN-127g(a) (amended 2026-09-04, Peyton ruling) — the line renders honestly what the pass ACTUALLY ran: never a row for a pass that didn't fire, never invented phase names the backend cannot report. The what you shared beat groups by SOURCE TYPE (Instagram · PDF · Google Doc/Sheet · pasted text · screenshots) — never one blended row, never one row per file; a source type the pass didn't report is omitted, never inferred. The research beat stays ONE row. Grouping is specified-not-built (#4446) — the classify carries a content taxonomy, not source provenance, so the rows need a source-type inventory threaded from the composer first. The retired two rows only numeral was already stale: AC-BRAIN-139's additive leg runs no research pass and correctly draws ONE row. [DRAWN 2026-09-04b — the rows above are the target grammar; see Row grammar below. The inventory landed same-day in #4455: ShareSourceItem { kind, label }, TeachResearchArgs.sources, and groupShareSources() returning { kind, labels, count } — one row per distinct KIND, which is this grammar. The render is still unbuilt: nothing consumes sources yet, so the live line still draws the single blended row.]OrganizedSections (organize-classify-output.ts) carries no provenance and foundCount is one batch scalar over a joined corpus, so "rates-2026.pdf — 4 details" would be invented attribution. When only one group exists the caption drops the tail and reads 6 details found.instagram kind is produced ONLY by an instagram.com URL in the share. The filename/aspect-ratio heuristic (igLikely, imageIntent.ts) is composer chip copy and is disqualified as a source-type signal — it matches any square or 4:5 image, so a founder's square brand photo would be labelled "Instagram." Screenshots group as {n} screenshots and nothing else. This established-Brain frame therefore has no Instagram row at all; the walled IG link sits in the rail where it belongs. The empty-Brain twin (1.4) does draw one, because a real IG profile URL exists on that path.AC-BRAIN-127a — no public lookup on Teach: never draw the Google / reviews / Instagram rows from the Web walk on this line. 127a is a dispatch clause (what the pass RUNS — share corpus only); it never governed row grouping. This bullet cited 127a for the display rule until 2026-09-04 — display grammar is 127g(a) above.AC-BRAIN-127c (amended 2026-08-31, Backlog ruling) — when the pass lands, the playbook opens with the read landed unconfirmed (IR2pb): she never clicks to reach it the first time. The line does not collapse behind her — it settles into the quiet done row (1.4-teach-done) and stays until confirm. Two reasons it must: backing out of the deck unconfirmed would otherwise leave a read she already paid for with no door back (↗ AC-BRAIN-127e), and the rail's couldn't-open rows are projected from this same live state — collapsing it would delete them.#4275), so a one-tap re-run that silently re-charges her breaks transparent pricing. ↗ AC-BRAIN-43 — that resume row says what you shared, never "your site," on this path.done seal, because every one of them genuinely finished: extraction happens at stage time, before the Read tap, so all shared rows are terminal at first paint and only the research row is mid. Never stagger them. Per-group state verbs ("— in", "— folding in") are retired from this family — they imply the pipeline walks the groups in sequence, which is a phase the backend cannot report (127g(a): no invented phase names). The seal is the verb, so no row repeats "— read"; the eyebrow already says Reading what you shared.
pdf / text_file ×1 → title rates-2026.pdf · no meta (the extension already says the type)pdf / text_file ×n → title {n} files · meta the names, ·-separateddoc / sheet ×1 → title the Google file's name · meta Google Doc / Google Sheet — the one meta that earns its place, since the name carries no extensiondoc / sheet ×n → title {n} Google files · meta the namesurl ×1 → title the hostname, www. stripped · no metaurl ×n → title {n} links · meta the hostnamesinstagram → title Instagram · no meta (hostname-derived only — see acceptance)screenshot → title Screenshot / {n} screenshots · never the filenamespaste → title Pasted text · no meta (that string is the entire available truth)title= — rates-and-terms-for-the-2026-b…final-v3.pdf. Never wrap to a second line; that breaks the 44px row rhythm. Bonus: this grammar means the dropped 3rd argument at BrainPage.tsx:2458 (screenshot filenames, currently discarded at the boundary) never needs to be plumbed.groupShareSources() (#4455) returns first-appearance order only, so mapping its output straight to rows gives staging order and silently drops this rule. The render applies the banding on top. The list is bounded at 6 rows by the taxonomy itself — that is the point of grouping by TYPE rather than per file: twenty screenshots and three PDFs is still two rows, so the line can never grow into a scroll and never needs a "+N more" overflow control.TeachResearchState.leg === 'additive', #4407) runs no research pass at all, so it draws its ONE source row plus Nothing new — your Brain already has this and no research row and no details caption — not a frame of its own, a state of this one.display:none and those rows are in the mobile work stack instead. The "it's on your list →" pointer must resolve its target by which mount is actually laid out — a hard-coded rail id scrolls to a hidden element and silently does nothing on every narrow tier.6 details found across everything you shared
1 link we couldn't open — it's on your list →
Instagram is walled — we can’t read it as a link. Share a screenshot.
We hit an error trying to read it.
Pictures of your colors and look.
AC-BRAIN-179 — ambiguous renders ONE inline ask in place of the two narration rows (never beside them — naming "What you shared — read" here would be a lie, nothing has landed). Yes, add it resumes the exact paid classify (never re-classifies) AND remembers the host, so the same site resolves same next time. No, skip it discards with an honest toast — never a silent drop.AC-BRAIN-158 (pointer) — exactly one question, one tap each plus a visible skip; nothing on this row carries ✦ or a wallet line. The header balance already moved on the Read tap and does not move again here.AC-BRAIN-127e (pointer) — the charged classify is never lost: "Yes" lands it; "No" is a founder choice surfaced as a toast, and the share itself stays on her list.website_url had no writer until this PR). Fallbacks, in order: no host (a screenshot) → is this from {stored name}?; no stored name but a name on the share → is {share name} your business?; neither → is this about your business?AskRow primitive shipped in #4397 — 44px ○ rows at the 24px indent, name + one-line hint; the escape row in Skip's quieter ink. The hint on "Yes" states the side effect plainly (we'll remember {host} as yours) — a write the founder can see coming, never a silent stamp.display:none below the shell's 900px container query).nothing is added until you answer
Pictures of your colors and look.
AC-BRAIN-178). A real, non-overlapping name is the mismatch sibling, 1.4-teach-mismatch.AC-BRAIN-180 — different renders the mismatch row in place of the narration rows: what the page reads as, what the Brain is, two verbs. Same business — add it resumes the exact paid classify (a one-off override — it does NOT remember the host; a founder overriding a real mismatch is not a fact about her stored site). Not mine — skip discards with the same honest toast as the ask's "No". Nothing writes before either tap.AC-BRAIN-158 (pointer) — one question, two taps, no ✦ on the row; the balance does not move here.AC-BRAIN-127e (pointer) — "Not mine" is a founder choice, not data loss: the share stays on her list and the toast says so.AC-BRAIN-43 ✗ grammar is for a source that wouldn't open). It is a question, so it is the lantern.nothing is added until you answer
Pictures of your colors and look.
AC-BRAIN-127e — a charged read is never left without a founder-visible door. The success path does not raise the resume row, so this done row IS the only way back to the playbook review; drawing a collapse here would strand a paid read behind the browser back button.1 link we couldn't open — it's on your list →
Instagram is walled — we can’t read it as a link. Share a screenshot.
We hit an error trying to read it.
resumeReadRow) is superseded — the kept read is the line's own waiting row, 2.0-return; ✗ row + doors here stand ↑ top view at 375 ↑↓AC-BRAIN-127e — the classify already ran and already cost her. Its result lands as a resumable staged read no matter how the second pass fails. Never a silent reset to the composer, never a lost read.AC-BRAIN-43 — the resume row underneath says "Your read of what you shared is ready". It must never say "your read of your site": a Teach pass has no url by construction, and the founder dropped a PDF. Copy keys off the read's ORIGIN, never off whether a url happens to be present.#4275) — a one-tap re-run that re-charges her without saying so breaks transparent pricing. The two honest doors are already on screen: Resume (free, opens what we kept) and the Teach door (share more, priced at the door).StepRow, text-destructive) — the same one the Web walk uses, not a new one for this line. The glyph carries the red; the copy beside it stays monochrome, and it is a row, never an alert box.AC-BRAIN-303/304 (conflict-a-be, v5.78) — two-or-more proposed values for the SAME target in one paste collapse to ONE ask, never last-wins. Its candidates are the VALUES found (USD 40 / USD 45), never row names — a different shape from the pre-existing row-not-found ask (Which one did you mean?), which still answers with a ROW.graft node, not gold) — a single open ask skips the header and IS the lantern row (1.4-ask teach one).useBrainSiteRead.ts's announceReadReady). The Book's own header Save to Brain is disabled too, with this SAME foot caption swapped in under it — a whole-book confirm one tap away from a parked ask would silently drop it._specs/spec-brain-progress-line-copy.md predates the conflict stage) — built from the closest locked device (the "over to you" lantern-title lock, the "nothing runs/answer until…" foot-caption family) and Chief-Writer-ratified 2026-09-22 for this exact batch. Flag any drift from that ratification before this frame is treated as signed.nothing is saved until you answer
graft for the SAME reason the identity ask dims them (1.4-teach-ask's design note, U12) — this batch is the one lantern moment on the page, same rule, one more trigger (BrainPage.tsx's identityAskPending).teachAsks / onResolveTeachAsk), never two answer paths that can disagree.AskRow — same lantern budget rule as 1.4-teach-ask, U12: exactly one gold row on the page. The title carries the "over to you — " lock prefix ONLY here, because this row itself is the lantern; the same title inside a 2+ batch (above) drops the prefix since the header carries it instead.nothing is saved until you answer
AC-BRAIN-153 — reversed (Peyton 2026-09-04, #4443 Req 3): the menu lists document sources only — Google Doc · Google Sheet. Paste, upload and screenshot rows that pointed "one row up" are gone; discoverability moves to the composer's own visible affordances. Recording the reversal in the PRD is the build's job, not this frame's.AC-BRAIN-144 — a pick stages a chip (3e); nothing runs or charges on the pick.AC-BRAIN-154 — either entry with Google not connected opens the nested connect gate and reopens the Picker after connect — unchanged, not redrawn here.--surface-el on --border — the file's existing "Save a copy ▾" pop, not a new device.AC-BRAIN-144 — three items → ONE source_type:'multi' call → ONE charge → ONE landing. Nothing runs on the pick or the drop. NEW (PRD debt · #4485-E) for the tray / multi-corpus / cap clauses.AC-BRAIN-63 — the charge fires on Read, never on stage. No price line anywhere on this surface (binding, #4443) — the wallet line and ✦ belong to Usage, not here..sw.doc folded-corner mark, the PDF the file box.Already added); the frame moves it into the tray. A refusal landing off-surface is the #4407/#4411 class..caption line at --fg-55, directly under the chip it refers to; no border, no icon, no amber — a refusal is information, not a warning.MULTI_MAX_SOURCES = 10, mirrored client-side (#4470 / Req 5c): refused at staging (drop, picker, batch) and at submit — the eleventh never reaches a backend that would slice() it silently. NEW (PRD debt · #4485-E)Limit reached); the frame draws it inline..4 rather than disappearing, so the door stays findable and the reason stays beside it.organize-content resolves (#4443 Req 5); the wait is carried by this line — never a stay-on-sheet spinner, never toast-only.AC-BRAIN-127g — seat kept, unamended. The same main-column read-spine seat 1.4-teach (BrainTeachProgress) already occupies; this frame is that block with per-source in-flight rows.active (◐); every later row is pending (quiet dim dot). The backend reads the tray in one call, so N spinners would be N pretend reads — one honest ◐ says “we’re on it,” the dots say “yours are queued.”AC-BRAIN-43 — sources, not stages. No research row while reading: nothing has been drafted yet, and drawing a pending “Drafting” row would invent a phase the tray read never promised (the landed frames add it only when a leg actually runs).checklist-head eyebrow. The playbook and rail stay fully drawn — the line is a guest above them, not a takeover.truncated renders as ✓ with the real fraction — read the first 62% — the rest didn't fit (bytes_used / bytes_total) — never a generic banner.sourceFailureReason() strings, one per error_code (Reconnect Google to read this · Couldn't reach that page · Nothing to read here · …) — never one hardcoded reason for every cause.credentials_expired → the connect gate (↗ AC-BRAIN-154) behind Reconnect →; the row mints into the couldn't-read registry (read-inventory / retry-read). No second failure surface.AC-BRAIN-43).StepRow, text-destructive): the glyph carries the red, the copy stays monochrome, the door is a quiet jump. Never an alert box.4 details found across what we could read
c21cd579c (Phase-1 casualties now rowed) · awaiting Peyton sign-off Peyton sign-off pending · transferred from PR #4489 ↑ top view at 375 ↑↓422 all_sources_failed: nothing classified; the tray stays staged (#4443 Req 5b). NEW (PRD debt · #4485-E)credentials_expired / google_not_connected row (the existing connect gate, ↗ AC-BRAIN-154); it's on your list → only on rows with no inline fix. Never both on one row.c21cd579c): a file that failed its own upload (Phase 1) is merged alongside the Phase-2 failures, so the lantern’s Your N items and the ✗ rows above it always agree — the composition here (three Google files on one expired token) has no Phase 1 at all; an all-uploads-failed tray reads the same way with Couldn’t upload this — try again as each reason.AC-BRAIN-127e — nothing landed, so no resume row is owed; the staged tray IS the door back. Head caption is waiting on you (copy contract §1: a ✗ row holding the run behind a door only she can take is never done).StepRow status="lantern" (design gate N2(a), 2026-09-09): the gold node (mg-node-lantern) and --lantern text — never the generic amber waiting dot. Its door stays the quiet fg-55 underline; the row's text carries the gold.lanternSuppressed the identity ask already fires. Function stays; only the glow moves.emptyOutcome · drawn 2026-09-09 · re-signed 2026-09-09 against c21cd579c (round 3: conditional door, real per-source rows, §2 grammar) · awaiting Peyton sign-off ↑ top view at 375 ↑↓landTeachOrganizeResult returned 'empty-state' / 'unread-link', page-level states the now-closed sheet was not open to render. Before this frame the line spun forever here (CTO gate BLOCKING 1, 2026-09-09). NEW (PRD debt · #4485-E)c21cd579c). A source the pass could not open keeps its own ✗ row with its reason and door (UnreadRows) — never a blanket ✓.AC-BRAIN-127e — the charged read keeps a founder-visible surface: this line, until she dismisses it.1309e39b7). Look again → shows ONLY when something re-stageable is still in the held tray — a paste or a Google Doc/Sheet read that came back empty (nothing was embedded; reopening is free). Before the render that decides the door, the held snapshot is rewritten to that safe-to-restage subset, or cleared when nothing qualifies — and a cleared snapshot means no door at all: e.g. a single file upload that succeeded, was charged and embedded, then fit nothing (re-tapping Read would re-embed and re-charge). Two visual sub-states, one frame: this one (with the door — the common paste/doc case) is the primary; the door-less variant is the same rows ending on the settled ✓ row with no underline beneath it — the settled-failure “nothing to retry is nothing to draw” rule. Never a disabled door.fg-55 underline, 44px on 375 — the same door grammar as Open your playbook → on partial.settledFailure · drawn 2026-09-09 · awaiting Peyton sign-off ↑ top view at 375 ↑↓AC-BRAIN-127g — seat kept. One row per staged item (never grouped while running — grouping is a settled-view concept, unchanged from reading). Titles: ◐ Reading — Portfolio KGM.pdf · ○ Read — Rates 2026.pdf · ○ Read — Screenshot · IMG_1350.JPG. A queued row is a to-do, so its verb is the bare Read —, never Reading — (copy contract §8; supersedes the pending Reading — rows on the PR-2 frame).pending · pdot), never a second spinner, never green: emerald is done/success only (playbook C12).fg-55, with a quiet show all ↓; 44px tap target at every tier. It is a row on the list, not a button under it.21 received · reading 1 of 21
sourceFailureReason() string — and the ◐ moves to the next row. The queue never stops on a failure (proceed-with-survivors, partial’s rule, now per item).StepRow status="failed"): verb-first Couldn’t read — Screenshot · IMG_1354.JPG, meta = the reason, one door — Reconnect → for a Google credential failure, else it’s on your list → (rail registry) — never both (PR-2 N1). ↗ AC-BRAIN-154 for the Reconnect case.status="skipped"): only an image that cannot be read at all — a refused type or size, or the vision read declining. Every other staged image IS vision-read for facts, own row, own charge, whatever the screenshot/photo guess (the guess only picks the object word, Photo · / Screenshot ·); what private beta froze is the brand-LOOK extraction, not reading facts off a photo (amended 2026-09-09). Title Not read — coming soon · Photo · IMG_1355.JPG, meta We can’t read this kind of image yet. No door, no lantern, no rail registry entry — it isn’t her fault and there is nothing for her to do. Settles in turn like every other row (Peyton lock 2026-09-09; settling every unreadable image up front at the tap was rejected the same day — until its turn it is a queued empty node). NEW (PRD debt · #4443 PR-3)fg-30 carries “not this time, not on you.” The copy on both stays monochrome. Never amber (that is the waiting dot), never lantern (nothing is asked of her).21 received · reading 9 of 21
AC-BRAIN-43 (sources, not stages) still holds: one honest stage row, never a ladder of them. Reconciles partial’s “no ◐ Drafting frame”: that lock was for the single-call tray read where the classify IS the read; the queue path has a real consolidate step, so the ◐ is earned here and only here.AC-BRAIN-43, no provenance).21 received · 18 read · 1 couldn’t read · 2 not read
31 details found across what we could read
AC-BRAIN-127g(b) — the red ✗ settles down into the rail’s Needs you as ONE registry entry drawn once each side: Couldn’t read IMG_1354.JPG · Share anything →. The grey not-read rows do NOT register — nothing is asked of her.21 received · 18 read · 1 couldn’t read · 2 not read
31 details found across what we could read
It might be blurry — a clearer shot, or paste the caption.
business_hours ask + extraction) · drawn 2026-09-10 · awaiting Peyton sign-off ↑ top view at 375 ↑↓coEditDoors frozen, Where to find you renders no row on the playbook index (matches every landed frame since BS-2: no chapter list). The freeze exemption in privateBetaFreeze.ts is retired. The chapter sheet (02 Where to find you) stays live as the deep edit, reached from the book and from the rail's Add →. NEW (PRD debt)business_classification), and business_hours is empty. Online-only businesses never see it (PRD E2: "physical only"). It sits AFTER ✓ Drafted and BEFORE the Save row — the line narrates read → draft → ask → save, in order. NEW (PRD debt — mint AC under the agent-ask family, AC-BRAIN-155..165)AC-BRAIN-158 grammar): lantern row Asked — when are you open? · meta Your site doesn't say. Guests ask this before they book. · answers as ○ rows: Same every day (opens one from–to pair) · Varies by day (opens the 7-row grid, closed toggles per day) · By appointment only · Other — tell us what's right (free text, Continue →, e.g. "Tue–Sun 7–19, closed Mondays" — parsed by the same metered parse Row B's Other uses) · Skip — carry on without it. One question, never a second on this leg.AC-BRAIN-186): it writes business_hours into the unconfirmed draft layer (JSONB, replace-whole, presence-of-key — PRD §3263), shows in chapter 02 as Your call · draft, and goes live only on Save to Brain with the rest. Skip records skipped, never an answer; the rail's Where you stand then lists Where to find you · hours with Add → (opens the chapter sheet).business_hours has NO extraction path today — neither the web read nor the Teach classify writes it. Two pieces are needed: (1) the classify targets business_hours when hours appear in shared text / a PDF / a site's contact page, so the ask fires only when the read genuinely came back empty; (2) the AskRow answer → draft write for a JSONB field. Until (1) lands, the ask fires for every in-person founder — honest, if a little eager.No “Where to find you” row here any more — the chapter list stays hidden in private beta; hours are asked on the line above.
chipFailures, #4470); after a k-of-N read the tray keeps ONLY the failed chips — the read ones are gone because they are in. NEW (PRD debt · #4485-E)sourceFailureReason() strings, per chip — never one line for the batch.AC-BRAIN-154 — the reconnect door lives on the line's ✗ row (Reconnect →, none) and behind the sheet's own Add to Brain gate; this frame draws no Reconnect Google button (redrawn 2026-09-09, design gate B3 — it was never built, and drawing it made the ledger row lie by omission).TraySnapshot) carries items only, so chipFailures starts empty and every reopened chip reads Doc — staged, tap Read / the file extension — the reason the line just showed is gone from the chip. Drawn here as the contract (a chip that says “staged, tap Read” on a Doc that will fail again until she reconnects is a lie by hint); the fix is carrying the line's per-row reason into the snapshot. In-sheet (sheet stayed open, #4470) the reasons DO render — that path is not this frame.resumeComposerRow (BrainPage.tsx:5070) · shipped, undrawn until 2026-09-10 · copy renamed on this contract · awaiting Peyton sign-off ↑ top view at 375 ↑↓resumeComposerDraft) so the proposals card renders exactly as a fresh read; Discard clears the stage (discardComposerDraft). No content appears until she chooses.PostReadShareAsk panel — kicker YOUR CALL, link Share anything → — mounts in three seats; the one inside this sheet (postReadAsk prop) is a no-op and is being deleted in code. Its legal seats are the intake / after-read page only (BS-2's rail rows, the ✗ rows on the line, Needs you). The left pane here is What you can share — guidance, no CTA./brain/read briefing (BrainReadReport.tsx) does not survive in any form: its recap write-up AND its "How you show up" / "How the web talks about you" reputation content fold INTO the playbook's TLDR block (IR2pb), and its ↻ Read again / Look again triggers move onto the playbook next to that block — same pipeline, same result, only the entry point moved. Exactly TWO doors into research exist (Web and Teach — Teach IS the share door, not two); no frame may imply a third. The deck frames below stay ONLY as the Advisor's future body under the "Your advisor" name — never re-labelled "Our read" when they return.AC-BRAIN-127 — Teach researches from what was shared, then this confirmation, then writes playbook + Our read. Same RC grammar as the web door. Specified-not-built.AC-BRAIN-22 — one read-level save on This read. Never Use all. Field confirm stays on drafts.AC-BRAIN-80 — drawn tap on the sheet stayed Save. This beat is after the research from that save.AC-BRAIN-125 — superseded for Teach (27s): the shipped-interim "stays on the sheet after Save, see f15 15b" behavior no longer applies here — after Read, this confirm is the next step, not f15. Unread-stay (AC-BRAIN-63) is unaffected. Does not close to share-origin IR2.AC-BRAIN-121 doors sit under the dots.Sounds like me — save this read
Refine
Something’s off — tell us what to fix
AC-BRAIN-127 (amended 2026-08-31) — after Teach confirm, write the playbook. Same chrome as IR3 / RC-brain. Never the example intake. Specified-not-built.AC-BRAIN-21 (amended 2026-08-31) — the veiled advisor tome sits beside the playbook, coming soon. Never a second confirm.Written from what you shared v1
Tap the cover to read
from your share · our words v1
Coming soon — the full read on how your business runs.
Edit a chapter
#4185 — a row's TEXT is now gap-driven the moment research actually attempted (and named) that field: useGapSelector.labelForItem swaps a live synthesis gap's own label in for the generic section name above (e.g. "We looked for your Bali address — couldn't find it" in place of "your business address"), matched by key first, then by the coarser field. Row anatomy (lantern dot, Add → jump) is UNCHANGED — this illustration stays the correct drawing for "nothing specific to say yet." The kickstart moment that precedes this state (the identity-confirm sheet, in flight) is 1f-kickstart.
brain_documents, retrievable by assistants) BEFORE any playbook sorting runs. Playbook proposals are a SECOND, optional step on top of a save that already succeeded. “We only take bank transfer in Bali” — knowledge with no playbook section — is now a first-class thing to share, not something that falls out the bottom.organize-content.ts:588 returns proposals UNPERSISTED; anything the classifier can’t map to a section hits “Read it — couldn’t sort it yet” or the dropped overflow (:323-378) and is gone. This door has never written the retrievable corpus at all — brain-ingest is the only writer, and nothing here calls it.{ target: whole-brain | section:<id> | inventory-row:<id> }; title + top pane render from it, the composer never changes (BrainShareSheet.tsx:175). ShareInline survives INSIDE this sheet only. The first-run header chip’s step 5 (9c) is one more door into this same sheet (/brain?teach=1) — opening it once dismisses the chip; visiting /brain does not.BrainShareSheet.tsx:113-129): scoped section:how-you-show-up → “Teach your Brain — how you show up”; everything else → “Share anything”. “Teach your Brain — Instagram” / “— rates.pdf” have no code path and are corrected throughout this frame — both intake doors (BrainIntakeScreen.tsx:209/:233) call onOpenShare() with no argument, so the Instagram door opens the UNSCOPED sheet.ai_usage · brain_embed · ×2.0) — we do not narrate that on the door (kit 2026-08-23). Confirm-before-charge is the tap itself. No per-action “Metered” pill (retired platform-wide, kit 2026-07-25). Voice: we read and fold in — never “scan”/“ingest”/“train”; per read, never monthly.Archetype: sheet-slide-panel.md.
BrainShareSheet.tsx:267 mounts ONE ShareInline that is ALWAYS present (hidden only behind the honest-empty panel). Empty composer is what a door actually opens.ShareInline placeholder has not flipped; do not treat this paint as already shipped.shareSourceTypes.ts) instead of a single hardwired action. Menu, top to bottom: Google Doc · Google Sheet — Google only, no separator, no third row.ConnectionModal (nested, never a page-level /connects trip) replaces the old bare reconnect toast for this flow. Because Google OAuth is a full-page redirect (no in-memory callback survives it), the composer's Brain page stashes a 5-minute sessionStorage intent before the redirect and — on return (?status=success&provider=google) — reopens the Teach sheet and re-fires "Add to Brain" itself, no second click. An OAuth failure shows an honest "Couldn't connect Google" toast; no resume is attempted..stage-row; typed text and files stay IN the box as a 28px .attach-chip. Same AttachmentChip grammar on Teach (15a), Share anything (15f), identity-gate (1f), and Brain edit (28c ①). One listing per item — the duplicate was #1495. 3+ items fold (Peyton 2026-08-20): one header (N files / N images / What you dropped · N) + the first chip as preview; the rest open in place — not a menu. 1–2 stay fully open. Docs still hard-cap at 10; images have no stage cap. Drawn at 15f-lots.ShareInline — there is no second drop UI. Also on this chip: identity-gate “Not quite” composer (1f), Brain edit ① (28c), Feedback screenshot attach, Wishlist, Launch Kit rewrite composer, UploadDropzone. Not this composer: How you look moodboard (files go straight to a vibe read, no staged list) and Product listing catalog scan (its own upload widget). Frames to open: 15f · 15f-lots · 15-m · 1f · 28c.AttachmentChip — retirement landed 2026-08-20. Same chip on Teach / Share anything / Brain edit.origin/main): the read path DOES exist — brain-ops ships a list-items action over the list_brain_documents RPC, consumed today by useBrainItems.ts (already mounted in PlaybookPage.tsx:176 for the “sources:” line), and remove-item.ts deletes a whole document group, user_id-scoped, with no orphaned chunks. What was missing was a founder-facing LIST, not the API: DocumentsCard was retired as collateral when its only mount went dead (useBrainComprehension.tsx:4-14).BrainItem.title is nullable, so the untitled row is a REAL state and is drawn as one.useBrainComprehension.tsx:4-14): “ONE gap analysis per page; known = the playbook itself, missing = the gap queue.” A playbook SECTION listing notes is legal under it; a page-level roll-up of what the Brain knows is NOT — that recreates the deleted ComprehensionOverview. No coverage/completeness framing, no “your Brain knows N things across M sources”, no second inventory competing with the playbook. Row grammar reuses the surviving VoiceExemplarList.tsx pattern rather than inventing one.shareHonestEmpty (BrainShareSheet.tsx:230-258) currently renders “Read it — couldn’t sort it yet” and HIDES the composer underneath. Under save-first it must (a) never fire when the corpus save succeeded — that is 15h, a saved state — and (b) stop hiding the composer, since a save that landed has nothing to retry.ai_usage · brain_embed · ×2.0), when the share sheet is open, then exactly ONE screen-level line states that saving draws from the wallet, it is present even with nothing staged, no charge fires before an explicit confirm, and no per-action metered pill is rendered.brain-ops has no list-documents action and no Brain surface reads brain_documents. Until it does, the saved panel is the ONLY evidence a save happened, and material she can never see or delete is a privacy and trust problem as much as a UX one.Real AC ids stop at AC-BRAIN-75 in docs/product/platform/brain/prd-pl-brain.md. Nothing above is assigned an id here on purpose — ids are minted in the PRD, never in an artifact.
/brain. Mid-research Instagram walled or any unread doc Share anything → uses the same 1.3-share 40/60 (What you can share LEFT / composer RIGHT) over dimmed IR2 — 19. Inside any pane (assistant → Brain slide-over) it renders the stacked f15a form: digest row on top, composer full pane width, opaque sheet chrome (AC-BRAIN-100 / AC-BRAIN-102). Same ModalWrapper presentation="sheet" as this block — contained, not a centered dialog. Pane peek + radius are the sheet one size down (accepted). Never a second 40/60 inside a 40% column.flushSplit made the composer see-through. The host split (Brain LEFT / assistant RIGHT) is already signed in assistant-lifecycle sec-14. The complete hosted screens live at sec-14d.BrainSplitHost drops the 40% page pane entirely below modalTokens.slide.split.engageBreakpoint (1024px), so 768 renders the 375 composition at a wider measure — one column, stacked digest, same ladder. There is no third distinct composition to draw. If the build ever moves the engage breakpoint below 1024, this frame owes a real 768 tier.whole-brain auto-sorts into sections; everything still lands as drafts behind D4 confirm — never silently saved.whole-brain or that inventory row. The AC-BRAIN-40 known-unreadable-host intercept (paste blocked before the crawl fires, platform named inline, matching door opens) is drawn once, at f2’s own inline error variants — not redrawn here.section: how-you-show-up.whole-brain or that section.ShareInline is deleted or converted to a → f15 door; the FAQ inventory row alone routes to the ask-sheet (f14) instead.pagePaneOverride — not the generic playbook digest. She watches the row fill as she confirms. Drawn at 2.7-share. ShareInline internals stay untouched; only the host changes. The activation-wizard path (BrandVoiceConfigure) uses this same sheet + zIndexOffset, never its own covering ModalWrapper.BrainShareSheet.tsx — BrainShareStartGuidance / BrainShareMissingBrief, split + stacked, AC-BRAIN-109/110) and the two-step apply rides BrainPage.tsx (partitionShareProposals, AC-BRAIN-111/112/114)./brain.Nothing here belongs in a playbook section — that’s fine.
Put it in a section yourself →
Byte-identical saved block to the panel on the left — sameness is the mechanism. A distinct “couldn’t sort it” panel is what made this read as a failure.
Neutral monochrome, never red. Composer stays VISIBLE with everything staged — today’s honest-empty panel hides it, which is why “try again” currently means re-dropping.
prd-pl-brain.md §“Playbook state flow.” A state map, never a duplicate: row grammar lives in f9, sheets in f13/f14, checklist owned by 1b (below — the standalone research-checklist frame folded in here, Peyton catch 2026-07-30). No state draws its own 768 tier.whole-brain — it never expands a composer in place.parity/parity-brain.md.spec-brain-identity-gate-sheet.md) — drawn in full at 1f, seated below in this frame’s own sequence; the “while we research” persona picker rides alongside as the one-tap “while we wait” moment, never auto-decided. Playbook shell below stays unchanged from f2 (every section still shows only its promise line). Consent language stays visible in the checklist caption (draws-from-your-wallet, already confirmed at f2, restated here so it’s never out of sight).BrainReadingProgress.tsx/AC-URLX-08). A walled source never gets bespoke copy, it points at the ONE share sheet (f15) — these walled/failed rows are live projections of the same registry drawn in full at f5, one mechanism rendered mid-research here.Persona-picker chips are DB-driven (mf_personas selector via the persona_roster view, ADR-022) — this drawing reflects the ready roster as of 2026-07-30 (Peyton catch, corrects the invented “Retreat & workshop host” / “Studio or space owner” chips). Never hardcode-extend this list in the artifact; the DB is the source.
ModalWrapper presentation="sheet" with the .sheet.co 40:60 geometry, the same one f14 uses. No new component. The inline card was a ~600px column that shoved the whole page down; what ships today (BusinessIdentityGate.tsx, #2339) keeps every behavior below — only the seat changes..co-main); the five-line “once you confirm, we’ll map” is read-only reassurance — the single biggest thing pushing content down in the card — and moves beside the decision (.co-pane). Semantic note (open, confirm before build): f14’s documented pane job is “where does this sit”; using it for “what you’ll get” is a defensible extension of that contract, not a precedent it already covers.ShareInline composer EMBEDS in the editor under a short lead — Wrong business? Show us the right one. (Peyton, 2026-08-02 — supersedes the door-as-link + example-nouns copy: drop a link, file, image, or text with zero extra taps). Verbatim component reuse (f15 grammar; the composer never changes by context) — a recorded SCOPED EXTENSION of the R6-3 “ShareInline survives inside BrainShareSheet only” lock: the identity-gate editor is the second sanctioned host; no second composer exists. Material saves on arrival (save-first, shipped). Decision 9 (Peyton, 2026-08-02): dropped material triggers a re-find, not a blind ride-along — the primary becomes Find my business ✦, the free-class peek re-resolves from what she shared, and the sheet re-presents Here’s what we found — is this you? (1f″) for a fresh That’s me — run ✦ BEFORE anything paid. Typed fixes skip the re-find — her correction IS the confirmation (Confirm & run ✦). The paid bundle fires exactly once, after the final confirm; the re-find is the free-class peek plus the already-metered share-save, capped ×2, then “Start over — no charge” (stays nested here). f27 stays deferred as the guard for POST-read re-runs.editing is ONE shared toggle (the pencil on any row flips all four fields; the value itself is the button; Contact is not editable) · “Not quite” opens the same basics editor and, once open, becomes cancel — it never proceeds to the paid run. AC-BRAIN-75’s delta (editable “You do” + optional founder-name query line) has shipped, incl. the ✎ on the founder-name row (BusinessIdentityGate.tsx:244) this artifact previously omitted. Shipped labels still read “Name” / “Your name · optional” — the 2026-08-02 renames below ride the build. Amended 2026-08-27 (Peyton ruling, #4183): the scope guard raised 3→4 to add a fourth editable line, Location · optional, seated between Founder full name and the read-only Contact row — a second reputation-search disambiguation string (refine.location), same never-identity-verification / never-blocks-confirm rules as the founder-name line.A second scenario, not Uglywoo. Miri researched theoffline-club.com — a site we can read. The free peek found two faces: the Bali chapter she runs, and the parent club. Uglywoo 1f never sees this (Bali & Portugal is two offerings, one studio). Same identity-gate sheet — one extra question before That’s me — run ✦. Nothing paid until she picks and confirms. 768 = the same 40:60 sheet as 1f (named, not redrawn).
confirmed_scope and searches the Bali name — never Amsterdam HQ by default.theoffline-club.com.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
We draft your voice first — you keep it — then fill the rest to match. You review every draft before it's saved.
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Instagram is walled — we can’t read it as a link. Share a screenshot.
Website not readable — share a screenshot.
examplePlaybooks.ts) — not invented for this preview.examplePlaybooks.ts — Bloom Retreats, The Clay Room…) and the 1.6 panel; no new content, no new shelf.The one that’s yours — for now, theirs
Page & ink
Your call · make it yours
This look belongs to an example. Change the signature colour — or tell us it really is you — before your assistants use it.
Until then nothing here counts as confirmed — the example chip stays on your Branding row, and assistants keep the neutral default.
Our-side failure · free · no price shown. 2 of 3 free tries consumed server-side — the founder never sees a counter.
Routes to f15, context inventory-row:pricing-page · still no price.
drive.file migration, I’m asked to reconnect before linking a Doc/Sheet to my Brain, so a pick never silently 403s..banner.warn strip (connects.html f7 / pulse.html) — glyph ring, title + one-line description, amber-tint CTA. The old boxed card (rounded-xl amber glass + 40px AlertTriangle tile + outlined button) is RETIRED. Shipped 2026-07-30 (#2921) — DriveFileScopeBanner.tsx now renders the flat strip (15px glyph ring, amber tint on the strip never the copy, compact CTA); its own comment names the boxed card retired. This frame is a match, not a target..cta treatment, NEVER an embedded ConnectionStatusButton — REQ-C2-01 (connects PRD) is row-scoped; full ruling in connects.html 7b. Verb ledger holds: Reconnect Google. CTA opens IncrementalScopeModal with DRIVE_FILE_SCOPE — the sheet itself, the confirming/hand-off states, and the return are drawn below in 26b (previously undrawn anywhere).BrainWorkspace). It is the ONLY thing that may sit between the jump-nav and “Your playbook” since the per-assistant capability panel retired from /brain (f30 folded 2026-08-13).sm 640..sheet/.sheet-handle/.sheet-title/.sheet-context chrome already established above (frame 13’s confirm sheet) — never a new sheet shape for this frame.DriveFileScopeBanner.tsx’s own string tables. Wizard context artifact remains mockup debt per frame 26’s own note.Permission needed
This permission will be added to your existing Google connection. You can revoke access anytime from your Connects page.
Permission needed
This permission will be added to your existing Google connection. You can revoke access anytime from your Connects page.
Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after.
Grab your Instagram profile plus 3–4 posts — captions visible. Instagram only shows profiles when you’re logged in — screenshot from your own account.
How should we reach you? (fill at least one)
Already got private access? Sign in
Paste your website. We read your pages, then look up what else is public. ~5 min.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Research more on the web, or keep it as sent. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Research more on the web, or keep it as sent. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
We take in the whole picture — how it looks, how you sound, what you sell.
Two ways in. Pick the one you have — you can do the other any time.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
Google Doc · Rates — we’ll read it as a file.
Luma page — we’ll read it as a page.
Two ways in. Pick the one you have — you can do the other any time.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
Notion — we can’t open this link. Screenshot or PDF it.
Luma page — we’ll read it as a page.
Two ways in. Pick the one you have — you can do the other any time.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
Google Doc · Rates — connect Google to read it. Connect Google →
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Research more on the web, or keep it as sent. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
Drafts land here when this read is done. Same path as a site read.
Sounds like me — save this read
Refine
from your share v1
saved v1
Coming soon — the full read on how your business runs.
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Research more on the web, or keep it as sent. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
See what you'd get
Your business — what you do and sell. A price change or a policy update.
We save it to your Brain. Research more on the web, or keep it as sent. Then an updated playbook — what your assistants read, with what we understand up top.
Share what you have — none of this is required.
3 items, one read. Nothing runs until you tap Read — then your Brain page shows what got in and what didn't.
4 details found across what we could read
21 received · reading 9 of 21
nothing is saved until you answer
/brain, before signing up AC-BRAIN-08 · AC-BRAIN-15 ↑ top view at desktop ↑↓Paste your site. We read your pages, then check what else is public about you. ~5 min.
Share what you already have — Instagram screenshots, a PDF, a Google Doc — or type the basics.
Have both? Start with your website — it covers more of your business. Add screenshots after.
Grab your Instagram profile plus 3–4 posts — captions visible.
MobileActionBar).Or send me a magic link instead
AuthModal’s login tab (Google + email/password + magic-link fallback), same modal shape as the waitlist form.Paste your website. We read your pages, then look up what else is public. ~5 min.
Grab your Instagram profile plus 3–4 posts — captions visible.
EXAMPLE kicker · persona as the title · business as a small credit line · “Tap to read” at the foot. Each cover wears its persona’s fictional Look palette — white stays uniquely her real playbook. Desktop uses this SAME carousel inline (see 34) — no rail fork.Paste your website. We read your pages, then look up what else is public. ~5 min.
Grab your Instagram profile plus 3–4 posts — captions visible.
9 details found across everything you shared
done; extraction finished at stage time), and the IG profile URL splits from the post screenshots into Instagram + 3 screenshots, because a screenshot is never evidence of Instagram. Single column at every tier; the group is bounded at 6 rows by the taxonomy, so it cannot grow into a scroll.6 details found across everything you shared
1 link we couldn't open — it's on your list →
Instagram is walled — we can’t read it as a link. Share a screenshot.
We hit an error trying to read it.
display:none below the shell's 900px container query, so 768 behaves exactly like this frame. "it's on your list →" must scroll to whichever mount is actually laid out; pointed at the rail id it hits a hidden element and does nothing.nothing is added until you answer
nothing is added until you answer
1 link we couldn't open — it's on your list →
Instagram is walled — we can’t read it as a link. Share a screenshot.
We hit an error trying to read it.
AC-BRAIN-43 exists to prevent.nothing is saved until you answer
4 details found across what we could read
21 received · reading 1 of 21
21 received · reading 9 of 21
21 received · 18 read · 1 couldn’t read · 2 not read
31 details found across what we could read
21 received · 18 read · 1 couldn’t read · 2 not read
31 details found across what we could read
A price change, a new package, a policy update — we save it to this chapter.
Sounds like me — save this read
Refine
Something’s off — tell us what to fix
from your share v2
saved v2
Coming soon — the full read on how your business runs.
Canggu and Ubud. Slow weeks.
Sounds like me — save this read
Refine
This is a quick overview of how we understand your business.
Sounds like me — save this read
Refine
Something’s off — tell us what to fix
from your share v1
saved v1
Coming soon — the full read on how your business runs.
section: how-you-show-up, two screenshots staged, nothing charged yetBrainShareSheet.tsx:113-129). Every other door, including the Instagram doors on the intake screen, opens the UNSCOPED sheet titled “Share anything”; “Teach your Brain — Instagram” was never a string the code could produce.AttachmentChip — retirement landed 2026-08-20. Same chip on Teach / Share anything / Brain edit..ds-top grammar and light up as proposals land — they only ever gain, never lose a confirmed line.See what you'd get
spec-brain-identity-gate-sheet.md) — NOT built; today the checklist stacks every done row. Instagram is not on this confirm frame — it appears at 7 when the read finds it walled.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Instagram is walled — we can’t read it as a link. Share a screenshot.
Needs a refresh · 1
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Every source read clean — nothing stale, nothing to fix.
Example playbooks · 5 →, then the IR3-m work stack. Teach sits on the stack. Couldn’t-read is not drawn — inventory fully resolved by this state. Where you stand is the clean-read note, not a collapsed “What’s missing · 1” hairline.What we couldn't read rows — same BrainReadRegistry as f5. This frame does not also draw the old f1e banner. Walled / login never say Try again. A genuine our-side failure that is exhausted stays “exhausted” + screenshot fallback → f15, never a vanishing button.parity/parity-brain.md; this page state is the “research partially failed” case.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Instagram is walled — we can’t read it as a link. Share a screenshot.
Website not readable — share a screenshot.
Needs a refresh · 1
We read your pages — confirm it’s you.
spec-brain-identity-gate-sheet.md).sm:flex-row pair); money subline verbatim (#2749). AC-BRAIN-75 delta has SHIPPED — the amber pending tags this frame carried were stale and are cleared; ✎ on the founder-name row matches BusinessIdentityGate.tsx:244; labels renamed 2026-08-02 (Business name / Founder full name · optional) — the rename rides the build. Decision 9 ladder applies at 375 too: face That’s me — run ✦; the editor and re-proposal states follow the desktop frames (1f″) — the sheet stacks, same ladder.submitting). Sheet chrome (title/context) is unchanged from the resting #f1f-m state — only the scrollable body and the primary button swap. Closing the sheet is safe.This becomes your starting base — not the finished picture. Anything we can’t find, we’ll ask you about — never guess.
Feel free to close this — we’ll keep going and let you know when it’s ready.
Pick one first.
We’ll save The Offline Club | Bali — not the whole club.
Pick one first — then the full read only saves what belongs to it.
Bloom Retreats runs small, capped women's wellness retreats in Ubud — twenty seats, four times a year. It's for founders and creatives who need to unplug, not first-timers looking for a party.
The five-day Ubud retreat is $1,450, all in — room, food, sessions, airport pickup. A $435 deposit holds the seat; the balance is due 14 days before arrival.
A 30% deposit confirms a seat; the rest is due two weeks out. Cohorts run in March, June, September and November, capped at 20. A sold-out cohort routes straight to the waitlist for the next date.
Warm, first-person, and present — you sell presence, not a transaction. Never brochure-speak, never hype adjectives, never push the deposit before a guest is ready. Earthy neutrals, soft film-grain photography, a quiet serif for headings — the same calm the retreat itself promises.
Permission needed
This permission will be added to your existing Google connection. You can revoke access anytime from your Connects page.
Permission needed
This permission will be added to your existing Google connection. You can revoke access anytime from your Connects page.
window.location.href), not a MystFlo
surface. Out of scope for this artifact.
oauth-callback redirects to /connects?status=success, then back to Brain; useGoogleScopeStatus re-checks, finds drive.file present, and the banner unmounts. Nothing else on the playbook moves.about_story.tldr). Assistant-readable context, never customer-facing.AC-BRAIN-22 — confirm-first: one read-level bar; per-field confirm stays on drafts (J3c).AC-BRAIN-43 grammar).PlaybookPage.tsx): title · her words · detail →. Provenance is a .chip-origin, never a badge..draft-block.need treatment until saved.Saving is free. We only change the parts you name.
.draft-block rows on the sections they belong to (f9’s row anatomy verbatim) — no confirm screen.OurReadSheet.tsx is superseded — the report slide-over (f18, now Backlog) was the ONE read surface — retired from the live flow 2026-08-31; returns post-beta as the paid Advisor report.See what you'd get
.pb-row grammar for every section and state — title + chip + 1–3-line summary + “detail →”; the old section-vs-summary-row fork is dead.·. ROLL-UP (what you sell) = count + price range, never names. COVERAGE (FAQs) = “N of M answered”. Safety net only: line-clamp-2 on .pb-value — no hard character cap in the UI. Color stays --fg-70 (D7 reaffirmed); the “faded” feeling was undefined content, not the token. NEVER on the index: full FAQ answers, offering enumerations, verbatim policies. Those live in f33 (the book) and the detail sheets (one chapter).--fg-70 (D7), 26px row breathing room; right rail: “What’s missing” then “Preview template”, prices from props..pb-section-title 15/500) · the founder’s words (.pb-value 14/300 fg-70) · ONE door (detail →, or (sound)/(look) on Branding). Nothing else by default. Provenance rides each ZONE head once as a chip-origin (V-11’s letter — the page-level “sources:” line RETIRES from this frame; its inventory job lives in the Teach sheet). A row marks only what DIFFERS from its zone default: + you told us on What you sell, ✓ you confirmed beside the sound line (the honesty mark — the full “sounds like you — because you confirmed it does” sentence lives in f22, said once, where the voice is), ◐ thin on Where you’re headed (the one genuinely thin row — verdicts render by exception only). Retired from the page: 8 per-row chip-origins · the complete-state FAQ dot string · Branding’s three quiet meta-lines (readiness detail → f22/f24) · the “optional” chip once the row holds content (it still renders on the EMPTY row, where it informs the skip decision) · the per-row “N to answer →” entry word (gaps have one home: the rail + ask flow) · the rail’s two explainer notes (“never counted”, “can’t be typed”) — the ✦ CTA’s own sub-line already says the section only fills by research. The word “still” appears zero times.Confirmed + one detail →, or empty invite Set your branding →. No How you sound / How you look labels, no tone enum, no orphan swatch, no chips. Facets stay in the book, Co-edit nest, and the two sheets. Bootstrap tone friendly is not a fill. Amends the 17 Aug Branding sub-section pass for the index only.design-foundations.html “Platform · Proposed — Playbook (Brain)”. A chapter is one .pb-row.pbk: Edge (2px left bar) · mark · title + one meta line · detail → on the right. The left Edge is the same solid 2px bar on empty and filled rows — it is the row’s spine, not a filled-only decoration. Dotted Edge is only when the double wrote it (doc or draft). The mark is what changes: Seal = confirmed (external). Node you = she typed it (internal). Node graft = empty. Lantern + dotted Edge + .need wash = a draft waiting (the one gold moment). Thread is the zone rule only — under “Your playbook” and the internal-zone seam. Empty day-one carries the f34 example-cover carousel on the page (Preview template rail retired) and the 2026-08-17 jump chips; populated demotes examples to Example playbooks · 5 →. Jump chips: About · Where you operate · What you sell · Why you · Questions · Branding / Revenue · Who you serve · How you run · Where headed. How you show up is not a playbook row or chip.n of 5, and the chip carries its own progress line — a chip-wide .12 track 7px under the caption, lit white + glow to the required-%. v4 lit the header’s existing bottom hairline instead; Peyton on production: at 1440 that read as a bar under the whole chrome — “just the progress line, not the full bar.” The header hairline stays dark; the determinate line is chip anatomy (same two-layer edge as the band, at caption scale). Tier rule: desktop treatment at lg (1024px) and up only; everything below — tablet included — uses the 375 band as a second header row (was sm/640, which left tablets a center chip reading as detached). 375 (2026-08-16, third pass — Peyton rejected both the stacked caption and the inline line): progress BAND — a full-bleed tone-step zone (--surface-el, the active-nav “you are here” tone) as a second header row; its bottom edge is a real determinate line, lit white + quiet-active glow to the required-%, against a .12 track. One line inside the band: living mark 9×12 (assemble once, then rest) · n of 5 · words · →; whole band is the 44px tap. Amends the no-fill caption lock — band, not pill: full-bleed, zero radius, borderless, nothing pressable-looking. Still not a pill, still monochrome (Preview keeps the only amber).Example playbooks · 5 → hairline (AC-PLAYBOOK-16 — no standing shelf under her books). 9a-m / 9c-m carry the first-run progress band. 9a-away-m on the same section is the Assistants away line (Make them sound like you · 88%) so the cramped live shot can be scored here. Replaces the “no separate 375 tier” gap formerly flagged on the parts cut.PlaybookPage.tsx now renders row grammar v2 — the shipped index matches 9b/9b-m: title · her words · one detail → door (Branding keeps (sound)/(look) only), provenance on the zone heads with exception marks only, no pencils / per-row ProvenanceChips / AskEntryWord / page-level “sources:” line, the hug-content Read the whole playbook button under “Your playbook” (→ /brain/book), the quiet “The live playbook · last change …” line, and the hairline Our read · Teach group. Remaining drawing debt was on THIS file, not the live page: the sibling full-page twins (f1/f4/f11/f12/f16/f17/f31 and their 375 gallery copies) drew pre-v2 chrome until they were synced to 9b/9b-m on 2026-08-15. Still specified-not-built: f18’s four-block analyst-note copy (the research-mint engine) — a content hold behind the retired read door (Backlog), not index chrome; do not restyle it.listing{} key, the brain-generate branch id 'listing', channel_registers.listing, and the spec/PRD term “general product listing” all stay unchanged — renaming the data model to match the label is a defect, not consistency. Code note: the LIVE page still renders the pre-merge specified-not-built row (PlaybookPage.tsx `listingCopy` anchor, #2978) until the #3028 build lands — that residual is build lag, not contract; builders draw from f28./brain/book and /brain/read bounce to /brain.See what you'd get
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Edit a chapter
9c is a truncated twin of 9b — first three chapters, to show the step-5 Teach chip on the same page.
detail →) is the index grammar for all ten editable chapters — not a FAQ or Brand Voice special. How you show up is not a playbook row. E1 is Your business. Thread sits under “Your playbook”. One lantern per view; this populated cut has none./brain/book. Tap the advisor tome → nothing yet (veiled, coming soon; the deck reviews at Backlog · Slides / was /brain/read — full takeover, per the 2026-08-20 overlay lock; the left playbook digest is retired, so there is no companion pane on this surface). The ink cover is no longer a reserved slot — the interior is drawn. Versioning (Peyton 2026-08-20, amended same day) — AC-PLAYBOOK-18 ↗ · AC-PLAYBOOK-21 ↗: the Stark cover carries a quiet vN chip only (italic/muted fact, never an emerald success chip, C12). Activity — that word, never “Version log”. Placement corrected 2026-08-22 (Peyton: right column, not a companion pane and not on Our read). Covers carry the chip only. The ≤5-row Activity preview (playbook + read merged) lives in the existing right rail (.brain-rail here / .playbook-grid__rail in code, the same rail that already holds “Where you stand”) as an additional .rail-block, ≥900px container only. Below that width the SAME merged log stacks under the shelf instead (container-query pair — never both at once). The Our-read deck itself carries no Activity chrome — full takeover has no side pane, and duplicating the preview there was never asked for; a founder finds Activity on the /brain rail or the full log on Pulse → Activity tab (pulse.html frame 4c) — rows: confirms (Confirmed on your playbook), read passes (Read landed on your playbook), and each saved Doc (Saved Business playbook V{n} · Open Doc, a quiet text link — AC-EXPORT-07 ↗ names the Doc, a NEW Doc per save). Never inside the designed book, never on a slide, and no Activity heading with an empty list anywhere (9a — empty-state law, AC-PLAYBOOK-20 ↗). Shipped: PlaybookPage.tsx's brainActivityLog merge, .playbook-grid__rail / .playbook-header__activity-mobile container-query pair (index.css). No prior narrative copy is stored or shown (AC-PLAYBOOK-22 ↗) — a saved Doc is the archive.space-between, which stretched the two books to opposite edges of the column and read as a layout hole.Example playbooks · 5 →, opening the same 5-cover carousel as f34 (a sheet/overlay at build). Text row, not mini-covers — a second shelf of colored tomes under hers would make her scan for which book is real (white cover = uniquely hers). Rail keeps only “Where you stand”. Same treatment on slim and f33-over’s backdrop.brain_profile unchanged.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
pulse.html frame 4c) and the ≤5-row preview in the split-view companion pane (18·v2). AC-PLAYBOOK-18/19 ↗ index-placement clauses superseded — CPO rewrite pending.Up to date · Aug 18 v4
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
pulse.html frame 4c) and the ≤5-row preview lives in the split-view companion pane (18·v2). The in-place fold grammar survives only where a local preview keeps it (Launch Kit, AC-ALOG-02). AC-PLAYBOOK-19 ↗ (the index fold) is superseded — CPO rewrite of rule 11 pending. AC-PLAYBOOK-22 ↗ unchanged: no prior narrative anywhere, a saved Doc is the archive.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
brain_read_notes increments per RESEARCH pass; playbook_versions increments per CONFIRM. The vN a founder sees on her cover and in Activity is the confirm counter.
A READ LANDS (Web door or Teach door)
│
┌─────────────────────────┼─────────────────────────┐
▼ ▼ ▼
┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ 1 · NOTHING READ │ │ 2 · THIN READ │ │ 3 · DENSE READ │
│ the shape only │ │ sparse, honest │ │ full book │
└────────────────────┘ └────────────────────┘ └────────────────────┘
2.0-recap-empty (+m) 2.0-recap-short (+m) 2.0-full (+m) ← shelf ref
⚑ chapters unresolved IR2pb-all = fill target
└─────────────────────────┼─────────────────────────┘
▼
┌──────────────────────────────┐
│ THE DRAFT, UNCONFIRMED │ band, 2 actions:
│ fresh-read tape · gold CTA │ Not quite — re-read ·
└──────────────┬───────────────┘ ★ Save to Brain
┌───────────────────┼───────────────────┐
she leaves │ she saves │ not quite │
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────┐ ┌──────────────────────┐
│ 8 · COMES BACK LATER │ │ 4 · SAVED │ │ 6 · RE-READ │
│ line: ● Save — │ │ ✓ toast │ │ Teach sheet opens, │
│ waiting on you │ │ v+1 minted │ │ naming the section │
└──────────┬───────────┘ └──────┬───────┘ │ that sent her there │
2.0-return (09-10) │ └──────────┬───────────┘
map: 2.0-confirm-flow │
│ │ 2.0-reread (NEW)
└──────► back to the draft both surfaces close
│ progress line runs
▼ │
┌─────────────────────────────┐ │
│ CONFIRMED BOOK · vN chip │ │
│ cover chip · band state │ │
│ line · Activity rail row │ │
│ · Where you stand coverage │ │
└──────────────┬──────────────┘ │
2.3 (book) · 2.0-saved (NEW) · │
2.2b (rail rows, Summary shelf) │
│ │
┌──────────────┴───────────┐ │
│ 7 · SAVE A COPY ▾ │ │
│ Google Doc · backup │ │
└──────────────────────────┘ │
band menu (drawn, every book frame) │
│ │
▼ │
┌─────────────────────────────┐ │
│ 5a · SHE FILLS A GAP │ │
│ Add → deep-links the field │ │
└──────────────┬──────────────┘ │
2.0-gap-add (drawn) │
▼ │
┌─────────────────────────────┐ │
│ 5b · DRAFT COMES BACK │◄──────────┘
│ lantern marks what changed │ a re-read lands
│ — at the row AND in Recap │ here too
└──────────────┬──────────────┘
2.0-delta (NEW) · IR2pb-v2 (re-read twin)
│
└──────► back to ★ Save to Brain (v+1)
the loop repeats forever
STEP FRAME STATE
────────────────────────────────────────────────────────────────────────────
1 draft · nothing read 2.0-recap-empty (+m) AC-PLAYBOOK-32
└ empty CHAPTERS (not the recap) 2.0-empty-chapter AC-PLAYBOOK-17
(amended 09-02)
2 draft · thin read 2.0-recap-short (+m) AC-BRAIN-182
3 draft · dense read 2.0-full (+m) ← shelf AC-BRAIN-183
IR2pb-all (+m) — Import
2.0-recap-dense = revisit card
4 save transition 2.0-saved AC-PLAYBOOK-33
├ confirmation ✓ Saved to your Brain (J6 pattern)
├ version minted vN cover chip + band line — 2.3
├ Activity rail row 2.2b — Playbook summary
└ coverage / what's missing Where you stand — 2.2b AC-PLAYBOOK-34
5a gap → edit 2.0-gap-add AC-BRAIN-184
5b edited draft returns 2.0-delta AC-BRAIN-185
└ confirm ALWAYS required, hers or ours AC-BRAIN-186 ruled 09-02
└ in-progress edit auto-saves to draft AC-BRAIN-03 / 127c
6 re-read cycle 2.0-reread AC-BRAIN-187
├ both surfaces close, progress RC-open / 1.4-teach-live AC-BRAIN-188
└ updated draft returns IR2pb-v2 · 2.0-delta AC-BRAIN-140
7 save a copy band menu, every book AC-PLAYBOOK-12
AC-EXPORT-07
8 return, read still unconfirmed 2.0-return (+t +m) AC-BRAIN-189 (amended
└ discard, with Undo 2.0-return-discard (+m) 09-10: the line,
└ the whole unconfirmed→saved map 2.0-confirm-flow not the rail)
Five steps reused, three drawn new. Every step carries a real AC and every one of them is ruled — AC-BRAIN-186 closed 2026-09-02. Nothing on this shelf was redrawn to fit the map — where a step was already answered somewhere else in the file, the map points there rather than making a second copy to keep true.
AC-BRAIN-108 (amended — Peyton 2026-09-10, #4705) — six heads, fixed order, labels verbatim from FAQ_GROUPS; House rules retired; Your other answers last, untagged only (↗ AC-FAQGEN-17). ONE chapter per business regardless of persona mix. The display map (category = f(slug), 32 slugs → 6 heads) is AC-BRAIN-(tbd, #4705).AC-BRAIN-137(a) · canon U12 — Save to Brain in the band is the view’s ONE loud gold. The chapter draft row (#4695, built) is non-lit; its text becomes “From <source> · N new · M changed”.AC-BRAIN-185 — a new or changed row is marked IN PLACE under its head, exactly as signed on 2.0-delta: 2px --lantern-dim left edge + one small chip in lantern ink. The quiet echo of the one gold, never a second lantern. Untouched rows and heads print exactly as confirmed. Marks clear on Save (↗ AC-BRAIN-186 re-arms the confirm).groups[] (CPO builder flag)..ink-facet · draft row = .draft-block (#4695) restyled charcoal-on-paper · mark = --lantern-dim edge + chip · decision = the IR2pb-v2 block. The edge is lantern-DIM on every marked row, the conflict block included — IR2pb-v2’s own note over its drawing (“one loud gold and one quiet echo”).Up to date · last change 9 Sep v3
What your assistants say for you
Booking, paying, and what to expect · 12 answered
Booking · 2
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
The Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Paying & refunds · 4
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
QRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Yes — 20% off for students. Bring your card.
Yes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
From How you runWhat’s included · 1
Yes — a digital certificate the day after, for the webinar and the seminar.
Logistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
What to expect · 1
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
About the business · 2
Ellen — a coach and trainer in Denpasar. One team, every session.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Your other answers · 1
Yes — Rp 90.000, message us.
Your voice, your colours, your type
8 changes not saved yet — your assistants still answer from v3
What your assistants say for you
Booking, paying, and what to expect · 12 answered · 7 new · 1 changed
Booking · 2 · +1 new
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
The Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Yes — groups of 20 or more, at your venue or ours. Message us with a date.
Paying & refunds · 4 · +2 new
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
Yes — 5 or more from one company or school get 15% off.
QRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Yes — 20% off for students. Bring your card.
Yes — 10% on any later program, just say which one you did.
Yes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
From How you runWhat’s included · 1 · +1 new · 1 changed
Yes — every participant gets the recording link within 24 hours.
Your voice, your colours, your type
unchanged8 changes not saved yet — your assistants still answer from v3
… scrolled — chapter head, Booking and Paying & refunds sit above, as on B
What’s included · 1 · +1 new · 1 changed
Yes — every participant gets the recording link within 24 hours.
Yes — a digital certificate the day after, for the webinar and the seminar.
Certificates are for the seminar only. Webinar participants get the recording, not a certificate.
Logistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
What to expect · 1 · +1 new
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
90 minutes, with a 15-minute Q&A at the end.
About the business · 2 · +2 new
Ellen — a coach and trainer in Denpasar. One team, every session.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Yes — message us. The charity program runs every quarter and always needs hands.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Yes — the WhatsApp community is open. Ask for the link.
Your other answers · 1 · 1 needs context
Yes — Rp 90.000, message us.
Saturday 21 September, 09.00 WIB.
Your voice, your colours, your type
unchangedUp to date · last change 15 Sep v2
What your assistants say for you
Booking, paying, and what to expect · 12 answered · 9 added by MystFlo
Booking · 2
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
Added by MystFlo · 15 SepThe Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Added by MystFlo · 15 SepPaying & refunds · 4
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
Added by MystFlo · 15 SepQRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Added by MystFlo · 15 SepYes — 20% off for students. Bring your card.
you told us · 12 SepYes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
Added by MystFlo · 15 Sep · from How you runWhat’s included · 1
Yes — a digital certificate the day after, for the webinar and the seminar.
Added by MystFlo · 15 SepLogistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
Added by MystFlo · 15 SepWhat to expect · 1
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
from your siteAbout the business · 2
Ellen — a coach and trainer in Denpasar. One team, every session.
from your siteMessage us on WhatsApp — we run a charity program every quarter and always need hands.
Added by MystFlo · 15 SepYour other answers · 1
Yes — Rp 90.000, message us.
Added by MystFlo · 15 SepYour voice, your colours, your type
unchangedchip-origin text in the answer's own slot, 11px, paper ink at .68. Grammar: Added by MystFlo · <date>; when support wrote an answer that also feeds from a chapter, both stamps sit on one line separated by ·. Never a coloured chip, never an avatar, never a badge.trigger = support_seed.The opening section of the designed playbook — TLDR · What we understood · What stands out · How you show up · What we still can't see — is the only section whose content length swings from nothing to ~550 words. The IR2pb-all landing draws it at DENSE. These three frames draw the state family it belongs to, so a builder knows what the section does when a founder gives it almost nothing.
AC-PLAYBOOK-17 covers unfilled BOOK chapters, not this section.AC-PLAYBOOK-17, 2.3-empty) and it is correct there — a chapter is HER content, and the honest empty state is silence. The recap is our output, and its empty state has a job the chapter's doesn't: teach her what to feed. A pill would tell her nothing.AC-BRAIN-137, 2.0-full), Save a copy ▾ + the vN state line when confirmed (2.3).AC-BRAIN-22)..scaf-line — one ruled band naming length and source. List blocks (What stands out · How you show up · What we still can't see) get .obs-row.scaffold — the same monospace numeral running head as the real rows, a dashed hairline instead of solid, and the field names sitting on the measure the real paragraph will take.ADR-036 default). A founder never guesses which blocks feed the AI, empty or full.AC-BRAIN-64).Nothing read yet — this is the shape your playbook will take · nothing to save yet
Nothing read yet
Every chapter still empty
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this · about_story.tldr
3–4 sentences · what your business is, what you sell, and how you price it · written after we read your site or what you share
The longer version — our read of everything we could reach
One paragraph, 80–150 words · every fact we could establish, in one place
Things we noticed that most sites in your line of work don't do
something we noticed40–60 words
something we noticed40–60 words
something we noticed40–60 words
usually three to five
How the web talks about you
One line on whether the web matches what you told us
a place we found you — review site, listing, socialwhat it says
a place we found youwhat it says
a place we found youwhat it says
however many we can find — sometimes none, and we say so
The gaps — each one points at the chapter that fills it
something your site doesn't say
the chapter it fillssomething your site doesn't say
the chapter it fillssomething your site doesn't say
the chapter it fillsthe thinner your site, the longer this gets — and every row is a door
Nothing lands here until we read something. Two ways to start:
.obs-row holds at short length UNCHANGED — no companion treatment, no second grammar. What changes is which block carries the section..obs-row holds. No lighter variant is minted. It was built measure-first (full-measure body, numeral as a running head), so a 20-word paragraph in it reads as a short paragraph — not as a half-empty card. The alternative — a second, tighter row style for short content — would fork the grammar and guarantee drift the first time a read lands mid-length. One grammar, two densities..scaf-line field descriptor (2.0-recap-empty), so the two states share one empty treatment rather than inventing a third.Add → doors deep. Do not pad the recap to balance the section.AC-BRAIN-22). The band carries exactly TWO actions (↗ AC-BRAIN-137): Not quite — re-read · Save to Brain. Both fit at 375 now — each at 44px, the quiet verb on its own wrapped row. The old overflow menu is retired: it only ever existed because a third button (Save a copy) had to go somewhere, and in the draft state that button no longer exists.Not saved yet — your assistants still answer from what you confirmed before
Fresh read · today · unconfirmed draft
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this · about_story.tldr
Sway Studio runs beginner pottery workshops in Lisbon — two-hour evening classes and a six-week course, booked from the site.
The longer version — our read of everything we could reach
A one-room studio in Graça running small evening workshops and a six-week beginner course. Booking runs through the site; there's a phone number and an Instagram, and no prices on either.
One thing we noticed that most studios don't do
Every page closes on the same line — "no experience, we'll show you." The whole site is written to talk one nervous person into booking, not to list what's on.
How the web talks about you · 2 mentions
There isn't much of a trail yet — we found you in two places, and neither says what you charge.
Six things your site doesn't say — each one is a chapter waiting for you
No price anywhere — not for the evening class, not for the six-week course.
03 · What you sellAdd →Class size isn't stated, so we can't tell a guest whether a seat is likely.
03 · What you sellAdd →Nothing on cancelling or moving a booking — the two things people ask before paying.
05 · Customer Q&AAdd →The six-week course has no start dates in evidence, so we can't say when the next one runs.
03 · What you sellAdd →Whether firing and materials are included, or billed after — the site doesn't say.
05 · Customer Q&AAdd →Who the classes are for beyond "beginners" — ages, groups, private hire — isn't anywhere.
08 · Who you serveAdd →Your site is one page — that's why this list is longer than the read above it. Answer a few and the next read gets further.
from your site · Instagram.obs-row was minted there specifically because .ink-fact (a label/value pair) broke at paragraph length, and it was tested against a real 40–60-word finding — four findings and five gaps.ADR-036)..obs-row for observations, .ink-fact for label/value, .scaf-line / .obs-row.scaffold for a slot with nothing in it..ink-body 16/1.75, one step below the TLDR pull (2.3 scale v3)..ink-folio + read-label, .obs-row, .ink-fact, the one ↻ row). Chapter grammar is 2.3's verbatim (numeral › title › deck, .ink-facts, .ink-offers, .ink-qa, .ink-private). Nothing new is minted here — the only thing this frame adds is the seam: recap and chapter 01 are two sections of the same .ink-chapters column, told apart by the same folio header group, with no rule, box or tint between them.AC-BRAIN-127c / AC-BRAIN-134 / AC-BRAIN-22 — inherited unchanged from IR2pb: sheet over the dimmed Brain page, fresh-read tape, the band owns the actions, no per-section Use rows, one lantern moment.AC-BRAIN-137 (ruled 2026-09-02, Peyton) — the band's action count is state-dependent, not flat. DRAFT = exactly two: Not quite — re-read and the gold Save to Brain. CONFIRMED = exactly one: Save a copy ▾. Save a copy is absent from the draft band on purpose — there is no version to export until she confirms one, so offering it would be a door onto nothing. This is the whole action contract; no third state exists.AC-PLAYBOOK-21 — the confirmed twin of this scroll is 2.3: identical below the band, band carries the vN chip and Save a copy ▾ only, no tape, no gold. The band is the whole distinction (locked, IR2pb-all § A).AC-PLAYBOOK-32 — the recap is the book's first section, not a screen before it — one scroll container, one measure, one type scale. A founder never lands on a recap she has to leave to reach her book.AC-PLAYBOOK-32 · ↗ AC-BRAIN-182 (thin renders thin, never padded) · ↗ AC-BRAIN-183 (dense — slice rule + total count) — the five recap blocks keep their order and their read-labels wherever the recap renders — The read, in one place (Assistant reads) → What we understood → What stands out → How you show up → What we still can't see (all Assistant doesn't read, ↗ ADR-036 default).Add → into that chapter's edit door (D4) — the bridge from reading to filling survives the join..ink-body 16/1.75, one step below the TLDR pull (18). Our read never out-types her book.brain_profile (↗ ADR-036). The read-badge already carries that boundary — a numeral would blur exactly what the badge exists to keep clear.Add → on a gap row is a deep link, and its landing is drawn — 2.0-gap-add: the chapter's co-edit sheet opens with the exact field scrolled to and focused, carrying the gap sentence as its hint. Never a rail nudge, never "go and look".rgba(46,42,38,x)) on #f4efe6, never dark-theme --fg-* — the whole scroll is cream.f-pb-canon (2.0 · The generated playbook, by section) — merged 2026-09-05; this frame is the canonical Your-book drawing mergeabout_story.tldr). Assistant-readable context, never customer-facing.PlaybookPage.tsx): title · her words · detail →. Provenance is a .chip-origin, never a badge. The confirm bar is the one lantern moment; the TLDR draft carries the .draft-block.need treatment until saved.AC-BRAIN-137) → fresh-read tape → cover → the five recap blocks → the seam → chapters 01–06 already written → the internal playbook. Scroll the frame: the recap and the book are one paper column.Not saved yet — your assistants still answer from what you confirmed before
Fresh read · today · unconfirmed draft
Recap
What we understood from your read — our words, not yours. It has no chapter number because it isn't a chapter.
Assistant context — customers never see this · about_story.tldr
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — 8 to 14 guests, a slow week rather than a program, booked with a deposit.
The longer version — our read of everything we could reach
Two houses, two seasons: a six-day reset in Bali and a five-day making week in Lisbon, both run at 8–14 people with you in the house. There is a third line the site barely shows — a private buyout at $18,000 — and the whole thing is sold on the week's pace rather than on a schedule. Money comes in per seat, held by a 30% deposit, with the balance due 14 days out.
Three things we noticed that most retreat sites don't do
You sell the absence of a program. Every page says what the week does not ask of a guest — no schedule to keep up with, nothing to be good at — where the rest of the category sells the itinerary.
The host is the product and you say so plainly: the house and the kitchen are yours, and the week runs at your pace. That is why "is there still space?" reads as a question to a person, not to a booking system.
Prices are on the page, unhedged, with what's included underneath. In a category that hides the number behind an enquiry form, that is the trust move — and it's why your assistant can quote confidently.
How the web talks about you · 3 mentions
The web says the same thing your site does — quiet weeks, small groups, a host who is actually there.
Three things your site doesn't say — each one is a chapter waiting for you
The 2026 dates for either week aren't published, so we can't tell a guest when the next one runs.
03 · What you sellAdd →Nothing says what happens if someone cancels — only that a deposit can move once.
05 · Customer Q&AAdd →The private buyout has a price but no description of what a group actually gets for it.
03 · What you sellAdd →What your assistants say for you
What you do, and who it's for
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups. Slow weeks, not a party.
Your places, hours, and how to reach you — shown because you're in person
Your offers, prices, and what's included · 3 offerings
Programs · 2
A slow week of yoga, food and nothing urgent
More ▾Studio days plus one long table every evening
More ▾Services · 1
The house, the week, your people — what's included isn't on your site
What makes people pick you
The only small-group week that asks nothing of you — not a party, not a program.
from your siteYour questions, deposits, refunds, and rules · 3 of 4 answered
Booking & how to book · 1
Depends on the cohort — I check and answer straight.
Paying — deposits, plans & methods · 2
Yes — 30% holds the seat. Balance due 14 days before arrival.
Not on your site — a deposit can move once, but nothing says what happens if a guest cancels outright.
Add →What's included · 1
Room, food, sessions, airport pickup. Flights are yours.
Your voice, your colours, your type — drawn in full at 2.3 and 2.3-look
A steady, friendly host who knows the answers and never rushes anyone.
Traits, the eight guardrails, the type pair and the feel tiles sit here at full depth — drawn once at 2.3 / 2.3-look rather than a third time in this frame.
from your site · your moodboardWhat only you see
The read doesn't write your internal chapters — these stay yours.
Where the money actually comes from
Your people, in your own words
Post-30s professionals craving a reset — people who will pay for a week that asks nothing of them.
Deposits, booking rhythm, day-to-day
Your north star
✓ Saved to your Brain from J6. The vN chip is 2.3's cover chip. The Activity row and the coverage block are 2.2b's existing rail. This frame is the composition, not a new language.AC-BRAIN-186 (ruled 2026-09-02) — this beat is the only way anything reaches the Brain, whoever wrote it. An AI-proposed read and a founder's own typed edit both arrive here and both need the click; the draft auto-saves along the way so nothing is lost while she decides, but a draft is not a save. See 2.0-delta for the edit path into this same beat.AC-BRAIN-22 — the save is the ONE confirm. No second dialog, no "are you sure": the fresh-read tape and the gold CTA already told her nothing was live; pressing it is the answer, not the question.AC-PLAYBOOK-33 — the confirmation is a toast on the surface she is already on, and the book stays open behind it. She does not get bounced to the Brain page — the chrome changes under her (tape gone, gold gone, vN chip arrives) so she can see the same book is now the saved one. That IS the preview/confirmed distinction from IR2pb-flow, played as a transition instead of two static states.AC-PLAYBOOK-33 (one whole-book submit → vN in the book AND on the Activity rail) — one confirm mints ONE playbook_versions row and writes exactly one Activity line — vN · Confirmed on your playbook. A save that also produced a Doc adds its own separate Saved Business playbook Vn · Open Doc line (↗ AC-EXPORT-07); a save that didn't must not fake one.AC-PLAYBOOK-34 — coverage and rail counts read confirmed content only, never the pending draft; on reopening later, what's saved and what's missing are answerable without opening the book — the rail carries Where you stand (coverage) above Activity (history). Inside the book the same truth is the band's state line plus the recap's What we still can't see list.vN · Save a copy ▾. No tape, no gold — ↗ AC-PLAYBOOK-21.v3 chip, and the gold is gone from the view.Up to date · last change today v3
Recap
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — 8 to 14 guests, a slow week rather than a program.
Your playbook · Uglywoo Retreats · v3
(book cover + chapter index — drawn at 2.2b)
AC-BRAIN-184 — Add → is a deep link, never a nudge. Not a scroll to the right rail, not a toast, not “open What you sell and find it”. The row states the chapter AND the missing fact, so the destination is fully determined — the click opens that chapter's co-edit sheet, selects the row the fact belongs to, scrolls the field into view and focuses it. Anything less makes the founder repeat the read she just did.detail → opens — Your playbook · 54% of required docked LEFT with every chapter and its Confirmed / Missing state, the editor sliding up over the RIGHT 60%. Not a per-content list. An earlier draft of this frame docked What you sell · 3 offerings grouped into Programs / Services — that is the field kit's INNER list, not the co-edit door's, and using it here quietly invented a second left panel. The chapter list is what orients her: it says where she is in the whole book, not where she is inside one chapter. No second editing surface is minted for gaps, and no per-section Use/accept row appears (↗ AC-BRAIN-22).mg-node-lantern on What you sell + .is-target is the existing "this one needs you" grammar from 2.5 — the same node the list already uses for a Missing chapter. Nothing new is minted to show which row the deep link landed on..is-target, the field takes the focus ring. No new highlight language, no colour: the lantern stays on the band's confirm (canon U12, one gold moment).BrainSplitHost), so the sheet arrives full-width with the same field focused.AC-BRAIN-185 — marked in two places, once each: locally and in the Recap. At the row so she can read it in context; as one line in What we still can't see — the gap she answered strikes through and moves to a short what you just added line — so the summary at the top stays a true account of the book. Never a third marker, never a per-chapter badge (that ruling was withdrawn — IR2pb-flow).AC-BRAIN-186 (ruled 2026-09-02, Peyton) — the confirm click is ALWAYS required, whoever wrote the change. Her own typed edit and an AI-proposed one land in exactly the same place: the tape returns, the band goes back to its two draft actions, and nothing is live to her assistants until she presses Save to Brain. There is no author-based shortcut — a founder never has to work out why this change needed her blessing and that one didn't.AC-BRAIN-03 pattern, server-side per ↗ AC-BRAIN-127c) the moment she leaves the co-edit sheet — so closing the book, switching device or losing the tab loses nothing, and she picks it up from the rail (J3r). Saved-as-draft and saved-to-Brain are two different things and the chrome says which one she is looking at: the draft is what the tape is describing; the Brain is what the button writes to.AC-BRAIN-140). The auto-saved draft carries no version of its own; the number moves when she confirms, which is what makes vN a true record of what her assistants are answering from.AC-BRAIN-186. Both land here; IR2pb-v2 additionally handles the contradiction case, where the new answer fights something she already confirmed. This frame is the simple case: new information filling a hole, nothing to reconcile.--lantern / --lantern-faint pair, no new device. On the strikethrough gap row the accent is the chip only; the struck sentence stays paper-charcoal, because a resolved gap is not an alarm either.1 change not saved yet — your assistants still answer from v3
↗ AC-BRAIN-186 — every change re-arms the confirm, hers or ours. The edit is already safe as a draft; the tape and the gold CTA are about the Brain, not about losing work.
Recap
Two things your site doesn't say — one fewer than last time
The 2026 dates for either week aren't published, so we can't tell a guest when the next one runs.
You added: Bali Reset runs 4–10 March and 6–12 June; Lisbon Making Week runs 12–17 May.
Nothing says what happens if someone cancels — only that a deposit can move once.
05 · Customer Q&AAdd →The private buyout has a price but no description of what a group actually gets for it.
03 · What you sellAdd →What your assistants say for you
Your offers, prices, and what's included · 3 offerings
A slow week of yoga, food and nothing urgent
Studio days plus one long table every evening
What makes people pick you
The only small-group week that asks nothing of you — not a party, not a program.
unchangedAC-BRAIN-187 — she says what is wrong in her own words; the sheet never asks her to name a chapter (Peyton ruling 2026-09-02). An earlier draft had the sheet open pre-targeted at a chapter — “You flagged 03 · What you sell” — which forced a question nothing could answer: where would she have flagged it? No per-chapter flag affordance exists anywhere in the book, and ↗ AC-BRAIN-22 bans per-section action buttons, so one could not simply be added. The alternative was inferring the chapter from scroll position, which is a guess dressed as a fact. Both are gone. The trigger stays the ONE global Not quite — re-read in the band, and the sheet asks a plain question instead of pretending to know the answer.AC-BRAIN-187 was written as “the Teach sheet names what triggered the re-read.” Under this ruling the sheet still names the trigger — it knows a read exists and is asking for a correction rather than a first read — but it no longer names a SECTION. If the AC's text implies section-level attribution, it needs narrowing to trigger-level. Nothing else in the frame moves either way.AC-BRAIN-188 — something must be visibly running. The progress line is the existing research beat — RC-open on the Web door, 1.4-teach-live on the Teach door — mounted on the Brain page, not a new spinner. When it lands, the playbook reopens as the next version (IR2pb-v2) and rejoins the loop at Save to Brain.Start with anything you already have
You don't need a website. One Instagram profile and a couple of posts is enough for a first read.
Tell us what's wrong and what to fix
Plain English is enough — “the buyout isn't $18,000 any more and it includes the chef now.” You don't need to say which chapter it lives in; we work that out.
If a page or a doc has the right answer, hand us that instead — we'd rather read it than take one line on trust.
A thin read is not a third state. A founder whose first pass came back with almost nothing arrives at the same sheet with the same ask — she still just says what's missing or hands us more to read. Inventing a separate “thin read” tip would have been a variant that only the file knew about.
Your playbook stays as it is — v3 — until the new read lands and you confirm it.
.rail-resume / .rail-resume-k / .rail-resume-s are J3r's, drawn verbatim — one resume row, one seat, whether the unfinished thing is a share or a read. Nothing new is minted here; this frame exists because the lifecycle's step 8 had no drawing on the Designed-playbook shelf, so a builder locking the playbook could not see the state a founder actually returns to.AC-BRAIN-189 — a pending unconfirmed read surfaces on the rail as its own row. It is a state, not a notification: it persists until she confirms or re-reads, and it never expires quietly.AC-BRAIN-127c — the draft lives server-side in brain_read_drafts, so this row survives a closed tab, a cleared browser and a different device. The subline says exactly that, in her words: “Your read is saved — nothing was lost.”AC-BRAIN-137) — never a second sheet, never a summary of the read instead of the read.AC-PLAYBOOK-34). The pending read does not inflate Where you stand — that is the whole point of showing it as a separate row rather than folding it into the number..rail-resume carried no lantern at all — plain white on a hairline, visually identical to every status line around it, which is exactly why it read as a description rather than something waiting on her. It now reuses .rail-confirm.need verbatim: lantern-faint wash, lantern-tinted rule, a lantern node on the key line. (2) .missing-item.need was ALSO lantern, so the rail was showing two gold moments at once. An unconfirmed PAID read outranks an unfilled gap, so wherever a resume row is present the missing-list now goes paper-quiet — enforced in CSS (.rail-block:has(.rail-resume) .missing-item.need), not left to each drawing to remember.Your playbook · Uglywoo Retreats · v3
(book cover + chapter index — drawn at 2.2b)
resumeReadRow (main column, above Your playbook) is a dismiss-and-scroll — the restored read already drives the draft blocks, so "Resume" changes nothing but the row. resumeComposerRow (inside the Teach sheet's composer) genuinely rehydrates a staged screenshot/paste draft. Same shell, same icon, same sentence. shippedonConfirmAllDrafts — the exact function the book band's Save to Brain calls (BrainPage.tsx:2046 "one function, not two mechanisms"). Neither the row nor the button was drawn anywhere in this file. shipped then · retired by #4693brain_read_drafts, ↗ AC-BRAIN-127c) in exactly that shape. The standalone .read-resume-row box is retired; its two verbs become the waiting row's doors. Amends ↗ AC-BRAIN-189: the prompt is the line, not a rail row — the rail keeps its fixed vocabulary (Where you stand · Needs you · Activity). amended 2026-09-10 (PR #4711)onOpenBook), no button, no onConfirmAllDrafts invocation, no second Save-to-Brain tap — the band's Save to Brain (↗ AC-BRAIN-137(a)) is the ONLY save affordance anywhere on the page. The row renders graft, never lantern, while the line holds the waiting row (one lantern per view, U12). Row title staying Ready to confirm · 7 (shipped) vs. becoming Ready to save · 7 (this drawing) is a copy call only — not a mechanics change. Per-draft ✓ Use in a chapter stays — that is field-level, it does not mint the book.brain_profile (↗ AC-BRAIN-186).
A READ LANDS (Web door · Teach door · queue done)
charged once · nothing written to brain_profile
│
▼
┌──────────────────────────────────────────────────────────┐
│ UNCONFIRMED · the line reads ✓ Read · ✓ Drafted · │
│ ● Save — waiting on you · caption: waiting on you │
│ drafts sit in the chapters as "Your call · draft" │
│ rail: Ready to save · 7 — open it to review (graft) │
└────────────┬─────────────────────┬──────────────┬────────┘
1.4-read partial / queue done │ │
(the landed leg, already drawn) │ │
│ │ │
she leaves │ she opens the playbook │ Discard this read
(tab closed, │ (the line's Open door, or │ (line door)
next day) │ the rail's row — both │
│ just open it, neither saves│
▼ ▼ ▼
┌──────────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
│ 8 · COMES BACK │ │ THE DRAFT SHEET │ │ DISCARDED │
│ same line, same row, │ │ band: Not quite │ │ line gone · drafts │
│ from the server draft│ │ — re-read · │ │ gone · coverage │
│ rail row stays graft │ │ ★ Save to Brain │ │ unchanged · toast │
└──────────┬───────────┘ └────────┬─────────┘ │ with Undo (5 s) │
2.0-return (+t +m) │ └──────────┬───────────┘
│ │ 2.0-return-discard (+m)
└──── Open your playbook ►│ │ Undo
│ └──► back to UNCONFIRMED
▼
┌─────────────────────────────┐
│ 4 · SAVED · v+1 minted │ Save to Brain — band,
│ ✓ toast · cover chip · │ or the book-end quiet repeat:
│ Activity row · coverage up │ ONE function, two seats
└──────────────┬──────────────┘
2.0-saved (already drawn)
│
▼
┌─────────────────────────────┐
│ CONFIRMED IN YOUR BRAIN │ assistants read it now
│ line dismissed · spine reads │ "Read confirmed: … · open"
└─────────────────────────────┘
2.3 (book) · BS-2 (landed page)
── the OTHER resume, a different object ──────────────────────────────────
Teach sheet (Option-B share: a section, an offering, an inventory row)
metered screenshot / paste read → proposals staged in the composer
she closes the sheet before organizing
│
▼
┌──────────────────────────────────────────────┐
│ Teach sheet reopened · above the composer: │ Review → restores the
│ "Your last share is still here — 4 details, │ proposals card;
│ not yet in your Brain." Review → · Discard │ Discard clears the stage
└──────────────────────────────────────────────┘
1.3-sheet resume (+m) · never on the page, never on the line
SEAT OBJECT WAITING DOORS (verbatim) FRAME
─────────────────────────────────────────────────────────────────────────────────────────────────
Building your Brain an unconfirmed READ Open your playbook → 2.0-return
line · waiting row (server draft, 48 h) Discard this read 2.0-return-discard
Rail · Where you stand the DRAFTED SET (N) (row is a door only — 2.0-return (rail)
same read, counted #4693: onOpenBook, no button)
Book band (sheet) the whole DRAFT ★ Save to Brain · Not quite — re-read 2.0-full · IR2pb
Teach sheet · composer a staged SHARE draft Review → · Discard 1.3-sheet resume
─────────────────────────────────────────────────────────────────────────────────────────────────
RETIRED main-column box "Your read … is ready — pick up where you left off [Resume] [Discard]"
RETIRED rail row "Unconfirmed read — Resume →" (2.0-resume → register; AC-BRAIN-189 amended)
UNCHANGED rail's drafted row: #4693's one door onto the book stands — no Save-to-Brain
button, no lantern; row title "Ready to confirm" → "Ready to save" is copy-only
AC-BRAIN-127c — the draft is server-side (brain_read_drafts, one row per user, 48 h). On return the line re-mounts from that row: ✓ Read — uglywooretreats.com · 6 pages (its sources), ✓ Drafted — your playbook, then the waiting row. Same rows she saw yesterday; nothing re-runs, nothing re-charges.StepRow status="lantern" (the PR-2 primitive): title Save — your playbook is waiting on you, meta 7 details from your site are in your chapters as drafts. Nothing is saved until you say it sounds like you., doors Open your playbook → (opens the draft sheet at the top — IR2pb-all, band intact) and quiet Discard this read (2.0-return-discard). Head caption waiting on you. amends AC-BRAIN-189 (2026-09-10) — the prompt is the line, not a rail rowAC-BRAIN-186 — nothing writes to brain_profile until her tap. The rail's Ready to save · 7 row is a door only (shipped onOpenBook, #4693) — it opens the book, where the drafted rows render inline under their chapters; the actual save tap lives ONLY on the band's Save to Brain (↗ AC-BRAIN-137(a)). No second confirm control on the rail, no onConfirmAllDrafts call from here.AC-PLAYBOOK-34 — coverage counts confirmed content only. Where you stand 58% · 3 of 8 ignores the 7 waiting details; the row under it is how she knows they exist.lanternSuppressed, extended to "line holds a waiting save"), the chapters' Your call · draft blocks likewise. Activity shows Research landed · yesterday and no confirm row — correct, nothing was confirmed.Coverage counts what you've confirmed — the 7 waiting aren't in it yet.
clearStagedRead + discardServerReadDraft). The line unmounts; the 7 draft blocks leave the chapters; Ready to save leaves the rail; coverage does not move (it never counted them, ↗ AC-PLAYBOOK-34).AC-BRAIN-186 / AC-BRAIN-54 — nothing written, no version minted. Activity keeps Research landed (it happened) and gains nothing..toast; Undo is text, 44px tall on 375. It does not stack with any other toast.Teach your Brain › (was Add → — amended 2026-09-10, #4714); private chapters carry Coming soon and no CTA.Add → CTA, deep-linking the co-edit door exactly as a gap row does (2.0-gap-add). One door, the existing one.Teach your Brain › and opens the Teach sheet — the peek on the Book at desktop (2.0-teach-peek), the full sheet at 375 in wave 1 (-m-wave1) — the same door the new bar opens. The co-edit deep link is retired on this CTA. The recap gap rows' Add → (2.0-gap-add) are not touched by this amendment — open question, flagged with #4714, not decided here.Add →; the page-level Teach bar still shows beneath — it is not a chapter door). The reason is capability, not secrecy — there is nothing to open yet. Showing the structure while withholding a CTA that would go nowhere is the honest pair; hiding the chapter would imply it doesn't exist.AC-PLAYBOOK-17 was amended 2026-09-02 and this ruling IS its text now — cite it as amended, never as superseded, and never as PRD debt. The quiet-pill reading is retired.AC-PLAYBOOK-17 (amended 2026-09-02) makes this explicit: public and coming-soon private chapters with nothing in them are left out of the document, never rendered as field prompts. Save a copy ▾ produces something she hands to other people; scaffolding in it would read as an unfinished draft of her own business. The scaffold is a LIVE-SURFACE teaching device only.Teach your Brain › (amended 2026-09-10, #4714 — was Add →). The Teach bar beneath is page-level (2.0-teach-bar) — both open the same peek. Grammar is .scaf-line / .obs-row.scaffold, already in this file — no new visual language.Your offers, prices, and what's included
an offeringits price
an offeringits price
an offeringits price
Nothing here yet — this is the shape it takes. Teach your Brain ›
Where the money actually comes from
an income lineshare of revenue
an income lineshare of revenue
This is the shape it will take — you'll be able to fill it in soon.
bg-black/.80 + blur(12px), border-white/.15, white 13px light label, content width (capped at the 720px prose measure, not stretched to it), min 44px, 16px off the bottom plus the safe-area inset, zIndex.fixed — below the header band and below every modal. Label Teach your Brain + tail add · change · remove at white/.65, the tail hidden under 768 (hidden md:inline). Never gold, never lantern — a standing door, not a "needs you" moment.position: fixed to the viewport, so what sits under it changes with scroll — most often a white playbook card, not the Book's own black. The 09-10 draft's ink-glass fill was tuned for the paper column only and went invisible white-on-white the moment a card filled the viewport (any window under ~680px tall — most non-maximized and 13" laptops). bg-black/.80 is the platform's existing treatment for floating controls over arbitrary content (AssistantSummaryCard.pre /60, PreviewPanel /85). Peyton: the pill is fine for now.BrainShareSheet as every other Teach door — as a peek on the Book (desktop ≥1024, wave 1), as the full sheet elsewhere. A dropped file flips peek → full (the existing 1.3-share chrome); the ⤒ affordance that used to do this is retired. No second composer.Teach your Brain ›), the rail gap-queue Add rows and BrainFillAffordance (peek on the Book, full elsewhere). The rail's Teach your Brain more row is unchanged.AC-BRAIN-63 — same sheet, composer never changes, charge on the primary only; an empty primary stays disabled. The peek inherits this verbatim.AC-BRAIN-126 — the sheet's title is Teach your Brain, and the bar label, the peek head and the scaffold door carry the same casing (resolved 2026-09-10, team-lead — the lower-case draft string is retired; one string, every door)./brain/book only, on every chapter incl. scaffolded and private ones; it never covers the band's actions and never scrolls away.min(720px, 100% − 32px)), not a per-state frame.mg-node-you and closed with a ›; the build ships label + tail only. Flagged rather than silently dropped — if Peyton wants the node back it is a one-line change to BrainTeachBar.tsx, but the shipped pill is what this frame now depicts.prefers-reduced-motion shows it seated.AC-BRAIN-137).Your places and how to reach you
Your offers, prices, and what's included · 3 offerings
90 min on Zoom · replay for a week
More ▾One session, booked over WhatsApp
More ▾Small group · every Sunday morning
What makes people pick you
Practical mindset work in Bahasa and English — for schools that want a speaker who has actually run a classroom.
AC-BRAIN-63 — same composer, same primary Read, charge on Read only; empty composer = Read disabled.AC-BRAIN-126 — one sheet; the peek is BrainShareSheet with presentation="sheet" sheetHeight="content" + transparentBackdrop + transparentHeader — not the nestedBackdrop .96, not softBackdrop, and no 40:60 split pane. Title is TEACH_TITLE, the same string the full sheet renders.f-pb-peek-read + the 2.0-delta amend (placeholder below).TEACH_TITLE) + ✕; placeholder Add a price, change one, remove what you stopped doing — say it like you'd tell a new assistant. (TEACH_PEEK_PLACEHOLDER — the correction verbs, not the generic well copy); primary Read; drag-over status line Drop it — we'll open the full sheet. Casing follows ↗ AC-BRAIN-126.⤒ head icon and the ⤒ More ways to share foot link both existed for one reason: to let her see the playbook alongside the composer. The transparent backdrop now does that for free, so a second surface to navigate to was redundant chrome. A multi-file drop still expands — that is a functional fallback (the compact composer can't process it inline), not a nav link.Your offers, prices, and what's included · 3 offerings
90 min on Zoom · replay for a week
More ▾One session, booked over WhatsApp
More ▾Small group · every Sunday morning
What makes people pick you
Practical mindset work in Bahasa and English — for schools that want a speaker who has actually run a classroom.
Drop it — we'll open the full sheet.
⤒ head icon and the More ways to share foot link are gone (Peyton, 2026-09-11): they existed to let her see the playbook next to the composer, which the transparent backdrop already does for free./brain, scrolled to the Building-your-Brain line; the existing ready notice reopens the Book on the drafts. One narrator, always visible./brain, scrolled to the ONE Building-your-Brain line (BS-1 / 1.4-teach grammar, unchanged). No new surface, no second narrator, no toast — the line she already knows is the whole answer.AC-BRAIN-127c) reopens it on the draft rows with the Save to Brain band. Nothing new is built for the return leg.assistant-lifecycle.html#sec-5d) yields the same way — drawn at 2.0-read-yield-wiz.AC-BRAIN-256 — the Read tap on a Book-hosted Teach door closes the peek AND the Book, on every Teach door, whether or not the run has a question for her. The stay-on-Book path is retired.AC-BRAIN-190 / 191 — the line is the only narrator: eyebrow Building your Brain, head caption exactly one of working / waiting on you / done. Rows are sources, never pipeline stages.AC-BRAIN-127g — the pass narrates in the main-column read-spine seat on /brain, above the playbook. Never a modal, never toast-only.AC-BRAIN-127c — when the pass lands the playbook opens with the read landed unconfirmed; the line does not collapse behind her, it settles into the done row and stays until confirm./brain; if the founder scrolls away the line keeps its seat and never follows her.prefers-reduced-motion it is the frozen mid frame./brain, scrolled to the line. Caption working; the pasted text settled the instant it landed, the staged file is the one row still reading. This is the beat #4822 hid behind a book that looked unchanged.AC-BRAIN-127c's auto-open, unchanged.5 details found across everything you shared
1 change not saved yet — your assistants still answer from v3
Your offers, prices, and what's included · 3 offerings · 1 changed
90 min on Zoom · replay for a week
More ▾One session, booked over WhatsApp
More ▾Small group · every Sunday morning
assistant-lifecycle.html#sec-5d ↑ topassistant-lifecycle.html#sec-5d's walkthrough, unchanged.AC-BRAIN-256 — the yield rule is door-agnostic: the wizard's Book takeover closes on Read exactly as the /brain/book Book does. One behaviour, not two.AC-BRAIN-213 — the takeover does not unmount the Connect sheet; it stays mounted underneath and is never visible. Close still lands her on the same Connect tab she left.AC-BRAIN-190 / 191 — the embedded page renders the SAME line, same eyebrow, same three head captions. No wizard-only narrator, no progress bar in the setup chrome.sec-5d beat (3), unchanged, and its 6a / 6b Brain-check row outcomes are unchanged too.sec-5d-m's full-screen takeover at the 375 measure — stated, not a per-state frame./brain, scrolled to the line. Its Close is the takeover's Close, not a second one.f-pb-peek-read (+ -m) for the post-Read Book, and an amendment to 2.0-delta (f-pb-delta) for the changed / removed row grammar. Depends on the wave-2 corrections[] contract (#4715). Until then the only post-Read truth is 1.4-teach's line — and where she is standing when it runs is now drawn: 2.0-read-yield (Read closes the Book too, Peyton 2026-09-17). The row grammar reserved above is unchanged by that ruling.fixed inset-0, Brain still mounted. Dimmed page visible at the edge of the story./brain. Save a copy stays on the book header only.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
6 chapters still empty — public chapters only; hides once every public chapter has a block.See a finished example →. Private empties stay Seal · idle only. Thread under the cover title and each zone eyebrow (U12). Never grey body text (Peyton 2026-08-16 / 18).Nothing saved yet — teach your Brain and this fills in
Nothing confirmed yet
6 chapters still empty
What your assistants say for you
What you do, and who it's for
a fact about your businesswhat it says
a fact about your businesswhat it says
Nothing here yet — this is the shape it takes. Add →
Your offers, prices, and what's included
an offeringits price
an offeringits price
Nothing here yet — this is the shape it takes. Add →
Your voice, your colours, your type
a brand factits value
a brand factits value
Nothing here yet — this is the shape it takes. Add →
f34, 2026-09-05): the single-hero intake is gone; the carousel survives here as the component..ink-* grammar as f33 (shared InkChapterBody, AC-BRAIN-83) inside the existing ExamplePlaybookPanel shell (left slide panel / mobile full-screen push; Back, Esc, z-order unchanged). Per-persona variation is Look content, never layout: each fictional business gets its own swatches + type in chapter 06 (Bloom’s warm paper vs Ember’s char-dark vs Clay Room’s stoneware vs Lamp Light’s garden sage) — which demonstrates personalization without forking a second book design. Same interval lock as her book: 02 / 04 sit on that example’s Look paper; 06 stays her-insert. Same Q/A marks. Examples always have a Look, so they always interval. Event-host example in-app is Lamp Light Club (named pilot, not Bali / Offline Club). This frame still draws The Clay Room as the workshop-host interior — same chrome, different Look.ExampleTemplateBook — Bloom Retreats, The Clay Room, and Lamp Light Club open it; Ember Goods and Stitch & Story stay cover-only · soon. Do not draw five full interiors in this file; Clay Room remains the one specimen.prd-pl-voice-card.md surface c). One quiet ink-body line under the Sound facet: Speaking today · Warm Host — default · Your voice — coming soon — every assistant opens as the steady host voice until the business’s own voice is confirmed from a preview. Book grammar only — no chips chrome, nothing interactive, no extracted-voice note (a fixture has no founder, AC-SOUND-13 ↗). Same line on 375.Example — The Clay Room) + cover kicker (EXAMPLE · WORKSHOP HOST). The AC-BRAIN-14 generic-map disclosure renders as a quiet cover colophon — only for personas with tailoredSpine=false (workshop-host, custom-order-maker, event-host); Bloom Retreats and Ember Goods never show it.examplePlaybooks.ts (+ one optional look field per persona) — no DB, additive never load-bearing (AC-BRAIN-15).Class seats booked from the DM, no more back-and-forth.
This example shows the shape of your playbook. Workshop hosts build with our general question set today — a tailored one for your craft is on the way, so a few questions may be broader than what you see here.
What your assistants say for you
What you do, and who it's for
The Clay Room is a pottery studio in Lisbon running beginner wheel-throwing classes on weeknights and weekends. It's for people who want to make something with their hands after work, not for trained ceramicists.
Every seat gets booked from an Instagram DM that you walk to a payment link by hand.
Your places, hours, and how you deliver
If a class fills, the assistant offers the next open date instead of leaving someone on read.
Your offers, prices, and what's included · 2 offerings
You're not selling a class; you're selling the first time someone's hands actually centre the clay.
Programs · 1
Two hours. Clay, tools, firing, and two finished pieces.
More ▾Services · 1
Six or more. Same studio, same first-timer pace.
More ▾What makes people pick you
The whole first class is built around it being fine to make a wonky bowl.
You started teaching because the studio had quiet wheels in the evenings and friends who kept asking to try. The thing a first-timer worries about is looking clumsy in front of strangers.
Your questions, deposits, refunds, and rules · 5 of 5 answered
Skill level & fitness · 1
None — every intro class assumes it's your first time.
Cancellation & refunds · 1
Yes, up to 48 hours before. Inside that the seat is held but not refunded.
Attire & safety · 1
Clothes you can get dusty. Aprons are at the studio.
Groups, custom bookings & languages · 1
Six or more is a private session at €55 a head. Payment in full holds the room.
Pickup & finished work · 1
About three weeks, once they're fired and glazed.
Your voice, your colours, your type
Friendly, hands-on, and unfussy — the way you'd talk to someone nervous about being bad at it.
Reassure first, book second. No art-school jargon, no pressure; if someone's not sure, point them at the next beginner night.
Speaking today · Warm Host — default · Your voice — coming soon. Every assistant opens as a steady, friendly host — calm, honest, prices verbatim from the Brain, first message names the AI — until The Clay Room’s own voice is confirmed from a preview.
The one that's yours
Page & ink
Supporting
Together
The Clay Room
How this reads together
A heading, a line of body, and the colour that is yours — on your page.
Continueyour page · your ink · your signature
The vibe from your moodboard
Handmade and kiln-warm — terracotta and stoneware, not a polished studio ad.
The Clay Room
How a line of your type reads on the page.
The Clay Room
How a line of your type reads on the page.
What only you see · yours to fill
Where the money actually comes from
Your people, in your own words
Deposits, booking rhythm, day-to-day
Your north star
Filled from your research and your own notes — never shown to customers.
Yours gets built from your own site, Instagram, and files — then you review and edit every line.
/brain/book. The book itself is still a full takeover (AC-PLAYBOOK-11) — this frame is the edit sheet rising over it, not the book becoming a 40/60. Close sheet → book. Close book → playbook page. Escape with the sheet open closes the sheet, not the book (same as Save a copy).prd-pl-voice-card.md). The sound door’s edit sheet opens with the 01 tab row + 02 numbered guardrails + 03 her voice as the active tab body; the designed page above now carries the FULL Sound section in ink grammar (see the f33 note — Peyton’s "Playbook page gets its own full section, not a one-liner" call), with the peek showing its top: ink tab row + her pull.PLAYBOOK_SECTION. How you show up is omitted (doorless). Branding always nests 1. How you look / 2. How you sound — click Branding to open look. Solid rail = you are here. Sub-line is Confirmed / Missing — never offering names, prices, or sentences already in the designed page. Missing is colour only. One lantern Node on the first gap (How you run).detail → still skips any book preview (goes to 2.5).Close · Your playbook stays visible above the slide. ✕ on the sheet is “close sheet”, not “close book”.Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Story: as a founder who started with no website, the day I finally have one I get asked — once — whether we should go read it.
Acceptance: ↗ PRD §E2 (website_url ask with "skip — don't have one yet") — the skip path shipped, this is the come-back path. · ↗ AC-BRAIN-57 — consent-gated, paid on the tap, no implicit run. · NEW (PRD debt) — a website_url empty → set transition raises this offer once, and is exempt from the 90-day gate (which measures time since the LAST read; there isn't one). · NEW (PRD debt) — accepting is what makes the permanent freshness row BL-1a exist for this account. · Seat drift, flagged not resolved: shipped website_url lives on Your business (PlaybookBusinessDetailsSheet.tsx), the PRD files it under E2 Where to find you — drawn on the shipped seat.
Design: the offer is a .co-tip — the lantern-faint tip already used on this sheet family, so it is the ONE gold moment in the view and the sheet's own controls stay plain. · It sits directly under the field it is about, never as a separate banner. · Declining is silent — no card to dismiss, the row at BL-1a simply appears quiet and she can tap it any time. · Lands on What's new → What this would update, same as every other door. ·
Built from what you shared · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
--fg-55. Coverage dots are Node (you = covered / graft = partial / double = gap). One lantern moment per sheet (unkept listing draft), never gold on field chrome.DraftCompare/BrandVoicePreview render as this row, never a separate screen (absorbs f8).Archetype: sheet-slide-panel.md.
--fg-55.prd-pl-brain-playbook.md: Industry hidden; About + Website + Instagram on Your business; Maps + hours physical-only on Where; Website/Instagram are not on Where. Address and who-can-buy sit under More details. Direction is Coming soon. Your story is a sheet, not an 11th chapter. Option B Q&A confirm, Line/Talk/Words, and #f22v Refine stay specified-not-built.13-form-* is the overall look — every Brain section drawn as a complete 40/60 filled sheet with its chapter reference on the left. Official names from PLAYBOOK_SECTIONS. Branding nests 1. How you look and 2. How you sound — each its own sheet. Reviews on Playbook → Co-edit.prd-pl-voice-card.md). The f22w-default sheet leads with 01 tabs (Default — Warm Host speaking-dot · Your voice active), 02 read-only numbered guardrails (never editable by anyone — constants, not DB, AC-SOUND-09 ↗), then 03 her voice content as the active tab body. Editable here: her voice content and, later, the skin selection (preview → confirm at S3, one-tap revert at S5) — there is no "customize Warm Host." Identical guardrail block on Refine / Saved states on purpose (AC-SOUND-05 ↗). Tab states: 2.9w.Archetype: sheet-slide-panel.md. Same door as 33e-biz.
Your playbook
a · nothing saved — the question IS the row (never hidden)
b · online, filled — the read left 2 questions (one gold)
c · physical, confirmed — one editorial line, not a field dump
The door reads open →, not detail →: it opens the chapter IN the book, where the fields are edited. No sheet.
AC-BRAIN-74 — What you sell is on the 40/60 chapter-sheet roster: co-main left, Your playbook rail right at ≥1024. 768/375 stack to the sheet.AC-BRAIN-63 — the chapter door opens the SAME share sheet every other affordance opens; scope is passed in, the composer never changes.AC-BRAIN-126 — the share sheet titles itself Teach your Brain; the chapter door label now matches the sheet it opens instead of fighting it.AC-BRAIN-83 — the book read of this chapter comes from the shared InkChapterBody, never a second interior. The grouping headers added here are content, not a fork.AC-BRAIN-36 — no per-action price badge anywhere on this sheet.design-decisions.md 2026-08-28; needs a PRD row.brain_profile.offerings prose renders as the chapter one-liner. It is written today and read nowhere (MF-Platform #4248) — no AC covers the read. Because of that, the AUTHORED fallback line carries most first paints in production (ruling 2026-08-30, open Q5) — do not read this populated frame as the typical day-one state.offerings[] lands as PROPOSALS to confirm, never a silent overwrite. Mechanism exists (organize-content, organizeContext.target:'section', partitionShareProposals); the list-wide merge sibling and its AC do not.chat-prompts.ts — prices verbatim, a named option or no number, dates verbatim, the booking link unchanged, no price on file → warm handoff. Same mechanism as Warm Host’s guardrails, same chip (authored by us · never change).OfferingsReadGroups.tsx ~line 256: hairline border, transparent, 11px, quiet caret) — reused, not invented. Still driven by services[].type. Closing the control loses nothing: the lb-group headers below carry every per-type count, empty groups included. Option text is the label ALONE — the “· N” counts came off (Peyton 2026-08-29): counts live in ONE place, the group-head badges.LedgerGroupHeader). The shipped head drew border-b white/[0.06] — the SAME token and weight as the row rule — so the eyebrow sat squeezed between two identical hairlines and read as another list row, with its right-hung count landing where row fact-pills land. Now: NO rule on the head, a 32px whitespace step (vs the ~28px row rhythm), and the count as an 18px round badge BESIDE the label — Pulse tab-badge geometry, MONOCHROME ink (border --border · bg --surface · numeral --fg-55): playbook §3, a neutral count is information, not an ask. Tier-correct by the kit’s own two-tier model: a type group inside a chapter list is the subordinate .section-label tier (no trailing rule), not the top-level .part-label tier (design-foundations.html). Zero-state groups get no badge — a quiet inline word.product_sheet_id set there is ONE merged lineup — sheet rows sit inside their type groups, drawn identically to MystFlo rows, no per-row origin badge. Sheet-ness survives as one quiet provenance line under the list plus the two existing escapes (open your sheet ↗ · move into MystFlo instead). PlaybookDocLinkedSection stops composing as a tab and becomes that line + doors. The 13-form-sell-sheetside frames are retired with the tab they drew (merged frame). Kit design-decisions.md needs the reversal entry.OfferingValueFields form in place — at 375 one inline editor pushes every sibling row off-screen, so scanning and filling would fight on one screen.AC-BRAIN-126: the sheet this door opens already titles itself Teach your Brain, so door and destination finally agree. Not a label swap — the mechanism is the ALREADY-LOCKED Option B host (2.7-share, Peyton Pick 2026-08-23), applied at chapter scope, not re-derived: R6-3 one share surface — the door opens BrainShareSheet/ShareInline untouched, no second composer; per AC-BRAIN-80 the LEFT 40% is pagePaneOverride carrying THIS chapter’s lineup as the live origin pane, ticking as extracted rows land; below 1024 the pane drops, 375 stacks (AC-BRAIN-100/101). It is a modal stack over this chapter sheet — closing (or finishing the drop) returns to the exact What-you-sell sheet she left, never a navigation. Extraction results land IN PLACE: rows appear in the lineup as confirm-first PROPOSALS (the bulk-paste lock above — “read lands → playbook updated” pattern), never on another surface. This chapter-level door is a NEW Option B mount (chapter-scope origin pane) joining the pending-mount list at 2.7-share, while the per-row OfferingShareComposer mount named there retires with the one-door lock. One helper line rides under the label: “Got a price list or catalog written down? Drop it in — we’ll sort it into rows.” (the Option B info-tip slot, scope named). The whole-brain continue loop (2.7-guide) is a SIBLING under separate CPO/design evaluation — untouched, not contradicted. Q&A’s door still reads Share anything — renaming it there is Peyton’s call, not assumed here.origin:'doc' rows expand to the read summary with NO "Edit this offering" door — the Sheet stays their one home (the open row drawn here is a MystFlo-origin row, hence its door).AC-LISTING-25 — the editor carries the FULL fact set (name · type · price · dates · duration · description · details · link), untruncated. The list's read summary is the skim; this sheet is the capture surface.AC-BRAIN-63 — the per-row "+ Share anything" door inside this sheetPlaybookDepthSheet.tsx) still expands the editor inline in a CoeditLedgerRow; the sheet host is the redesign's new plumbing.PlaybookDepthSheet.tsx + OfferingValueFields.tsx: type select · Name · Price as shape-first (One price / Tiers / Range / Free, ISO currency, display composed once — #3327, drawn at 28g) · When it runs as an occurrence LIST + the "my schedule isn't dates" verbatim escape + duration · Description · Details · optional booking link. Nothing here invents a field and nothing drops one.ModalWrapper presentation="sheet" grammar): slides up over the RIGHT pane to a 3/4 rise, the pane's background peeking above it, div.dim's dark transparent overlay keeping the docked list readable. ✕ and Escape close the editor only, the chapter surface stays. At 375 there are no panes — the sheet rises over the dimmed list full-width.add() appends a blank row immediately, which is the 'Untitled' factory.--surface wash that fades; prefers-reduced-motion gets the scroll only, no wash.--fg-40, never the literal "Untitled" (5 render sites in PlaybookDepthSheet.tsx); the row's editor still names it in place.--surface, one shot, then gone. No lantern, no emerald — a landed row is done, not "needs you" and not a success banner. Motion is earned (canon U13): one fade, then still.AC-BRAIN-108 — ONE grouped surface, never tabs. Standard FAQ_GROUPS labels verbatim, each head carrying its own coverage glyph + quiet count. No separate coverage view, no coverage door. The batched ✦ Draft the N open ones is the one paid tap, action named on the button, no dollar figure, wallet line beneath.AC-BRAIN-108 (kill list) — the duplicate suggested-question chip rows and the floating “N to answer →” ask-word do NOT render here; their job is the group heads.AC-BRAIN-74 — Customer Q&A is on the 40/60 chapter-sheet roster.AC-BRAIN-63 — the chapter Share anything door opens the same share sheet as every other affordance.AC-BRAIN-29 / AC-BRAIN-49 — real answer-less questions read from the site stay visible as open rows and hold the gap count above zero until answered or dismissed.kind="faqs" has NO share path today, not even the per-row one Offerings has. The chapter door is the first one.policies.rescheduling/.returns/.shipping render here as settled answers but are RAG-hit-only on the live persona path, not always-injected (MF-Platform #4247). The guardrails beat states them as always-on, so this gap must close before the beat is honest.Carries every time | Looks up when asked was the one tab split that would pass the Pulse archetype cleanly here; Peyton declined it anyway, because exposing the injection-vs-retrieval mechanism to a non-technical founder is a copy bet, and not one worth taking twice on the same chapter.FaqPersonaSwitch (locked 2026-08-07/15, not tabs) already owns this chapter’s one scope slot; a second strip beneath it would visually re-litigate that lock even though the code would not..type-select grammar Sell adopted in 28aj ("All topics ⌄" — option counts came off 2026-08-29, counts live only on the group-head badges). At Q&A's scale the dropdown saves MORE than it did on Sell: the shipped FAQ_GROUPS taxonomy is 19 groups (_shared/faq-corpus.ts), which wrapped the chips to three lines. Options are the standard labels verbatim, zero-count groups included — they are the gap-discovery path. Gaps only stays a chip BESIDE the dropdown, never a dropdown option: it filters coverage state, not topic — folding it in would make "show gaps" and "show one topic" mutually exclusive, and it reads the same useFaqCoverage data the dots render, so toggle and dots can never disagree.--fg-30. The chapter-level chip on THE ANSWERS ("8 answered · 4 need you") stays — that is section-head annotation grammar shared by all four beats, not a group count..qa-tail). The guardrails Q&As are read-only content mirrored from another chapter (PlaybookPolicyQaTail — Q&A chapter only; Sell's guardrails are authored-by-us rules, no tail there), sitting under rows the founder edits here, and a caption alone didn't say so. Now the whole band — three Q&As + the edit door — hangs on one continuous SOLID 2px left edge at --border/white-10: the mg-edge-you grammar, solid because these are the founder's OWN words. The Double Law dotted stroke was considered and rejected — dotted = assistant (U12); borrowing it for "not editable here" would give the dash a second meaning. Each row is GO-somewhere navigation to How you run, so it carries the ledger's trailing › at --fg-40 — the shipped hover-only affordance doesn't exist at 375. Ramp per #4295's correction: question 13px --fg-70, answer --fg-55 (the shipped white/50 should snap to the 55 ladder step, and the tail's font-light tracking-wide eyebrow should snap to the canonical eyebrow ramp — both code-side alignments, no further frame change).--fg-30 link (Save · Edit question · Remove) — deliberately subordinate: the answer is still the job, the question edit is the repair. Never a second prominent field above the answer. Code and frame must agree — the build carries this affordance, not a silent deviation.ShareInline untouched, THIS chapter's answers dock LEFT via pagePaneOverride and tick live as extracted rows land, modal stack over this sheet — closing returns to the exact Q&A sheet she left, never a navigation. Helper line: "Got an FAQ page or answers written down? Drop it in — we'll sort it into rows." Bulk pastes still land as confirm-first proposals, never a silent overwrite: a founder who already curated entries must never lose them with no undo.AC-BRAIN-108 — one grouped surface; the committed row lands inside the group grammar, and the group heads recount.Guests can hear these. Quiet: keep as typed (guest questions, her exact words) · edit on How you run.InkChapterBody.tsx prints Not quite? Teach your Brain › under every prose field (three call sites: prose, passage tail, chapter foot). A chapter with three passages asks three times. Fix: one door per chapter, in the margin column, worded for the chapter — Teach your Brain about what you sell ›. Field-level Teach routing (PRD §C edit routing) is unchanged: the door seeds Teach with {target:'section', id}; a single value still edits in place..ink-ch 48px pad, .ink-zone 40px margin, .her-insert 32px margin, .ink-clusters two-column grid leaving a hole when a chapter has an odd cluster or one cluster is empty. Fix: the rhythm ladder (--ed-ch-top / --ed-ch-bot / --ed-block / --ed-facet) — chapters own their padding, blocks own a top margin, nothing else adds space; clusters become an auto-fill fact grid that never leaves a hole.#f4efe6 / #2e2a26); only-you-see chapters print on charcoal with the same pair inverted. No third colour, no tint steps between chapters — the hairline and the numeral do the separating.AC-PB-09 — one Teach door per chapter. Given any chapter, when it renders, then exactly one Teach door exists in that chapter (margin column, chapter-worded), and no prose, passage or list prints its own Not quite? Teach your Brain ›.AC-PB-10 — rhythm ladder. The vertical distance between the end of one chapter’s last block and the next chapter’s hairline is exactly --ed-ch-bot, on every chapter, at every tier — no stacked margins, no empty grid cell taller than one row.AC-PB-11 — two papers. Chapters 01–06 render on cream with charcoal ink; 07–10 on charcoal with cream ink; contrast of body ink on either paper ≥ 7:1, eyebrows ≥ 4.5:1.AC-PB-12 — the 06 spread renders the brand. Given a confirmed brand_style_card, then colours print as painted blocks with role + name + hex, type prints as a specimen in her own loaded font (or says it cannot), and the painted proof card uses her page, ink and signature — never a list of names.Ledger: parity/parity-brain.md addendum 2026-09-18. Build issue: Book editorial pass #5019 (CSS restyle + one door + rhythm audit), sequenced after #4950’s consolidation. 375: 13.4-m. 768: 13.4-768.
What you do, and who it’s for.
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — eight to fourteen guests, a slow week rather than a program, booked with a deposit.
Two houses, two seasons: a six-day reset in Ubud from October to March and a five-day making week outside Lisbon from May to September. You cook, you host, you are in the house. The week is sold on its pace, not on a schedule — guests are told what they will not be asked to do.
From your site · confirmed by you · 18 Sep 2026
vchip state, resized.Your places, hours and how to reach you — shown because you host in person.
A physical place — two houses, two seasons. Guests fly in; you meet them at the airport.
Tue–Sun 09:00–18:00 · Mon closed. Guests in the house reach you any time.
From your site · hours from what you shared · 12 Sep 2026
Seven offerings, priced the way you quote them.
Slow weeks, sold per seat and held with a deposit. Two retreats carry the year; the rest is what a guest adds to one.
The Bali reset and the Lisbon making week are the core. A private buyout is the same house with only your group in it. Day passes, room upgrades and pickups are add-ons a guest can say yes to in one message — your assistant quotes them exactly as below.
From your site · early-bird from your Instagram · 18 Sep 2026
.ed-val). Closed on load if the sentence is enough — the fold is the 2.3-fold door..ed-facet running heads with counts (the >6 index rule). A draft row wears a hairline draft chip beside its name, never gold — the band owns the lantern. A missing sub-fact (“what a group gets”) is a slot inside the row’s own line..ed-ask at the chapter foot when they exist.What guests ask before they book — answered the way you would.
Is there still space in October?
Two seats left in Ubud for 12–17 October, both in shared rooms. I can hold one for 48 hours while you sort flights.from you · 12 Sep
Can I come alone?
Most guests do — about two thirds of every week arrive solo. You’ll share a room unless you take a garden room.from your site
How do I book?
Say which week; I send a payment link for the $600 deposit; your seat is held the moment it lands.from your site
When is the balance due?
Thirty days before the week starts. I’ll send a reminder a week ahead of that.from your site
What if I need to cancel?
Your deposit moves once, free, to any week in the next twelve months. After the balance is paid, we refund everything except the deposit up to 14 days out.from you · 12 Sep
Do you take cards?
Yes — the link takes any card. Bank transfer works too if you’d rather; ask and I’ll send details.Added by MystFlo · 15 Sep
Are meals included?
All of them, cooked in the house. Tell me about allergies when you book and the kitchen plans around you.from your site
Is the airport pickup included?
One pickup per guest from DPS or LIS is in the price. A second transfer is $45 each way.from your site
What should I pack?
Light layers, a swimsuit, something warm for the evening. Mats and props are here.from your site
Is there wifi?
Yes, in the main house. The rooms are deliberately quiet.from your site
What time should I land?
Any time before 16:00 on day one; we sit down to dinner at 19:00.from you · 12 Sep
Is it for beginners?
Yes. There is nothing to be good at. Sessions are optional and nobody keeps score.from your site
What does a day look like?
Morning session at 7:30, a long breakfast, the day is yours, an afternoon session at 16:30, dinner together. That’s the whole schedule.from you · 12 Sep
Who runs it?
Rina — she cooks, hosts and teaches the morning session. She’s in the house all week.from your site
From your site · 4 answers from you · 1 added by MystFlo · 18 Sep 2026
columns: 2, 40px gutter) — the dense programme read. A head never orphans from its first answer (break-after: avoid); one column at 768 and 375..ed-eyebrow on a black hairline, count right. Per-head cap 5 with Show all N ▾ unchanged; draft answers print first while capped..ed-row.long (label above).How you sound, and how you look — rendered, not listed.
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
You write like you’re already holding the door. First names, second person, no “dear guest”.
Prices and dates before adjectives. A question gets its answer in the first sentence.
One aside per message, never two. Dry, not cute. No exclamation marks.
hey is there still space in october? coming alone, bit nervous tbh
Two seats left for 12–17 October, both in shared rooms — and about two thirds of every week arrives solo, so you’ll be in good company. Want me to hold one for 48 hours while you look at flights?
Sage on cream, charcoal ink, a serif for the big lines. Soft corners, deep shadows, wide caps on buttons. Calm and graphic — a garden, not a spa.
▸ Also found — 5 more · look like your framework’s defaults, not colours you chose
October in the hills
Six days, fourteen guests, one long table. A deposit holds your place.
Hold my placeAlways quote in USD. Never promise a specific teacher. If someone mentions a medical condition, hand it to Rina.
Voice confirmed by you · 12 Sep · look read from uglywooretreats.com · 8 Sep 2026
Voice confirmed by you · 12 Sep · look read from uglywooretreats.com · 8 Sep 2026
Four chapters your assistants use to run things your way — and never quote to a customer.
Currency, pricing model, and how the money actually arrives.
Two retreats a year per house, eight to fourteen seats each. Seats carry the year; add-ons are the margin.
About 70% of the year is the two Bali weeks; Lisbon is newer and still fills late. Deposits land on booking through the payment link; balances come in the month before, half of them after the reminder. Buyouts are rare — one or two a year — and get a bespoke invoice. Room upgrades sell out first in Ubud every time, which is why they’re priced separately.
From you · 12 Sep 2026
Deposits, booking rhythm, overflow — the rules your assistants quote.
From you · 12 Sep 2026
.ed-cols over two .ed-rows), the >6-keys rule; one column below lg.What you do, and who it’s for.
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — eight to fourteen guests, a slow week rather than a program, booked with a deposit.
It started as a birthday. In 2019 I rented a house above Ubud for nine friends, cooked every meal, taught one morning session because two of them asked, and otherwise left everyone alone. On the last night three people asked if they could book the same week the following year — with strangers, if it came to that. That was the whole business plan.
The second year I ran two weeks and sold both on Instagram in a fortnight. I kept the rule that had made the first week work: no schedule you have to keep up with. One session at 7:30 if you want it, breakfast that goes on for as long as it goes on, the day is yours, something at 16:30, dinner at 19:00 at one table. People who want a program don’t come back; people who want a week off from being organised do.
Portugal came in 2023 because half my guests were flying from Europe and the house in Sintra was too good to pass up. It’s a making week rather than a yoga week — a studio, clay and paper, a printmaker who comes in twice — but it runs on the same rhythm. Same table, same rule.
I still cook. I’m in the house every day. I know that doesn’t scale and I’m not trying to make it scale; I’m trying to run four good weeks a year and have the booking and the chasing not live in my head. Prices are on the site with what’s included underneath because I hate enquiry forms, and because it means anyone answering for me can quote them without asking.
If you’re reading this as a guest: come alone, it’s fine — most people do. If you’re reading this as my assistant: be warm, be direct, don’t oversell the sunsets.
From your site · your story from you · web mentions from our research · 18 Sep 2026
Sixteen offerings, priced the way you quote them.
Slow weeks, sold per seat and held with a deposit — four retreats now, and everything a guest can add to one.
From your site · 18 Sep 2026
Twenty-six answers — the first five under each head, the rest a tap away.
Is there still space in October?
Two seats left for 12–17 October, both shared rooms. I can hold one for 48 hours.
Can I come alone?
Most guests do — about two thirds of every week.
How do I book?
Say which week; I send a link for the deposit; your seat is held when it lands.
Can I bring a friend later?
If a seat is free, yes — they book the same way; you can share a room.
Is there a waitlist?
Yes. When a seat frees, Rina messages the list in order.
When is the balance due?
Thirty days before the week starts.
What if I need to cancel?
Your deposit moves once, free, within twelve months.
Do you take cards?
Yes — any card via the link, or bank transfer on request.
Can I pay in instalments?
Deposit now, balance any time before 30 days out — split it however you like.
Is the price per person?
Yes, per seat. A buyout is per week for the whole house.
Are meals included?
All of them, cooked in the house.
Is the airport pickup included?
One per guest. A second transfer is $45 each way.
Do I need to bring a mat?
No — mats, props and towels are here.
Is alcohol included?
Wine at dinner, yes. The bar beyond that is honesty-box.
What should I pack?
Light layers, a swimsuit, something warm for evenings.
Is there wifi?
In the main house. The rooms are quiet on purpose.
What time should I land?
Before 16:00 on day one; dinner is at 19:00.
Can I extend my stay?
Extra nights are $120 with breakfast, subject to the house being free.
Is it for beginners?
Yes. There is nothing to be good at.
What does a day look like?
7:30 session, long breakfast, the day is yours, 16:30 session, dinner together.
How many people?
Eight to fourteen. Never more.
Who runs it?
Rina — she cooks, hosts and teaches the morning session.
From your site · 9 answers from you · 18 Sep 2026
| Shape | Short | Long |
|---|---|---|
| prose | lede + body, 62ch | ≥ ~180 words: lede stays, body runs in two columns at lg (.ed-cols); never clamped, never a “Read more” |
| list | 1–3 one sentence · 4–7 ruled rows | 8+: ruled rows in two columns at lg; 20+: first 10 + Show all N ▾ |
| cards (offerings) | ≤6 catalogue | >6: grouped by type under running heads, 5 per type + Show all N type ▾; row opens in place to its full card (#4835) |
| cards (Q&A) | all, two columns at lg | 5 per head + Show all N ▾; drafts print first while capped (#4835) |
| index value | label · value on one row | > ~120 chars: .ed-row.long — label above, value as a paragraph at the row’s full measure |
| passage (story) | eyebrow + body | same two-column rule as prose; the margin note carries the word count so length is visible before scrolling |
.ed-door. The margin note always states the true total (26 answers · showing 5 per head) so a capped chapter never reads as a short one. Export carries everything (builds from the profile, not the DOM).Nothing here is filled in yet — this is the shape your playbook takes. Read your site or teach your Brain and the chapters fill themselves; anything we can’t find stays as a slot you can tap.
Our words about your business — written by the read, never by you.
Nothing read yet. Read your site or teach your Brain and this page fills with the read in one place, what stands out, how you show up on the web, and what we still can’t see.What you do, and who it’s for.
What do you do, in one line?Your places, hours and how to reach you.
Your offerings, priced the way you quote them.
Paste a price list, a booking page, or just tell your Brain — each offering lands as a row you confirm.
The reason someone picks you and not the alternative.
What guests ask before they book — answered the way you would.
Can I come alone?
your answer, in your words
What if I need to cancel?
your answer — the one guests ask for most
Six heads in a fixed order — Booking · Paying & refunds · What’s included · Logistics · What to expect · About the business. A read from your site fills most of them; the rest you teach.
How you sound, and how you look.
A steady, friendly host who knows the answers and never rushes anyone.
Never matches a customer’s stress.
Plain answers, no hedging.
Never guesses — anything it doesn’t have goes straight to you.
Do you have space in September?
Yes — the September cohort has 3 seats left. Want me to hold you one?
Four chapters your assistants use to run things your way — and never quote to a customer. Each slot says why it matters.
Currency, pricing model, and how the money actually arrives.
How does the money actually come in?Who this is actually for.
Who is this actually for?so replies speak to the right personDeposits, booking rhythm, your team — the rules your assistants quote.
How does a normal month run?Where this is going — north star, growth stage, priorities, goals, principles. For you, never for an assistant.
Coming soon. No door yet, on purpose.
+ label slot, list → the same ruled row, keyed-array → two numbered scaffold rows.PlaybookDepthSheet + FaqCandidateChips); only the hosting chrome changes, to BrainSplitHost (page pane LEFT 40% and FIRST in the DOM, work pane RIGHT 60%).useIsSplitViewport) the page pane is omitted from the DOM entirely — today’s single-pane sheet, unchanged (the 375 twin IS the spec, not a downgrade).order in production).Archetype: sheet-slide-panel.md. Host contract: src/components/brain/BrainSplitHost.tsx.
surface-hairline card around Name / Price / Dates / Description. “How you describe it” loses the inner rounded-lg nest — lantern wash only while a draft is unkept (the sheet’s one lantern moment). Inputs stay inputs; we do not invent a second form kit.listing{}, the brain-generate branch id 'listing', channel_registers.listing and the spec term “general product listing” are unchanged — renaming the data model to match the label is a defect, not consistency.text-eyebrow, never pb-section-title. How you run / How you sound / Who you serve are playbook ROWS; this is a SUB-BLOCK. The name deliberately borrows the top-level register, so weight is the only thing keeping it a layer — at row weight this frame visually re-creates the sibling section the merge retired.✦ Draft it for me first AI draft (PAID) · ✦ Refine subsequent AI edit (PAID) · fix plain-text edit (FREE). ✦ never appears on a free action, and the label stays a plain verb — never “with AI”, which is redundant with the glyph and diverges from this file's shipped vocabulary (✦ Draft, ✦ Rewrite, ✦ Refine). Charge visibility = the ✦ glyph alone. Never a wallet scare line, never an inline $N on a Brain / per-AI control (2026-08-23). Free verb goes first where the two sit adjacent.
✦ drafted for you · In your words. · Built from what you've told us. — the third carried “— nothing AI-written yet” in these frames and in shipped code until 2026-08-11. Rule of thumb: if removing every ✦ from the screen would leave the founder unable to tell what was AI-written, the glyph is under-used; if a sentence repeats what a nearby ✦ (or its absence) already says, the sentence loses.ready / you refined this / not written yet); what's still open is the “Still open on this one” block. A write-up shown with no still-open read is under-drawn. Per-offering depth inside ONE sheet — never a page-level roll-up (canon hard-lock boundary).no photos shared yet · written before you taught your voice). Ruled 2026-08-10, applied to code the same day; these frames drew chips until 2026-08-11 and now match. The warning is also the LAST resort, not the first move: the capture mandate says the read fills these facts, so for most founders it should never appear at all (#3321).not written yet, the line “Nothing here yet — add what you sell above and this fills in.”, and the “Still open on this one” warning “Still missing what's included and a description — add them above and this fills in.” The middle two are mutually implied — the body is empty only when the facts are missing, which is exactly what raises the warning, so no state exists where one appears without the other; they even shared a trailing clause. Resolution: keep the state word (it is the header's status, one word, typographic) · delete the “Nothing here yet” line outright · keep ONE amber sentence under “Still open on this one”, rewritten so it no longer ends “add them above and this fills in” — the door is now mounted directly beneath it, so pointing “above” is both redundant and, since 2026-08-11, wrong.BrainSplitHost drops the 40% pane below the 1024px engageBreakpoint, so 768 renders the 375 composition at a wider measure. If the build moves that breakpoint below 1024, this frame owes a real 768 tier.channel_registers.listing, inside Branding → (sound) (f22) — it does not return here.✦ Draft it for me · Draws from your wallet — $2.00 on an offering with zero facts. That was wrong, and wrong in a specific way: it charged a founder to have the AI invent a product listing out of nothing. It is the never-invent boundary (D1) with a price tag on it, and it contradicts the CAPTURE MANDATE directly above — the read is supposed to FILL those facts, not sell around their absence. The corrected shape is two states, in order:
+ Add files, links, or paste anything affordance once a write-up exists. Peyton's “reachable either through the share-anything component or by filling the form” describes two ways to ADD MATERIAL that both arrive at ONE rewrite ask — it is not licence for a second paid button (one-surface rule, playbook §3, codified 2026-06-06). Mechanically: count(✦ controls) ≤ 1 per offering detail, and == 0 when nothing is gathered.+ Share anything › door (44px + info tip) that opens the sanctioned host (BrainShareSheet). Offering scope is preserved by docking the origin form left via the existing pagePaneOverride (same mechanism as AC-BRAIN-80's checklist dock — not a new host). Drawn at 2.7-share. ShareInline internals untouched. Customer Q&A typed form, Research-my-business website box, and moodboard/catalog-scan stay out of scope (locked 2026-06-15 / 06-23 / 08-21).ShareInline, offering-scoped; NOT a LaunchKitRewriteComposer-style sibling. The launch-kit rewrite box is deliberately a purpose-built sibling because its material is per-run context that must never persist (AC-GEN-04). Here the requirement is inverted: what she shares IS facts, and facts must land in the Brain — so the real composer, with its corpus save and playbook proposals, is the correct door and the divergence from that precedent is the persistence requirement itself. The 28e refine steer keeps the launch-kit reading — per-run, never persisted. Two boxes, two licences; don't collapse them.ai_usage brain_embed, ×2.0), the meter still runs — but the composer does not narrate the charge (kit 2026-08-23). What changed is the bargain: she pays to have what she actually has read, never to have something invented. Do not re-draw a wallet-floor here.#3324 (merged and deployed same day) ships an INTERIM state: no composer yet (its own PR — ShareInline writes to a SECTION and scoping it to one services[] row is new plumbing, not a mount), no body text either. Production today reads eyebrow + state word not written yet only — the amber facts warning in the FACTS layer above already says what's missing and what to do about it, so the write-up block adds nothing else. This frame is the TARGET this interim state is walking toward, not a second drawn state — don't add a third frame for the interim; the note here is the record.“Fill in the details above and this writes itself — free.”) is deleted outright rather than reworded — it was a third restatement of one fact the amber warning and the state word already carry, the same violation that got the old “Nothing here yet” line deleted. (2) The draft-edit helper drops its throat-clearing preamble: “yours to edit — tap fix to change any word before you keep it” → “Tap fix to edit any word before you keep it.” — the instruction survives, the preamble didn't add one. NOT cut, deliberately kept as information rather than duplication: every wallet/billing disclosure, including the unkept-draft money tip (“Keep this one first and later changes cost from $0.05”) — the one line in this layer that tells a founder rerunning costs $2.00 twice instead of $2.00 once. 140 words → 126 across the layer's scenario copy.Archetype: sheet-slide-panel.md. Spec: docs/product/platform/brain/_specs/spec-brain-general-listing-layer.md §4/§5 — this frame draws the RECOMMENDED options; open calls Q5 (28b assembled-default resolution) · Q6 (28e billing shape — drawn in the reversible per-run form, see the 28e note). RULED 2026-08-10: Q3 per-offering only · Q4 keywords row OUT (body is three parts: headline · bulleted body · highlights). Q8 + the entry-point option RULED 2026-07-31 (merged; guided from-zero loop). Q1 (product-sheet source) has no UI surface in this frame.
ai_usage brain_embed, ×2.0), ① is still metered, but it does not wear a wallet scare line (kit 2026-08-23). ②–③ genuinely spend nothing. The honest line is no ✦ before ④, not “free before ④”..step-ic.active) — never a fake timer. The draft lands in the SAME editable field the founder reads, never locked. ✓ Keep writes it to services[i].listing via apply_pending_sync — persisted only here (spec INV-4) · refine opens 28e · discard throws it away, the row returns to its prior state, nothing recorded (spec §5, “founder navigates away mid-preview”).origin: 'typed' with the “you told us” chip — never stamped “generated” (spec §5, AC-LISTING-21)..review-box in Part II — a builder reading Part I would never have seen it seated in the page. Promoted 2026-08-10; the extra states (loop, stale, blocked) sit in this same step.+ Add files, links, or paste anything row is the SAME composer that is the whole content of 28b′, at its second density. It sits BELOW the free write-up and ABOVE the paid ask — gather before rewrite, free before paid, in reading order.✦ Draft it for me · Draws from your wallet — $2.00 in this exact position on an offering with zero facts — a paid door with nothing to draft from. That is the never-invent boundary (D1) sold back to the founder, and it argues against the CAPTURE MANDATE this same frame carries: the read exists to FILL these facts. Both the artifact and the shipped page had it; this is a design correction, not a build-fidelity gap.listingFactsWarning inside the listing block (PlaybookDepthSheet.tsx, under the “Still open on this one” eyebrow). Under this ruling the fact sentence belongs to the FACTS layer and the eyebrow renders only for non-fact states. listingGapChips stays as the computation; only its mount point and its label move.LaunchKitRewriteComposer is deliberately NOT ShareInline because its material is per-run context that must never persist (AC-GEN-04). Here the requirement inverts — what she shares IS facts and must land in the Brain — so ShareInline's corpus save and playbook proposals are the point, not machinery to avoid. The launch-kit reading still governs the 28e refine steer. Two boxes, two licences.BrainShareSheet. It does not mint a second composer. ShareInline internals stay untouched.pagePaneOverride already docks caller content in the LEFT 40% (shipped for the research checklist). This frame reuses that prop for the origin form. Do not invent a second split host.+ Share anything › row plus a one-line tip naming the scope. No second ShareInline on the page.HostedBrainShare.tsx — BrandVoiceGenerateInputs.tsx:208, PlaybookDepthSheet.tsx:1117 (OfferingShareComposer), BrandVoiceConfigure.tsx:416 (via zIndexOffset, its covering ModalWrapper retired), and SectionKnownMaterial.tsx:211 (the Business-details / How-you-sound hand-roll, replaced). Still pending: the chapter-scope Teach your brain mount on What you sell (Peyton 2026-08-28, drawn at 13-form-sell) — a NEW fifth mount (chapter lineup as the origin pane); its landing retires the per-row OfferingShareComposer door (one-door lock).Archetype: sheet-slide-panel.md.
docs/product/platform/brain/_specs/spec-share-anything-gap-guidance.md.useBrainComprehension.tsx:4-14). The LEFT 40% re-seats the rail's own missing inventory through the same pagePaneOverride door 2.7-share uses — the gap queue moved into view, never a second analysis, never a coverage roll-up (“your Brain knows N things” stays banned). When required gaps are open, the generic 10-chapter digest YIELDS (one brief per view). When zero required gaps remain, the pane yields back to the standard playbook-context pane — completion is a success, not an empty list.BrainShareSheet.tsx:175; ShareInline internals not redrawn); unscoped title stays “Share anything” (the shipped two-title rule). 15e's generic “Your call” nudge does not render here — the missing list is the brief, one brief per view..rail-note hint under the rail's existing missing list (mobile: under the BR1 “What's missing · N” row). Missing-item verbs unchanged — “Add →” still jumps to the section; the Teach row is the door this loop walks through.BrainSplitHost drops the page pane below 1024, so 768 is the 375 stack at a wider measure (f15's tier rule holds verbatim). If the engage breakpoint ever moves below 1024, this section owes a real 768 tier.Archetype: sheet-slide-panel.md. Split chrome + pane door: 2.7-share. Read-first ladder: 1.4.
useGapSelector) plus share-next hints; the 10-chapter digest yields while gaps are open.ShareOriginPane, no brief.
EMPTY /brain ── first dump (site and/or files) ──► PLAYBOOK + What's missing
│
▼ Teach your Brain more
LEFT: missing brief + next share RIGHT: composer
│
▼ dump → classify all → two-step apply
list shrinks · leftover named · composer stays
│
▼ until missing = 0
guidance retires · door stays “Teach your Brain more”
Edit a chapter
.persona-chip CSS): ● filled = selected · ○ hollow = not · ★ Main = primary. "Set as main" MOVES the star rather than adding a second one — exactly-one-primary is a DB invariant (persona_classification EF), so the UI makes it a move, never a multi-toggle. HowYouRunCard.tsx, re-homed here into PlaybookHowYouRunSheet.tsx.persona_classification EF (keeps vertical_slug synced, single-persona runtime stays byte-identical); ADD a non-primary / REMOVE writes directly to the brain_profile_personas junction (useBrainPersonaSelection, RLS-scoped).useBrainPersonaSelection has exactly ONE consumer in the repo (this picker). There is no lens row on the playbook (AC-BRAIN-11), no "grew a chapter" recognition copy (AC-BRAIN-12), and readiness does NOT scope per persona (AC-BRAIN-13) — verified against origin/main, and tracked in #2947 as "the multi-persona lens family is wholly unbuilt." Those three ACs are named here as the DESTINATION this control feeds, never as satisfied. Draw and build the picker; do not read this frame as licence to claim the lens.get_business_context_for_assistant(), so it is already read on every assistant reply. That is why the picker must not be downgraded to single-select to match older drawings in this file.Archetype: sheet-slide-panel.md. Split chrome: f13b's family rule (AC-BRAIN-74). RecommendedKitLink (T1177) rehomed under this picker.
brand_voice_v2 / brand_style_card), two provenance regimes, two confirm mechanics, two consumers, ~4:1 length asymmetry. One row because “does this sound and look like me?” is one question.channel_registers when a Generate produced them, else the authored preset × place matrix (voiceRegisterFallbacks.ts) — never five blank forms. The website is its own register: her site is her talking, a listing is her selling.red_pen exemplar. Capture rides the confirm; there is no extra founder step.HowYouSoundSheet.tsx hosts it all. Pre-voice, the sheet leads with the “Pick it by ear · 2 min” door (→ f23’s game, shipped as VoiceCalibrationSheet.tsx) and the free “Hear how you sound” articulate-back card (22c); live-voice, the shipped block order is BrandVoiceLive (tweak · add a real reply · regenerate) → VoiceRegistersPanel (one-line · how-you-write · tuned-per-place · phrases) → VoiceExemplarList → VoiceMatchScore; the LAST row is always “Anything else about how you come across” (personality_notes, rehomed lane 4c). Split hosting rides f13b’s family rule (AC-BRAIN-74, B13b lane).prd-pl-voice-card.md): this frame stays the SHIPPED record, but its caption’s “what every assistant borrows” claim now reads as S2 under the Warm Host default lock — assistants speak Warm Host until her voice passes the two-pole gate and she confirms from a preview. The forward drawing is the How you sound shelf (2.9v); the shipped-copy cutover is that PRD’s Open question #7, its own task. Generation stays frozen — every ✨ door on these surfaces is coming-soon.Archetype: sheet-slide-panel.md. Row grammar: frame 13’s EDIT mode, unchanged.
brand_voice_v2 / faqs until she saves it.btn-primary / btn-outline — not muted text or underlined links. Sit under the preview, never under the add-more block. No “free”, “keep”, or “tap” on the founder-facing copy. Save has one job: write to the playbook..pb-row.need + lantern kicker. Confirmed siblings stay Seal / Node you.prd-pl-voice-card.md OQ #7): under the Warm Host default lock the saved row reads as S2 — saved and confirmed, coming soon; delivery stays Warm Host until preview → confirm. Drawing kept as the shipped record; the copy swap is its own task.Tuned for chat, social, your site, listings, and email.
How you lookHost pattern: frame 14, verbatim. Shipped 2026-07-30 catch-up (#2977): VoiceCalibrationSheet.tsx — zero AI holds (authored scenarios, deterministic nearest-preset assembly, picks banked as calibration_pick/founder_text exemplars). Entry door shipped: frame 22’s pre-voice “Pick it by ear” card (a sibling sheet inside HowYouSoundSheet, never inside the generate engine).
HowYouLookSheet.tsx, and it already rides BrainSplitHost — the first playbook sheet shipped on f13b’s split family rule.useBrandStyleCard → brain-scrape style_harvest) → her own moodboard → web guess (BrandSignalBlock, reused verbatim — use/discard only, never corrected in place). Never a red/green tint (T1203).useBrandLookReflect): metered read → free “Yes, that’s the vibe” APPENDS to visual_tone (never overwrites) → typed “fix” steer; 48-hour retention line verbatim in-surface.Archetype: sheet-slide-panel.md. Web-mined signal originates in frame 12’s outward-presence read.
background · surface · text · accent · border · muted, assigned at brain-scrape/index.ts:1182), ranks by declaration frequency, and extracts logo.url. HowYouLookSheet.tsx reads only hex and provenance — the hierarchy is a FRONTEND change against shipped data, not a backend project.her-insert. Cream/sand palettes are invisible as 14px dots on pure black (Bali Offline Club is the live proof).#3b82f6 #9333ea #059669 #1d4ed8 #2563eb) she never chose — collapsed under “Also found”, kept but painting nothing.typography.google_fonts[] load live; anything self-hosted renders in a neutral face and SAYS so. Never a lookalike (extends the harvest’s own scope wall).ensureAutoAiBillable and silently returns a role-less card; frequency then carries the hierarchy (“Used 412×”) with a lantern “Pick my main colour”. Never regress to a flat dot row.BrainSplitHost drops the 40% origin pane below 1024, so 2.11a at 768 is this sheet’s 375 layout at a wider measure. Stated, not omitted (same rule as 2.7-share).Archetype: sheet-slide-panel.md. Book counterpart: 2.3-look (same data, read-only). 375: 2.11a-m. Reasoning trail: brand-look-hierarchy-redesign-2026-08-23.html.
Roles unavailable — AI card not billable, role pass skipped
Most used on your site
Ranked by how often your site uses them. Pick my main colour →
Font unloadable — self-hosted, never faked (Bali Offline Club’s real read)
arboria
We can’t show this one — it lives on your own site, not a public library. The name is right; the shape here isn’t yours.
Nothing readable — a gap stays a gap
Your site’s styling is built in a way we can’t read from the outside — nothing came back. Nothing was guessed. Add your colours by hand →
BrainSplitHost drops the 40% origin pane below 1024, so 768 is the 375 stacked sheet at a wider measure (same decision as f15). There is no third composition. If the engage breakpoint moves below 1024, this frame owes a real 768 split.The facts your assistants lean on — where you are, how to reach you.
The facts your assistants lean on — every field optional.
More details — other socials
Retired copy — hours are SHAPED by how you deliver, never hidden (#4851): a 7-day grid for a place, one availability line for events.
More details — address and who can buy
Your places, hours and how to reach you — shown because you host in person.
A physical place — two houses, two seasons. Guests fly in; you meet them at the airport.
Tue–Sun 09:00–18:00 · Mon closed. Guests in the house reach you any time.
From your site · hours from what you shared · 12 Sep 2026
Small-group weeks in Bali and Portugal, plus the house on its own — three ways to book Uglywoo.
Got a price list or catalog written down? Drop it in — we'll sort it into rows.
Nothing filed here — most hosts never need it.
+ Add offeringThe line your assistants use when a customer compares you to the other one.
What people ask before they book.
Got an FAQ page or answers written down? Drop it in — we'll sort it into rows.
Two questions peers answer here, and you haven’t yet — open the group to fill them.
+ Add questionDraws from your wallet — nothing runs until you confirm.
Word for word, whoever asks. Change one here and it changes on How you run — one home, never two copies.
You filled How you run. Here’s the guest version — same numbers. Guests don’t hear it until you say yes.
30%, 14 days, 45 days, 30 days stay yours.
keep as typed · edit on How you run
The same hierarchy the book paints — not a flat colour list.
Your colours
Together
Uglywoo Retreats
A week that asks nothing
Soft corners, sand, charcoal — the same four jobs the book shows.
Hold my placeyour page · your ink · your signature
The vibe from your moodboard
Airy and photo-led, with film-grain photography. Warm, earthy, handmade — natural light, close textures.
Mentions describe you as boho-luxe. from the web · our guess
Your type
Uglywoo Retreats
A week that asks nothing of you.
Uglywoo Retreats
A week that asks nothing of you.
Your feel
How money actually comes in. Only you see this.
Who you're really building for. Only you see this.
The way your business actually runs. Leave any blank and your assistant asks you first.
Customers hear pay, cancel, and refund if they ask — confirm the guest version on Customer Q&A first.
Coming soon — existing answers stay. They are not asked or edited here yet.
Coming soon Linked later to your advisor.
Who you are and why you started. All optional.
Optional — stays on this sheet. The longer about lives on Your business.
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
useIsSplitViewport) · extends 13.4's one-door-per-chapter, never replaces it · reuses ShareSheetContext.focusSection precedent (useBrainNavigation.ts:57-70) · attached shape mirrors OrganizedChange.field_key/target (organize-changes.ts:153) · NEW (PRD debt) not built ↑ top view at 375 — at-rest only ↑↓.ed-door, .ink-odoor "More ▾"), and it has no clean keyboard story — Shift+Arrow selection doesn't reliably fire the same hover-positioned popup logic browsers give mouse drag..ed-hl-cue, "Teach this ›"), veiled at rest, revealed on hover OR :focus-visible — so Tab alone reaches every row without a mouse. A live text selection inside that row doesn't move the button or spawn a second one; it just rides along as the quote when that SAME button is activated. One control, two ways to arrive at it.InkChapterBody.tsx already tags every confirmed field/row with data-field / data-book-field (FieldAtoms.tsx:30-35, bookFieldAttrs()) — this reuses that grain, adds no new DOM concept, just a button and a paint state on top of it.What guests ask before they book — answered the way you would.
Is there still space in October?
Two seats left in Ubud for 12–17 October, both in shared rooms. I can hold one for 48 hours while you sort flights.from you · 12 Sep
Can I come alone?
Most guests do — about two thirds of every week arrive solo. You’ll share a room unless you take a garden room.from your site
How do I book?
Say which week; I send a payment link for the $600 deposit; your seat is held the moment it lands.from your site
When is the balance due?
Thirty days before the week starts. I’ll send a reminder a week ahead of that.from your site
What if I need to cancel?
Your deposit moves once, free, to any week in the next twelve months. After the balance is paid, we refund everything except the deposit up to 14 days out.from you · 12 Sep
Do you take cards?
Yes — the link takes any card. Bank transfer works too if you’d rather; ask and I’ll send details.Added by MystFlo · 15 Sep
Are meals included?
All of them, cooked in the house. Tell me about allergies when you book and the kitchen plans around you.from your site
Is the airport pickup included?
One pickup per guest from DPS or LIS is in the price. A second transfer is $45 each way.from your site
What should I pack?
Light layers, a swimsuit, something warm for the evening. Mats and props are here.from your site
Is there wifi?
Yes, in the main house. The rooms are deliberately quiet.from your site
What time should I land?
Any time before 16:00 on day one; we sit down to dinner at 19:00.from you · 12 Sep
Is it for beginners?
Yes. There is nothing to be good at. Sessions are optional and nobody keeps score.from your site
What does a day look like?
Morning session at 7:30, a long breakfast, the day is yours, an afternoon session at 16:30, dinner together. That’s the whole schedule.from you · 12 Sep
Who runs it?
Rina — she cooks, hosts and teaches the morning session. She’s in the house all week.from your site
From your site · 4 answers from you · 1 added by MystFlo · 18 Sep 2026
InkChapterBody.tsx:950-956, :406-419) open PlaybookDepthSheet — a structured field editor. This is a DIFFERENT door onto the SAME free-text Teach composer every other Teach entry point already opens; the two coexist the way "More ▾" and a fold's own actions already do on the offering row today.--lantern (lantern means "needs you"; this means "you can act here," a different signal, canon U12/U13). It's the SAME .ed-teachbar every chapter already shows (shipped 13.4 frames keep the plain pill, no `.hl` modifier — this line is new with the feature, not retrofit onto what's already live); 375 drops it entirely (13.5-m) because nothing there is highlightable..ed-fact cell is its own registered sub-key already (CONTACT_INFO_TARGETS / BUSINESS_HOURS_TARGETS, organize-changes.ts:184-185) — the same corner control, the same "Teach this ›", now resolving to contact_info · whatsapp instead of a Q&A row.Your places, hours and how to reach you — shown because you host in person.
A physical place — two houses, two seasons. Guests fly in; you meet them at the airport.
Changing a number, email, address, or your name? Use Teach this on that line so the change lands exactly there.
Tue–Sun 09:00–18:00 · Mon closed. Guests in the house reach you any time.
From your site · hours from what you shared · 12 Sep 2026
field_key/target changes underneath it. Nothing about the affordance is Q&A-specific; it rides whatever grain the field already renders at (a Q&A row, a fact cell, a ruled row, an offering catalogue item, a prose paragraph).sales_channel_urls) and your places (locations), now carry the SAME "Teach this ›" affordance as every fact cell above, gated the same way (renders only when the list is non-empty). It is ONE cue for the whole field, anchored with no per-link/per-place row identity — a per-item anchor isn't server-supported yet (validateAnchorAgainstSaved only resolves a keyed array's own row key, and neither list is one), so that granularity is deferred, not designed out. Same fix, same fallback rule, on a different chapter with no dedicated highlight-to-teach frame of its own: Branding's "Never say" list (things_to_avoid, BrandingChapterBody.tsx's ListField) gets the identical one-cue-per-field treatment — noted here rather than drawn, since no Branding highlight-to-teach frame exists to update.ShareSheetContext (useBrainNavigation.ts:57-70) with focusField / focusTarget / focusQuote ↑ top.sheet.co chrome the other 13.x Teach doors already use (handle · title · ✕, dimmed book behind), not a new pattern.ShareSheetContext already carries for a chapter door (focusSection, useBrainNavigation.ts:63-67): a sibling focusField (registry key, e.g. faqs), optional focusTarget (the row label, e.g. the question text — mirrors OrganizedChange.target, organize-changes.ts:153-165), and optional focusQuote (the exact selected substring, capped ~200 chars). This is a hint the backend can use to skip or bias classify's own field-detection on this ONE read — it does not change the routing spec's section-level contract (docs/architecture/brain/teach-categorize-first-routing-spec.md §3) for corrections that DON'T arrive this way; a founder-selected field is already-known-exact, not something to route.Your last three guests, the 2am worry, the ideal seat — nothing to correct yet, only to add.
data-field present, not data-empty). Placeholder/scaffold lines like these are dashed labels for what's MISSING, never the founder's own words — there is nothing true or false to "correct" in "Who books most often", so no control mounts on it. The standing chapter door (Teach your Brain who you serve ›) and the always-on .ed-teachbar are the only entries, unchanged — the exact behavior a chapter has today.data-field, not a per-chapter allowlist to maintain.data-hl sits on the WHOLE row — index, name, price, the one-line, and the opened fold underneath all share ONE control, not the narrow price cell alone. Selecting the price, the name, or a line inside the opened fold all ride as the quote for the same offering — there is nothing left to anchor separately under it.Seven offerings, priced the way you quote them.
From your site · 18 Sep 2026
data-hl sits on .ed-item itself — real build: InkChapterBody.tsx's OfferingCard carries it on the SAME root div in the no-door, collapsed, and expanded states, never on the narrower .ed-oprice/.ink-oprice price cell alone. row_key is always the offering's name (services[i].name) regardless of which line inside the card was selected — a price, a name, or a sentence inside the opened fold are all a correction to the same one row.inset:0 click target — the cue would sit underneath it, unreachable. It becomes available the instant that row expands (same DOM node either way); nothing extra to draw for it.services[i].faqs via offeringFaqsFor) prints inside the SAME opened fold, under the SAME data-hl host — never a second, separately-anchored control that could point at the top-level Customer Q&A chapter by mistake.description/about_story.about — no .ed-facet label line to anchor to, unlike a passage field) has no short row to sit the cue on top of; anchoring it at the block's own TOP would land it on the large pull-quote lede, masking the last word of its first line on hover for anything that reaches the right edge (#5207 finding 7). Anchored to the BOTTOM instead — trailing the block's own quietest line — and capped to a 62ch column so the tint + cue hug the text instead of floating loose in the wide right margin at 1440+ (finding 5's prose condition; a genuine two-column run keeps full width, not shown here).What you do, and who it’s for.
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — eight to fourteen guests, a slow week rather than a program, booked with a deposit.
Two houses, two seasons: a six-day reset in Ubud from October to March and a five-day making week outside Lisbon from May to September. You cook, you host, you are in the house.
From your site · confirmed by you · 18 Sep 2026
InkPassage, e.g. Vision/Mission) draws its own short .ed-facet/.ink-facet label above the body, which already keeps the default top-right cue clear of the text. Prose (InkProse — description, about_story.about) has none; real build: FieldAtoms.tsx.proseRunsInColumns) keeps its full measure — the cap is for hugging a single narrow column, not for shrinking wide content.Saving is free. We only change the parts you name.
See what you'd get
Example playbooks · 5 → hairline (no standing colored shelf). Jump-nav is the v4.63 Jump · Your business trigger per f10-m; the rail collapses to ONE “What’s missing” row above the document (BR1). Rows use the collapsed .pbk grammar.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
.pb-row.pbk: Edge · mark · title + gist · detail →). The rail’s “Where you stand” collapses to the single 44px “What’s missing · N →” row above zone 1 (BR1 / playbook-grid__missing-mobile); tapping it jumps to the first open section. Populated pages carry the Example playbooks · 5 → hairline, never a standing colored shelf (AC-PLAYBOOK-16). The ✦ research CTA lives behind that jump on mobile, never stacked on the page head. “Our read” drops its date chip at 375 — the report shows it.mark · n of 5 · words · →. 9a-m = step 4 on Brain, line at a day-one sliver. 9a-away-m = the Assistants away line, lit at 88% to match the words. 9c-m = step 5, full-lit (no % in the words — honest at threshold-A). 9b-m = band gone after Teach opens once; the page below returns to pure black, so the lit line is also the header/page boundary while the band lives.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Up to date · Aug 18 v4
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
pulse.html frame 4c-m at 375) and the ≤5-row preview lives in the companion digest (read deck · 375 — Backlog). The fold grammar survives only where a local preview keeps it (Launch Kit, AC-ALOG-02 ↗). AC-PLAYBOOK-19 ↗ index clause superseded — CPO rewrite pending.Up to date · last change 9 Sep v3
What your assistants say for you
Booking, paying, and what to expect · 12 answered
Booking · 2
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
The Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Paying & refunds · 4
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
QRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Yes — 20% off for students. Bring your card.
Yes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
From How you runWhat’s included · 1
Yes — a digital certificate the day after, for the webinar and the seminar.
Logistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
What to expect · 1
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
About the business · 2
Ellen — a coach and trainer in Denpasar. One team, every session.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Your other answers · 1
Yes — Rp 90.000, message us.
Your voice, your colours, your type
8 changes not saved yet — your assistants still answer from v3
What your assistants say for you
Booking, paying, and what to expect · 12 answered · 7 new · 1 changed
Booking · 2 · +1 new
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
The Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Yes — groups of 20 or more, at your venue or ours. Message us with a date.
Paying & refunds · 4 · +2 new
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
Yes — 5 or more from one company or school get 15% off.
QRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Yes — 20% off for students. Bring your card.
Yes — 10% on any later program, just say which one you did.
Yes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
From How you runWhat’s included · 1 · +1 new · 1 changed
Yes — every participant gets the recording link within 24 hours.
Your voice, your colours, your type
unchanged8 changes not saved yet — your assistants still answer from v3
… scrolled — chapter head, Booking and Paying & refunds sit above, as on B
What’s included · 1 · +1 new · 1 changed
Yes — every participant gets the recording link within 24 hours.
Yes — a digital certificate the day after, for the webinar and the seminar.
Certificates are for the seminar only. Webinar participants get the recording, not a certificate.
Logistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
What to expect · 1 · +1 new
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
90 minutes, with a 15-minute Q&A at the end.
About the business · 2 · +2 new
Ellen — a coach and trainer in Denpasar. One team, every session.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Yes — message us. The charity program runs every quarter and always needs hands.
Message us on WhatsApp — we run a charity program every quarter and always need hands.
Yes — the WhatsApp community is open. Ask for the link.
Your other answers · 1 · 1 needs context
Yes — Rp 90.000, message us.
Saturday 21 September, 09.00 WIB.
Your voice, your colours, your type
unchangedUp to date · last change 15 Sep v2
What your assistants say for you
Booking, paying, and what to expect · 12 answered · 9 added by MystFlo
Booking · 2
Fill in the form on our link in bio — you’ll get a WhatsApp confirmation the same day.
Added by MystFlo · 15 SepThe Growth Mindset webinar runs every second Saturday, 09.00 WIB. Next: 21 September.
Added by MystFlo · 15 SepPaying & refunds · 4
Rp 150.000 per person. Seminars for schools and companies are quoted per group.
Added by MystFlo · 15 SepQRIS or bank transfer — send the proof on WhatsApp and we mark you in. PayPal for international participants.
Added by MystFlo · 15 SepYes — 20% off for students. Bring your card.
you told us · 12 SepYes — a full refund up to 7 days before. Closer than that, your seat moves to the next batch, once.
Added by MystFlo · 15 Sep · from How you runWhat’s included · 1
Yes — a digital certificate the day after, for the webinar and the seminar.
Added by MystFlo · 15 SepLogistics · 1
Denpasar — the venue is confirmed in the group a week before, with a map pin.
Added by MystFlo · 15 SepWhat to expect · 1
Indonesian, with English slides. International participants are welcome — ask and we’ll adjust.
from your siteAbout the business · 2
Ellen — a coach and trainer in Denpasar. One team, every session.
from your siteMessage us on WhatsApp — we run a charity program every quarter and always need hands.
Added by MystFlo · 15 SepYour other answers · 1
Yes — Rp 90.000, message us.
Added by MystFlo · 15 SepYour voice, your colours, your type
unchangedNothing read yet — this is the shape it will take · nothing to save yet
Nothing read yet
Every chapter still empty
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this
3–4 sentences · what your business is, what you sell, how you price it
The longer version
One paragraph, 80–150 words · every fact we could establish
Things most sites in your line of work don't do
something we noticed40–60 words
something we noticed40–60 words
something we noticed40–60 words
usually three to five
How the web talks about you
One line on whether the web matches what you told us
a place we found youwhat it says
a place we found youwhat it says
sometimes none, and we say so
The gaps — each points at the chapter that fills it
something your site doesn't say
the chapter it fillssomething your site doesn't say
the chapter it fillsthe thinner your site, the longer this gets
Nothing lands here until we read something. Two ways to start:
Add → per row. Same grammar as dense, less in it.Not saved yet — assistants answer from what you confirmed before
Fresh read · today · unconfirmed draft
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this
Sway Studio runs beginner pottery workshops in Lisbon — two-hour evening classes and a six-week course, booked from the site.
The longer version
A one-room studio in Graça running small evening workshops and a six-week beginner course. Booking runs through the site; there's a phone number and an Instagram, and no prices on either.
One thing we noticed that most studios don't do
Every page closes on the same line — "no experience, we'll show you." The site is written to talk one nervous person into booking, not to list what's on.
How the web talks about you · 2 mentions
There isn't much of a trail yet — two places, and neither says what you charge.
Six things your site doesn't say — each is a chapter waiting for you
No price anywhere — not for the evening class, not for the six-week course.
03 · What you sellAdd →Class size isn't stated, so we can't tell a guest whether a seat is likely.
03 · What you sellAdd →Nothing on cancelling or moving a booking — the two things people ask before paying.
05 · Customer Q&AAdd →The six-week course has no start dates in evidence.
03 · What you sellAdd →Whether firing and materials are included, or billed after — the site doesn't say.
05 · Customer Q&AAdd →Who the classes are for beyond "beginners" — ages, groups, private hire.
08 · Who you serveAdd →Your site is one page — that's why this list is longer than the read above it.
Not saved yet — assistants answer from what you confirmed before
Fresh read · today · unconfirmed draft
Recap
Our words, not yours. No chapter number: it isn't a chapter.
Assistant context — customers never see this
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups in Bali and Portugal — 8 to 14 guests, a slow week rather than a program, booked with a deposit.
The longer version
Two houses, two seasons: a six-day reset in Bali and a five-day making week in Lisbon, both at 8–14 people with you in the house. Money comes in per seat, held by a 30% deposit, balance due 14 days out.
Three things most retreat sites don't do
You sell the absence of a program — every page says what the week does not ask of a guest.
The host is the product and you say so plainly: the house and the kitchen are yours.
Prices are on the page, unhedged — in a category that hides them behind an enquiry form.
How the web talks about you · 3 mentions
Three things your site doesn't say
The 2026 dates for either week aren't published.
03 · What you sellAdd →Nothing says what happens if someone cancels.
05 · Customer Q&AAdd →The private buyout has a price but no description.
03 · What you sellAdd →What your assistants say for you
What you do, and who it's for
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups. Slow weeks, not a party.
Your places and how to reach you
Your offers, prices, and what's included · 3 offerings
A slow week of yoga, food and nothing urgent
More ▾Studio days plus one long table every evening
More ▾The house, the week, your people — what's included isn't on your site
What makes people pick you
The only small-group week that asks nothing of you — not a party, not a program.
Deposits, refunds, and rules · 3 of 4 answered
Yes — 30% holds the seat. Balance due 14 days before arrival.
Not on your site.
Add →Your voice, colours and type — drawn in full at 2.3-m / 2.3-look-m
What only you see
The read doesn't write your internal chapters — these stay yours.
Where the money actually comes from
Your people, in your own words
Post-30s professionals craving a reset.
Deposits, booking rhythm, day-to-day
Your north star
Teach your Brain › (amended 2026-09-10, #4714 — was Add →), then private 07 with Coming soon and no CTA. The Teach bar sits under both: it is page-level, not chapter-level. This 375 twin was missing until 2026-09-10.Your offers, prices, and what's included
an offeringits price
an offeringits price
an offeringits price
Nothing here yet — this is the shape it takes. Teach your Brain ›
Where the money actually comes from
an income lineshare of revenue
an income lineshare of revenue
This is the shape it will take — you'll be able to fill it in soon.
hidden md:inline), not a second mobile component. Min 44px, 16px off the foot plus the home-indicator safe-area, content width. Same opaque dark pill as desktop, no gold.Your offers, prices, and what's included · 3 offerings
90 min on Zoom · replay for a week
More ▾One session, booked over WhatsApp
More ▾Small group · every Sunday morning
What makes people pick you
Practical mindset work in Bahasa and English — for schools that want a speaker who has actually run a classroom.
main; until it does, the 375 bar opens the full sheet (-m-wave1).✕ not ⤒, and no ⤒ More foot. The week-2 frame inherits the 09-11 rulings even though it doesn't build yet; only the keyboard pin is outstanding.Five offerings, priced the way you quote them.
Slow weeks, sold per seat and held with a deposit. Two retreats carry the year; the mugs and the mentoring hour are what a guest adds to one.
From your site · 23 Sep 2026
TeachThisCue host 13.5 puts on every line (13.5-offer), carrying focusField: services · focusTarget: <offering name> · the field key as the quote — one composer, no second form. Desktop shows the Teach this › cue on hover (the Date row above); at 375 the question itself is the tap target, no cue (13.5 is desktop-only at rest).Program / Product / Service prints first on the meta line as a plain eyebrow token — no ▾, no select. A wrong type is corrected through Teach like any other fact (“the mug is a product”), and the row moves under its running head (Programs · Products · Services, production bucketOfferingType order).Service.link, stored since #2076, never rendered until now)..ed-slot). The two a booking can’t run without on a program (Date, Spots) wear a hairline needed to book chip and are what the margin’s Still need · N counts — drawn as an assumption, Peyton to confirm. 768 inherits 13.4-768. Story: As a founder, I want every offering to ask the same questions in the same words, so that a mug is never asked for spots and a class is never asked twice. NEW (PRD debt): the shared vocabulary itself · Time · Where · the payment line · needed to book · the question-as-Teach-door anchor.| Field | Program | Service | Product |
|---|---|---|---|
| Name · Short description · Price · Link | always | always | always |
| What’s included · What’s not included | asks | asks | asks |
| Schedule · NEW 2026-09-25 | asks — One-time or recurring? (also on Other) | hidden while empty | hidden while empty |
| Date | asks — When does it run? | hidden while empty | hidden while empty |
| Time | asks — What time does it start? | asks — How long is it? | hidden while empty |
| Where | asks — Where is it? | asks — Online or in person? | hidden while empty |
| Spots | asks — How many spots? | hidden while empty | hidden while empty |
| Who it’s for | asks | asks | hidden while empty |
| Deposit | asks | asks | hidden while empty |
| Payment policy | not per offering — one business policy, a quiet line on every row, edited in one place | ||
| Any empty question · the type | tap → Teach your Brain, anchored to the offering + field · type corrected through Teach · no sheet, no in-fold edit door | ||
Five offerings, priced the way you quote them.
From your site · journal deposit from an earlier read · 23 Sep 2026
Service.type, and the fold asks per row — a mug is asked two questions, a retreat eight, a service six. Same field names on every row (the table on 13.4-sell-open); only the empty-asks differ. The product’s sizes are the Price field’s tiers (price_shape:'tiers' / OfferingPriceTier — already in the model, no variant field to invent): the header prints from $28 · 3 sizes, the fold repeats Price with every tier on one line only when there are tiers.offering-context.ts): row 04’s deposit prints in its usual place with a one-line why under it (provenance · “a product isn’t usually asked this — your assistant still quotes it” · tell Teach if it’s wrong). No red, no lantern — an honest note, not an alarm.Five offerings, priced the way you quote them.
now — you confirmed 18 Sep
$1,950 per seat · Studio access, materials, all meals, pickup from LIS.
from your site — today
$2,100 per seat · Studio access, materials, all meals, pickup from LIS. May–Sep, 8–12 makers.
from your site — today
From today’s read — your call · the type on a new row is the read’s guess until you say otherwise
block.mark = new · changed · removed) gets the decide card and nothing else — PR #5221 already withholds the row’s TeachThisCue on a marked row (rowAnchorable = !marked), and the fold’s questions print as plain slots (.ed-slot-wait, no +, no cursor); a tap scrolls to the decide card. Keep current restores the questions as Teach doors at once; Use new one confirms the read’s values, then they return. The founder never has a Teach correction and a proposed value racing for the same field.coEditDoors freeze nothing here changes: the Teach pill and the margin door were never co-edit-class doors, and the anchored open reuses the standing Teach sheet (13.5-sheet’s chip), not a form.EdDecideBlock); the row header keeps the four lines + display-only type + payment line, so a proposed row looks like every other row. 768: 13.4-768 rule..ed-find rows: 15px light text at 58ch, provenance stamp right in 10.5px tracked caps. Peyton asked to see this before ruling — cream here, the identical spread on taupe next.Our words about your business — written by the read, never by you.
Saltwater House sells slow weeks, not retreats: two houses, two seasons, a long table every night, and a deposit that holds a seat. Guests come alone and leave in pairs — that is the sentence your site keeps almost saying.
The food carries the brand. 21 of 38 Google reviews mention dinner before they mention the sessions; your site mentions it once, in a caption.
Google · 38 reviewsYou sell the pace, and price the seat. Every offering is “per seat” and every retreat page opens on “slow” — the day pass is the only thing sold by the hour.
Read from your site · 18 SepThe early-bird lives on Instagram only. A $2,150 seat, 120+ days out, in a 3 Sep caption — nowhere on the site. Drafted in 03 for you to confirm.
From your Instagram · 3 SepInstagram — 4.1k followers, a post most weeks; prices appear in captions, never in the bio. Three reels this year, all long-table dinners.
@saltwater.houseGoogle — shows a 4.9 rating across 38 reviews for both houses; “the food” in 21, “Ana” by name in 9. Two mention the airport pickup arriving late.
Google BusinessThe web — one listing on a slow-travel directory (2025, prices out of date by $200), no press. Your own site is the only page that says “deposit”.
2 pages foundWhether the early-bird seat is still on — the caption is 15 days old and the site never mentions it.
→ 03 What you sellWhat happens to the deposit inside 30 days — your site says “balance 30 days before” and stops.
→ 05 House policiesWho signs off on a booking when Ana is hosting — two reviews name a second person we can’t find.
→ 02 Where to find youRead from saltwaterhouse.co · Instagram · Google · 18 Sep 2026 · this page is ours to keep current — it rewrites on every read
Saltwater House — slow weeks by the sea, in Bali and Portugal.
A small house that hosts twelve people at a time to make things slowly, eat well and go home rested.
BookRecapSection filled branch renders the three facets from brain_read_drafts synthesis; ghost branch is 13.4-empty.#e9e1d5 (warm taupe) instead of cream #f4efe6; the ink pair and every alpha are unchanged. Measured contrast on taupe: body ink 11.0:1 (cream 12.4) · ink-82 6.7:1 (cream 7.3) · ink-70 4.7:1 (cream 5.0) — body still clears AC-PB-11’s 7:1, meta still clears 4.5:1, but secondary text drops under 7:1 and the whole page reads a stop darker. A deeper taupe (#e3d9ca) measures 10.2 / 6.3 / 4.6 — meta text would need to move to ink-82 to keep headroom.Our words about your business — written by the read, never by you.
Saltwater House sells slow weeks, not retreats: two houses, two seasons, a long table every night, and a deposit that holds a seat. Guests come alone and leave in pairs — that is the sentence your site keeps almost saying.
The food carries the brand. 21 of 38 Google reviews mention dinner before they mention the sessions; your site mentions it once, in a caption.
Google · 38 reviewsYou sell the pace, and price the seat. Every offering is “per seat” and every retreat page opens on “slow” — the day pass is the only thing sold by the hour.
Read from your site · 18 SepThe early-bird lives on Instagram only. A $2,150 seat, 120+ days out, in a 3 Sep caption — nowhere on the site. Drafted in 03 for you to confirm.
From your Instagram · 3 SepInstagram — 4.1k followers, a post most weeks; prices appear in captions, never in the bio. Three reels this year, all long-table dinners.
@saltwater.houseGoogle — shows a 4.9 rating across 38 reviews for both houses; “the food” in 21, “Ana” by name in 9. Two mention the airport pickup arriving late.
Google BusinessThe web — one listing on a slow-travel directory (2025, prices out of date by $200), no press. Your own site is the only page that says “deposit”.
2 pages foundWhether the early-bird seat is still on — the caption is 15 days old and the site never mentions it.
→ 03 What you sellWhat happens to the deposit inside 30 days — your site says “balance 30 days before” and stops.
→ 05 House policiesWho signs off on a booking when Ana is hosting — two reviews name a second person we can’t find.
→ 02 Where to find youRead from saltwaterhouse.co · Instagram · Google · 18 Sep 2026 · this page is ours to keep current — it rewrites on every read
Saltwater House — slow weeks by the sea, in Bali and Portugal.
A small house that hosts twelve people at a time to make things slowly, eat well and go home rested.
#f3ecdf) rather than darken it.| Chapter (click to jump) | Direct edit | Field is empty | Field has her answer | Status |
|---|---|---|---|---|
| 01 Your business | No direct edit | Tape line only, no badge, bulk-confirm only | Compare card, tape-positioned | TAPE COMPARE · 3 of 9 fields |
| 02 Where to find you | Tap to edit in place | Tape line only, no badge, bulk-confirm only | Compare card, tape-positioned | TAPE COMPARE · 1 of 8 fields |
| 03 What you sell | Edit sheet | In place, badge, no discard | In place, badge, no old value shown | SHIPPED · IN PLACE |
| 04 Why you | No direct edit | Tape line only, no badge, bulk-confirm only | Tape line only, no compare | TAPE ONLY · NO COMPARE |
| 05 Customer Q&A | Edit sheet | In place, badge, no discard | Full compare card, in place | SHIPPED · IN PLACE + COMPARE |
| 06 Branding | No direct edit | Tape line only, no badge, bulk-confirm only | Compare card, tape-positioned | MIXED · 2 of 8 fields compare |
| 07 Revenue | No direct edit | Tape line only, no badge, bulk-confirm only | — | MISROUTED · no chapter home |
| 08 Who you serve | No direct edit | Misrouted to ch.01 | Compare card exists, but misrouted to ch.01 | MISROUTED · no chapter home |
| 09 How you run | Tap to edit in place | Tape line only, no badge, bulk-confirm only | Tape line only, no compare | TAPE ONLY · NO COMPARE |
| 10 Direction | No direct edit | Tape line only, no badge, bulk-confirm only | Tape line only, no compare | TAPE ONLY · NO TEACH DOOR |
The very first thing she sees — nothing saved yet
A read finishes (Research or Teach) and lands ON the playbook
No confirm-sheet, no silent discard — the founder-locked model since 2026-07-15: findings become visible drafts in place, in the chapters they belong to.
The header band flips to the "draft" state — one of three, never a flat action count
PlaybookBookHeaderActions.tsx (build spec Item 1, AC-BRAIN-137): draft / confirmed / empty are the ONLY three states this band ever shows.
This read landed in your playbook — not saved yet.
Nothing goes in until you say it sounds like you.
"Save a copy ▾" is deliberately absent here
There is no confirmed version to export yet — offering it would be a door onto nothing. It only appears once confirmed (Design review, 2026-09).
"Save to Brain" is the ONE gold moment on this band
The whole-book confirm door — the ONLY one, since #4693 retired the rail's own "Use all" button. Tapping it runs every chapter's outstanding drafts through the SAME confirmGapProposal spine the individual Keep-mine/Use-new cards use.
Grounded straight from the live component (not a mockup) — PlaybookBookHeaderActions.tsx, cited by its own header comment against #f-ir-2pb/#f-pb-canon in this file. Those two frames still exist here but are tagged retired — they predate the 13.4 cream-paper rebuild, so their LOOK is stale even though the BEHAVIOR they documented (and this slide redraws in 13.4 style) is still exactly what ships.
Confirm the mapping, don't rebuild
This step is already fully designed — nothing to redraw here.
Once she taps Save to Brain, the header flips to confirmed and she can open the full playbook — every chapter, saved — anytime. That surface is "The Book" sub-tab on this same shelf: 10 chapters, cream/charcoal paper, a cover + contents spread. It is the SAME PlaybookBookPage.tsx component this whole Draft → confirm shelf grounds against — reached at /brain/book, rendered as a full-surface overlay over the base Brain page.
This is journey step (b) — confirmed as the right mapping (the same host component, the same route), not a separate surface that needs its own design. The 10 chapter slides on THIS shelf (PJ-01…10, linked from the index above) are the detail view of what a SINGLE outstanding draft looks like inside one of those Book chapters — this pointer is the whole-book view around it.
Door: the Teach bar at the foot of any open Book chapter
The Book is open, on any chapter
A persistent "Teach your Brain" bar sits at the foot of the Book — BrainTeachBar.tsx, mounted inside PlaybookBookPage.tsx.
Tap it — the SAME composer as the PJ-1 walkthrough opens
Desktop: a quarter-height peek over the Book. 375: the full sheet. Paste text, drop a file, or link a Google Doc — one box, no mode tabs (ShareInline/BrainShareSheet).
"Add to Brain" — the BOOK closes too, not just the peek
Peyton ruling 2026-09-17 (AC-BRAIN-256 / 190 / 191 / 127g / 127c): "make sure book close as well so that user can see the line running." She lands on /brain, scrolled to the ONE Building-your-Brain line, watching it run.
The ready notice reopens the Book on the drafted chapter
One honest gap: reopening is a tap on the "Resume" banner, not a silent auto-jump — but it lands her straight on the chapter with new drafts (pendingBookLandChapter rising-edge in PlaybookPage.tsx), not the cover.
The draft shows exactly as grounded on the chapter slides
Whatever chapter it landed on, the SAME chapter-by-chapter behavior applies — a new field gets the empty-field treatment, a changed one gets a compare card only where one is actually wired (see the “how a draft lands, by chapter” table on the index above).
Repeatable, no limit
Every pass runs the same 5 beats. Nothing here caps how many times she can teach the same chapter — each pass just re-derives outstanding drafts against whatever she has already confirmed.
Grounded against the shipped f-pb-read-yield frame in this file (dated 2026-09-17, tagged the OLD "draft" shelf, NOT retired) — the behavior it documents is current; only its pre-13.4 look is dated. Jump to it for the original drawing.
Door: "Teach your Brain" on the bare /brain page
She's on the bare /brain page — no Book open
The SAME "Teach your Brain" pill (BrainTeachBar.tsx) is mounted here too, directly in BrainPage.tsx — not a second component, the identical one.
Same composer, same submit
Paste, drop a file, or link a doc — identical ShareInline/BrainShareSheet instance as c.1 and PJ-1. The sheet auto-closes on submit.
"AI read" runs right there — no Book to close, because she was never in it
The same BrainBuildingLine progress (BrainTeachProgress.tsx) renders in the read-spine seat on /brain itself — per that component's own header comment, "renders in the read-spine seat above the playbook AFTER the Teach sheet's Read tap closes the sheet."
A "ready — pick up where you left off" banner appears automatically
Honest nuance: the BANNER shows up unprompted; opening the Book is still one tap ("Resume", BrainPage.tsx → navigate('/brain/book')) — not a silent auto-navigate. Close to "automatic" from where she sits, not literally zero-tap.
Same landing, same chapter behavior
From here it’s identical to c.1 step 5 — the draft shows exactly as grounded on PJ-01…10.
The only real difference from c.1: there is no Book to close first. Everything downstream — the composer, the progress line, the landing — is the SAME component reused, not a parallel implementation.
Door: "Add to brain" inside an assistant's Brain Check section
She's on an assistant's Detail page, Connect tab, Brain Check section
BrainCheckModule.tsx — imported directly into AssistantDetailModal.post.tsx from activation-wizard/BrainCheckModule.tsx. Confirmed: it's the exact same component the pre-activation setup wizard uses, not a lookalike.
Taps a row's "Edit in Brain →" / "Add to brain"
onEditInBrain → openBrainLayer → openSlideOver({ page: 'brain', section, field }). This does NOT navigate away and does NOT close the assistant modal.
The real Brain page slides in from the side, layered ON TOP
The assistant Detail modal stays mounted underneath the whole time — the slide-over is the actual BrainPage, not a copy. Same Teach pill, same composer, same progress line, same chapter-landing behavior as c.1/c.2, just reached one layer deep.
KEY DIFFERENCE — closing it is real, and confirmed shipped, not aspirational
Closing the slide-over (X / Esc / backdrop / hardware Back) calls teardownSlideOver then just removes the layer — the Detail page she was configuring was NEVER closed, so there is nothing to "return" to; she is already there. teardownSlideOver also re-runs brainReadiness.recheck(), so the Brain Check rows on THAT page reflect what she just taught immediately.
Same mechanism, pre- AND post-activation
openBrainLayer is threaded from BOTH ActivationWizard (setup, pre-activation) and AssistantDetailModal.post.tsx (post-activation) — one shared door, two hosts. f-pb-read-yield-wiz already draws the wizard side of this.
Answering the ask directly: c.3’s return-to-origin is real and shipped — but it is not a special "return" step someone built. It falls out of the slide-over architecture itself: the origin page never unmounts, so closing the layer IS the return. That is a genuinely different choreography from c.1/c.2, which really do close and later reopen the Book via full navigation.
Customer Q&A — the walkthrough. Same mechanism on every chapter.
She taps the ONE Teach door on the chapter
Every chapter has exactly one door — "Teach your Brain a new answer ›" on Customer Q&A. 06–10 differ only in the door's phrase; Direction has no door at all.
The composer opens — one box, not three tabs
ShareInline / BrainShareSheet: paste text OR a link (offers "Fetch this page"), drop a file (.txt .pdf .docx .md .json .zip, or a photo), or link a Google Doc. One submit, no mode-picker.
Paste text or a link · drop a file · or link a Google Doc
"Add to Brain" — metered, runs the SAME classify pass every door uses
The organize-content Edge Function (mode:'clean') reads the text/file/photo and produces proposals; organizeCleanToProposals.ts adapts them into the same shape a Research read produces.
The Book closes, then reopens on the drafted chapter
She lands on /brain watching the "Building your Brain" line run, then the ready notice reopens the Book scrolled to Customer Q&A with the new draft rows lit.
From here, the two-scenario split takes over
A brand-new question ("Do you allow walk-ins?") gets the new mark in place. An existing one ("Do you take deposits?") gets the full Keep mine / Use new compare card. See the card above for exactly what each chapter does at this step.
Research read — same landing, different door
A Research read (paste her website URL on the zero-state screen, synthesize-profile.ts) skips steps 1–3 entirely — there’s no chapter door, no composer, no file. It goes straight from "she pastes a URL" to step 4: the SAME brainReadDrafts.ts pipeline builds the same ReadDraftEntry[], lands on the SAME chapters, and the SAME empty/changed split in the card above applies identically. Research and Teach are two different front doors into one back hallway — not two different confirm mechanisms.
new chip (the SAME chip-origin mark FAQs and offerings already use)..ed-decide compare card the shipped 13.4-decide frame already proves out (confirmed recessive above, drafted full ink below) — rendered AT THE FIELD, never in a separate tape above the chapter.| Chapter | Today | What has to change |
|---|---|---|
| 01 Your business | Compare card exists (3 fields) but sits in a tape above the chapter | Move the existing card to the field’s own slot; add the new-chip treatment to the other 6 fields |
| 02 Where to find you | Only business_hours compares, tape-positioned; contact_info never compares | Move hours in place; extend real compare wiring to contact_info subfields |
| 03 What you sell | New offering gets a mark chip (correct); changed offering shows only the new price, no compare; removed isn’t modelled | Give a changed offering the SAME compare card FAQs get; add a removed state; unify buttons |
| 04 Why you | Flat line only, both scenarios — nothing built | Extend chapter 01’s description pattern here — no new mechanism needed |
| 05 Customer Q&A | Already ships both halves correctly — the reference implementation | Add per-row choice to new rows (today: bulk-confirm only); adopt the unified button labels |
| 06 Branding | 2 of 8 fields compare, tape-positioned; rest flat-line | Move existing cards in place; extend to the other 6 fields |
| 07 Revenue | MISROUTED — drafts silently land under "01 Your business"; this chapter shows nothing | Fix the routing first (give Revenue its own entry in the draft-section map), then apply the pattern |
| 08 Who you serve | Compare card exists (target_audience) but MISROUTED to "01 Your business" | Fix the routing, then move the existing card in place — nothing else missing |
| 09 How you run | Flat line only — but this chapter already has real tap-to-edit (saveScalar) for direct changes | Add the compare-card path alongside the existing direct-edit path |
| 10 Direction | Flat line only, AND no Teach door registered at all — Research-only | Apply the pattern to what Research CAN populate; registering a Teach door is a separate, smaller decision |
This design ships first → it becomes the real spec for #35 (delete the old chapter-header bulk "✓ Use" control, since every field will have its own real choice) → THEN, separately, the broader design-file structuring (multiple sub-tabs, the fuller a/b/c journey) gets solved. The "Playbook journey" sub-tab built earlier tonight is paused, not part of this priority.
2026-09-22 correction (Peyton, live review of the first BD build): three separate button vocabularies (Discard/Confirm · Keep it/Remove it · Keep mine/Use new one) collapse into one — Keep current / Use new one — on every drafted row, new/changed/removed alike, scalar fields and offering/FAQ rows alike. The compare card also gained the tag-line + dated kicker treatment from the 2.3-qa reference (EdDecideBlock’s confirmedKicker/draftedKicker props already support this text without a component change).
industry is TAPE ONLY (flat line, no chip, bulk-confirm only, buried above the chapter). description already has a real compare card but it sits in that same tape, not here. TARGET: both render in place with the tag-line on the field label (chip + dated kicker, matching the 2.3-qa reference) and the unified Keep current / Use new one buttons — a genuinely empty field gets the new chip; a changed one gets the SAME compare card the field already renders elsewhere in this Book, just moved to its own slot.The basics customers see first.
from your site — today
Hospitality — retreatsAbout changed · ⚑ differs from what you confirmed
now — you confirmed 3 Sep
Small-group retreats in Bali.
from your site — today
Small-group, phone-free retreats in Ubud for burnt-out professionals ready for a reset.
From your site · description from today’s read — your call
contact_info (WhatsApp, email, socials) never compares at all — the 13.4-decide frame’s own WhatsApp illustration doesn’t match what ships. Only business_hours has a real compare card today, and it too sits in the tape, not here. TARGET: both field types (a keyed-map subfield like WhatsApp, and the hours fact) get the SAME in-place treatment.Your places, hours and how to reach you.
from your site — today
+62 812 3456 7890now — you confirmed 12 Sep
Mon–Fri 9:00–16:00 WITA
from your site — today
Mon–Sat 9:00–17:00 WITA, closed public holidays
From your site · WhatsApp + hours from today’s read — your call
adds/changes, no removed). TARGET: give the changed offering the exact same compare card FAQs already get, give the new offering its own Keep current / Use new one instead of only the chapter-wide bulk button, and add a removed state — struck-through, printed first, never behind a list cap so she can’t miss it. The row keeps its four lines + type (13.4-sell-open); while marked, the decide card is its ONLY door — the row’s questions stop opening Teach until she decides (13.4-sell-draft).What guests book and what it costs.
Sunset Yoga Add-on — half day removed
$180 · per person
No longer offered, per today’s read — struck through, printed first so it’s never missed.
Sunrise Retreat — 7 nights new
from your site — today
$2,400 · per person · Program ▾
Where do guests book this?
Ubud Reset — 4 nights changed · ⚑ differs from what you confirmed
now — you confirmed 3 Sep
$1,450 all-inclusive
from your site — today
$1,600 all-inclusive
From today’s read — your call
description already proves out — nothing new to invent, just extend the same pattern here.What makes you the only choice.
Why us new
from your site — today
The only small-group retreat that actually keeps phones out of the room.
The only choice changed · ⚑ differs from what you confirmed
now — you confirmed 3 Sep
The only small-group retreat that actually keeps phones out of the room.
from your site — today
The only phone-free retreat in Ubud built for burnt-out professionals, not backpackers.
From today’s read — your call
What guests ask before they book.
Do you take deposits? changed · ⚑ differs from what you confirmed
now — you confirmed 2 Sep
Yes — 30% holds the seat. Balance due 14 days before arrival.
from your site — today
Deposit is €800 flat — balance due 60 days before arrival.
Can I bring a plus-one? new
from your site — today
From today’s read — your call
custom_instructions (House rules) already has a real compare card, tape-positioned. things_to_avoid is TAPE ONLY. TARGET: same move as every other chapter — both render at their own slot, with per-field actions.How your assistants sound and look.
from your site — today
over-promising, corporate phrasesHouse rules changed · ⚑ differs from what you confirmed
now — you confirmed 1 Sep
Warm, direct, a few emoji ok.
from your site — today
Warm and direct — no emoji, guests said it read too casual.
From today’s read — your call
offerings/revenue_profile drafts don’t even land on this chapter — a title-lookup collision routes them to "01 Your business" instead, and this chapter shows NOTHING, even mid-read. Build order matters: fix the routing FIRST (give Revenue its own entry in the draft-section map) — only then does the pattern below apply. Also charcoal paper (07–10 are the private zone, .ed-zone-private/.ed-dark) — this frame rendered on cream until the 2026-09-22 correction.How you price and get paid.
from your site — today
$2,400 per seat, 30% depositnow — you confirmed 5 Sep
30% deposit, balance on arrival.
from your site — today
30% deposit, balance due 14 days before arrival, non-refundable.
From today’s read — your call
target_audience DOES have a real compare card — but the same routing bug as Revenue sends it to "01 Your business" instead of here, so this chapter shows nothing. Fix the routing, and this chapter already has everything it needs for the "changed" half — just move the card in place; the "empty" half below (founder_role) is a smaller, separate gap on top of that. Also charcoal paper (07–10 are the private zone) — this frame rendered on cream until the 2026-09-22 correction.Who you built this for.
from your site — today
Lead facilitator & hostnow — you confirmed 4 Sep
Post-30s professionals craving a reset.
from your site — today
Post-30s professionals craving a reset — burnt out, financially comfortable, first retreat.
From today’s read — your call
saveScalar), so the write path exists; the draft-compare path is what’s missing. Also charcoal paper (07–10 are the private zone) — this frame rendered on cream until the 2026-09-22 correction.Deposits, rhythm, team, rules.
now — you confirmed 6 Sep
Cohorts open 90 days out, cap at 12.
from your site — today
Cohorts open 90 days out, cap at 12 · a sold-out week routes to the next date.
From today’s read — your call
door string in the registry). Only a fresh Research read can ever populate it. TARGET applies the same in-place pattern; the missing Teach door is a separate, smaller gap.Where you’re headed.
from a Research read — today
Grow to two cohorts a month without losing the small-group feel.From today’s Research read — no Teach door for this chapter
AC-PB-C02-07 — a changed scalar (chapter 02 fact) prints confirmed recessive above, drafted full ink below, Keep mine / Use new one.AC-PB-C05-05 — a changed FAQ prints BOTH answers in the same stack. The Looks like one you have near-duplicate keeps the stack and swaps the doors to Keep both / Replace mine.pending_sync uses this same row. DraftCompare.tsx is deleted.Your places, hours and how to reach you.
now — you confirmed
+62 812 3456 7890
from the read — today
+62 811 2200 4488
From your site · WhatsApp from today’s read — your call
What guests ask before they book.
Do you take deposits? looks like one you have
Looks like one you have: Do you take deposits?
Yes — 30% holds the seat. Balance due 14 days before arrival.
from the read — today
Deposit is €800 flat — balance due 60 days before arrival.
Confirmed 12 Aug · new reading from rates.pdf — today
now — you confirmed
+62 812 3456 7890
from the read — today
+62 811 2200 4488
Do you take deposits? looks like one you have
Looks like one you have: Do you take deposits?
Yes — 30% holds the seat. Balance due 14 days before arrival.
from the read — today
Deposit is €800 flat — balance due 60 days before arrival.
required rows. Absent / false never counts — never fake..ed-ask tail: max 2 open, first gold, rest dim, remainder under and N more ▾. One lantern per book.Your places, hours and how to reach you — shown because you host in person.
A physical place — two houses, two seasons. Guests fly in; you meet them at the airport.
Still need from you · 2
paste the Google Maps share link
a landline, if there is one
From your site · hours from what you shared · 12 Sep 2026
chapterStillNeed only counts field.required === true. The sibling stamps the flag. #4951 owns which fields ask.Still need from you · 2
paste the Google Maps share link
a landline, if there is one
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
You write like you’re already holding the door.
Prices and dates before adjectives.
One aside per message, never two.
Falls back to MystFlo’s default where you haven’t said — the guardrails never change.
The gap. The voice actually replying (Warm Host) is nowhere on the page; the eyebrow claim reads as “this is what customers hear.” Honest on the record, misleading on delivery. Both voices exist together only inside the edit sheet’s tab row.
A steady, friendly host who knows the answers and never rushes anyone.
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Every reply today is Warm Host, shaped by your house rules. Your voice takes over only after you preview and confirm it.
Honest and vertical (playbook §3 vertical-first) — but the empty radio is a control that does nothing until S3, and a greyed choice invites why can’t I? At desktop the two voices stack two rows tall where the width could hold both. Settings grammar on magazine paper.
A steady, friendly host who knows the answers and never rushes anyone.
Warm · kind · calm · clear · confident · honest · helpful · quick to the right answer · quietly upbeat
Loses on the ask itself. Both voices exist only behind a tap — the opposite of “see both.” A select promises a switch it can’t deliver before S3 (a disabled option is the oldest “why is this greyed out”). And the Book already ruled its one token display-only — no ▾, no select (13.4-sell-open, Peyton 2026-09-23). At 375 it becomes a picker sheet just to read.
MystFlo’s voice, shaped by your house rules
A steady, friendly host who knows the answers and never rushes anyone.
Warm · kind · calm · clear · confident · honest · helpful · quick to the right answer · quietly upbeat
sounds like you — because you confirmed it does
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
Every reply today is Warm Host, shaped by your house rules. Your voice takes over only after you preview and confirm it.
Both visible in one glance, nothing pretends to switch. Who wrote each voice is the stroke (dotted edge = MystFlo-authored, solid = yours — the Double Law, U12); who is speaking is the one emerald dot (C12); what needs you is the one lantern (S1 only). The Book’s own two-up grammar (.ed-together) — no new control. At 375 the columns stack and it is option A without the dead radio. S3 adds a door, S5 swaps the lead; the markup never changes shape.
NEW (PRD debt).How you sound, and how you look — rendered, not listed.
MystFlo’s voice, shaped by your house rules
A steady, friendly host who knows the answers and never rushes anyone.
Warm · kind · calm · clear · confident · honest · helpful · quick to the right answer · quietly upbeat
Authored and checked by us — read-only.
sounds like you — because you confirmed it does
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
Takes over only after you preview it and say so — never on its own.
Every reply today is Warm Host, shaped by your house rules. Your voice takes over only after you preview and confirm it.
hey is there still space in october? coming alone, bit nervous tbh
Yes — two seats left for 12–17 October, both in shared rooms. Most guests arrive on their own, so you’ll be in good company. Shall I hold one for 48 hours while you look at flights?
Always quote in USD. Never promise a specific teacher. If someone mentions a medical condition, hand it to Rina.
Palette, specimens, the painted proof and the feel tiles — unchanged, drawn in full at 13.4-brand.
Voice confirmed by you · 12 Sep · look read from uglywooretreats.com · 8 Sep 2026
brand_voice_v2 exists; Warm Host alone renders at S0 with her column as a slot (S0). No tap on either column selects before S3 (AC-SOUND-02 ↗). The emerald dot sits on exactly one voice. The claim sounds like you — because you confirmed it does prints only on her column, only from S2. Guardrails print once (AC-SOUND-05 ↗). No generate affordance anywhere in the spread (AC-SOUND-11 ↗).WarmHostDefaultBlock (book) prints Your assistant, in your voice over a Warm Host reply — a copy fix regardless of which option wins. NEW (PRD debt).BrandingChapterBody renders custom_instructions in the sound group). 13.4-brand printed House rules last; the shipped order wins and 13.4-brand is corrected at build.HowYouSoundSheet’s tab row stays as the edit sheet’s reading filter until PR-7 retires the sheet; the S3 preview door and the S5 revert land here (PRD (d) pointer, 2026-09-17), not in a tab.NEW (PRD debt), no AC id yet.ed-decide block (13.4-decide’s own grammar) with the proposed statement, one sample reply in that voice, and two actions — Confirm · Tweak (Peyton ruling 2026-10-01: a research-found voice lands as a draft she confirms, or tweaks then confirms). Margin Still need · 1 — your voice: is this you? No ask-tail row on this chapter while the draft is open: one lantern per view.How you sound, and how you look — rendered, not listed.
MystFlo’s voice, shaped by your house rules
A steady, friendly host who knows the answers and never rushes anyone.
Warm · kind · calm · clear · confident · honest · helpful · quick to the right answer · quietly upbeat
Authored and checked by us — read-only.
Read from uglywooretreats.com · 1 Oct — does this sound like you?
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
A sample reply, in this voice
Two seats left for 12–17 October, both in shared rooms — and about two thirds of every week arrives solo, so you’ll be in good company. Want me to hold one for 48 hours while you look at flights?
Confirm saves it as yours. Tweak edits the line here first, then Confirm. Guests keep hearing Warm Host until your voice passes our check.
Every reply today is Warm Host, shaped by your house rules. Your voice takes over only after you preview and confirm it.
Guardrails · In action · House rules · How you look — as 13.4-voice.
brand_voice_v2 present, not confirmed (deriveVoiceSkinState). Confirm → S2 Saved · coming soon (13.4-voice) with no re-read; Tweak turns the statement into an in-place line edit (PlaybookLineEditor grammar, same card, same lantern) and Confirm then saves the tweaked line. Warm Host keeps speaking through both. The decide block is the chapter’s only gold object — the ask tail never prints a gold row while a voice draft is open..ed-decide card the Book already uses for a changed fact — kicker names the source and date; the sample reply shows what the draft would sound like in a real exchange; actions are Confirm / Tweak, never Accept / Reject.Share a few of your own replies, or let a read of your site draft it — you confirm before it counts.
The Book’s empty-field grammar (13.4-empty): the customer-facing question as a slot, one door. No claim line, no promise, no generate button (AC-SOUND-11 ↗).
sounds like you — because you confirmed it does
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
Preview a few replies, then say so — only then does it speak.
The chip never selects; the door opens the preview (AC-SOUND-03 ↗). Confirming from the preview is the only road to S5 — never a toggle in the chapter.
sounds like you — because you confirmed it does
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
MystFlo’s voice, shaped by your house rules
Warm · kind · calm · clear · confident · honest · helpful
Speaking voice leads and prints in full; the other prints compact. Revert is one tap, no dialog, nothing lost (AC-SOUND-04 ↗) — her voice returns to S3. The claim line now sits on the voice that speaks; the eyebrow in In action reads in your voice.
deriveVoiceSkinState, the door is S0 Teach / S3 preview / S5 revert — nothing else changes. S4 (the two-pole gate) has no frame: it is a backend condition, never a founder-facing state.MystFlo’s voice, shaped by your house rules
A steady, friendly host who knows the answers and never rushes anyone.
Warm · kind · calm · clear · confident · honest · helpful · quick to the right answer · quietly upbeat
sounds like you — because you confirmed it does
Warm, direct, a little playful — like a friend who’s already been to Bali twice.
Warm · direct · a little playful
Every reply today is Warm Host, shaped by your house rules. Your voice takes over only after you preview and confirm it.
… In action · House rules · How you look as 13.4-voice.
.ed-hl-cue button and its data-hl paint rule are scoped entirely under .ed-desktop (13.5's CSS) — under the split breakpoint the class that owns the whole mechanism is never applied, so there's no dead button sitting invisibly in the DOM waiting for a stray tap. Confirmed against the real gate useIsSplitViewport already uses (SPLIT_BREAKPOINT, use-mobile.ts).display:none below the shell's 900px query). Story · acceptance · notes: the desktop half.AC-BRAIN-126) — the bar, the peek and this sheet share the one string.onOpenBook) — no button, full row is the tap target.Nothing saved yet — teach your Brain and this fills in
Nothing confirmed yet
6 chapters still empty
What your assistants say for you
What you do, and who it's for
a fact about your businesswhat it says
a fact about your businesswhat it says
Nothing here yet — this is the shape it takes. Add →
Your offers, prices, and what's included
an offeringits price
an offeringits price
Nothing here yet — this is the shape it takes. Add →
Your voice, your colours, your type
a brand factits value
a brand factits value
Nothing here yet — this is the shape it takes. Add →
Class seats booked from the DM, no more back-and-forth.
This example shows the shape of your playbook. Workshop hosts build with our general question set today — a tailored one for your craft is on the way, so a few questions may be broader than what you see here.
What your assistants say for you
What you do, and who it's for
The Clay Room is a pottery studio in Lisbon running beginner wheel-throwing classes on weeknights and weekends. It's for people who want to make something with their hands after work, not for trained ceramicists.
Every seat gets booked from an Instagram DM that you walk to a payment link by hand.
Your places, hours, and how you deliver
If a class fills, the assistant offers the next open date instead of leaving someone on read.
Your offers, prices, and what's included · 2 offerings
You're not selling a class; you're selling the first time someone's hands actually centre the clay.
Programs · 1
Two hours. Clay, tools, firing, and two finished pieces.
More ▾Services · 1
Six or more. Same studio, same first-timer pace.
More ▾What makes people pick you
The whole first class is built around it being fine to make a wonky bowl.
You started teaching because the studio had quiet wheels in the evenings and friends who kept asking to try. The thing a first-timer worries about is looking clumsy in front of strangers.
Your questions, deposits, refunds, and rules · 5 of 5 answered
Skill level & fitness · 1
None — every intro class assumes it's your first time.
Cancellation & refunds · 1
Yes, up to 48 hours before. Inside that the seat is held but not refunded.
Attire & safety · 1
Clothes you can get dusty. Aprons are at the studio.
Groups, custom bookings & languages · 1
Six or more is a private session at €55 a head. Payment in full holds the room.
Pickup & finished work · 1
About three weeks, once they're fired and glazed.
Your voice, your colours, your type
Friendly, hands-on, and unfussy — the way you'd talk to someone nervous about being bad at it.
Reassure first, book second. No art-school jargon, no pressure; if someone's not sure, point them at the next beginner night.
Speaking today · Warm Host — default · Your voice — coming soon. Every assistant opens as a steady, friendly host — calm, honest, prices verbatim from the Brain, first message names the AI — until The Clay Room’s own voice is confirmed from a preview.
The one that's yours
Page & ink
Supporting
Together
The Clay Room
How this reads together
A heading, a line of body, and the colour that is yours — on your page.
Continueyour page · your ink · your signature
The vibe from your moodboard
Handmade and kiln-warm — terracotta and stoneware, not a polished studio ad.
The Clay Room
How a line of your type reads on the page.
The Clay Room
How a line of your type reads on the page.
What only you see · yours to fill
Where the money actually comes from
Your people, in your own words
Deposits, booking rhythm, day-to-day
Your north star
Filled from your research and your own notes — never shown to customers.
Yours gets built from your own site, Instagram, and files — then you review and edit every line.
.ink-* system as 33-m — one book design for real + template. readBy is the 11px folio line on the numeral row (template-only). Disclosure colophon only for generic-map personas (AC-BRAIN-14).Workshop host as her persona when unset (Peyton 2026-08-16).Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
Up to date · last change Aug 12 v2
The facts your assistants lean on.
The facts your assistants lean on — every field optional.
More details — other socials
Retired copy — hours are SHAPED by how you deliver, never hidden (#4851): a 7-day grid for a place, one availability line for events.
More details — address and who can buy
Your playbook
a · nothing saved — the question IS the row (never hidden)
b · online, filled — the read left 2 questions (one gold)
c · physical, confirmed — one editorial line, not a field dump
The door reads open →, not detail →: it opens the chapter IN the book, where the fields are edited. No sheet.
Small-group weeks in Bali and Portugal, plus the house on its own — three ways to book Uglywoo.
Got a price list or catalog written down? Drop it in — we'll sort it into rows.
Nothing filed here — most hosts never need it.
+ Add offeringNothing here yet — this is where every price your assistants quote comes from.
Got a price list or catalog written down? Drop it in — we'll sort it into rows.
One offering on file. Add them one at a time, or paste the lot above and we'll sort it.
+ Add offeringSmall-group weeks in Bali and Portugal, plus the house on its own — three ways to book Uglywoo.
Got a price list or catalog written down? Drop it in — we'll sort it into rows.
Three of these come straight from your Google Sheet — same list, no second copy; edits to those happen in the sheet.
Optional. Your assistant shares this so customers can book or pay.
Give it a name so your assistants can find it.
Optional. Your assistant shares this so customers can book or pay.
Nothing is saved yet — close anytime and nothing lands.
Add to your lineupThe line your assistants use when a customer compares you to the other one.
What people ask before they book.
Got an FAQ page or answers written down? Drop it in — we'll sort it into rows.
Two questions peers answer here, and you haven’t yet — open the group to fill them.
+ Add questionDraws from your wallet — nothing runs until you confirm.
Word for word, whoever asks. Change one here and it changes on How you run — one home, never two copies.
What people ask before they book — nothing answered yet.
Got an FAQ page or answers written down? Drop it in — we'll sort it into rows.
The questions peers answer here are waiting — open the group, or drop your FAQ page in above and we’ll fill them.
Nothing here yet. Your deposit and refund lines below already answer part of this.
+ Add questionDraws from your wallet — nothing runs until you confirm.
Word for word, whoever asks. Change one here and it changes on How you run — one home, never two copies.
Write it the way a guest would ask it.
We file it — you can filter by topic any time.
Nothing is saved yet — close anytime and nothing lands.
Add to your answersYou filled How you run. Here’s the guest version — same numbers. Guests don’t hear it until you say yes.
30%, 14 days, 45 days, 30 days stay yours.
keep as typed · edit on How you run
The same hierarchy the book paints — not a flat colour list.
Your colours
Together
Uglywoo Retreats
A week that asks nothing
Soft corners, sand, charcoal — the same four jobs the book shows.
Hold my placeyour page · your ink · your signature
The vibe from your moodboard
Airy and photo-led, with film-grain photography. Warm, earthy, handmade — natural light, close textures.
Mentions describe you as boho-luxe. from the web · our guess
Your type
Uglywoo Retreats
A week that asks nothing of you.
Uglywoo Retreats
A week that asks nothing of you.
Your feel
How money actually comes in. Only you see this.
Who you're really building for. Only you see this.
The way your business actually runs. Leave any blank and your assistant asks you first.
Customers hear pay, cancel, and refund if they ask — confirm the guest version on Customer Q&A first.
Coming soon — existing answers stay. They are not asked or edited here yet.
Coming soon Linked later to your advisor.
Who you are and why you started. All optional.
Optional — stays on this sheet. The longer about lives on Your business.
Customers like yours usually ask these — tap to add, then answer in your words.
Every offering's full facts — and a ready-to-post listing underneath, assembled free from those facts.
Nothing gathered on this one yet — no description, and no list of what's included.
✦ Draft it for me — the one 44px tap, and the only ✦ on the screen. No wallet line (kit 2026-08-23).+ Add files, links, or paste anything row is the SAME composer as 28b-m′, collapsed because there is a write-up to read here. It sits below the free write-up and above the paid ask — gather before rewrite, free before paid, in reading order. Tapping it expands the box in place (28b-m′'s density) — no wallet-floor (kit 2026-08-23).No description yet, and no list of what's included.
tap any line to fill it in — or share what you've already written, below
One write-up you can use anywhere you sell this.
No ✦ on this screen and no ask. Saving is still metered, but the composer does not narrate the charge (kit 2026-08-23). The ✦ door appears only once the facts can carry a write-up (28c ④).
paste text · upload a file · link a doc · your sheet · an image) under an “Already written somewhere?” eyebrow, and the desktop/production twin of this state went further and offered ✦ Draft it for me · Draws from your wallet — $2.00 on an offering with nothing gathered — paying the AI to invent a listing from nothing (D1 with a price tag). Both are gone. ONE composer, no ✦, no ask.ShareInline stopped being three tabs. Type · paste · drop · link belong in the same box.ai_usage brain_embed, ×2.0). Do not re-draw a wallet-floor or a per-control wallet-line (kit 2026-08-23). ✦ remains the paid mark, and this screen has none.Tap fix to edit any word before you keep it.
Share a booking PDF or a screenshot of how you confirm.
BrainSplitHost drops the page pane below 1024, so 768 is this stack at a wider measure. If the engage breakpoint ever moves below 1024, this section owes a real 768 tier.Pick every operation that's you — assistants only ask what applies to the ones you've turned on.
HowYouSoundSheet.tsx:174Your voice is what every assistant borrows when it replies. Set the tone, the words you use, and the lines that sound like you — confirm it once and it carries everywhere.
Add a tone, a few words, or a reply you’d write first.
Tuned for chat, social, your site, listings, and email.
How you lookSay it your way
Even better — your own words beat our guesses.
“omg yes — Saturday’s open, want me to grab you a spot?”
Saved as your examples: 3 lines you picked · 1 you wrote
Not quite? Tune again · ✦ draft from my writing
section: how-you-show-up — no second, ad-hoc uploader. Door copy is live shipped-in-artifact.OutwardReputation.tsx:924 used to draw a numbers-only screenshot extractor that charged and returned nothing on profile screenshots (QA Bug 2). It is now the plain door this mockup prescribes; review-count extraction survives as a backend capability inside the read. Recorded in parity/parity-brain.md.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
fixed inset-0), same as the playbook book. No left playbook digest. This is the tap from the ink cover on 9-preview.found row has already landed.BrainSplitHost. Clickable walk-through: our-read-v2-preview.html. Mint data is still { thesis, stands_out, changed, cant_see }; web-talk reads the latest brain_reputation_reads row — not a note field, ADR-036 untouched.fixed inset-0 over the still-mounted Brain. No playbook digest, no “N% of required”, no Missing/Confirmed list beside the deck. Teach / chapter edit / Share anything keep BrainSplitHost. Close / Escape → /brain..brain-rail, desktop) or the mobile stack under the shelf — Our read carries none of it, on any breakpoint. The ink cover still carries a quiet vN chip (light-on-ink twin of AC-PLAYBOOK-21 ↗) — that's the only versioning signal this surface keeps. Shipped: `BrainReadReport.tsx` (no `ActivityChrome` mount).Backline onSave prop.Full takeover (Peyton /design 2026-08-20) — same host as the playbook book, no left digest. Live spine unchanged. After the live chapters and before This read, the deck ships five Coming soon seats — COO · Advisor · Outlook · Vision · The buyer — as a preview of the signed chapter shape (v4.61 / AC-BRAIN-95). Signed frames: 18·v2-f. Not minted fields. Backend still parked.
fixed inset-0, backline Brain · Our read. No left playbook digest. Teach / chapter edit / Share anything keep the 40/60.Playbook stays a book. Our read is a deck.
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Activity on 375 (Peyton 2026-08-21): the companion pane is omitted below 1024, so no Activity preview mounts on this tier — the home is the Pulse → Activity tab (pulse.html 4c-m). The deck header carries Save ▾ (same Save-to-Google-Doc control as desktop, shortened). Slides stay clean: no Activity, no Copy all. NEW (PRD debt) — AC-OREAD-* pending.
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
We draft your voice first — you keep it — then fill the rest to match. You review every draft before it's saved.
FaqCoverageDots (the ●/◐/○ legend + “N/M offerings tagged”) and the per-row AskEntryWord (“N to answer →”). Peyton’s Option C ruling (2026-08-17, PR #3594/#3625) does NOT restore either to the index row — f9 stays exactly as #3459 shipped it. Both remount one level deeper instead: inside the EXISTING “Customer questions & policies” depth sheet (PlaybookDepthSheet/PlaybookDepthBody, kind="faqs", EDIT mode only), above the persona switch and candidate picker — coverage renders first, the ask-word second.openAskSheet the rail already opens, scoped to the FAQs section — a doorway INTO the one ask-flow home, one tap closer to where a founder is already looking, not a parallel ceremony.┌ FAQs & policies — depth sheet (kind="faqs", EDIT mode only) ─────────┐ │ ● ● ◐ ○ ○ · 3/5 offerings tagged (FaqCoverageDots + legend) │ │ covered · partial · gap │ │ 1 to answer → (AskEntryWord → openAskSheet)│ │ ────────────────────────────────────────────────────────────────── │ │ FAQ for: [ Retreat host ▾ ] (FaqPersonaSwitch, 2+ personas)│ │ “Retreat hosts usually get asked…” [chip] [chip] [chip] │ │ (FaqCandidatePicker) │ │ ────────────────────────────────────────────────────────────────── │ │ Do you take deposits? — Yes, 30%… (FaqRow list) │ │ + Add FAQ │ └───────────────────────────────────────────────────────────────────────┘
┌ Customer questions & policies — ONE categorized sheet, never tabs ────┐ │ │ │ GROUPS are the spine — SECTION ORDER IS THE STANDARD/PERSONA SPLIT; │ │ each group head carries its own coverage — no separate view │ │ │ │ STANDARD — SIX fixed heads (Peyton 2026-09-10, #4705), every founder │ │ ● Booking · 2 covered │ │ ✓ confirmed row — question + answer, nothing else │ │ ◐ Paying & refunds · 2 need you │ │ draft row — ONE quiet label (“from your site” / “standard”) │ │ + the ✓ Use affordance │ │ ○ open row — “answer →” opens the editor (32b) │ │ ○ What’s included · nothing yet │ │ ◐ Logistics · 1 needs you │ │ ○ What to expect · nothing yet │ │ About the business · + Add a question (bare: no corpus row │ │ under it yet — no glyph until the beta-week migration seeds it) │ │ category = f(slug) — 32 slugs → 6 heads; House rules RETIRED │ │ PERSONA — “For retreat hosts — from what peers publish” │ │ (renders only when the persona corpus is seeded; SAME six labels, │ │ never a seventh head) │ │ ○ What’s included · peers answer 3 │ │ one-line peer-set offer — “peers answer these 3 — add as │ │ drafts” │ │ 2+ personas (32a-multi) — the section collapses to a row per │ │ selected persona: ★ Retreat hosts · 3 of 9 answered · Edit → │ │ Workshop hosts · 0 of 6 answered · Add → │ │ tap → THAT persona’s groups in a sheet (Operations & Payment lock) │ │ YOUR OTHER ANSWERS — the uncategorized bucket (AC-FAQGEN-17) │ │ │ │ footer — ✦ Draft the 3 open ones · + Add a question │ │ ✦ is the paid mark — no wallet scare, no $ (kit 2026-08-23) │ │ │ │ 32b editor — type → the in-your-voice rewrite appears inline │ │ (opt-in ONCE) → ✓ Save · quiet “keep as typed” │ │ · Save auto-advances to the next open row in the group │ │ 32c empty SECTION — 32a’s spine at zero: the STANDARD heads still │ │ render (“nothing yet”); the set card fills the persona slot │ └───────────────────────────────────────────────────────────────────────┘
design-decisions.md 2026-08-19 lock: Brain per-AI actions never price the button; price applies silently, confirm-before-charge at the tap itself), ✦ on the button is the whole paid mark — no wallet scare line, no dollar figure (kit design-decisions.md 2026-08-23 lock). Corrected 2026-08-22: this frame was signed 2026-08-15 — before the lock — with “— $3” printed on the button; the S1 build follows the lock. Its result is a STATE of these same rows, never a new surface — see the state note under 32b: grounded answers land as quiet-labelled drafts; ungroundable rows STAY ○ with the monochrome ✎ yours to answer tag, no accept row, cost nothing (14f’s grammar, AC-FAQGEN-07 ↗, #3071).persona_faq_corpus): the empty group’s inline one-liner here, and 32c’s full set card. Drawn WITHOUT a ✦ — ✦ stays the paid mark only (judgment call: the reviewed offer copy carried one; the lock wins). Standard drafts inherit 14e’s fact-blank contract (AC-FAQGEN-13 ↗) — founder-only facts stay dashed blanks, never invented.computeFaqCoverage / useFaqCoverage().pairs — fetched today and thrown away). FaqCoverageList.tsx stays dead code: its VALUE survives as these heads; its VIEW does not.FaqCandidatePicker content rendered twice, persona-blind) both die; the floating “N to answer →” ask-word (AskEntryWord) dies — its job moves to the group heads + 32b’s Save auto-advance; the icon empty-state dies — 32c IS the empty state of this same spine. Nothing on this list survives as a hidden mount; the f14-interim depth-sheet mount retires with it. Contract: AC-BRAIN-108 ↗.originChip.ts carries only from-site / you-told-us) · durable server-side capture as an explicit criterion · the 32b auto-rewrite mechanic + its per-answer metering · the multi-persona useFaqCoverage(personaSlug) backend (32a-multi’s note).Archetype: sheet-slide-panel.md. Host contract: src/components/brain/BrainSplitHost.tsx.
pricing-discounts · about-business · community-partnerships, beta-week migration), the display map places it; ambiguity is settled once at classify time, never re-read here. Labels ship verbatim from FAQ_GROUPS (_shared/faq-corpus.ts, 19 → 6 — an EF deploy, the FE reads groups[]). A head carries a coverage glyph only where a selected persona’s corpus has a slug under it (mixed personas = union, beta-week EF change); otherwise it renders bare with + Add a question — About the business is bare until the migration seeds 1–2 about rows per persona. Below the six, the PERSONA section (“For retreat hosts — from what peers publish”) keeps its mechanic unchanged (CPO §2) — peer questions she has not answered, grouped by the SAME six labels, never a seventh head. Mapping tables: CPO faq-categories-final-cpo.md (session scratch → corpus spec §2 with the build PR). ↗ AC-BRAIN-108 is amended “five STANDARD groups” → six; the AC for the display map itself is AC-BRAIN-(tbd, #4705).persona.label (usePersonas() / persona_roster), so a 5th persona needs zero frontend code. This inline form is the SINGLE-persona state — today’s default and most founders. With 2+ selected personas the whole section collapses to rows: see 32a-multi below (Peyton design pick 2026-08-07).ModalWrapper presentation="sheet" — the sheet-slide-panel archetype, same slide choreography as that sheet, no new motion or chrome. Tabs and a dropdown-switch were considered and REJECTED, same reasoning as that lock: distinct personas are different outcomes, not sibling inputs to one outcome — a tab/switch hides a sibling persona’s open gaps. Applied to FAQ per Peyton design pick 2026-08-07 (chosen over the dropdown-switch option).useBrainPersonaSelection().primarySlug — the founder’s REAL selection), primary sorts first — the same ★-primary convention as f29’s picker (★ Main, exactly-one-primary DB invariant). Labels and one-liners read from usePersonas() / persona_roster — DB-driven, so a 5th persona needs zero frontend code. Each row carries its coverage count (“3 of 9 answered”, computeFaqCoverage per persona) and ONE action word: Edit → when the persona has answers, Add → at zero.useFaqCoverage(personaSlug) and its EF (brain-profile?resource=faq_corpus) take ONE scalar persona slug — called today with profile.persona_slug (primary only), so a secondary persona’s peer FAQs aren’t fetchable at all. The hook/EF must accept/loop per selected persona. This frame draws the target UI; that multi-persona-aware backend is separate work, not yet built.doesn’t apply
Asked once, ever — “no thanks” means plain saves from here on, and the toggle waits quietly in the sheet header. Typing is always free. No $ on the door (kit 2026-08-23).
appears as you finish typing — your facts, your voice, nothing added · tap to edit any word
doesn’t apply
Save lands the rewritten answer and auto-advances to the next open row in this group. Metered per answer, silent. Wallet-empty reuses the shipped AC-BRAIN-62 block (#3087) — the typed answer is never lost.
14f’s grammar in batch form (AC-FAQGEN-07 ↗, #3071): a declined row keeps NO accept affordance and costs nothing — the $3 covers only what was actually drafted. Monochrome by D3 — declining to guess is not an error.
persona_faq_corpus.Everything customers ask, grouped the way they ask it.
✦ rewrite onEverything customers ask, grouped the way they ask it.
✦ rewrite onA guest asks: “What should I pack?”
appears as you finish typing · tap to edit any word
keep as typed · doesn’t apply
Save auto-advances to the next open question in this group. Typing is always free.
No questions yet — start from what businesses like yours get asked.
All in by default — tap a row to leave it out. Nothing counts as answered until you ✓ Use it.
Prefer them answered for you? ✦ Draft what your playbook supports →
+ Add a questionpersona.label, never a hardcoded string.fg-40 → stale fg-55 → contradiction fg-70), no colour spent.Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
BrainPage.tsx) initializes the consent to false — this component never starts a recurring PAYG charge on its own; flipping ON is the only path in./brain page, below the playbook — member-only, never rendered for guests or inside the activation slide-over (bare mode).Implementation: PeriodicCheckToggle.tsx, mounted BrainPage.tsx.
Lock D3 (kit design-decisions.md, Brain R5 item 3) retired the paid "Check my brain" CTA and named "Research again" the only consented paid re-run — "never auto-run." This toggle is an explicit opt-in for something that then fires automatically the moment a linked doc drifts, with no per-run tap. Whether an opt-in-recurring consent satisfies D3's "never auto-run," or whether D3 needs an amendment carving out this one pre-consented path, is Peyton's call — drawn here as shipped, not resolved here. Billing-consent control; treat the ruling with that seriousness. Shown here at its default: OFF.
Up to date · Aug 12 v2
Tap the cover to read
12 Aug · our words v3
Coming soon — the full read on how your business runs.
Edit a chapter
Re-checks your content when your docs change, so assistants stay accurate. Runs only on real changes — pay only when it runs.
With checks off, if your docs drift or get messy we can't guarantee your assistants stay accurate.
Re-checks your content when your docs change. Runs only on real changes — pay only when it runs.
Every card here already sits in its step. This strip is so you can compare empty / blocked / fail without walking the whole journey. Jump back to see it on the page.
included ✓ · how you describe it: ready or … you refined this. Rows only ever say “open →” — no paid verb lives on the list and no ✦ appears here at all; the paid door is one tap in, on the offering's own detail (28b). A list a founder scans must never be able to spend money.chip-origin = from your site / you confirmed / you refined this. State (ready / not written yet) is typographic, never a chip — a state word inside chip-origin would invent a fourth vocabulary. Missing FACTS are amber warning TEXT, never chips (Peyton 2026-08-10): a pill reading “what's included?” looks like a feature the offering HAS. The sentence still names the actual missing facts, never a generic “needs more info” — that phrase is the collapsed playbook row's aggregate only. Chips survive for NON-fact states only (no photos shared yet).open → every other row uses. The row-level verb was “answer 2 questions →” until 2026-08-11; it changed because the primary door inside is now the mounted composer, not a question loop, and a list should not promise one shape and open another. The guided loop (28c ②–④) is unchanged behind it — one verb on the list, both paths inside.tap any line to correct it — you edit, you never re-type what your site already says
One write-up you can use anywhere you sell this.
the standard shape for businesses like yours — in your words · assembled free from the facts above
Built from what you've told us.
ASSUMPTION, pending Peyton — no fix verb on this state: the assembled default has no inline edit (spec §2.3), so correcting a fact above rewrites it, free; fix appears only once a draft is Kept (28d). If fix should edit the default directly, that edit persists as listing{} with origin:'typed' — a FREE action writing the block the spec reserves for Keep/Replace. Data-model consequence the build lane inherits, not styling.
✦ Draft it for me. ✦ is the paid mark; do not draw a wallet line under it (kit 2026-08-23). The assembled default is the example; the ask is explicit — she is invited to a peer-grade version, not handed a tool.No description yet, and no list of what's included.
Same box as everywhere else in the Brain (f15) — nothing new to learn — but mounted, not linked to, and scoped to this offering so what lands becomes ITS facts. Seated in the real page at 28b′ ↑. Cheap, not free: saving is read and metered, hence the floor line and no ✦.
Still missing what's included and a description.
Checked against the peer-standard listing shape — no model call. Amber TEXT, not chips (Peyton 2026-08-10): a pill reading “what's included?” looks like a feature the offering HAS. Renders in the FACTS layer, once — the write-up layer never restates it (2026-08-11). listingGapChips survives as the COMPUTATION; only its presentation and mount point changed.
What's included in the buyout — lodging, meals, staff?
e.g. “whole villa, all meals, private chef, no shared spaces” — the f14 GAP ask-sheet pattern, reused verbatim
Facts are in — write the listing from what you just told us.
usually a few seconds — the row stays right here
Tap any line to edit it before you keep it — an edited draft saves as you told us, never “generated”.
what to change — we'll rewrite around it, not start over
No offering rows at all — routes to What you sell; this layer never invents an offering to hang a listing on (spec §5).
Still missing what's included and a description.
Facts too thin for a complete listing — the composer renders in place of the ✦ door, not alongside it (Peyton ruling 2026-08-11): a founder cannot be sold a draft of something we have nothing to draft from. Never a blank form, never a fabricated body (spec §3.4). Missing facts are amber TEXT, never chips (Peyton 2026-08-10), and they say it once — the write-up layer below carries only its state word.
BUILT DIFFERENTLY as of 2026-08-11 — the shipped page renders the warning alongside a live ✦ Draft it for me · $2.00, and the “answer 2 questions →” ask-sheet loop is not wired (#3321), so a founder is told what is missing with no in-flow way to answer it. The paid-door-on-empty is the defect this frame now corrects; #3321 is the remaining build gap. Note also that included[] has no producer today — no extractor fills it and no field types it — so this warning currently renders on every offering and cannot be cleared; a sentence saying what to add is honest about that in a way a permanent pill never was.
402 topup_required, before compute — nothing charged, nothing partial (spec §5).
Cardless AUTO founder, blocked before any compute (spec §5, index.ts:369-377).
200 ai_capacity, not charged — friendly copy, not error colour (spec §5).
500 generation_failed — no persisted draft; the run fee is never taken for a deliverable that didn't arrive (it fires only after a successful parse — spec §3.3; AI usage for the failed call still settles structurally).
Stale-listing flag — a FREE deterministic check (no AI) when the offering's confirmed price/dates change after the listing was written; a stale listing is never silently served as current (spec §3.4, AC-LISTING-20). Amber = pending action, same vocabulary as every pending state. NOT BUILT as of 2026-08-10 — #3028 shipped without it on Peyton's ship-first ruling; ServiceListing carries no snapshot of the facts a listing was written against, so the drift is undetectable until #3320 lands. Until then a listing can quote a price the founder has already changed, and assistants can retrieve it.
Voice-stale flag — surfaced once the founder teaches her voice, free deterministic check; never silently generic (spec §3.4, AC-LISTING-24). Refine is a paid run, flagged before any charge. NOT BUILT as of 2026-08-10 — same missing-snapshot gap as the stale-listing flag above; deferred to #3320.
"$1,890" → "$1890" reads as a change when nothing changed — and why the stale flag above cannot yet be trusted (spec §3.4a).Shape first, then the values — none of them a blank box. Currency is an ISO code, never a symbol — $ alone means USD, AUD, CAD, SGD or NZD, and a symbol meaning five things can't be compared or safely quoted to a customer in another market (Peyton, BINDING 2026-08-10). ONE currency per offering. “From” is a rendering, not a field (Peyton, 2026-08-10): a founder writes “from $1,890” because there ARE several prices — storing that summary and dropping the tiers loses the real answer, so tiers are stored and display is composed ONCE at save. The tiers underneath are what let an assistant answer “how much is the private room?”. Every control arrives PRE-FILLED from the read — she corrects, she never keys it in.
Dates are a LIST, because offerings recur (Peyton, 2026-08-10) — 28b's own Bali row reads Apr 12–19 & Oct 4–11, two occurrences, which a single start→end row cannot hold. Each occurrence is one date or a range. Duration is a different question and already a different field (Service.duration): “7 nights, 8 days” is how LONG it lasts, not WHEN it runs — one duration, two occurrences — so it never sits inside the date control. The escape is not optional — the field's own documented values include "next cohort opens in Jan" and "every Tuesday"; taking it stores the verbatim string alone and leaves the structured pair empty, because a picker that couldn't hold those would force founders to flatten real offerings.
Only display is ever rendered or quoted — no surface composes a price from amount + currency, because that composed value is the derived fact D1 forbids reaching a customer. The structured pair is internal comparison material, and it is the ONLY thing the stale check diffs (spec §3.4a rung 1). A site-read row keeps the page's exact string in display, symbol and all — we quote what she published and never rewrite it.
“£2,400 per person” into 2400/GBP is derivation, which D1 forbids as an ASSERTED fact. So the structured pair is a reading the founder confirms, landing on the same apply_pending_sync spine as everything else the read proposes, shown beside the string it was read from. D1's own safety argument is the confirm-spine; this sits inside it.type (product / service / program / other) is already a selector, not free text. A structured control here is not a new pattern.price and dates belong to the Offerings model (#2341), not the listing layer — chat quotes price, Booking and Waitlist read dates. Additive-with-fallback: the string shape is unchanged, structure is added beside it, and nothing needs backfilling.Signed frames for the Coming soon chapters that now ship on the live deck (v4.61). Copy recast 2026-08-19 by CPO + mf-writer. Each chapter is one seat: the pill names it, the lede is a finding. One fact, one home. Chrome ships; the world does not — no corpus export, no ADR-036 v2, no benchmark / next_moves, no $3.50 step.
Two more deferred frames: f25 (corrective re-read, drawn in place in the P2 flow, ledgered Future) and f27 below. The “Specified, not built yet” generation sections are honest empty states within the active playbook (they show which sections have generation and which don’t), so they stay under Active. Flag for Peyton if those un-built generators should live here instead.
Parked f15 follow-ons not built — never drawn as Active (#2693): the proactive post-read “Add your Instagram” ask card (parked until the sheet ships, then its own experiment) · platform auto-detection of a shared screenshot’s source · classify-schema widening for prose offerings (follow-up after the corpus-merge build).
not built Part II follow-on, filed as GitHub issue #2842 — not part of this rollout. f18 ships “↻ Read again” as a plain, no-context trigger (see f18 design notes); this frame is the next lane that puts a corrective-context sheet in front of that trigger, drawn here so the direction is locked before it’s built.
⚠ drawn as width-agnostic anatomy (no device chrome) — no separate 375 tier.
Tell us what to focus on and we’ll read your site again with that in mind.
What was wrong in the last read?
Anything else that’ll help this pass?
RefineForm in OutwardReputation.tsx) and f14’s ask-sheet field grammar, rather than inventing a new composer.⚠ drawn as width-agnostic anatomy (no device chrome) — no separate 375 tier.
not built Peyton’s fuller identity-gate idea, deferred 2026-07-30 in favour of the two-field Gate MVP (f1f) — direction locked here so a future lane doesn’t reinvent it. Its own lane, its own Peyton sign-off before any build.
Share anything that shows who you are — a screenshot, a link, a line in your words.
Look again re-reads what you shared — capped at 2 tries, then we ask you to type the basics instead.
retired; git holds the pixels./brain/read standalone briefing, BrainReadReport.tsx) — retired entirely 2026-08-31 (Peyton ruling): the recap write-up + "How you show up" reputation content folded into the playbook's TLDR block (IR2pb); ↻ Read again / Look again moved onto the playbook there, trigger behavior unchanged. Nothing survives as a standalone page or label. The branded deck frames persist on Backlog only, as the future "Your advisor" report body.parity/parity-brain.md.retired; git holds the pixels. Successor: 13.3 + 13.2. Ledger: parity/parity-brain.md addendum 2026-09-17a.edit → door and the 40/60 roster are gone. PlaybookSectionSheet.tsx / BookDesignedPageDoor.tsx / bookEditRoster.ts flagged dead for the build, not deleted here.retired; git holds the pixels. Ledger: parity/parity-brain.md addendum 2026-09-10.resumeReadRow, BrainPage.tsx:4830 — “Your read … is ready — pick up where you left off · Resume · Discard”; drawn only on 1.4-teach-failed) — retired from the contract, same successor. Its two verbs become the waiting row's doors; .read-resume-row CSS stays only so that frame renders as shipped.PlaybookSummaryRow, PlaybookPage.tsx:1874 — the one chapter row exempt from the coEditDoors freeze because business_hours had no other door; never drawn on any landed frame) — removed. Successor: 1.4-ask hours (the line asks; the answer lands as a draft; chapter 02's sheet stays the deep edit).retired; git holds the pixels. Display map: parity/parity-brain.md.retired (hidden on every shelf) and resolves here. Display map: parity/parity-brain.md.coEditDoors, 2026-09-04). PRD shelf rule 4 + AC-PLAYBOOK-11 re-amended the same day. Git holds the pixels.prd-pl-brain.md §Playbook state flow. Git holds the pixels.#f15j — the “Link Docs ▾” dropdown + connect-gate note on the retired 1.4 share sheet) — superseded by 1.3-tray link (PR #4489 frames, folded 2026-09-05): 15j still DRAWS the pre-reversal seven-entry menu; the trimmed two-entry Google Doc · Google Sheet menu is drawn there. The #4490 pointer on the 15j note follows it to this line. Git holds the pixels.Example playbooks · 5 → (reference), then the full work rail — Teach, then What we couldn’t read, then What’s missing, then Activity.Paste your website. We read your pages, then look up what else is public under your business name. ~5 min · draws from your wallet, confirmed before anything runs.
AC-BRAIN-138 — a share-origin (teach) pass leads with what you shared — read BEFORE the site/reviews rows; this example is site-origin (no share to show), so it opens straight on your site — read.AC-BRAIN-127g(a), amended to all doors): your site — reading / your site — read · what you shared — read · Google & Tripadvisor — checking reviews / checked · researching what it tells us. Beta-cut: no Maps, store, or social-crawler rows — the line only names passes that actually run.8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
AC-BRAIN-162 — the line enters scoping after the free peek: one active row working out which part of this is yours… (Seal · mid, U13 — spins only while it runs).AC-BRAIN-158 — scoping is free-class; nothing here carries ✦ or a wallet line. The balance in the header does not move.AC-BRAIN-159 — this row ends in the gate (RA-gate). A channel question (RA-ask) is asked only if the scoped name has no channel of its own once the run starts — a site that already links it never sees one.docs/product/platform/brain/_specs/spec-brain-research-agent-proactive.md §2 (when to ask) · §5 (row copy, closed set).BrainReadingProgress.tsx) — one new active string, no new chrome. Rows below the active one stay pending (pdot) and name what waits on her confirm, same as 1f-scope.8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
AC-BRAIN-158 — exactly one question on screen, answers are one tap each plus a visible Skip; a second may follow, a third never; none debits the wallet.AC-BRAIN-159 — this ask fires only because scoping found the Bali name with no channel of its own (CTO trigger 5); a site that already links @bali_theofflineclub never sees this frame.AC-BRAIN-162 — row copy is the §5 string over to you — one quick question; the question itself rides the row meta, so the line narrates even with the answers folded.awaiting_answer, 24h settle to partial). Drawn mid-run (balance already debited, Confirmed row present) because the line is the surface both name and the gate never re-opens. If pre-tap wins, the same two rows render above the gate with $41.20 in the header — nothing else changes.8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
AC-BRAIN-156 — with a confirmed pick the primary is lit and the scope line renders directly above it: We’ll read The Offline Club — the Bali part you run. Everything else on the site stays out. Whole-business pick: We’ll read the whole of The Offline Club.AC-BRAIN-156 — the same confirmed_scope + slug + location reach scrape, synthesis AND reputation on both doors — this line is the founder-visible half of that contract.AC-BRAIN-164 — an established Brain never re-mounts this gate; the stored scope rides every later pass (see 1.4-teach).AC-BRAIN-95..97 — face pick unchanged (shipped). Any clarifying ask lives on the progress line after this tap (RA-ask), never on this sheet.AC-BRAIN-18) sits above the button in place of the scope line's white space, never over it.docs/product/platform/brain/_specs/spec-brain-inline-identity-gate.md §1 rule: the line asks, the sheet edits. This is §2 Row A — the shipped picker (1f-walk / TQ-scope) in RA-ask's grammar, verbatim: lantern row, context in the meta, hairline ○ rows under it, one quieter escape row. The sheet never rises by itself again (supersedes sheet-spec decision 2 and the Reopen the quick check → re-entry).AC-BRAIN-167 (minted v5.17, shipped #4397) — when the free peek finds faces ≥ 2 the fork renders as ONE lantern row on BrainReadingProgress, ○ rows for the faces, one quieter escape row; no sheet rises by itself.AC-BRAIN-168 (minted v5.17, shipped #4397) — a tap on a face row or the escape row never bills: no bundle_run_id, no wallet debit. Nothing here carries ✦; the header balance does not move (P0-3 held, spec §4).AC-BRAIN-97 (pointer) — the unnamed arm swaps the labels for The part I run / The whole business; the parent is never pre-selected. ↗ AC-BRAIN-96 (pointer) — the tapped name is the search string and the pick is stamped on the run exactly as today; same faces data (AC-BRAIN-148/149), no second detector.AC-BRAIN-169 (minted v5.17, shipped #4397) — Neither — show us the right one → opens the shipped sheet in editing with the four editable lines, read-only Contact and the embedded composer (decisions 8/9 ladder unchanged); closing or confirming returns to Row B, never a second confirm sheet..step-ic.need + mg-node-lantern as RA-ask; answers are 44px ○ rows at the RA-ask indent (24px), icon-less, name + one-line hint. The escape row uses Skip's quieter ink (--fg-55 / --fg-40).f-ra-* family.AskRow — one row, two seats (pre-tap gate, mid-run awaiting_answer); the spec's own frame pointers read #f-ra-scope-inline / #f-ra-gate-inline — same frames as these ids.AC-BRAIN-167 / 194 — the confirm renders as ONE lantern row on BrainReadingProgress: the five-row labelled list, scope line, a button row for That's me — continue ✦, one Other — tell us what's right row; no sheet rises. After Row A the same row re-renders as this, seeded by the pick.AC-BRAIN-168 — only the button row fires the paid bundle, once, with the T1172 guard (row disables on first tap, bundle_run_id minted once) and the scope line (↗ AC-BRAIN-156) on screen. The Other row never bills.AC-BRAIN-169 / 195 (amended by copy contract §4a, PRD v5.27) — correction is the inline Other field only: free text → parsed into a re-proposed list → · updated marks on moved fields → a second is this right now? confirm. Founder name and location are typed into that same field. The field-by-field editor sheet is retired from the line; BusinessIdentityGate.tsx's escape rows (:626 / :630) become the inline Other.AC-BRAIN-80 (pointer) — the tap string is That's me — continue ✦ and dispatches the same public-lookup pass under the Business value (#2352: that value IS the exact search string). ↗ AC-BRAIN-76 (pointer) — the sheet's self-rise is superseded; the editor is gone from this line.$N in copy; the fee-aware subline (AC-BRAIN-18 pattern) sits under the button row — the shipped moneySubline verbatim. A paused/skipped state never quotes a price..step-ic.need + mg-node-lantern, question in the row title, the fact line at body weight (14px / 85% — it is the exact search string she is confirming, never quiet meta; Designer call 2026-09-03 on the 32a7e1f2e build), the scope line as .step-meta beneath it, rows at the 24px indent — but the paid tap is the shipped .btn-primary seated in a row (44px min), not a ○ row, so the paid step is visibly distinct from a free answer (spec §4 P0-3 guard). The escape stays a ○ row in Skip's quieter ink.shareIntakeCopy variant From what you shared, this looks like you — is this right? (AC-BRAIN-170, minted v5.17) and the seed row reads What you shared — read.f-ra-* family.f-ra-gate (RA-gate · scope stated back) and f1f-found (1f″ · Found again) — merged 2026-09-05 mergef1f-found drew as a second sheet pass is this row; nothing opens a sheet._specs/spec-brain-progress-line-copy.md §4a: title over to you — is this right now? · meta Fixed from what you typed — nothing ran, nothing was charged. · Other placeholder e.g. It’s Bloom Retreats Bali, run by Miri, based in Ubud · Other caption Say what’s wrong and what’s right — we redo the list, you confirm again. Nothing runs yet. · foot nothing paid until you tap.AC-BRAIN-157 — expand order drawn as row order: scoped site pages → host pages mentioning the scoped name → event pages (Luma) → the scoped handle (public text only) → reputation under the scoped name + location.AC-BRAIN-162 — every row carries the confirmed scope word (Bali), never a generic noun; per-source page counts sit in row meta.AC-BRAIN-163 — everything on this line runs inside the ONE read bundle she tapped; no row ever adds a second ✦.AC-BRAIN-158 — no ask fires after the tap; a walled source lands as a rail row (RA-fail), not a question.8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
AC-BRAIN-157 — parent and sibling-chapter pages leave the synthesis corpus; the read's page list equals that corpus.AC-BRAIN-160 — pages that are the ONLY source for an inherited lens (refund policy, tone) stay in and are counted here as kept for what you inherit; the playbook labels each at the field.AC-BRAIN-162 — row copy is the §5 string: leaving out the rest of The Offline Club…; the business name is the confirmed pick's parent label, never typed by us.8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
AC-BRAIN-41 / 43 — row reads Luma — couldn't open it with the ✗ glyph; meta carries the fix share a screenshot →; the pass continues on the next source.AC-BRAIN-158 — after the tap the agent asks nothing new: the failure is a rail row, not a question.AC-BRAIN-96 (honest coverage) — the done row later counts only pages actually read; Luma's events are not in the corpus and the playbook's Calendar lens says Nothing found for Bali (↗ AC-BRAIN-161).AC-BRAIN-163 — the Share anything door re-feeds the same read; it never starts a second paid pass on its own.8 sections. Rows appear here as the read lands.
Couldn’t open your booking page on Luma — share a screenshot of it.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
AC-BRAIN-162 — done row: Read done · Scope: Bali · 14 pages · 2 borrowed from the parent; meta names the sources: from theoffline-club.com + Luma + @bali_theofflineclub.AC-BRAIN-160 — 2 borrowed equals the inherited-tag count the recap will show (AC-BRAIN-185 pattern, renumbered from 149 — #4442) — one number, one source of truth.AC-BRAIN-188 (renumbered from 152, #4442) — the read lands on the playbook, unconfirmed; the next-beat row promises it and that nothing saves until she has seen it.AC-BRAIN-163 — the pass ends here; no auto second pass. A "more?" prompt, if any, is a rail row waiting for a tap.8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
OurReadSheet. Close / Escape lands on IR3.brain_read_notes spirit · ADR-036 untouched) and her playbook drafts wait behind Review drafts on your playbook →. Sources sit last, on Appendix.brain_read_notes row; the citation is the same display-time provenance, no new schema.rates.pdf opens nothing from the deck. Site sources stay real URLs (never “Home ✓”, same rule as Sources).found-k-weight line under the claim — recessive, never a chip rainbow. The claim stays the ink; the source is the footnote.brain_read_notes spirit + the vN chip / Save to Google Doc home · ADR-036 untouched, no third book engine).AC-BRAIN-121).Sounds like me — save this read
Refine
Something’s off — tell us what to fix
Sounds like me — save this read
Refine
Something’s off — tell us what to fix
faqs[].brain_read_notes spirit · the vN chip + Save to Google Doc are the existing home · ADR-036 untouched).v1 · saved today chip — the version grammar the deck already owns./brain that was mounted under the book. Cover, percent, chapter rows, Where you stand. Never the example intake.Written today v1
Tap the cover to read
today · our words v1
Coming soon — the full read on how your business runs.
Edit a chapter
⌄ v1 · 12 Aug in the backline, Save to Google Doc stays (AC-BRAIN-53 ↗ grammar).Save these fixes — typed facts, no AI. Patch this v1. Do not mint a discarded second pass.Or research my whole site again ✦. She has to say it. Never a default button on This read./brain/read. Sheet stays three-quarters over This read.Save what you shared — free, no ✦. We rephrase her words (not a raw dump) into this read and the playbook.Go back and edit reopens the composer with her text.We put that in. The rephrased lines are already in this read and the playbook.Open playbook — free, no ✦. Opens the book that now holds the rephrased lines.Stay with this read dismisses the sheet. This read stays up.v1 · updated — not v2. A second version would imply we threw the first read away.brain_read_notes row + the current playbook. This list is that diff, rendered as a receipt — no new schema.rates.pdf, “what you typed”) — never a generic “new material”.v1 · updated (base rule) — a citation never implies a second version.AC-BRAIN-127c / AC-BRAIN-134 — the sanctioned auto-open: when the pass lands, the playbook sheet rises by itself after a short notice beat. The notice reads Auto-opening your business playbook · Take a look — save it when it sounds like you. with a manual Open now → door.AC-BRAIN-43 grammar).prefers-reduced-motion: static frame, no auto-rise — the Open now → door is the path.1 link we couldn't open — it's on your list →
Have a look — save it when it sounds like you.
Instagram is walled — we can't read it as a link. Share a screenshot.
AC-BRAIN-127c / AC-BRAIN-134 (amended 2026-08-31) — when the pass lands (after the RC-open notice beat), the playbook rises as a sheet over the Brain page with the fresh read landed unconfirmed — platform sheet standard: top reveal gap, page dimmed behind, sticky band. No deck. Both doors (Web and Teach) land here.about_story.tldr. Assistant-readable context, never customer-facing./brain/read entirely): the TLDR block ALSO carries what used to live on the standalone Our Read briefing — the recap write-up AND How you show up (the outward reputation read: Google · Tripadvisor · Instagram, shipped as "How the web talks about you" in BrainReadReport.tsx). Nothing about "Our Read" survives as a separate page or label; the deck body persists only on Backlog as the future Advisor report..ink-private zone). EVERY chapter head carries an explicit label — Assistant reads / Assistant doesn't read — a founder never guesses which chapters feed the AI. Grammar: the existing .ink-folio/.readby label from the example books (f35), no new visual language; on an established book with named assistants the label may sharpen to "Read by · Booking, Support" (f35 grammar) — the fresh-read state uses the plain binary because nothing is activated yet.AC-BRAIN-22 — no-silent-write stands. The BAND owns the actions — in the DRAFT state exactly two (↗ AC-BRAIN-137, Peyton 2026-09-02); locked copy-contract strings: Save to Brain (primary, the gold moment) · Not quite — re-read (quiet, opens the Teach sheet) . No per-section Use / action buttons anywhere; per-field confirm stays on drafts (J3c)..draft-block grammar drawn below — a per-section ✓ confirms it through the existing apply_pending_sync spine; Save to Brain / the band above stays the ONE lantern (↗ AC-BRAIN-137(a), no second gold moment). Drawn on "Customer Q&A" below as the reference case.AC-BRAIN-43 grammar), never draft-card stubs. Unconfirmed reads as a whole-book state: the fresh-read band + the rail's Ready-to-save row — no per-section chips.about_story.tldr, never customer-facing, never in syncProfileToBrain — PR-B1) and wears Assistant reads. The folded-in recap + How-you-show-up content is drawn to the ADR-036 ruled default: display-time only, assistant-doesn't-read — so its sub-head wears its own Assistant doesn't read label (a founder never guesses, ruling 4, even inside one section). Peyton confirms the label INTENT only; if she rules the recap assistant-readable instead, the one sub-label flips — no structural change. Nothing wires into RAG/sync either way until that confirm.brain-gap-queue + toast): the drawn state here is a populated read; the empty twin renders How you show up as one quiet line ("The web doesn't say much about you yet") + that nudge — no extra frame needed.reading), reputation on its 5-reads/24h cap (exhausted/refining). The quiet caption under the row is the honest surface: fresh-read state (drawn) says "the web check ran with this read — you can look again tomorrow"; when the cap holds but the site leg is available, the row still runs the read leg and the caption names the skipped leg ("web check refreshes tomorrow") — NEVER a silent skip that misrepresents what re-run did. Mid-flight one-leg-fails handling is PR-D's to define; the caption slot is where its message lands./brain/read resolves nowhere.AC-BRAIN-137): Close · Your playbook · Not quite — re-read · Save to Brain (the gold moment). No Save a copy until it is confirmed. Fresh-read band, then ONE continuous paper column — Stark cover, then TLDR + How you show up (the folded-in Our-Read recap, with the quiet ↻ Read again row), then the Assistant-reads chapters, then the internal playbook. Every chapter head wears its read-label chip.Fresh read · today · unconfirmed draft
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this · about_story.tldr
You run Uglywoo Retreats — multi-day yoga and creative retreats in Bali and Portugal, small groups, founder-led. People apply from your site or Instagram, you confirm each spot yourself, and a deposit holds it. You'd rather fill six right seats than sell out — slow weeks, not a party.
How the web talks about you
the web check ran with this read — you can look again tomorrow
from your site · Google · TripadvisorWhat your assistants say for you
What you do, and who it's for
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups. Slow weeks, not a party.
Your offers, prices, and what's included · 2 offerings
A slow week of yoga, food and nothing urgent
More ▾Studio days plus one long table every evening
More ▾Your questions, deposits, refunds, and rules
Yes — 30% holds the seat. Balance due 14 days before arrival.
from what you sharedWhat only you see · your assistant doesn't read these
Where the money actually comes from — never in a customer answer
Nothing here yet — the read doesn't write your internal chapters. They stay yours to fill.
Saving is free. We only change the parts you name. Not quite — re-read lives in the band above.
AC-BRAIN-127c / AC-BRAIN-134 / AC-BRAIN-22 — inherited from IR2pb unchanged: sheet over the dimmed Brain page, fresh-read tape, band owns the actions — in the draft state exactly TWO (Save to Brain · Not quite — re-read; ↗ AC-BRAIN-137), no per-section Use rows, one lantern moment.about_story.tldr, Assistant reads) → What we understood (the longer factual recap, Assistant doesn't read, ADR-036 default) → What stands out (the read's findings, Assistant doesn't read) → How you show up (reputation, Assistant doesn't read) → the one ↻ Read again row. IR2pb drew blocks 1 and 4; blocks 2 and 3 had no drawn home anywhere in the file before this frame.Add → opening that chapter's edit door (same door as detail →, D4). A gap is not prose; it is the bridge from reading to filling, and moving the block did not cost that..chip-origin provenance) · drafted-but-incomplete (content plus a named hole, e.g. an offering the site prices nowhere) · .ink-empty Seal-idle (2.3 grammar, unchanged). "Not filled in yet" survives only where the read genuinely found nothing — never where content exists and merely failed to route..obs-row). They were drawn on .ink-fact, which is a label/value pair with a right-aligned value — fine for "Where · Bali", wrong for a 50-word paragraph, and it only held together because the placeholder text was short. .obs-row is built for the real thing: a monospace numeral as a running head, full-measure body at 15px/1.65, hairline between rows. Findings and gaps share it deliberately — both are our observations at paragraph length, so one grammar, not two. Below 520px the row wraps and the chapter pointer becomes a 44px touch row..ink-folio numeral + read-label + .ink-deck group the chapters use, at 40px above (36px on 375). The blocks are told apart by that repeated header shape, exactly as chapters are — adding boxes or tint to separate them would have made the opening read as a dashboard instead of a book. Desktop stage raised 1180 → 1320px so the reviewer sees the real proportion rather than a crop..chip-origin at the foot of each chapter — never a badge that out-ranks the content, never one per line at this density..ink-body (16/1.75), one step below the TLDR pull (18) — our read never out-types her book.rgba(46,42,38,x)), never dark-theme --fg-*, since the whole scroll renders on #f4efe6 — same rule IR2pb-v2 established.Add →. 768 inherits the 375 stack at wider measure — no third book layout (2.3, AC-BRAIN-64).AC-BRAIN-137, Peyton 2026-09-02): Close · title · state line · Not quite — re-read · Save to Brain (the one lantern). Plus the fresh-read tape under the band. Save a copy does NOT appear in the draft state — you cannot export a version that does not exist yet.vN chip · Save a copy ▾. No tape, no gold — nothing needs her..ink-head, a book-bespoke class. The platform standard for every presentation="sheet" surface is .sheet-header (playbook §3 "Platform-wide sheet standard", #2346/#2248): a full-width sticky glass band, full-width hairline, 44×44 ✕ at the real page-gutter corner, small-airy title, optional one-line subtitle slot. .ink-head is not that component and never was. So the live surface rendering a bare floating button row is not only an implementation miss — the design artifact never asked for the standard band in the first place. That is a designer finding against my own file, and it is the honest answer to the question..sheet-header STRUCTURE, in a paper dialect. Same anatomy, same tokens, same sticky behaviour, same gutter-anchored ✕ — surfaced on the book's cream rather than dark glass, because the scroll beneath it is #f4efe6 and a dark glass band over cream paper would read as a foreign object. This is a surface dialect of an existing component, NOT a net-new one. Tokens are consumed as the .sheet-* classes per the tokens-only lock (modalTokens.slide.sheet.chrome — gutter 16/24/40, bodyBlock 16/20/24, title 14/16, column 1120px; band height stays derived, never fixed, #2248 §3a).subtitle slot — the preview/confirm distinction costs zero new component surface. ModalWrapper's sheet branch already takes a one-line muted subtitle that sticks with the band. Unconfirmed fills it with "Not saved yet — your assistants still answer from what you confirmed before"; confirmed fills it with "Up to date · last change today" + the vN chip. Nothing new to build, and it puts the honesty signal in the one element that is sticky by contract./brain/book is currently PlaybookBookPage, a full-takeover PAGE (2.3's own rule: "fixed inset-0 … not a 40/60 split") — it is NOT a presentation="sheet" ModalWrapper consumer. None of ModalWrapper's slots do anything until that conversion happens. Book-becomes-a-sheet is the real PR-D prerequisite, and it is bigger than any slot or dialect question below. Nothing in this note is buildable before it.footer (CTO rec, adopted; supersedes my first drawing). ModalWrapper already has headerActions, headerContent and footer — no API change needed. headerActions is speced for icon-only utility clusters; footer is built for exactly this: the primary CTA of a work sheet, visible without scrolling. So the band carries Close · title · state subtitle and nothing else — which IS the unmodified platform .sheet-header anatomy. The net-new-actions-slot question disappears entirely.AC-BRAIN-137 — kept for the record, not as the contract. Peyton ruled the actions live in the HEADER BAND: draft = two, confirmed = one. The footer arrangement argued for below is therefore retired, and the band-mounted version every other frame drew is the one that ships. Its central objection is answered rather than overruled: the 32px squeeze it identified was caused by fitting THREE actions at 375, and the draft band now has two — each at a full 44px on its own wrapped row. Zero 32px bands remain in the file. The original reasoning follows.min-height:32px to fit beside Close and the title — below the 44px binding touch minimum. A footer CTA gets full width and 44px+ naturally. (The same 32px appears on the pre-existing IR2pb / IR2pb-v2 mobile bands — a family-wide miss this move corrects structurally rather than one frame at a time.) (b) The book is a long scroll and the risk I raised is that she reaches the bottom and closes; a sticky footer puts the action under her thumb exactly where she ends up. (c) The band stops competing with itself — state line and action no longer fight for the same row..sheet-header is dark glass; this book needs cream. Preferred shape is a headerDialect?: "glass" | "paper" variant prop on the existing band, NOT a consumer restyling it from outside — that would silently re-fork the standard #2346 just consolidated. Designer read: a variant prop is sufficient — this is a colour swap, nothing more. Anatomy is identical (full-width band, gutter-anchored 44×44 ✕, small-airy title, one-line sticky subtitle), sticky behaviour is identical, gutter/type/column tokens are identical. The only deltas are surface, hairline and ink, all token-level. Nothing here argues for a separate paper-book header component.var(--lantern) fill, #17140f ink) in every frame that draws it — playbook §3, "one gold moment per view". White fill means the lantern token is not being applied at the call site. Small, separate from the missing band, and worth fixing in the same pass.f-ir-2pb (IR2pb · the read lands, 4-chapter sample) — merged 2026-09-05; this frame is the landing sheet mergeabout_story.tldr. Assistant-readable context, never customer-facing.subtitle slot) in the book's paper dialect — see the reconciliation note above.UNCONFIRMED — preview · nothing is live to her assistants yet
Band + tape sit outside .ink-scroll; the CTA pair lives in the .ink-head band (↗ AC-BRAIN-137). All three are sticky — the state line stays at the top, the action stays under her thumb, and neither scrolls away.
CONFIRMED — saved · this is what her assistants answer from
Identical body. No tape, no gold, no second action — the subtitle line and the vN chip carry the whole state change.
375 · UNCONFIRMED
At 375 both actions sit on the band, each at 44px on its own wrapped row — the old 32px squeeze is gone because the third button is. The earlier band version had to shrink to 32px to fit beside Close — below the binding minimum.
375 · CONFIRMED
Not saved yet — your assistants still answer from what you confirmed before
Fresh read · today · unconfirmed draft
Assistant context — customers never see this · about_story.tldr
Kripalu is a nonprofit yoga and mindfulness retreat center in the Berkshires of western Massachusetts. You sell all-inclusive overnight stays and day passes, faculty-led programs, Healing Arts treatments, online classes, memberships, group bookings, and teacher-training tuition. Pricing splits into tuition and housing, with scholarships and sliding-scale options to widen access.
The longer version — our read of the whole site
A 50-plus-year nonprofit yoga and wellness retreat center on a 100-acre Berkshires campus, monetising a full ladder of experiences: an all-inclusive, self-guided Retreat & Renewal stay (overnight from $99/night plus accommodations, or a $150 day pass, with a $90 Berkshire-resident rate), faculty-led immersive programs, one-on-one Healing Arts treatments, online classes and subscriptions, three membership pathways, custom group bookings, and four accredited teacher-training schools — all wrapped in mission language about personal and societal transformation, and backed by donations as a registered educational nonprofit.
Four things we noticed that most sites don't do
Retreat & Renewal is unusually well-specified for booking — exact clock times, a full sample daily schedule, night minimums, six FAQs. That rigour then evaporates: Healing Arts, Online, memberships, groups and training all carry an overview and no price.
Tuition is deliberately separated from housing on both R&R ("from $99 + accommodations") and the Schools ("tuition plus housing") — a low headline number stays visible while the real total forms downstream.
Access is gated by relationship: archery, kayaking, paddleboarding and hiking need a phone reservation and are "exclusively for R&R guests"; scholarships and a Berkshire-resident rate sit a local-access mission on top of a premium retreat.
A USA TODAY 10BEST accolade and a seasonal print catalog anchor the top of the funnel — the brand runs on a calendar, and the homepage is currently re-skinned around a fall push.
How the web talks about you · 12 mentions
You're showing up widely — and consistently as a nonprofit yoga, mindfulness and retreat-education center, which matches what you told us you are.
the web check ran with this read — you can look again tomorrow
Five things your site doesn't say — each one is a chapter waiting for you
No price is surfaced anywhere for Healing Arts, Kripalu Online, the three memberships, or any of the four schools' tuition — every tier beyond Retreat & Renewal is positioning-only.
03 · What you sellAdd →Cancellation, payment and deposit terms are linked but never shown, so booking risk and refund windows are invisible on the pages we read.
05 · Customer Q&AAdd →Accommodation types and their price bands are referenced ("+ accommodations", economy rooms excluded from the training discount) but the actual room tiers and costs aren't in evidence.
03 · What you sellAdd →Program-level economics for the faculty-led weeks — tuition ranges, typical length, how a silent-retreat program is priced against R&R — aren't quantified anywhere.
03 · What you sellAdd →Your funding mix is asserted — donations, scholarships — but there's no sense of scale: annual guests, the split across stays vs. training vs. philanthropy, or how central donations are to the model.
07 · RevenueAdd →Eight more pages hit an error before we could read them — they're on the What we couldn't read list, behind the book.
from your site · TripAdvisor · Wikipedia · YelpWhat your assistants say for you
What you do, and who it's for
A yoga and mindfulness retreat center on a hundred acres in the Berkshires — fifty years old, nonprofit, and built for everyone from a first weekend to a full teacher training.
Your places, hours, and how you deliver
Your offers, prices, and what's included · 6 offerings · 4 without a price on your site
Stays & day access · 2
Self-guided — meals, classes, workshops and the grounds. Night minimums apply.
6am to 9:30pm · Berkshire residents pay the lower rate.
Programs & training · 2
Immersive, teacher-led weeks and weekends.
Four accredited schools. Economy rooms are excluded from the 10% training discount.
Treatments, online & memberships · 2
One-to-one treatments, booked on campus.
Classes, subscriptions, and three membership pathways.
Four of these have no price anywhere on your site. Until you add one, your assistant will say it doesn't know rather than guess.
from your siteWhat makes people pick you
Fifty years of teaching, a hundred acres to be quiet on, and a mission that puts a scholarship and a local rate right next to a premium week.
Your questions, deposits, refunds, and rules · 4 of 5 answered
Booking & arriving · 2
Overnight stays run 2pm to 2pm. Rooms are ready at 2pm and vacated by 10am on your last morning.
from your siteYes — a day pass runs 6am to 9:30pm and costs $150, or $90 if you live in the Berkshires.
from your siteWhat's included · 2
Meals, yoga and movement classes, workshops, and the grounds. Your room is priced on top.
from your siteThose are for Retreat & Renewal guests and booked by phone — not online.
from your sitePaying — deposits, refunds & cancellation · 1
Your site links to this but never shows it, so we couldn't read the refund window. Your assistant will hand this one to you until you answer it.
Your voice, your colours, your type
Mission-led and unhurried. Your site talks about transformation, belonging and practice — never about a deal, a countdown, or a discount.
from your siteWe couldn't read your colours or type from the pages we reached — so we haven't guessed any. Share a screenshot of a page you like and we'll pull them out.
What only you see · your assistant doesn't read these
Where the money actually comes from — never in a customer answer
an income lineshare of revenue
an income lineshare of revenue
This is the shape it will take — you'll be able to fill it in soon.
Your people, in your own words
who you serve
who you serve
This is the shape it will take — you'll be able to fill it in soon.
Deposits, booking rhythm, day-to-day
a rule you run by
a rule you run by
This is the shape it will take — you'll be able to fill it in soon.
Your north star
something you're aiming at
something you're aiming at
This is the shape it will take — you'll be able to fill it in soon.
A read never writes these four. They stay yours to fill.
End of your playbook.
Save to Brain is in the footer below — it has been there the whole way down. The old quiet repeat here is retired (sticky footer serves it better).
footer — sticky, never scrolls
AC-BRAIN-140 — after a targeted re-read (from Not quite — re-read) confirms, the playbook renders as the NEXT version — cover chip increments v1 → v2, never "v1 · updated". This amends spec-research-confirmation §5's drift note and the RC-patched "same v1, patched" ruling — that ledger amendment lands in this same pass; shouldCoalesce gets a dedicated reread_confirm trigger class so a re-read confirm never folds into the prior version (PR-C2)..read-tape, unchanged CSS) — it names the real sections that moved, never a generic "updated".var(--lantern) / rgba(46,42,38,x), never the dark-theme --fg-* tokens, since it renders on cream paper inside .ink-scroll.Fresh read · today · unconfirmed v2
Recap
What we understood from your read — our words, not yours. No chapter number: it isn’t a chapter.
Assistant context — customers never see this · about_story.tldr
You run Uglywoo Retreats — multi-day yoga and creative retreats in Bali and Portugal, small groups, founder-led. People apply from your site or Instagram, you confirm each spot yourself, and a deposit holds it. You'd rather fill six right seats than sell out — slow weeks, not a party.
How the web talks about you
the web check ran with this read — you can look again tomorrow
from your site · Google · TripadvisorWhat your assistants say for you
What you do, and who it's for
Uglywoo Retreats runs multi-day yoga and creative retreats for small groups. Slow weeks, not a party.
Your offers, prices, and what's included · 2 offerings
A slow week of yoga, food and nothing urgent
More ▾Studio days plus one long table every evening
More ▾Your questions, deposits, refunds, and rules
Yes — 30% holds the seat. Balance due 14 days before arrival.
Deposit is €800 flat — balance due 60 days before arrival.
What only you see · your assistant doesn't read these
Where the money actually comes from — never in a customer answer
Untouched — a re-read never writes your internal chapters.
Saving is free. We only change the parts you name. Not quite — re-read lives in the band above.
AC-BRAIN-22 as amended (v5.06): confirming the whole playbook happens once, via the header's Save to Brain — there is no separate confirm surface. No per-chapter badge, no ghosting, no grey body, no reduced opacity on draft chapters. IR2pb-all already complies and needs no edit.AC-BRAIN-137) + the rail's drafted row (#4306, retired 2026-09-10 → see 2.0-return). Confirmed: vN chip + Save a copy, no tape, no gold. Drawn side by side below./brain/book is PlaybookBookPage today, a full-takeover PAGE, not a presentation="sheet" ModalWrapper consumer. No band, footer or slot in this frame is buildable until that conversion lands — it is the real PR-D prerequisite and it is larger than every open item on this frame. Full reconciliation: IR2pb-all's design-system note.footer, per CTO — headerActions is for icon-only utility clusters, footer is speced for a work sheet's primary CTA. My earlier band-mounted drawing is superseded; it also forced a 32px mobile button, under the 44px binding minimum.about_story.tldr) into brain_profile via apply_pending_sync. It does NOT write the recap / what-stands-out / how-the-web-talks-about-you block — that is display-time only, read from brain_read_notes, and it terminates at the page. Drawing an arrow from the whole opening section into the Brain would break the ↗ ADR-036 assistant-invisible invariant (confirmed standing, CTO assessment 2026-08-31). The diagram marks that termination with ╳.brain_read_drafts is the preview (service-role write at pass success, one row per founder, survives cross-device). brain_profile is confirmed core knowledge and the ONLY store get_business_context_for_assistant / chat-prompts.ts read. playbook_versions is the confirm ledger — per ↗ AC-BRAIN-54 it mints only on a confirmed change and NEVER on an unconfirmed draft (shipped, covered by playbook-versions.test.ts).brain_read_notes increments per RESEARCH pass (the "Our read written v1 · v2 · v3" trail in Activity). playbook_versions increments per CONFIRM. Different sequences.<span class="vchip">v2</span> on a book captioned "unconfirmed", and its acceptance says the chip increments v1 → v2 at re-read. But playbook_versions mints no v2 row until confirm (↗ AC-BRAIN-54). So that chip shows a version number that does not exist in the ledger at the moment it is displayed. There is no reading of Peyton's ruling under which the bare-number-on-unconfirmed form is correct — it needs correcting either way.draft — safe, no false number, loses the sequence. Or v2 · not saved yet — keeps the sequence and disclaims it explicitly. Both honest; one quieter, one more informative. IR2pb's existing draft chip is already the first of those two, so it may need no change at all..ink-head band and the .read-tape both sit OUTSIDE .ink-scroll (flex-shrink:0) — they are sticky, so the gold Save to Brain and the "not saved yet" tape stay on screen through the entire scroll. That is not quiet; it is persistent, and it is a better honesty signal than ten badges she stops seeing after the third one.AC-BRAIN-22: it is not a confirm surface for content, it is an exit guard on the one decision she is about to skip, and it fires at the moment of risk instead of decorating the content. One moment, at the door, in the founder's own terms. Not drawn as settled — flagged for the same ruling pass as the chip.-m twin, deliberately. This frame carries no page layout — the diagram is tier-independent (monospace <pre>, horizontal scroll on narrow) and the only rendered payload is the header band, which is drawn at BOTH 1180 and 375 inside the frame. Minting an empty mobile twin would be furniture. The page layouts these states apply to are IR2pb-all / -m.NEW INFORMATION ARRIVES │ ├─ DOOR A · RESEARCH — WEB ──────────────────────────────┐ │ site read, or a targeted re-read (paid pass) │ │ research pass runs → brain_read_notes v+1 │ │ │ ├─ DOOR B · RESEARCH — TEACH ─────────────────────────────┤ │ ADDITIVE share → extract only, no pass, no note │ │ (AC-BRAIN-139) │ │ CORRECTIVE share → full re-read loop, note mints ───┤ │ the doors rejoin│ │ ▼ │ ┌──────────────────────────┐ │ │ PREVIEW PLAYBOOK │ │ │ renders updated, │ │ │ UNCONFIRMED │ │ │ (looks identical to the │ │ │ saved book — intended) │ │ └────────────┬─────────────┘ │ │ she reads it │ ▼ │ ┌──────────────────────────┐ │ │ ★ SAVE TO BRAIN │ the ONE │ │ header band, once │ confirm │ └────────────┬─────────────┘ │ │ │ replaces confirmed core knowledge │ ▼ │ ┌──────────────────────────┐ │ │ playbook_versions v+1 │ │ │ co-edit sheets fill │ │ │ assistants answer from │ │ │ the new version │ │ └────────────┬─────────────┘ │ │ └──────────────────── repeats on every new information ◄──────────┘
research pass ┌───────────────────────────┐
(service role) ───────►│ brain_read_drafts │ THE PREVIEW
│ one row per founder │ survives cross-device
└─────────────┬─────────────┘
│ renders the book she reads
▼
╔═══════ THE BOOK — one rendering, two chrome states ══════════════════╗
║ TLDR (about_story.tldr) chapters 01–10 ║
║ recap · what stands out · how the web talks about you ║
╚═══════╤══════════════════════════════════════════╤══════════════════╝
│ SAVE TO BRAIN │ display-time only
│ apply_pending_sync │ from brain_read_notes
▼ ▼
┌────────────────────────────┐ ╳ TERMINATES AT THE PAGE
│ brain_profile │ never enters assistant
│ CONFIRMED core knowledge │ context — ADR-036
│ the only store an │
│ assistant ever reads │
└──────────┬─────────────────┘
├──► get_business_context_for_assistant → chat-prompts.ts
├──► co-edit sheets auto-fill (EMPTY until confirm —
│ a second reason the
│ preview must be visible)
└──► playbook_versions v+1 (mints ONLY on a confirmed
change, NEVER on a draft
— AC-BRAIN-54)
brain_read_notes.version ── increments per RESEARCH pass
"Our read written · v1 · v2 · v3"
lives in the Activity trail
playbook_versions.version ── increments per CONFIRM
the vN chip on a saved book
research pass: notes v1 ─── v2 ─── v3 ─── v4
confirms: └── v1 ──────────── v2
(she saved 2 of the 4 reads)
⚑ DEFECT — not a preference. IR2pb-v2 draws a bare "v2" chip on a book
captioned unconfirmed, and its acceptance says the chip increments
v1 → v2 at re-read. But playbook_versions has no v2 row until CONFIRM
(AC-BRAIN-54). So that form displays a version number that does not
exist in the ledger at the moment it is shown. It goes regardless of
how Peyton rules — there is no reading under which it is correct.
⚑ OPEN RULING — narrow. Only the REPLACEMENT is Peyton's call:
"draft" safe · no false number · loses the sequence
"v2 · not saved yet" keeps the sequence · disclaims it explicitly
Both are honest. One is quieter, one is more informative.
Desktop 1180 · UNCONFIRMED — tape + gold Save to Brain
Sticky — the band and the tape sit outside .ink-scroll, so both stay on screen through the whole read. This is the honesty signal, and it does not scroll away.
Desktop 1180 · CONFIRMED — vN chip, no tape, no gold
One lantern budget note: gold appears in the unconfirmed state only. A confirmed book has no gold anywhere — there is nothing left that needs her.
375 · UNCONFIRMED
375 · CONFIRMED
Day one — no confirmed version yet
This read isn't saved yet.
Your Brain is still empty — your assistants have nothing to answer from until you save this.
We'll keep this read here — nothing is lost.
Re-read — a confirmed version exists
This read isn't saved yet.
Your assistants still answer from what you confirmed before — nothing you just read is live to them yet.
We'll keep this read here — nothing is lost.
SCOPE — once per DRAFT, never once per close.
new research pass → new draft → guard ARMED
│
she closes without saving ─┤
▼
guard fires ONCE
│
"Leave it for now" ──┴──► guard SPENT for this draft
│
closes again, and again ────┤ silent — no dialog
│
next research pass ─────────┴──► new draft, guard RE-ARMS
Ten closes must never mean ten dialogs. A repeating exit interstitial
is a nag, and a nag is a dark pattern — it trains her to dismiss the
one screen that was telling her the truth.
AC-BRAIN-22 (2026-09-01). That clause has two concrete prohibitions — no confirm / "Use all N" affordance rendering inside the CONTENT, and no separate confirm surface for the recap alone. The guard trips neither: it renders nothing inside content, offers no per-chapter granularity, and fires the same canonical whole-book Save to Brain. It is a second invocation point for the ONE action, not a second confirm surface. What the clause protects against is fragmented approval — approve-this-bit, approve-that-bit — which is exactly what leaves a founder unsure what is live; the guard does the opposite.playbook_versions row exists. Both drawn above. Chief-writer to pass on final wording; these are designer drafts, not signed copy.brain_read_drafts is deleted ONLY by the explicit discard-read-draft action — apply_pending_sync never touches it. So the draft genuinely survives the dismissal and the caption "We'll keep this read here — nothing is lost" is true, not reassurance. If that ever changes, this caption is the first thing that has to change with it.Example playbooks · 5 → (reference) → chapters. Empty “Add …” is the type destination, never a second missing list. No f1e banner here — the inventory lives on the rail.BrainReadRegistry as f5. Compact: name + one fix. FAQ row is Answer → (ask-queue). Walled / login never say Try again. Resolved keeps its line, ticks, drops the fix. Full “feeds” / “doesn’t apply” / retry stay at f5.Up to date · today v1
Tap the cover to read
today · our words v1
Coming soon — the full read on how your business runs.
Edit a chapter
Instagram is walled — we can’t read it as a link. Share a screenshot.
PDF unreadable — share a screenshot or a copy we can open.
BrainReadRegistry + brain_read_audit — URLs, names, counts and dates only, never content snippets.Paste your website. ~5 min · confirmed before anything runs.
See what you'd get
8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Pictures of your colors and look.
Nothing yet — starts once your playbook exists.
See what you'd get
8 sections to fill. Either way in fills most of them.
Nothing needs you yet. Anything we can’t open lands here, with the fix.
Nothing yet.
8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Nothing yet — starts once your playbook exists.
See what you'd get
See what you'd get
8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Nothing yet — starts once your playbook exists.
8 sections. Rows appear here as the read lands.
Instagram is walled — we can’t read it as a link. Share a screenshot.
Nothing yet — starts once your playbook exists.
8 sections. Rows appear here as the read lands.
Couldn’t open your booking page on Luma — share a screenshot of it.
Nothing yet — starts once your playbook exists.
See what you'd get
12 Aug 2026 · 6 pages · uglywooretreats.com
Uglywoo Retreats is a founder-led studio. Six people at a time, one person in the room.
What we found on the books
We opened
https://uglywooretreats.com/retreats
opened
https://uglywooretreats.com/press
didn’t load
12 Aug 2026 · 12 pages · uglywooretreats.com
Uglywoo Retreats is a founder-led studio that runs six named weeks from two houses — Bali and Portugal — and sells the house and the table, not a wellness mill.
Six named weeks from two houses
https://uglywooretreats.com/retreats/bali-reset
https://uglywooretreats.com/retreats/lisbon
https://uglywooretreats.com/retreats/ubud
https://uglywooretreats.com/retreats/couples
https://uglywooretreats.com/retreats/host
https://uglywooretreats.com/apply
Kept for this read
https://uglywooretreats.com/retreats
opened
https://uglywooretreats.com/apply
opened
https://uglywooretreats.com/faq
opened
Left unread
https://uglywooretreats.com/press
didn’t load
https://uglywooretreats.com/blog
outside the 12-page window
We read what we could reach.
Sounds like me — save this read
Refine
Something’s off — tell us what to fix
Saved. This read is yours to come back to.
Open your playbook →
Written today v1
Tap the cover to read
today · our words v1
Coming soon — the full read on how your business runs.
Pictures of your colors and look.
Come back to it anytime.
Something’s off — tell us what to fix →
We change only the parts you name. The rest of this read stays.
Open your playbook →
Have a look — save it when it sounds like you.
Add → per gap, then the four locked-empty internal chapters. Offer prices that the site doesn't publish read "Not on your site", never blank.Example playbooks · 5 →, then the unified stack (2026-09-04): Teach → Where you stand 58% → Needs you · 3 → Activity. Same beat as desktop.Up to date · today v1
Tap the cover to read
today · our words v1
Coming soon — the full read on how your business runs.
Easiest next share — a booking PDF or a screenshot of how you confirm.
Instagram is walled — we can’t read it as a link. Share a screenshot.
PDF unreadable — share a screenshot or a copy we can open.
*_prior before Refine writes. That store is reference only — this frame never draws it as a second side.sheet co as the Co-Edit chapter frames (#13-form-look): co-main content + the Your-playbook pane with “2. How you sound” as the target row — never a bare floating card. Tabs are the same functional .vtx- CSS radios (click Default / Your voice, the 03 pane switches in place, nothing stacked); 02 Guardrails render once, shared, sitting between traits and in-action (28z). 768 is drawn as the stacked sheet (no 40% pane — BrainSplitHost drops origin below 1024), same as Co-Edit's twins.prd-pl-voice-card.md; tabs replaced the stacked chips same day, Peyton). Every tier opens with the 01 tab row — Default — Warm Host (emerald dot = speaking today) · Your voice — saved · coming soon (ACTIVE here, since her sections below are the tab body) — then the 03 pane — one line, traits — then 02 Guardrails (shared, outside the tabs, numbered 01–07, identical whichever voice speaks, AC-SOUND-05 ↗), then the in-action lines. Guardrails sit BETWEEN traits and in-action, matching the built sheet (Peyton screenshot ruling, 28z). Reading ≠ speaking: switching tabs never switches delivery (AC-SOUND-02 ↗ / AC-SOUND-03 ↗). Default-open, empty (S0), and example states draw once at 2.9w. Never a gate on this sheet.prd-pl-voice-card.md Open question #7 — its own task, not this shelf.WARM_HOST_PERSONALITY_LINE / WARM_HOST_TRAITS in _shared/chat-scaffold-rules.ts, guardrails in HowYouSoundCard.tsx, scenarios in warmHostScenarios.ts) — never DB rows (AC-SOUND-09). Your voice = brain_profile.brand_voice_v2 (loosely-typed JSONB, branding PRD's artifact: one-liner, adjectives always/never, exemplars, registers). The only shared layer is the STATE machine (voiceSkinState.ts S0–S5 + chipConfigFor) — a delivery discriminator, not a content schema.VoiceIdentity shape both voices fill), that's a new canonical view-model over brand_voice_v2 — needs a PRD amendment, not a mockup decision.HowYouSoundSheet.tsx): one-liner → traits → guardrails → in action. Rendered ONCE per frame, never duplicated per tab — the pane is split in two around the single shared block.#13-form-look) (co-main + Your-playbook pane) and the same .vtx- CSS-radio tab mechanism — one frame per Your-voice sub-state (a static mockup can't hold two states behind one radio), each with both tabs live so Default is always one click away. Never a bare single-column card again.Your assistants speak in Warm Host — the steady default voice we authored and stand behind — until your voice is ready. What you shape here is your voice: the tone, the words, the lines that sound like you.
A steady, friendly host who knows the answers and never rushes anyone.
You’re reading your voice — one line, traits, how you write, lines in action. Saved, not speaking yet — preview how you’d sound, then confirm the switch. Empty and example states drawn once at 2.9w.
⌄ See all 9 examples — chat ×5 · offering copy · website · social · email
Authored and checked by us — read-only. There is no “customize Warm Host”.
Same message, five places. Refine only on a line that is already yours.
Oldest drops off when you pass 30.
We never read or rate your customer chats. Sounds like you — because you confirmed it does.
The refined line is saved as your voice. The original stays stored, not shown. Assistants keep speaking Warm Host until you confirm yours from a preview.
A steady, friendly host who knows the answers and never rushes anyone.
You’re reading your voice — one line, traits, how you write, lines in action. Saved, not speaking yet — preview how you’d sound, then confirm the switch. Empty and example states drawn once at 2.9w.
⌄ See all 9 examples — chat ×5 · offering copy · website · social · email
Authored and checked by us — read-only. There is no “customize Warm Host”.
Same message, five places. Refine only on a line that is already yours.
Oldest drops off when you pass 30.
We never read or rate your customer chats. Sounds like you — because you confirmed it does.
Your assistants speak in Warm Host — the steady default voice we authored and stand behind — until your voice is ready. What you shape here is your voice: the tone, the words, the lines that sound like you.
A steady, friendly host who knows the answers and never rushes anyone.
You’re reading your voice — one line, traits, how you write, lines in action. Saved, not speaking yet — preview how you’d sound, then confirm the switch. Empty and example states drawn once at 2.9w.
⌄ See all 9 examples — chat ×5 · offering copy · website · social · email
Authored and checked by us — read-only. There is no “customize Warm Host”.
Same message, five places. Refine only on a line that is already yours.
Oldest drops off when you pass 30.
We never read or rate your customer chats. Sounds like you — because you confirmed it does.
The refined line is saved as your voice. The original stays stored, not shown. Assistants keep speaking Warm Host until you confirm yours from a preview.
A steady, friendly host who knows the answers and never rushes anyone.
You’re reading your voice — one line, traits, how you write, lines in action. Saved, not speaking yet — preview how you’d sound, then confirm the switch. Empty and example states drawn once at 2.9w.
⌄ See all 9 examples — chat ×5 · offering copy · website · social · email
Authored and checked by us — read-only. There is no “customize Warm Host”.
Same message, five places. Refine only on a line that is already yours.
Oldest drops off when you pass 30.
We never read or rate your customer chats. Sounds like you — because you confirmed it does.
Warm Host — the default voice — speaks for your assistants today. Your voice here is saved, coming soon — one line, how you write, samples per place.
A steady, friendly host who knows the answers and never rushes anyone.
⌄ See all 9 examples — chat ×5 · offering copy · website · social · email
Authored and checked by us — read-only. There is no “customize Warm Host”.
Nothing saved yet. Your voice starts speaking once it’s saved, checked, and confirmed from a preview.