Overnight autonomous run. Newest entries at the bottom. Page self-refreshes every 5 minutes.
76 / 76
offline verify suite (end of Phase A)
Phase B
current stage
$0.00
live Atlas spend (budget $20)
1
blocked on you (browser login)
⚠️ One thing needs you
End-to-end UI testing on staging is blocked: the Google OAuth flow asked for your password, which I will not enter. I left a tab open at the prompt — signing in there unblocks it.
Everything else runs without it: all code, all harnesses, and the live Atlas prompt tests (which call the API directly, no browser).
Phase A — surfaces live COMPLETE · VERIFIED
Six Google PMax formats activated end-to-end: statics 1200×628 / 1200×1200 / 960×1200, video 1920×1080 / 1080×1080 / 1080×1920. A Google video run bills two Omni masters per product and derives the square 1:1 free from the settled 9:16 plate.
Meta is provably untouched — same submit count, same digests, same prompts, same static geometry.
Adversarial review found 6 real defects — all fixed and pinned
Defect
Cost if shipped
Regenerate billed a "free" derived ad — the gate existed only in the render loop, as a local copy
$1.20–$5.00 per press, repeatable to the daily cap
Digest re-mint — duration added to the identity key for every pre-existing format
a repeat Generate re-bills an Omni master for every product on every existing campaign
Derive ad minted on runs that never generate its 9:16 source
ad can only wait, then fail
Single-format fallback could reinstate the free surface as billable
$1.20/product
The free 1:1 stranded on every first run; both work-arounds cost money
feature silently doesn't work
DELETE destroyed the master's shared Cloudinary asset
breaks the paid master too
New money harness verifyPmaxVideoExpansion.js (54 checks) revert-proven against 9 mutations. Writing it also exposed a false pass in my own first draft — the body extractor stopped at the destructured parameter list, so the "zero billable submits" check was passing against a 2-line string. Guarded explicitly now.
Phase B — PMax canonical prompts IN PROGRESS
wave 1 · lane B1
Static PMax prompt overlay — verified
Adds a platform-context block for pmax_* surfaces only: content must survive edge cropping (central 80%), must communicate product + brand with no accompanying text, and must read at thumbnail size. Plus an intent-aware CTA policy — Google draws its own button, so the burned-in CTA is now suppressed on brand/proof/lifestyle creatives and kept only on the conversion (offer) intent.
I verified independently: every Meta surface × every intent is byte-identical to before in both flag arms — not just flag-off. Kill switch PMAX_STATIC_PLATFORM_NOTES.
wave 1 · lane B2
PMax video directives profile — verified
A separate camera-prompt profile for PMax: hook-first (product identifiable inside 2 seconds, because this surface is skipped fast), 10-second timeline, centre-safe composition, and — new — real landscape direction for 16:9: wider establishing framing, horizontal rather than vertical camera travel, product held in the central band. Until now the prompt builder accepted the aspect ratio and never used it.
The frozen Meta camera prompt is untouched — confirmed two ways: the existing byte-identity harness that rebuilds it from git passes, and my own direct comparison across both aspects and both durations. That prompt was rolled back once for causing hallucinations, so nothing goes near it.
I corrected two wording defects in the draft: it told a landscape master it was "swipe-away vertical" and referenced the vertical right-edge rail — contradictory cues on the 16:9 master.
wave 1 · lane B3
YouTube safe zones wired + funnel presets re-timed
Closes a Phase A gap: the YouTube overlay zones existed but nothing selected them, so PMax video titling was using Meta's zones and could place text under the engagement rail or player controls. Now resolved per platform format and threaded to the composition — with non-PMax behaviour unchanged. The three funnel titling presets were also re-authored from 8-second to 10-second pacing (Remotion only compresses, never stretches, so a 10s plate was playing 8s of pacing then holding).
Useful finding: the render path already accepts a funnel preset override — what's missing is a caller and an Ad-level funnel field. Smaller job than expected, queued for wave 2.
wave 2 · running
Director: funnel spread + social-proof hierarchy
Teaching the Director that PMax needs the three concepts per product to span the funnel (Google picks per impression, so one asset group carries all of it), and encoding your team's social-proof guidelines: one dominant proof element per creative, weak review counts never printed, sub-4.5 ratings reframed as popularity, and the dominant proof element required to differ across concepts so Google gets genuinely different approaches to test rather than cosmetic variants. Thresholds are config-backed, not baked into prose.
wave 2 · running
Harness re-pin + new prompt-overlay harness
Two static harnesses now fail — correctly: they pin the old PMax CTA behaviour. Confirmed the failures are PMax rows only, zero Meta rows. Being re-pinned to the new truth table, plus a new harness whose most important check is that Meta prompts stay byte-identical in both flag arms.
Next
Live Atlas prompt tests — statics A/B (flag off vs on) and the 16:9 video master, ~$3 of the $20 budget. Real images and video, not just prompt text.
Adversarial verification pass over the whole Phase B diff.
Funnel-stage plumbing so the re-timed presets can actually be selected per ad.
Docs + handoff, then everything ready for your review.