🚪 Cascade Cycle-1 Go-Live — What's Left (5 Buckets)

Cycle-1 cascade · spec-complete, not launched · v1.20 · Calum envelope 2026-05-19 banked + arch-v4.20 drift fixed + Active-Subs exclusion resolved via Shopify-native filter (Seal-API path retired)

created 2026-05-17 · updated 2026-05-19 v1.18 (session 32 Seal Subscriptions API probe — Active-Subscribers SoT card updated with confirmed feasibility block: all 4 markets reachable via SEAL_API_KEY_* tokens, 3,443 active subs total, email field in subscription record, no new Shopify scope required) · prior v1.17 2026-05-18 session 30 (6 new decision cards) · slug go-live-buckets · sources: commit 16ab405 + 6323ebb, cascade-2026-05-13 specs, live GAQL user_list check 2026-05-17, cascade-execution-plan.md, session-32 bank 2026-05-18+19, session-30 bank 2026-05-18 19:30, GATE-A-STATUS-2026-05-18.md, t-adhd-{de,fr,us}-2026-05-18/ + section-c-revival-2026-05-18/ brief sets, reference/data-contracts/discount-codes.md, config/campaign-architecture.json v4.20, seal_mrr_2026-05-19.json, Codex+Gemini QC 2026-05-18+19

5/5
Buckets — B1 done
4/4
Tests spec-actioned
0/4
Campaigns built
0/2
New LPs built
15
Decision cards banked
6/6
Calum envelope 2026-05-19 processed
4
Open session-30 cards (Gate A canon + Gate A collisions + Section-C budgets + Smartpill)
8
Open session-32 v4.20 cards
NO-GO
Phase 5.5 — all 5 (incl T2)

✔ INBOX v1.20 PROCESSED — 6 decisions banked from Calum envelope 20260519T202956Z (2026-05-19)

Calum's go-live decision envelope landed at 20:29 UTC. All 6 cards banked below + downstream surfaces updated in v1.20.

  1. T-ADHD US strategy overrideSEARCH_ONLY_RAMP. PMax withheld until Search proves CPA ≤ £35; repurpose existing PAUSED SERP USA ADHD shell.
  2. T-ADHD DE + FR LP buildsBUILD_BOTH_LPS. Build DE adhs-ernahrungserganzung + FR ritaline-alternative-naturelle now, gated on Card G for imagery.
  3. Card A — ASA fixON HOLD. Calum: "this is on hold, its not barring the cascade." Removed from active blocker matrix.
  4. T5 — "48hr SLA"DROP_SLA_HOOK. Copy-draft.md updated (3 locations); lean on discount + sub savings instead.
  5. T2 DG-Parent video pickANSWERED — 0 parent-for-child videos in stock. Searched 1,273-record inventory; 19 parent-context + brand-mention matches, all are Mum Life (parent for HERSELF) / MIND Hockey / exam-prep. 3 paths offered (commission new / pivot to Mum Life / drop T2 from cycle-1).
  6. 36 go-live row verdicts — arch-vs-dashboard auditDRIFT FOUND. Arch v4.20 has T3+T5 channel = DG_VIDEO (per v4.20 reroute) but dashboard rows still show PMax. T1+T4 revive existing campaigns (23723509436 + 23728118086) but dashboard marks "net-new". v1.20 fixes the bucket-table drift below.

Still open from session 30: Cycle-1 Gate A canonical-fact BLOCK (8 violations) · Gate A test-ID collisions · Section-C budget mutations · Section-C UK Smartpill refresh. Still open from earlier: Card G image library · MASTER-CASCADE-PLAN row sign-offs · 8 v4.20 session-32 cards. T2 video pick + 36-row audit: answered with options below, awaiting Calum follow-up.

⚡ Critical path

  1. Calum — finalise the image library (Card G) + the ASA fix on 4 evergreen pages (Card A). Card G gates every image and both landing-page builds.
  2. Claude — build the T3 welcome-back & T5 subscribe-save landing pages + generate images (gated on step 1).
  3. Live-system — WELCOMEBACK10 code, FUE off, GA4 custom dimensions, Seal config, then create the 4 campaigns PAUSED.
  4. GatesCEP — FR canonical gate, Codex QC, Lighthouse, browser QC, Phase-5.5 49-check, then CEP approval → PAUSED→ENABLED.

Customer Match is cleared — GAQL-verified 2026-05-17, not a blocker. DE/FR CM lists have a low addressable rate (~12% / ~19%) — investigation found this is structural (low Google-account penetration), not a quick fix. DE/FR Customer Match is deferred to cycle-2 (Calum 2026-05-17) — not a cycle-1 gate.

⚠️ PMax × narrow-audience mismatch — session 32 analysis 2026-05-18

Per the audience-segments reference panel: PMax cannot hard-fence to a Customer Match list — the list is signal only, the algorithm expands to similar converters. For narrow retargeting cohorts (lapsed buyers, cart abandoners, subscribers) this dilutes the audience. Demand Gen / Display / Search-Targeting hard-fence; PMax does not.

7 PMax campaigns in the architecture carry this mismatch — £209/day total. Two are in cycle-1 right now (T3 + T5). Per Calum's analysis, these should be re-channelled to DG / Display / Search before launch. The arch row for T5 already admits the issue: “PMax audience signal only — PMax has no hard audience fence; T5 runs as directional remarketing weighted toward this segment.” The other 6 share the same flaw.

v1.14 refinement (Codex 5.5 + Gemini 3.1 Pro QC, 2026-05-18): blanket "DG-only for all 7" was naive — Gemini flagged DG's ~1,000 active-matched-user serve minimum kills DE/FR/US lapsed; Codex flagged DG's "hard-fence" only holds if Optimized Targeting is OFF + no Lookalike expansion. Plus both reviewers flagged the lost RLSA Search-retargeting inventory PMax was capturing. Refined per-campaign plan below.

Arch IDMarketMembers£/dPrimary channelSecondaryCritical knobs
pmax_uk_t5_sub_upsell cycle-1 T5UK15,361£143DGRLSA on UK brand-SearchOT off, no Lookalikes, 7-day freq check
pmax_uk_lapsedUK~3,300£30DGRLSA on UK brand-SearchOT off, no Lookalikes
pmax_global_subscription_reminderALL~18,000£6DGOT off
pmax_global_cart_abandonerALL~1,300£8DisplayDG fallback if eligible (Codex)Dynamic product banners
pmax_de_lapsedDE~860£10DisplayRLSA on DE brand-SearchBelow DG 1k floor
pmax_fr_lapsedFR~700£7DisplayRLSA on FR brand-SearchBelow DG 1k floor
pmax_us_lapsed_standalone (new v4.19)US~400£5DISPLAY (US)RLSA on US brand-Search 13522300536 in Observationv4.19 (Calum 2026-05-18): US-pool absorption REMOVED (geo contradiction). New standalone US-store Display campaign. Replaces retired pmax_us_lapsed POOLED_INTO_UK approach.
📖 Codex + Gemini QC verdicts (verbatim)

Codex 5.5 — REFINE. HIGH: DG "hard-fence" only true if Optimized Targeting OFF + no Lookalikes + Targeting (not Observation). Raw list sizes ≠ active eligible users; Google recommends 5,000+ for Customer Match. MEDIUM: DG channel controls (specify ALL_CHANNELS); cart abandoner DG-first if eligible with 7-day underdelivery trigger; Search-Targeting as small adjunct via RLSA; T5 £143/d freq check; image-first DG OK; downstream config/architecture/UTM/GA4 updates. LOW: rephrase as "DG-first with eligibility + underdelivery fallbacks".

Gemini 3.1 Pro — RETHINK. HIGH: DG requires ~1,000 active-matched-user minimum; DE/FR/US lapsed below threshold → won't serve. Loss of RLSA (PMax included Search, DG does not). MEDIUM: cart abandoner → Display (cheap dynamic product banners); T5 frequency fatigue at £143/d on 15k list. LOW: PMax not "broken", just diluted.

Reconciliation: Both converge on "DG-first IS right but the blanket plan misses small lists + RLSA cost." The refined per-campaign table above bakes in both findings.

Legacy vs cycle-1 — what's already running v1.20 — arch-v4.20 reconciled

The 4 legacy brand PMax campaigns keep running untouched. Cycle-1 adds 5 tests — 2 net-new + 2 revive-existing + 1 reinstated DG. v1.20 reconcile (2026-05-19): rows below now reflect arch v4.20 (channel + revive-vs-net-new corrected per the 36-row audit answered above).

CampaignMarketChannelNet-new vs reviveStatus under cycle-1
Legacy brand PMaxUKPMax17485671252 existinguntouched — runs in parallel
Legacy brand PMaxDEPMax21771203454 existinguntouched — runs in parallel
Legacy brand PMaxFRPMax21787222699 existinguntouched — runs in parallel
Legacy brand PMaxUSPMax17882283348 existinguntouched — runs in parallel
T1 — uk-student T1UKPMaxREVIVE existing 23723509436 (arch.deploy_as_new=false)not built · refresh assets, not new create
T2 — uk-dg-parent-light T2UKDG_VIDEOREINSTATED 2026-05-16 (single-arm DG) dg_uk_parentsnot built · awaiting video pick (0 parent-for-child in stock)
T3 — uk-welcome-back T3 arch v4.20: DG_VIDEOUKDG_VIDEO (was PMax)NET-NEW standalone · pmax_uk_lapsednot built · channel set to DG in arch v4.20
T4 — fr-student T4FRPMaxREVIVE existing 23728118086 (arch.deploy_as_new=false)not built · refresh assets, not new create
T5 — uk-subscribe-save T5 arch v4.20: DG_VIDEOUKDG_VIDEO (was PMax A/B)NET-NEW standalone · pmax_uk_t5_sub_upsellnot built · channel set to DG in arch v4.20 · SLA hook DROPPED 2026-05-19

Highlighted rows = pre-existing legacy campaigns — not modified by cycle-1. Amber-left = v4.20 channel reroute (PMax→DG). v1.20 reconciliation notes: T1+T4 revive existing live PMax (no create_campaign — asset refresh only). T3+T5 are net-new but as DG, not PMax (v4.20 reroute per session 32 Codex+Gemini QC). T2 reinstated as single-arm DG (Calum 2026-05-16) — needs video pick (no parent-for-child in stock; pivot to Mum Life or commission new). Legacy brand-campaign asset refresh is scoped separately as the T-Zero project.

Bucket 1 — Spec-actioning DONE

All decision cards (C, H–R) and wave-2 QC findings actioned into the T1/T3/T4/T5 spec files.

✔ Complete — committed 16ab405 (2026-05-17 00:58, 29 files, +1149/−249). All four tests' spec-actioning landed; cascade working tree is clean.

Residuals only: the go-live dashboard (v1.17) is ~28 min stale — it still shows cards C/H–R as "action pending in specs"; they were actioned 28 min after its last refresh — a dashboard refresh is wanted. Minor T4 spec items: verify "Pack Découverte" label vs product-labels.md; add non-ROAS leading indicators to strategy-search-pmax.md.

Bucket 2 — Build NOT STARTED

Two landing pages and all creative assets — most of it gated on the image library (Bucket 3, Card G).

ItemTestOwnerStatus
Build bz-welcomeback.liquid welcome-back v4.0 LP + template + assets + live PUT · audit 2026-05-18: specs complete (cascade-2026-05-13/uk-welcomeback-v4/ has 8 spec files); no Liquid snippet/section/template file yet on UK themeT3Claudespecs only
Build subscribe-and-save v4.0 B-variant LP + live PUT · audit 2026-05-18: A-variant page.bz-subscribe-save-v4.json + bz-subscribe-save-v4.liquid exist on UK theme; B-variant LP not yet built. Specs in cascade-2026-05-13/uk-subscribe-save-t5-newbuyer-ab/ (11 spec files incl. ab-test-binding)T5ClaudeA exists, B not built
11-LP "no synthetic stimulants" template fix · audit 2026-05-18: only bz-exam-city.liquid still contains the phrase on UK theme — sweep appears already done or much narrower than originally scoped (confirm scope)T1multiClaudelikely >90% done — confirm scope
Image generation — T1 campaign images, T3 (7 briefs), T5 LP (~30 slots)allClaudeblocked — Card G
Source verbatim Judge.me testimonials — T3 (3), T5 (6–8 long-tenure)T3T5Claudenot started
T4 UGC clips A3/B5 re-edit (trim TDAH/Ritaline mentions)T4creativeadvisory

Bucket 3 — Needs Calum 6 OPEN (interactive cards) · 5 DECIDED

All 6 still-open rows are now interactive feedback cards at the bottom of this page — pick a preset option, add freetext, or expand the 📖 Full background details. Submit the lot via the inbox to come back to Claude.

ItemTestStatus
Card G — finalise image library (brand_context/style-references + product-labels) card belowallopen · upstream blocker
Card A — ASA fix on 4 evergreen product pages (neurodivergent testimonial outside Schema Review wrapper) card belowsiteopen · pick approach
T2 DG-Parent video pick (#109) card belowT2open · share candidates
36 go-live campaign-row verdicts (#113) card belowallopen · pick workflow
T3 "what's-new strip" card 2 — one verifiable new finding card belowT3decided · pair provided in notes (ELITE SynbAEctive + PRO press)
T5 — accept as directional PMax remarketing (cannot hard-fence) card belowT5decided · RESTRUCTURE test before launch
T5 — authorise PageFly A-page dataLayer injection card belowT5parked · no GTM at Brainzyme
T5 — "Forever" hero wording sign-off card belowT5decided · DROP the line
T5 — confirm "first delivery within 48hrs" SLA with fulfilment card belowT5open · reword recommended
T4 — confirm "Médecins"→"Pros Santé" swap; FR DG hook 3 wording cards belowT4decided · keep Pros Santé + "Pas de Ritaline" (FR territorial)
Per-test MASTER-CASCADE-PLAN row sign-off card belowallopen · final pre-build gate

Bucket 4 — Live-system actions NOT STARTED

Google Ads UI / Shopify admin / GAQL work — cannot be done from spec files.

ItemTestSurfaceStatus
Customer Match import — VERIFIED WORKING — live GAQL on user_list (acct 6195443501, 2026-05-17) shows all 57 bz_* lists OPEN + populated. UK addressable: bz_2plus ~5,500 · bz_lapsed_calm ~4,400 · bz_lapsed_dopamine ~7,600. DE/FR low addressable rate (~12% / ~19%) is structural (Google-account penetration) — DE/FR Customer Match deferred to cycle-2.T3T5Google Adsresolved
Create WELCOMEBACK10 discount code in UK Shopify · RE-VERIFIED 2026-05-18 against the correct registry (reference/data-contracts/discount-codes.md): ALL 4 MARKET CODES ALREADY EXIST, created 2026-05-13 — UK WELCOMEBACK10 (price_rule 2461700751741), US WELCOMEBACK10 (1284849565888), DE WILLKOMMENZURUECK10 (2144041926920), FR RETOUR10 (1893251613014). All -10%, once_per_customer=TRUE, no expiry, customer_selection=all — exact match to Calum's freetext spec. T3 LP no longer blocked on the discount code.T3Shopify (4 stores)already created 2026-05-13
Build Shopify segments — bz_new_60d, bz_lapsed_180d, bz_lapsed_180_365d, bz_sub_active, bz_2plus_purchases_18mo_no_sub · audit 2026-05-18: 4 of 5 already exist in config/audience-segments-registry.json. Decision banked 2026-05-18 (Calum): Claude builds bz_2plus_purchases_18mo_no_sub via Shopify Admin API; Calum does the Customer Match import in Google Ads GUI (last-mile).T1T5Claude (Shopify API) → Calum (GAds GUI)claude · 1 segment to build
Fix broken FR audience ID 272052698 — GAQL lookup + replacementT4GAQLACUTE — blocks T4 build
T1 audience IDs — 30014 "Parents of Teens" confirmed VALID (the earlier "broken" flag was a misdiagnosis, Card N); 30032 "College Students" added to AG2T1GAQLresolved
T5 Customer Match chain — filter → export → eligible → attach (both arms)T5Shopify + Google Adspre-enable
FUE = OFF + screenshots loggedT1T3T5Google Ads UIpre-enable
GA4 custom dimensions — ag_variant (T3), test_id + ab_variant (T5)T3T5GA4 adminHARD pre-enable
Seal Subscriptions admin config — T3 stack mechanic, T5 configT3T5Shopify adminpre-enable
Conversion-goal GAQL auditsT1T4GAQLpre-enable
Create the 4 campaigns PAUSEDallGoogle Ads MCPafter specs + approval
UTM Sheet logging + pages_registry updatesallSheetsat build

Bucket 5 — Gates → Enable NOT RUN

Mandatory gates before any PAUSED→ENABLED transition.

GateTestStatus
FR canonical messaging gate (check_copy_against_canonical.py --market fr)T4HARD — not run
Codex QC — T1 (tactics + campaign-spec), T5 (tactics + strategy + ab-binding)T1T5not run
T3 — codex_qc on copy-draft + humanizer pass + re-run canonical gateT3queued
Shopify Dev MCP validate_theme — bz-welcomeback.liquidT3after build
Lighthouse gate — T3 + T5 landing pagesT3T5after build
Browserbase desktop QC + Playwright mobile QC — post-PUTT3T5post-PUT
ops-targeting-qc 49-check (Phase 5.5) — PASS per testallper test
CEP protocol → PAUSED→ENABLED (cascade-qc-gate Gate B)allCEP / Calum

Reconcile + Cascade — decisions 5 ANSWERED

Session 25 · 2026-05-18 — the T-Zero + T-ADHD + Section-C revival cascade (20 campaigns — not cycle-1). The architecture reconcile is done + verified (drift-validator GREEN; the session-30 gap-fix carried the arch to v4.13). The cascade is scoped + QC'd, and all 5 of its decisions are now answered (Calum 2026-05-18) — recorded as banked decision cards at the foot of this page. Full plan: projects/briefs/campaign-allowlist-drift-validator-2026-05-17/_master/cascade-execution-plan.md.

DecisionWorkstreamStatus
Creative Production Tracker — who writes the cascade rowsT-Zeroanswered — session 30 writes
T-ADHD — 4 scope questions + scope.md correctionT-ADHDanswered
Section-C revival — strategy approachRevivalanswered — full strategy
AMBER/RED compliance — the position to takeallanswered — adjunct, not treatment
T-ADHD US — net-new campaign creation under CEPT-ADHDanswered — Claude creates, CEP

With the Creative Production Tracker question answered, T-Zero is unblocked — ~1.5–2h of autonomous work to its creative-approval checkpoint. T-ADHD + revival run after their /campaign-strategy pre-flights (full per market, per the answered scope decision).

Adjacent — watch (not cycle-1 blockers)

Decision cards — 6 NEW (session-30 run, top) · 6 OPEN (Bucket 3) · 14 BANKED (below) — the 6 NEW cards (red 🆕 badge in titles) come from the 2026-05-18 19:30 autonomous run: Gate A canonical-fact BLOCK + test-ID collisions, Section-C budgets + UK Smartpill, T-ADHD US PMax-vs-Search override, T-ADHD DE+FR LP builds. They render first. The 6 OPEN Bucket-3 cards follow them. Each has preset options + freetext notes + a 📖 Full background expandable section. Pick options, add notes, hit Submit decisions — routes to Claude's inbox.