Skip to content

Scenario Compiler — Unit-to-Production-Package Compiler for Ad Creative

Scenario Compiler

TL;DR: The production compiler: one frozen research unit in → a package out that a content team (or AI pipeline) can execute without making a single creative decision. Per unit: 3 static + 3 video cards, each with 3 swappable hooks (slot 1 only, three different mechanisms) = 18 named variants from 6 base creatives. Every visual row carries an asset-source tag that routes it to the right pipeline; shoot rows aggregate into a deduped cross-unit shotlist; ad names encode unit IDs so results merge back into the research automatically. Dogfooded on a 20-unit batch: 120 base creatives, 360 named variants. The brief format it implements is documented at marketing/prescriptive-production-briefs.

What It Does

The skill consumes a signed-off unit from tools/target-audience-research — it refuses units whose sign-off gate isn’t approved; frozen IDs are the contract — and compiles it through five stages:

StageWhat happensGate
0 — Load & validatePull the unit (promise, proof requirements, angle, hook seeds, dependencies); distill a run-level brand spec; validate buildability — unmet dependencies mark cards BLOCKED with alternatives, never silent substitutions
1 — Creative directionsTournament-lite: 4–6 static + 4–6 video concepts → keep 3+3; together they must cover all the unit’s proof requirementsGate 1: concept approval
2–3 — CardsFull static + video cards: fixed compositions, frame-level slot tables (time / visual / final VO / on-screen text / asset source), exact CTAs and destinations
4 — Hook tripletsA/B/C hooks per creative — three different mechanisms, seeded from the unit’s verbatim customer language, char-counted
5 — QA + packageThe QA checklist run against every card; shared artifacts updated (shotlist, asset manifest, LP-requirements); manifest validates 6 creatives × 3 hooks = 18 named variantsGate 2: final review → frozen

What Makes It Different

  • Zero suggestion language. “Could / maybe / consider” in a final copy field is a QA failure. The quality bar: a stranger with the assets and zero context could produce all 18 variants identically twice.
  • Hook = slot 1 only. One base edit, three swapped openings, three mechanism labels from a 10-item taxonomy (pain-callout, stat-shock, curiosity-gap, identity-call, objection-flip, social-jolt, honest time-urgency, contrast, question-trap, pattern-interrupt). Synonym hooks fail QA — they ruin the test read.
  • The asset-source column is the handoff. AI-gen rows must include a generation-ready prompt; shoot rows flow into a shared shotlist written for cross-unit reuse; screen-rec rows spec the exact screen state. The column is what lets one brief feed human editors, image models, and a camera crew simultaneously.
  • Compliance travels with the card. Harvested quotes are adapted, never attributed (FTC); audio is commercial-licensed or original only; unverified compliance is carried as an explicit flag; message-match gaps between ads and live landing pages are emitted as a deliverable for the LP team.
  • Ad names encode unit IDs (TA2J1A1-V2-B) — non-negotiable, because the research skill’s feedback merge keys on them.

Real Run: The 20-Unit Batch

First batch (same anonymized engagement, June 2026): 20 units compiled by 20 parallel brief-writing agents off one central briefing file, with concepts centrally allocated and a shared scene library. Output: 120 base creatives / 360 named variants, a batch status board, a 5-setup shotlist, an asset manifest, and an LP-requirements file.

The batch’s two most useful findings:

  • Hook collisions happen at copy level even with central concept allocation. One sourced stat opened hooks in four different test cells; two sibling units ran near-identical question-traps. Fix: signature hooks are exclusive to one cell, and a similarity audit over all 120 hooks + 120 opening visuals is a mandatory batch stage.
  • Gate adaptation in batch mode works. Per-unit concept approval would have meant 20 interruptions; it collapsed into central allocation up front + one batch-level overview gate at the end — gate placement (points of irreversibility) preserved, gate count adapted.

Honest limits from the run: 13/20 units were producible immediately; 7 stayed gated on client answers (asset and operational dependencies) — correctly marked BLOCKED rather than improvised. Fully prescriptive authoring costs real time; for a one-off creative, a conventional brief is cheaper.

When to Use

  • “Build scenarios / production briefs for unit X”
  • “Turn these research units into ads”
  • “Shotlist for this batch”
  • Handing creative work to content creators or an AI production pipeline that must not improvise

Chains With

Downstream of tools/target-audience-research (the frozen unit contract); pairs with marketing/ai-product-video-fidelity workflows for AI-gen rows where product fidelity matters; feeds media buying whose results merge back upstream via the ID-encoded ad names.

Key Takeaways

  • A frozen unit in, an executable package out — executors flag, never invent.
  • 6 base creatives × 3 hook mechanisms = 18 clean test cells per unit; the mechanism discipline is what makes the test read interpretable.
  • The asset-source column routes each visual to the right pipeline; the shared shotlist turns 60 videos of shoot needs into a handful of setups.
  • Batch scale needs central allocation and a similarity audit — writers (human or AI) independently converge on the strongest material.
  • Blocked ≠ improvised: unmet dependencies are flagged with alternatives, and compliance status travels with every card.

Sources

  • Primores internal skill (15-scenario-compiler: SKILL.md, card templates, QA checklist)
  • First 20-unit batch run, June 2026 (internal; client anonymized)