πŸ§ͺ FunFirst Loco β€” Pair Test Plans

Live pair-programming QA for the FunFirst loco show platforms. Two testers β€” the agent (AS Dev) and Mike β€” execute the same steps with their own shows and performances, compare results, and file GitHub issues for every mismatch. Each brand has its own plan doc; this index holds the shared protocol, the brand matrix, and the cross-brand isolation checks.

Protocol Brand matrix The five plans X Β· Cross-brand isolation

How a session works

  1. Pick a plan below and open its doc β€” every step, expected result, brand data value, and results log lives there.
  2. Agent executes a step in a real browser against the live app, posts screenshots to the Discord thread, and states pass/fail.
  3. Mike repeats the same step with his own shows/performances, posting his screenshots to the thread.
  4. Compare. Same result β†’ check the box in that plan's log. Different result β†’ both re-run once, then file an issue.
  5. File a GitHub issue for every wanted change: [pair-test FLOW<STEP>][brand] short summary in microspaces/linkall, label pair-test, one behavior per issue. Body: environment (prod domain + route), expected vs actual, screenshot links, tester.

Evidence conventions

Brand matrix

Battle LocoWrestle LocoComedy LocoBar LocoWedding Loco
Planbattle-locowrestle-lococomedy-locobar-locowedding-loco
Modecompetitioncompetitioncompetitionsetlistsetlist Γ—2 (ceremony + reception)
TeamsHeat / IceFaces / HeelsBanana Peels / Comedy ClubtrottersNaughty / Nice (nominal)Bride / Groom (nominal)
Rounds1833121212 + 14
Console hostfunfirst.funfunfirst.funfunfirst.funsurroundshow engineapp.weddingloco.com
Convex deploymentfunfirstfunfirstfunfirstsurroundshow⚠ pin it live (D1)
SeederbattleLocoLuxorwrestleLocoLuxorcomedyLocoLuxorbarlocoHolidaysweddingShows
Seeded show(s)Luxor Oct 17 (22 scenes)Luxor Night 1 (28)Luxor Night 1 (28)Halloween / Jingle / Big Lβ™₯veChapel (22) / DJ (26)
Marketing sitebattleloco.comwrestleloco.comcomedyloco.combar-loco.vercel.app (barloco.com parked)weddingloco.com
Suggested order: Battle β†’ Wrestle β†’ Comedy (same engine, one deployment, competition mode) β†’ Bar (setlist + surroundshow deployment) β†’ Wedding (two locos + the deployment-pin check).

The five plans

πŸ₯Š Battle Loco

Heat vs Ice on funfirst. 18-round card, Punishment overlay, Luxor Oct 17 seeded show, scoring + winner-cue contract.

🀼 Wrestle Loco

Faces vs Heels on funfirst. 33-round card (five 3-round matches), Ring overlay, crowd refs, Luxor Night 1.

🍌 Comedy Loco

Banana Peels vs Comedy Clubtrotters on funfirst. 12 scored games, the winner-name/nickname regression case.

🍸 Bar Loco

Setlist mode on surroundshow. Jingle-Bar-style night loop (sets β†’ games β†’ prize time), month-long performances, swap-in bits, launch-site copy checks.

πŸ’ Wedding Loco

Ceremony chapel + Reception DJ on app.weddingloco.com. Theme packs, the ceremony→reception handoff, couple isolation, deployment pin.

Flow X Β· Cross-brand isolation (run after any two plans)

One codebase β€” and, for Battle/Wrestle/Comedy, one Convex deployment β€” serves all brands. Leakage here is a critical finding: the loco equivalent of Around Town's cross-town check.

X1BothOpen two brands' console + wall side by side (e.g. Battle vs Comedy; Mike: Wrestle vs Battle). Cue a scene in one brand only.
Expected: the other brand's wall/performance does not react. Any cross-brand cue, scene, or performance leak is a stop-and-file.
X2AgentHit the brand marketing domains fresh: correct hero/brand accent/nav everywhere; <domain>/performances lists only that brand's performances; legacy <domain>/<slug>/performances 308s to the clean URL with the query string preserved.
Expected: zero brand mixing; redirects preserve method + query string.
X3AgentOn funfirst.fun, walk the locos listing and each brand's nav (Shows, Designer, Player, Preview, Locos).
Expected: every loco listed with the right blurb; all links resolve; no cross-brand copy ("Heat vs Ice" must never appear on wrestleloco.com).
X4BothSign out. As visitors, open each brand's performance/designer routes.
Expected: marketing pages render; engine surfaces gate to sign-in (Convex auth); no console actions reachable unsigned.