| ID | Scenario | Result |
|---|---|---|
| CT-BALI-00 | Log in — header chip is the next thing | PASS |
| CT-BALI-01 | Event host shelf is exactly 3 cards | PASS |
| CT-BALI-02 | Personalize is knobs, not Brain facts | PASS |
| CT-BALI-03 | Connect blocks · Add in Brain opens the slide-over | PASS |
| CT-BALI-04 | Identity confirm gate renders in the wizard slide-over
was P0 FAIL — root-caused, fixed in PR #3716, live-verified twice
|
PASS |
| CT-BALI-05 | Instagram URL live-refuses, no charge | PASS |
| CT-BALI-05b | IG screenshot dual-read — words + vibe merge correctly
button copy doesn’t literally say “words + vibe” — behavior is correct
|
PASS |
| CT-BALI-06 | HQ vs. chapter fork — HQ never silently absorbed
expected chapter-picker UI didn’t render for this URL shape
|
PASS |
| CT-BALI-07 | Confirm the real, paid Luma-sourced playbook
confirmed #3719 live — completion gives zero visible feedback
|
PASS |
| CT-BALI-08 | Brand voice (pre-existing, not re-generated) | PASS |
| CT-BALI-09 | Listings + FAQs saved via the plan’s $3 draft path
3 Day-1 FAQs confirmed in
brain_profile.faqs |
PASS |
| CT-BALI-10 | Close overlay · Brain Check · Try · Activate
new P1 — Try tab stays disabled despite “it can run”
|
BLOCKED |
| CT-BALI-11–15 | Event Booking · Launch Kit · Pulse · WhatsApp | GATED on #3747 |
| CT-BALI-16–20 | Sitting B — Option 2 door, second full wipe | NOT STARTED |
aria-disabled="true".brain-readiness.ts: the display copy correctly treats
a same-day “needs a glance” row as non-blocking, but the boolean gating the Try tab
(ready: missing.length === 0) doesn’t make that same distinction. Blocks Activate
→ Booking → Launch Kit → Pulse → WhatsApp for the rest of this pilot.
/brain/book
GH-3718
brain-readiness.ts’s ready field respect the same blockers-vs-attention split the display layer already implements.zIndexOffset pattern through the read-completion surfaces the same way #3716 fixed it for the identity gate.