Flow A Β· Show Designer
A1BothSign in on app.weddingloco.com, open the designer, select
Wedding Ceremony β Chapel.
Expected: 22 walls render (Arrival β Send to Reception), val-* art/video assets load, durations sensible for a live ceremony (minutes, not seconds), no console errors.
A2AgentOpen
Wedding Reception β DJ; verify 26 walls and the DJ-night ordering (Cocktail Hour β Sparkler Send-off).
MikeSame, plus confirm no ceremony walls (Vows, Rings) appear in the reception show.
Expected: both shows render their own assets; zero ceremonyβreception wall bleed.
A3AgentCreate show
PairTest Agent Chapel β <date> tagged
weddingceremony, left
draft.
MikeCreate
PairTest Mike Chapel β <date>.
Expected: show appears in the picker; the preview wall paints nothing for it while draft.
A4BothIn your show, build one theme block: a
Theme Moment wall (wrap-around video), a
Vows wall (still + soft loop), a
Ring Exchange wall, and a
Photo overlay scene.
Expected: scenes save in order; Photo registers as overlay-kind; each attaches still/video effects cleanly.
A5AgentTheme-pack swap drill: in the ceremony
template's catalog, confirm the nine immersive themes (Elvis, MARRY-OKE, Van Gogh, β¦) are assignable as Theme-round games β do NOT mutate the seeded show; record the picker behavior.
Expected: theme catalog lists all nine; assignment preview works without touching the seeded template (if the UI only allows it by mutating the seeded show, that's a finding).
A6BothDuplicate the
Vows scene, rename the copy, delete it, reopen.
Expected: real copy, clean delete, no orphans in list or timeline.
Flow B Β· Performance console (setlist Γ2)
B1BothOpen the Ceremony performances list; find
Wedding Ceremony β Template. Open the create-performance modal.
Expected: modal reflects setlist mode; template performance present with the 12-round card.
B2AgentCreate
PairTest Agent Ceremony bound to your
PairTest Agent Chapel show; walk Arrival β Theme Moment β Processional β Vows with Begin Segment.
MikeCreate
PairTest Mike Ceremony bound to the seeded Chapel show; walk his first four segments.
Expected: each Begin Segment advances in order; the wall follows every step without refresh; segment titles match the walk order.
B3BothSwitch to the Reception side: create
PairTest <who> Reception bound to the seeded
Wedding Reception β DJ show; verify the 14-round card (Set/Intro/Dance/Set/Speech/Dance/Set/Game/Set/Speech/Game/Set/Dance/Outro, nothing scored).
Expected: round list matches the template contract; scoreboard not prominent (setlist mode).
B4BothWalk the reception: Cocktail Hour β Grand Entrance β First Dance β Toasts β Shoe Game (cue
Game Instructions).
Expected: setlist advances cleanly; the game button cues the designed scene by title.
B5AgentThe handoff: end the Ceremony run at
Send to Reception, then start the Reception run at
Cocktail Hour β the product's signature transition.
Expected: both performances coexist (ceremony ended, reception live); the wall switches without stale ceremony visuals; record exact handoff behavior (undocumented).
B6MikeResume test: cue into Reception
Peak Mix, close the browser, reopen a minute later.
Expected: console restores the current segment β a wedding night outlives any single device. Record exact behavior if it resets.
B7BothReorder drill: move
Anniversary Dance /
Open Floor Set (the drop-in interludes) into different slots on your performance.
Expected: reordering doesn't break Begin Segment flow or the wall.
Flow C Β· Screens & preview wall
C1BothOpen the preview wall while your Ceremony performance is live; find the wedding row + scene strip.
Expected: chapel walls paint; strip shows the current scene; row marked β LIVE.
C2AgentCue the ceremony-specific scenes in sequence: Theme Moment (wrap-around), Processional, Pronouncement, Photo overlay.
Expected: wrap-around walls paint all panels; Photo composites over the wall; player matches.
C3BothOpen one screen full-bleed and the player in a second window (Mike: on the venue TV / his phone). Cue First Dance.
Expected: wall, screen page, and player react together; readable from across a reception hall.
C4AgentDraft gate: set your PairTest show back to draft, bind + go live, cue a scene.
Expected: wall refuses to paint the draft show β fallback card only.
C5Agent390px viewport + 1080p pass: wall, player, one screen page.
Expected: usable one-handed on a phone; no overflow at 1080p.
Flow D Β· Sites, routing & isolation
D1AgentDeployment pin (do this first): open app.weddingloco.com, read the Convex URL from the page's client bundle, and check which deployment holds the seeded Chapel/DJ shows (dashboard data browse).
Expected: record the deployment (bundle currently reads happy-otter-123; docs say upbeat-capybara-284). If docs and reality disagree, file the doc/env fix β every later step depends on this.
D2AgentRouting sweep on app.weddingloco.com:
/ serves the wedding hub;
/ceremony and
/reception serve their apps; legacy
/wedding-loco 308s to
/; legacy
/wedding-ceremony/
/wedding-reception 308 to the clean segments.
Expected: every redirect preserves the query string; address bar ends on clean URLs.
D3BothLoad
weddingloco.com fresh: hero, pink+gold accents, CTA to the app.
Expected: static launch site renders; www 308s to apex; CTA lands on app.weddingloco.com.
D4BothCouple isolation: sign in as yourselves (two accounts) and confirm show/performance pickers only surface your own PairTest data plus the shared seeded templates β not each other's drafts mid-edit.
Expected: drafts are private to their creator; template shows shared; any cross-couple leak is a critical finding (real weddings share this deployment).
D5AgentSign out; as a visitor open
/ceremony,
/reception, and the designer.
Expected: marketing surfaces render; engine surfaces gate to sign-in; no console actions reachable unsigned.
Flow E Β· Hardening
E1AgentRe-run
seed.weddingShows on the deployment D1 pinned.
Expected: inserted = 0; Chapel + DJ shows and template performances update in place via sourceKey; no duplicates in the couple-facing pickers.
E2AgentDouble-cue race during a live ceremony segment (Theme Moment vs Processional).
Expected: undocumented β record wall behavior (last-write-wins? flicker? stuck overlay?).
E3BothThrottle to Slow 3G, load console + wall.
Expected: loading states render, never blank; normal once data arrives. (Wedding venues have congested Wi-Fi β this matters.)