Ad Creative System · Operator Walkthrough

Pipeline Outputs — End-to-End WalkthroughThe operator's real journey through a single batch of ads — command by command, output by output. Shown for IDA (Amelia Fenmore, interior-design business coach), Pioneer mode, cold traffic.

Produced by: SKL Ad Creative System · Eval date: 2026-06-10 · Expert: IDA — Amelia Fenmore
What this page is

This walkthrough shows every stage of the creative pipeline in the order the operator runs it — not a spec, not a diagram, but actual commands and actual outputs. Where a real eval artifact exists, you see it verbatim, badged real. Where no real artifact exists yet, you see a constructed representative example, badged representative, with an honest caption. The goal: you should be able to read this page and know exactly what comes out of every step before you run it for the first time.

/ad-research/ad-context/ad-ideate/ad-script/ad-polish/ad-log/ad-brief (Endpoint 1)  |  ugc-factory (Endpoint 2)

Stage 1 /ad-context — read the context, frame the batch

The first command of every scripting session. Before a single concept card is written, this tells the operator exactly what the market looks like right now.

$ /ad-context --expert ida --mode pioneer

What happens: The system runs ad-ideator-classify, which reads the deterministic warm-cache in Supabase — the always-on data layer maintained by Hermes agents between sessions. It checks freshness across all seven data layers, then synthesises a Market Analysis Report and a Construct Brief (the document that tells ad-ideate what to build). In Pioneer mode (first batch for a new angle or expert), it reads competitor intelligence and audience voice; it does not touch live IDA performance data, because none exists yet.

Context Panel + Freshness Table representative — constructed from the real IDA data layer; freshness states are realistic for a Wednesday session
╔══════════════════════════════════════════════════════════════════╗
║  IDA SESSION CONTEXT — Wednesday 2026-06-11                      ║
║  Expert: Amelia Fenmore · Namespace: ida · Mode: PIONEER         ║
╚══════════════════════════════════════════════════════════════════╝

DATA LAYER FRESHNESS
─────────────────────────────────────────────────────────────────
Layer  Name                            Age        Status
─────────────────────────────────────────────────────────────────
L1     Ad Swipe Library                14h        ✓ FRESH
       (paid competitor ads, curated    (Curator-Hermes last sync 2026-06-10 19:42)
        by Curator-Hermes + Scout)      Top Tier-1 count: 23 | Tier-2: 41

L2     Expert Voice Book (IDA)         6d         ✓ FRESH
       (Amelia Fenmore's voice profile, (last built 2026-06-05, current status)
        built by ad-voice-profile)      Signature patterns: loaded
                                        Voice Book: PRESENT — ad-scripter-write will proceed

L3     Competitor Intelligence          1d         ✓ FRESH
       (organic + paid competitor       (Scout-Hermes daily run 2026-06-10 06:14)
        content, structured by          Interior design education peers: 6 active advertisers
        ad-organic-scraper)             High-signal organic videos indexed: 12

L4     Live Performance                 8h         ✓ FRESH
       (IDA's own Meta ad results,      (daily 06:00 Dubai cron 2026-06-11)
        synced from Fibery/Hyros)        Note: Pioneer mode — L4 data NOT used for
                                        ideation. Shown for completeness.

L5     Launch Learnings                 7d         ⚠ AMBER
       (patterns from past ad-autopsy   (last autopsy run 2026-06-04)
        runs — avoid / forbidden /       NC constraints loaded: 4 active (avoid section)
        positive pattern rows)           Autopsy due: Sunday 2026-06-15

L6     Expert Asset Bank               2d         ✓ FRESH
       (IDA proof bank: 91 proof         (last proof-bank reconcile 2026-06-09)
        entries, 63 Pioneer + 28 extra)  Age-objection index: 8 entries

L7     Audience Voice                   3d         ✓ FRESH
       (Voice of Customer (VOC) extracts  (Sales-Hermes weekly extract 2026-06-08)
        from IDA's prospects and         Current-week objections loaded: see below
        students, via Sales-Hermes)
─────────────────────────────────────────────────────────────────
Overall: 6/7 FRESH · 1/7 AMBER (L5 — non-blocking, local NC export available)

CURRENT-WEEK SALES OBJECTIONS (from L7 Audience Voice)
─────────────────────────────────────────────────────────────────
1. "I'm too old to start over — I'm 50 and this feels like it's too late"
2. "I don't have a design degree so I'm not qualified"
3. "I don't know how to get customers — I have no following"
4. "This seems expensive / I don't have the money right now"

MARKET ANALYSIS REPORT — IDA PIONEER BATCH
─────────────────────────────────────────────────────────────────
Arc Allocation (Pioneer mode — competitor intelligence + audience voice only)
  Negative Elimination (age, credential, vehicle objections): 40%
  Authority Transfer (expert credentials, proof cascade):     30%
  Escape Arc (career-change, new identity):                   20%
  Aspiration Arc:                                             10%

Format-Hermes Recommended Mix (6-concept batch):
  Standard DTC (direct to camera, solo):    2
  Selfie (white wall or outdoor walking):   2
  FAQ Phone Scroll:                         1
  2-Person Friends (AI-UGC pathway):        1

ICP (Ideal Customer Profile) Tier Weighting:
  T1 — Full-time employees, near-retirees, burned-out professionals (50+): PRIMARY
  T2 — Career-change seekers (35-50):                                       SECONDARY
  T3 — Side-income seekers (25-35):                                          EXCLUDE from Pioneer batch

Active Avoid Patterns (NC checks — 4 rows from L5):
  NC1: Never let a market-level statistic carry the hook without a named proof entry
  NC2: Never treat hook rate as a success signal for concept viability
  NC3: Never open with expert credentials before naming the audience's pain
  NC4: Avoid transformation language without specificity ("transform your business")

FATIGUE FLAGS: None — Pioneer batch, no IDA creatives currently live at scale.

CONSTRUCT BRIEF
─────────────────────────────────────────────────────────────────
Batch size: 6 concept cards
Primary arc: Negative Elimination (40%)
Primary objection to address: Age — "I'm 50+, it's too late to start over"
Awareness level: PROBLEM AWARE (cold traffic, top-of-funnel)
Mechanism reveal: TEASER across all cards (never name phases, sequence, or steps)
Proof tier required: T1 Pioneers minimum for SPB (Social Proof Bridge)
Temperature: LOW (Pioneer default — all structural constraints are hard)
How to read it: The freshness table is the first thing to check. Green (fresh) means the data layer is current and the system will use it. Amber means the layer is aging but a local export fallback is available — proceed but note it. Red means the layer is stale and the relevant skill will halt until you run the upstream command. The arc allocation and the recommended format mix come directly from the Market Analysis Report — ad-ideate reads these as weighted preferences, not rigid rules. The four NC (negative constraint) patterns at the bottom are binary gates: any concept card that violates one of them is killed in the review pass, no discussion.
What to look at
  • L5 (Launch Learnings) is amber here — seven days old. It is not blocking, but the Sunday autopsy is due. If you are running a batch on Thursday or later, check whether a fresh autopsy has run.
  • The current-week objections come from L7 (Audience Voice). This week's top objection — the age objection — is exactly what the concept card in Stage 2 addresses. That connection is intentional: classify shapes ideate.
  • Format-Hermes is recommending one 2-Person Friends concept routed to the AI-UGC (artificial intelligence user-generated content) pathway. This is appropriate: 2-Person Friends is blocked for INTERNAL-TEAM and EXTERNAL-ACTOR pathways because it requires a second person. The AI-UGC pathway solves that constraint.

Stage 2 /ad-ideate — generate concept cards and gate them

One command that wraps two skills: ad-ideate (generates the cards) and ad-ideate (runs the 7-check gate). Only cleared cards go to scripting.

$ /ad-ideate

What happens: ad-ideate reads the Construct Brief from Stage 1 and generates concept cards — one per ad. The count matches the system recommendation (6, here) or the operator's override. Each card specifies the arc, angle, primary objection, ICP (ideal customer profile) tier, mechanism reveal level, proof direction, and format. Then ad-ideate runs the gate: 4 hard checks (hook open loop, avatar specificity, proof verifiability, mechanism protection) plus NC (negative constraint) pattern checks from the active launch learnings, plus 2 quality flags (voice match and creative surprise). Hard failures kill the concept. The operator sees the table and approves or pulls flagged cards before scripting begins.

Concept Card — sw-tc001 (frozen eval input) real — verbatim from evals/runs/2026-06-10-depth-eval/sw-tc001/concept-card.md
CONCEPT CARD
Expert: Amelia Fenmore / IDA
Mode: PIONEER
Format: Standard DTC
Arc: Negative Elimination
Angle: Too old / too late to start something new
Primary Objection: Age — "I'm [50+], it's too late to start over"
ICP Tier: T1 — Full-time employees, near-retirees, burned-out professionals
Mechanism Reveal: TEASER

HOOK DIRECTION
Open with the age objection directly. Name the specific age range. The viewer must
recognise themselves in the first sentence.

PAIN POINT
Stack two or three things they've probably tried or been told to try — that haven't
worked because none of them account for the asset they already have (life experience).

TURNING POINT
Introduce Alexander Hayes (T1, Pioneer #03). Age 55, laid off after 30 years in
sales. Use the Hard Landing Repeat on "30 years." Real number result.

MECHANISM TEASER
Three Nots + Positive. The approach doesn't require: a degree, a following, starting
a business from scratch. It's built around the one skill experience makes better.

SOCIAL PROOF BRIDGE
Three T1 Pioneers stacked with no connective tissue. Include James Mitchell
(T1, Pioneer #05) and at least one more.

CTA
Soft. Free training link. Callback to hook: the age isn't the problem, the vehicle is.
How to read it: This card is the blueprint the scripter reads. Every field is a constraint, not a suggestion. "Mechanism Reveal: TEASER" means the script must describe what the approach does (tease the what) without naming its phases, steps, or sequence (protect the how). "Hard Landing Repeat on '30 years'" is a structural device — the same phrase delivered twice, the second time slower — that the scripter must execute verbatim. The Social Proof Bridge (SPB) note specifies the tier and the count: three T1 Pioneers, no connective tissue between them. None of this is open to interpretation at the scripting stage.
7-Check Review — verdict table for this concept card representative — constructed from real check definitions in ad-ideate.md
IDEATOR REVIEW — Batch: IDA Pioneer 2026-06-11 | Cards evaluated: 6

VERDICT TABLE
──────────────────────────────────────────────────────────────────────────────────────────────
Card ID   Hook (C1)  Avatar (C2)  Proof (C3)  Mech (C4)  NC   Voice (C5)  Surprise (C6)  Verdict
──────────────────────────────────────────────────────────────────────────────────────────────
sw-tc001  PASS       PASS         PASS        PASS       PASS  PASS        —              CLEARED
sw-tc002  PASS       PASS         PASS        PASS       PASS  PASS        FLAG           CLEARED (FLAG C6: similar fear-of-loss register to tc001)
sw-tc003  PASS       PASS         PASS        PASS       PASS  FLAG        —              CLEARED (FLAG C5: "your next chapter" phrasing slightly formal for Amelia's register)
sw-tc004  PASS       FAIL         PASS        PASS       —     —           —              KILLED — C2: "women over 45" absent from Language Bank; replace with "near-retirees"
sw-tc005  PASS       PASS         PASS        PASS       PASS  PASS        —              CLEARED
sw-tc006  PASS       PASS         PASS        PASS       PASS  PASS        —              CLEARED

NC CHECKS: 4 active avoid patterns applied. No violations across cleared cards.

BATCH-LEVEL RESULT
  [PASS]  Awareness distribution: 5× Problem Aware, 1× Solution Aware — matches brief
  [PASS]  Archetype distribution: Negative Elimination 40%, Authority Transfer 30%, Escape 20%, Aspiration 10% — matches brief
  [PASS]  Proof uniqueness: no proof entry repeated across the batch
  [PASS]  Format variety: 5 unique formats across cleared concepts (DTC, Selfie, FAQ, 2-Person, Walking Selfie)
  [FLAG]  Freshness: ~30% of cleared concepts feel non-formulaic — below 40% target. Review tc002 and tc003 before scripting.

SUMMARY: 5 concepts cleared (tc001, tc002, tc003, tc005, tc006). 1 killed (tc004).
         2 flags: C6 on tc002 (creative variety), C5 on tc003 (voice formality).
         Operator review of flags required before scripting begins.
         Proceed: /ad-script on cleared concepts.
How to read it: Hard gate failures (C1–C4 and NC) kill the card — no operator override. Flag failures (C5, C6) travel with the card into scripting so the scripter knows where to look. The batch-level freshness flag is the most important operator signal here: 30% is below the 40% threshold, which means two of the cleared concepts are formulaic. Before running /ad-script, the operator should decide whether to push tc002 and tc003 through with the flag, or return to construct for a replacement card.
What to look at
  • tc004 was killed on C2 (avatar specificity). "Women over 45" is a demographic label — it did not appear verbatim in the Language Bank from Stage 1. The fix is mechanical: replace with the exact Language Bank phrase ("near-retirees, burned-out professionals").
  • The batch freshness flag is a signal, not a block. The operator decides. If two of five cleared concepts feel like they follow the same pattern, that is a creative risk: run them and they will compete with each other rather than with competitors.
  • Notice there is no flag on tc001 — the age-objection DTC concept. It cleared all 7 checks cleanly. This is the concept that goes to scripting in Stage 3.

Stage 3 /ad-script — hook set, then full script

One command, two outputs. First the hook batch (ad-hook-generation), then the full 7-section script (ad-scripter-write). The hook set is written to give you testing options before you commit the script to production.

$ /ad-script --card sw-tc001 --routing external-actor

What happens: The hook chain runs first — ad-hook-principles loads the foundation mechanics (attention capture psychology), then ad-hook-generation produces a batch of 10 cold-traffic hooks for the age-objection angle. The scripter then reads the cleared concept card, loads the Voice Book (IDA — Amelia Fenmore's voice profile), selects the strongest hook for the lead script, and writes the full 7-section script via ad-scripter-write. LOW temperature in Pioneer mode means every structural constraint is a hard rule — no improvisation.

Hook set output — cold-traffic hooks for the no-degree angle. Words only: the spoken opening line of each hook. The framework tag and batch header are metadata; any visual or production direction lives in the brief, never in the copy.

HOOK BATCH · IDA, interior design — no-degree / identity angle · COLD, top of funnel · T1 career-switchers 45-60 · mechanism TEASER
F5 · Identity Callout

"If you're the friend everyone calls before they buy a sofa, the one who can walk into any room and instantly see what's wrong with it, then I want to talk to you for a second."

Direct Truth · no-degree

"Here's the truth no design school will tell you. Customers don't hire the diploma on your wall. They hire the person who can see, in about four seconds, exactly what a room needs."

F1 · Contrarian Claim

"A design degree is the slowest, most expensive way to start in interior design. The people earning the most from it never set foot in design school."

TEST FIRST: the identity callout (sharpest filter) · batch carries 2 mute-first variants · 10 distinct frameworks, no repeats
▸ full eval batch with production/visual notes (reference — not the copy)
Hook Batch — hg-cold/out-a.md, Hooks 1, 3, 10 (selected) real — verbatim from evals/runs/2026-06-10-depth-eval/hg-cold/out-a.md
HOOK BATCH: Interior Design Academy (IDA) — Age Objection
TARGET: Burned-out professionals, near-retirees, full-time employees 45-60
SEGMENT: T1 Primary Buyer (career changers, near-retirees)
AWARENESS: Problem-Aware (know the age-trap feeling; unaware of Amelia or IDA)
FUNNEL: TOF (top of funnel) / COLD | TIER: High-Ticket ($2K+)
ANGLE: "Too old / too late to start something new"
MECHANISM: TEASER — never name phases or steps

─────────────────────────────────────────────────────────────────────

HOOK 1
Framework: F5 — Identity Callout
Dimension: Talking head, direct to camera — kitchen or home office, lo-fi
Visual-intent: Amelia mid-sentence in a warm home setting, already talking when the frame cuts in; lower-third text fades in then out while she speaks
Mute-ready: no
Reveal: TEASER

"If you've spent 20 years building someone else's business and you're
wondering whether it's too late to build your own — I need you to hear this."

Why it stops the right viewer: Names the exact psychographic (decades of corporate
service, creeping doubt about whether time has passed). "Building someone else's
business" is mirror language — it stops the T1 viewer mid-scroll because they
feel personally addressed, not targeted. "I need you to hear this" creates an open
loop without resolving it — the viewer has to keep watching to find out what Amelia
needs them to hear. Raw hook rate is irrelevant; this qualifies and holds the right
person.

─────────────────────────────────────────────────────────────────────

HOOK 3
Framework: HT9 — Epiphany Bridge
Dimension: Talking head, confessional tone — leaning slightly toward camera
Visual-intent: Amelia seated close, slightly leaned in; text overlay "I kept hearing the same thing." fades in then disappears before she continues
Mute-ready: yes
Reveal: TEASER

"I kept hearing the same thing from people my age and older. 'I have so
much experience and nowhere to put it.' And at some point I realised — that wasn't
a personal problem. That was a vehicle problem."

Why it stops the right viewer: Lifts verbatim ICP language ("so much experience and
nowhere to put it") — the T1 viewer hears their own internal monologue in the first
5 seconds. The "vehicle problem" reframe creates a tension between their existing
belief (I'm the problem) and an implied alternative (the path is the problem, not
you). The open loop: what is the right vehicle?

─────────────────────────────────────────────────────────────────────

HOOK 10
Framework: HT11 — Permission Slip
Dimension: Talking head, soft and direct — the warmest register in the batch
Visual-intent: Amelia, eye contact, unhurried; no text overlay, no animated elements — the absence of production is the pattern interrupt in a feed full of urgency
Mute-ready: no
Reveal: TEASER

"You're allowed to want your next chapter. You're 50, or close to it, and
you've done everything right — the career, the decades, the expertise. You're
allowed to want something that's actually yours. That's not a midlife crisis.
That's clarity."

Why it stops the right viewer: Names the exact internal permission the T1 viewer is
refusing themselves. "You've done everything right" validates years of correctness.
"Something that's actually yours" is verbatim ICP (ideal customer profile) language
from the Voice Book. "That's not a midlife crisis — that's clarity" gives the viewer
a non-shameful identity for the desire they already feel. No urgency, no ask, no
mechanism — just permission.

─────────────────────────────────────────────────────────────────────

TOP 3 (from full batch of 10)
1. Hook 1 (F5 — Identity Callout): Highest qualification precision. First test candidate.
2. Hook 10 (HT11 — Permission Slip): Most differentiated from competitor advertising.
3. Hook 3 (HT9 — Epiphany Bridge): Verbatim ICP language lifts from proof bank.

TESTING HIERARCHY (first 3 tests)
Test 1 — vary FORMAT: Run Hook 1 (talking head), Hook 2 (text-on-screen voiceless),
          Hook 9 (skit/scene) simultaneously. Learn which production style engages
          the qualified 45-60 buyer.
Test 2 — within winning format, vary VISUAL/ACTION
Test 3 — within winning format + visual, vary MESSAGE

MUTE-FIRST COMPLIANCE: Hook 2 and Hook 5 are fully voiceless/text-on-screen.
                       Minimum 2-hook mute-first requirement met.
FRAMEWORK DISTRIBUTION: F5, F2, HT9, F12, HT5, HT6, F1, HT8, F8, HT11
                         — 10 distinct frameworks. No repeats.
How to read it: Each hook has four metadata lines (Framework, Dimension, Visual-intent, Mute-ready, Reveal) followed by the spoken hook line. Visual-intent is a single phrase capturing what the viewer sees; it folds into the filming brief and is not part of the spoken copy. Mute-ready flags whether the hook works without audio. The Top 3 and Testing Hierarchy at the bottom are the operator's testing plan — they tell you which hook to run first, and what variable to isolate in the next test. The scripter picks one hook as the lead for the draft script. Hook 1 (F5 — Identity Callout) is the first test candidate.

Script output — the full 7-section ad script for the cleared CREDENTIALS / no-degree concept, generated with every context source loaded (Voice Book, proof bank, real winners, rubric). Read it as a person would — the rubric scoring is back-end.

SHIP · 77.9/100 · 0 hard fails · em-dash 0 · mechanism TEASER · SPB 3 (Olivia, James, Adriana) · words only, conversational

If you're the friend everyone calls before they buy a sofa, the one who's quietly redesigned every room you've ever lived in and half your friends' homes too, then I want to talk to you for a second. Because a few years ago I was sitting exactly where you are.

For the longest time I told myself the same thing you probably tell yourself. That I couldn't really do this for real, because I didn't have a design degree, and every course I looked at felt like it was built for some 25-year-old with a huge following, which was very much not me. So I'd just push the thought back down and get on with my day. Maybe next year.

And here's the thing nobody in design school is ever going to tell you. Customers don't hire the diploma on your wall. They hire the person who can walk into their living room and see, in about four seconds, exactly what's wrong with it and how they'd fix it. And if you've been doing that your whole life without even really thinking about it, then honestly, you are already most of the way there.

I think about Olivia whenever I say this. She taught school for ten years, no degree, no customers, no website, nothing. And one day she just started. A few months later she was designing real homes three days a week, earning more than she ever did teaching, and she told me she actually cried the first time a customer paid her, because for the first time it felt like the work was properly hers. She already had the eye, that thing where you walk into a room and you just know what's off, and that was really the only qualification she ever needed.

And the truth is, the approach we teach doesn't need any of the things you're worried you don't have. It doesn't need the degree. It doesn't need a following. It doesn't need you to go and build some business from scratch and then sit there praying that someone finds you. It's built around the one thing all your years have quietly made you better at, not worse, which is simply knowing what a real home actually needs.

And I see it work all the time now. James spent fifteen years in IT and he's now designing four days a week. Adriana taught maths for twenty-two years, twenty-two years, and she signed her very first customer about a month after she started.

So I've put together a free training that walks you through exactly how this works, and how people who are just like you are already doing it. It's completely free, and the link is just below. Because your taste was honestly never the problem here. You were just never shown what to actually do with it.

What to look at
  • It is unmistakably interior design from the first line — the eye, the taste, the friend everyone asks. The niche leads; the mechanism (the customer-getting system) stays TEASER and is never detailed.
  • Every Voice Book structure is present: Direct Truth Bridge, the identity-asset reframe ("the eye… that was the qualification"), Three Nots + Positive, the Hard Landing Repeat ("22 years. 22 years."), and a soft CTA that callbacks the hook.
  • Proof is real and stacked in the body — Olivia, James, Adriana from the proof bank — so it passes the Social Proof Bridge gate (the earlier eval scripts put proof only in the copy block and tripped it).
  • Back-end rubric: SHIP at 77.9/100, zero hard-constraint fails. The human reviews the words above; the score runs silently.
▸ superseded: the earlier offline-eval draft (weak — kept for reference only)
SUPERSEDED — sw-tc001/out-a.md (the offline-eval draft that prompted this fix) do not ship
AD #TC001-A: IDA-AGE-OBJECTION-DTC-V1
──────────────────────────────────────────────────────────────────

METADATA:
  Format: Standard DTC (SOLO — direct to camera)
  Runtime: ~75 seconds
  Word Count: 240 words (spoken script)
  Awareness Level: PROBLEM AWARE
  Hook Framework: Direct Callout / Age Mirror (Pain Recognition)
  Primary Objection: AGE — "I'm 50+, it's too late to start over"
  Temperature: LOW (Pioneer mode default)
  Operating Mode: PIONEER
  Demographic Segment: T1 — Full-time employees, near-retirees, burned-out
                        professionals (50+)
  Mechanism Reveal: TEASER
  Routing: EXTERNAL-ACTOR

──────────────────────────────────────────────────────────────────
SCENE 1: HOOK [0:00-0:08]
──────────────────────────────────────────────────────────────────
[Direct to camera. No setup. Opens mid-thought.]

AMELIA: "If you're 50 or older and you've been telling yourself it's too late to
start something new — I want you to hear this."

──────────────────────────────────────────────────────────────────
SCENE 2: TRANSITION [0:08-0:14]
──────────────────────────────────────────────────────────────────
AMELIA: "I speak to people in this position every single week."

──────────────────────────────────────────────────────────────────
SCENE 3: STRUGGLE [0:14-0:34]
──────────────────────────────────────────────────────────────────
AMELIA: "They've been told to take online courses. Build a personal brand. Start
from scratch. And none of it works — because none of it accounts for the one thing
they have more of than anyone else in the room."

[Pause. Let that land.]

AMELIA: "I get it. Right now it feels like that counts for nothing."

──────────────────────────────────────────────────────────────────
SCENE 4: TURNING POINT [0:34-0:56]
──────────────────────────────────────────────────────────────────
AMELIA: "I want to tell you about Alexander. Laid off at 55 after 30 years in
sales. 30 years."

[Pause.]

AMELIA: "He started a design business built around what he already knew. Now earns
£2,500 per project, 2 to 3 projects a month. First time in 30 years the work felt
like his."

──────────────────────────────────────────────────────────────────
SCENE 5: INSIGHT [0:56-1:07]
──────────────────────────────────────────────────────────────────
AMELIA: "The approach we teach doesn't require a degree. It doesn't require a
following. It doesn't require starting from scratch. It's built around one skill
your life experience makes you better at — not worse."

──────────────────────────────────────────────────────────────────
SCENE 6: TRAINING INTRO + SOCIAL PROOF BRIDGE [1:07-1:20]
──────────────────────────────────────────────────────────────────
AMELIA: "I made a free training that walks you through exactly how this works."

[No pause between proof entries. Stack tight. The rhythm is deliberate.]

AMELIA: "James — 15 years in IT, now $8,000 a month working 4 days a week.
Sophia taught for 18 years, built $2,800 a month in 9 months. Adriana was 47,
22 years in teaching, now earning $4,800 a month."

──────────────────────────────────────────────────────────────────
SCENE 7: CTA [1:20-1:28]
──────────────────────────────────────────────────────────────────
AMELIA: "The link is below. It's free. Your experience isn't the problem. The
vehicle you were handed for it is."

──────────────────────────────────────────────────────────────────
PRODUCTION NOTES:
──────────────────────────────────────────────────────────────────
S3 — each failed attempt lands before the next; deliberate beat before "right now
it feels like that counts for nothing."
S4 — Hard Landing Repeat: deliver "30 years" the second time slower, with a full
stop before continuing.
S5 — Three Nots escalate; each lands slightly harder than the last.
S6 proof stack — no breath between James, Sophia, Adriana; the rhythm is the signal.
S7 — quiet, resolved; not urgent.
Tone: Calm authority throughout. Not a pitch. Someone explaining something a friend
needs to hear.
How to read it: Seven scenes, each time-stamped. Scene 4 contains the Hard Landing Repeat — "30 years. 30 years." delivered twice, the second slower. Scene 5 contains the Three Nots + Positive — three things the approach does not require, then the one thing it does. Scene 6 contains the Social Proof Bridge (SPB) — three T1 Pioneers stacked with zero connective tissue; the rhythm without pauses is the structural signal. Scene 7 is the call to action (CTA) — a soft close that callbacks to the hook. Production Notes are for the actor; they are not in the actor brief verbatim (they get condensed into high-level shot direction there).

Stage 4 /ad-polish — QA scan, then the polished script

The deterministic QA gate. scripter-polish runs a character-level scan — forbidden words, em-dashes, mechanism reveals, structural checks — and emits a pass/fail report. The polished script is the draft with every flagged issue fixed.

$ /ad-polish --script sw-tc001-a

What happens: scripter-polish runs a deterministic (no language model — plain code) character and word scan across the spoken script. It checks forbidden words (three-tier list), em-dashes in AMELIA dialogue lines, mechanism reveal compliance (no sequence/phase/step language), structural presence of all 7 sections, and voice signature requirements from the Voice Book. The scan output is the QA report below — sourced directly from the real eval findings. The polished script is then the draft with all flagged issues applied.

Why this stage exists

The construction log in sw-tc001 self-certified zero em-dashes. The deterministic scan found four in AMELIA dialogue lines. Self-certification by the executing model is not a reliable QA gate — the scan catches what the model misses. This is the live argument for /ad-polish as a mandatory separate step.

QA — scripter-polish on the script above · ALL PASS (deterministic, back-end)

Run on the CREDENTIALS / no-degree script above, the polish gate returns clean — forbidden words 0, em-dashes 0, mechanism TEASER, structure 7/7, voice signatures all present. Back-end rubric: SHIP · 77.9/100 · 0 hard fails.

You review the script. The gate runs silently and only surfaces when something fails.

The polished script — shown the same way you read the draft. Because it passed every check clean, the polished version is identical to the draft (0 changes). When a draft fails, this is where the fixed words appear.

POLISHED · 0 changes · forbidden 0 · em-dash 0 · mechanism TEASER · ready to log

If you're the friend everyone calls before they buy a sofa, the one who's quietly redesigned every room you've ever lived in and half your friends' homes too, then I want to talk to you for a second. Because a few years ago I was sitting exactly where you are.

For the longest time I told myself the same thing you probably tell yourself. That I couldn't really do this for real, because I didn't have a design degree, and every course I looked at felt like it was built for some 25-year-old with a huge following, which was very much not me. So I'd just push the thought back down and get on with my day. Maybe next year.

And here's the thing nobody in design school is ever going to tell you. Customers don't hire the diploma on your wall. They hire the person who can walk into their living room and see, in about four seconds, exactly what's wrong with it and how they'd fix it. And if you've been doing that your whole life without even really thinking about it, then honestly, you are already most of the way there.

I think about Olivia whenever I say this. She taught school for ten years, no degree, no customers, no website, nothing. And one day she just started. A few months later she was designing real homes three days a week, earning more than she ever did teaching, and she told me she actually cried the first time a customer paid her, because for the first time it felt like the work was properly hers. She already had the eye, that thing where you walk into a room and you just know what's off, and that was really the only qualification she ever needed.

And the truth is, the approach we teach doesn't need any of the things you're worried you don't have. It doesn't need the degree. It doesn't need a following. It doesn't need you to go and build some business from scratch and then sit there praying that someone finds you. It's built around the one thing all your years have quietly made you better at, not worse, which is simply knowing what a real home actually needs.

And I see it work all the time now. James spent fifteen years in IT and he's now designing four days a week. Adriana taught maths for twenty-two years, twenty-two years, and she signed her very first customer about a month after she started.

So I've put together a free training that walks you through exactly how this works, and how people who are just like you are already doing it. It's completely free, and the link is just below. Because your taste was honestly never the problem here. You were just never shown what to actually do with it.

▸ what the gate catches when a draft fails (from the earlier superseded draft — illustration only)
QA Report — earlier draft (superseded) illustration — failure findings real, verbatim from evals/runs/2026-06-10-depth-eval/REPORT.md §3
SCRIPTER-POLISH QA REPORT — sw-tc001/out-a
Script: IDA-AGE-OBJECTION-DTC-V1
Expert: Amelia Fenmore (IDA)
Scan mode: DETERMINISTIC (character-level grep, no language model)
──────────────────────────────────────────────────────────────────

STEP 1: FORBIDDEN WORD SCAN
Tier 1 (hard block — Meta policy): 0 hits
Tier 2 (hard block — mechanism/income): 0 hits
Tier 3 (style — passive income, side hustle, game-changer, etc.): 0 hits
Tier 4 (expert-specific NC additions from launch_learnings): 0 hits
RESULT: PASS — 0 forbidden word hits

STEP 2: EM-DASH SCAN (AMELIA dialogue lines only)
Finding A10 — FAIL
  Evidence: 4 em-dashes found in AMELIA spoken lines:
    Scene 1: "...it's too late to start something new — I want you to hear this."
    Scene 3: "And none of it works — because none of it accounts for..."
    Scene 5: "It's built around one skill your life experience makes you better at — not worse."
    Scene 6: "James — 15 years in IT, now $8,000 a month..."
  Construction log self-certified zero em-dashes. Self-cert was wrong.
  Fix: replace all four with permitted alternatives (comma, period, or hyphen with spaces).

STEP 3: MECHANISM REVEAL COMPLIANCE
TEASER level required. Scan for sequence/phase/step language.
  Scene 5: "the approach we teach" — CLEAR (no steps named)
  Scene 5: "one skill your life experience makes you better at" — CLEAR (tease what, protect how)
  No element count, no sequence language, no numbered steps found.
RESULT: PASS

STEP 4: STRUCTURAL CHECK
  [PASS]  Scene 1: Hook present
  [PASS]  Scene 2: Transition present
  [PASS]  Scene 3: Struggle present (3 failed attempts stacked)
  [PASS]  Scene 4: Turning Point present (Alexander Hayes, proof entry AH-RES-01)
  [PASS]  Scene 5: Insight present (Three Nots + Positive)
  [PASS]  Scene 6: Training Intro + SPB (Social Proof Bridge) present (3 T1 Pioneers, no connective tissue)
  [PASS]  Scene 7: CTA present

STEP 5: VOICE SIGNATURE CHECK (from Voice Book)
  [PASS]  Hard Landing Repeat: "30 years. 30 years." present in Scene 4
  [PASS]  SPB: 3 T1 Pioneers, zero connective tissue
  [PASS]  Soft CTA: callback to hook present ("Your experience isn't the problem. The vehicle you were handed for it is.")
  [FAIL]  VF2 — Direct Truth Bridge: neither "Here's the truth" nor "Honestly"
           found in spoken copy. This is a mandatory voice signature (Voice Book §1.5).
           The baseline arm included it; the skill arm dropped it.

STEP 6: FORMAT ADHERENCE
  Word count: 240 / ceiling 250 — PASS
  Runtime estimate: ~75s — within 60-90s DTC target — PASS

──────────────────────────────────────────────────────────────────
OVERALL: NEEDS PATCH — 2 failures (A10: em-dashes, VF2: Direct Truth Bridge)
         + 1 separate finding: CTA phrase "free training" is in Scene 6 (Training
         Intro) but not echoed into Scene 7 CTA block. Eval assertion A6 flags this.
         Fix all three before logging to Fibery.
──────────────────────────────────────────────────────────────────
How to read it: The scan is completely deterministic — grep, not reasoning. Four em-dashes that the construction log said were absent were found by the character scan. This is the system catching what the model missed. The two failures (A10 em-dashes, VF2 Direct Truth Bridge) plus the CTA echo note are the delta between the draft and the polished script below. Nothing else changes.

Below is the draft-to-polished delta — only the lines that change. Everything else in the script is identical to Stage 3.

DRAFT (out-a.md — before polish)
S1: "...it's too late to start
something new — I want you
to hear this."

S3: "And none of it works —
because none of it accounts
for..."

S5: "...your life experience
makes you better at — not
worse."

S6: "James — 15 years in IT..."

S7: "The link is below. It's
free. Your experience isn't
the problem. The vehicle you
were handed for it is."

[VF2 absent — no "Here's
the truth" in spoken copy]
POLISHED (after /ad-polish fixes)
S1: "...it's too late to start
something new. I want you
to hear this."

S3: "And none of it works,
because none of it accounts
for..."

S5: "...your life experience
makes you better at. Not
worse."

S6: "James, 15 years in IT..."

S7: "The link is below. It's
a free training. Your
experience isn't the
problem. The vehicle you
were handed for it is."

[VF2 added in S3:
"Here's the truth." before
"Right now it feels like
that counts for nothing."]
What to look at
  • The em-dash changes are mechanical. The comma and period alternatives do not change meaning or rhythm — they remove a punctuation pattern that Meta flagged as an AI writing signal in previous batches.
  • The CTA echo adds the phrase "a free training" to Scene 7, satisfying the eval assertion that "free training" must appear in the CTA block, not only in Scene 6. This is a small but real fix — it closes the gap the scripter missed without adding punctuation that would re-introduce a forbidden pattern.
  • The VF2 Direct Truth Bridge is a voice signature from the Voice Book. Its absence is a genuine regression. The baseline script included it; the skill arm dropped it. Adding it back makes the polished script sound more like Amelia speaking naturally to a friend.

Stage 5 /ad-log — write to Fibery

The polished script gets a permanent home. /ad-log creates the CREATIVE entity and the linked HOOK entity in Fibery — the system of record for all IDA creative work.

$ /ad-log --script sw-tc001-a-polished

What happens: skl-operations-bridge maps the polished script's fields to Fibery's COMPANY HUB/CREATIVE schema and calls the Fibery MCP to create the entity. Then it creates the linked HOOK entity with the hook framework. Finally, it writes the full script to the entity's Script document using set_document_content. Production Status is set to "Script Drafted" — it does not change to "Filmed" until Bonnie posts the ingest alert after filming.

Fibery entity fields — CREATIVE + HOOK, written by /ad-log representative — fields and enum IDs from skl-operations-bridge.md; values from the polished sw-tc001 script
FIBERY WRITE — /ad-log output
──────────────────────────────────────────────────────────────────

CREATING: COMPANY HUB/CREATIVE entity

  IDENTITY (relation):          IDA — Amelia Fenmore
  Identity Short Form:          IDA
  Ad Simple Name:               AGE-V1-AgeTooLate
  Idea Bucket (text):           AGE
  Angle Bucket enum:            AGE → enum 8190677f-97db-4599-bd6f-2a475072c0f0
  UIE (style shorthand):        StudioDTC
  Style (enum):                 Studio DTC → enum d8dd7a60-efc3-11f0-b424-7114f64c46ec
  Type (enum):                  P (Pioneer) → enum b0d87f60-0ef9-11f1-8dd3-61e6b9085073
  Awareness Level (enum):       Problem Aware → enum 38c3e831-10c9-11f1-b256-1dc047680361
  Production Status (enum):     Script Drafted → enum 106db8a0-efc4-11f0-b424-7114f64c46ec

  PT1 (primary text variant 1 — story-led):
    "Alexander spent 30 years in sales before he was laid off at 55. He wasn't
    going back to compete against people half his age. So he found a different
    path — one built around the experience he'd already spent decades earning.
    He explains exactly what that looked like. And why the age that felt like
    the obstacle turned out to be the edge. Watch the full story below."

  PT2 (primary text variant 2 — curiosity-led):
    "Most career advice for people wanting a fresh start is built for someone
    beginning from zero. But what if decades of experience are the advantage —
    and the real problem is the vehicle, not the timing? Amelia breaks down why
    that distinction matters, and what people in their 40s and 50s are doing
    about it. She explains it all in this video."

  PT3 (primary text variant 3 — social-proof-led):
    "Amelia works with people who've spent 15, 20, 30 years building careers in
    other fields — and who are ready for something that's finally theirs. James
    came from 15 years in IT. Sophia taught for 18 years. Adriana taught math
    for 22. None of them started young. None of them started with a following.
    This video is about what they found instead."

  H1: A fresh start from what you already know
  H2: The part of experience nobody talks about
  H3: For people ready for their next chapter

  Script document: written via set_document_content (full 7-section script body
                   + ad copy block in Document Content Standard format)

CREATING: HOOK entity (linked to above CREATIVE)

  Hook Framework:   Identity Callout → enum 5f43c300-22d9-11f1-a550-854f15c24306
  Hook Text:        "If you're 50 or older and you've been telling yourself it's
                    too late to start something new — I want you to hear this."
  Framework ID:     F5 (cold-traffic core framework 5)
  Awareness:        PROBLEM AWARE
  Linked CREATIVE:  AGE-V1-AgeTooLate (relation set)

──────────────────────────────────────────────────────────────────
RESULT: CREATIVE entity created. HOOK entity created and linked.
        Production Status: Script Drafted.
        Next step: /ad-brief to generate actor filming brief when ready to batch.
How to read it: Every field maps from the polished script's metadata — no manual entry. The enum IDs are the internal Fibery identifiers; the bridge file translates human-readable labels into them so the MCP call succeeds. PT1, PT2, PT3 are the three primary text variants for Meta Ads Manager — the video does 95% of the selling; these are soft wrappers that frame the video in the feed without making claims the video does not support. The HOOK entity is a separate record so the system can track hook performance independently of the full creative.
What to look at
  • Production Status is "Script Drafted" — not "Filmed." Do not advance this manually. The status changes to "Filmed" only after the INGEST ALERT from Bonnie arrives in #shoot-updates. This is an ingest trigger, not a scripting step.
  • The HOOK entity is separate because hook rate is tracked independently. If this creative underperforms but has a high hook rate, the failure is in the body — not the hook. The hook can be reused in a variation while the body gets recut.
  • The Ad Copy Block (PT1–3 and H1–3) is the only part of the full script output that goes into Fibery's top-level fields. The full 7-section spoken script lives in the Script document, written via set_document_content.

Stage 6 /ad-brief — Endpoint 1 (primary): actor filming brief

The primary production endpoint. The polished script becomes a clean actor-facing filming brief — no internal strategy, no meta copy, no construction log. Just the script and high-level shot direction.

Endpoint 1 — Filmed Pathway (primary)
$ /ad-brief --creative AGE-V1-AgeTooLate --audience external-actor

What happens: ad-production-brief reads the polished script and the format spec (Standard DTC — direct to camera) and generates the Filming Briefing document. This document is what Bonnie or an external actor receives. It contains: an overview section (expert, format, tone, total scripts in the batch), then one block per script — the full spoken script in scene order plus high-level stage directions. It strips everything else: no Ad Copy Block, no proof IDs, no construction log, no arc allocation, no internal strategy. After the brief is approved, the downstream steps are: create the FILMING/SHOOT ticket in Fibery, attach the brief as a PDF via catbox.moe, and post the Slack alert to #shoot-updates.

Filming Briefing document — shape and per-script block representative — structure from skl-operations.md Stage 2; script content is real (from the polished sw-tc001)
FILMING BRIEFING
Expert: Amelia Fenmore (IDA — Interior Design Academy)
Batch: IDA-AGE-OBJECTION-2026-06-11
Format: Standard DTC (direct to camera, single location)
No. of scripts: 5
Shoot date: [to confirm]
──────────────────────────────────────────────────────────────────

OVERVIEW

These are direct-to-camera ads. Amelia speaks to the viewer as if she is talking
to a friend — not pitching, not performing. Calm authority throughout. The goal
is to make the viewer feel heard, not sold to.

Setting: home office or kitchen — real, lived-in. No studio backdrop.
Wardrobe: as per prior DTC sessions.
Camera: direct eye contact throughout. No intro to camera, no sign-off. Each
        script starts mid-thought.

──────────────────────────────────────────────────────────────────

SCRIPT 1 — IDA-AGE-V1-AgeTooLate
Format: Standard DTC
Runtime: ~75 seconds
Tone: Empathy-led, calm, validating. Not urgent.

SCENE 1: HOOK [0:00-0:08]
Direct to camera. No setup. Opens mid-thought.

AMELIA: "If you're 50 or older and you've been telling yourself it's too late to
start something new. I want you to hear this."

SCENE 2: TRANSITION [0:08-0:14]
AMELIA: "I speak to people in this position every single week."

SCENE 3: STRUGGLE [0:14-0:34]
AMELIA: "They've been told to take online courses. Build a personal brand. Start
from scratch. And none of it works, because none of it accounts for the one thing
they have more of than anyone else in the room."

[Pause. Let that land.]

AMELIA: "Here's the truth. Right now it feels like that counts for nothing."

SCENE 4: TURNING POINT [0:34-0:56]
AMELIA: "I want to tell you about Alexander. Laid off at 55 after 30 years in
sales. 30 years."

[Pause — second "30 years" lands slower, full stop before continuing.]

AMELIA: "He started a design business built around what he already knew. Now earns
£2,500 per project, 2 to 3 projects a month. First time in 30 years the work felt
like his."

SCENE 5: INSIGHT [0:56-1:07]
AMELIA: "The approach we teach doesn't require a degree. It doesn't require a
following. It doesn't require starting from scratch. It's built around one skill
your life experience makes you better at. Not worse."

SCENE 6: TRAINING INTRO + SOCIAL PROOF [1:07-1:20]
AMELIA: "I made a free training that walks you through exactly how this works."

[No breath between the three names. Stack them tight — the rhythm is deliberate.]

AMELIA: "James, 15 years in IT, now $8,000 a month working 4 days a week.
Sophia taught for 18 years, built $2,800 a month in 9 months. Adriana was 47,
22 years in teaching, now earning $4,800 a month."

SCENE 7: CTA [1:20-1:28]
AMELIA: "The link is below. It's a free training. Your experience isn't the problem.
The vehicle you were handed for it is."

──────────────────────────────────────────────────────────────────
HIGH-LEVEL SHOT DIRECTION (this script only)
  Single location throughout. No B-roll required.
  S3: each failed attempt (courses, brand, from scratch) lands before the next.
      Small beat before "right now it feels like that counts for nothing."
  S4: the second "30 years" is the key delivery note. Slower. Full stop.
  S5: Three statements — each lands slightly harder than the one before.
  S6: no breath between James, Sophia, Adriana. The speed is intentional.
  S7: quiet and resolved. Not urgent. Do not rush this.

[Scripts 2–5 follow in same format]

──────────────────────────────────────────────────────────────────
NO META COPY. NO INTERNAL STRATEGY. NO PROOF IDs.
This document is for the actor only.
──────────────────────────────────────────────────────────────────
How to read it: The actor sees only what they need: the overview, the script, and high-level direction notes. The proof IDs, arc allocation, construction log, and ad copy block are not in this document. The stage direction in S4 — "the second '30 years' is the key delivery note" — is the minimum instruction needed to get the Hard Landing Repeat right on camera. Everything else is stripped. This is the document that goes to Bonnie or the external actor as a PDF.

Downstream: FILMING/SHOOT ticket + #shoot-updates Slack alert

Created by /ad-brief after the filming brief is approved
StepWhat happens
1. Create FILMING/SHOOT entityName follows naming-conventions.md (Talking Head format: IDA_TH_AGE-2026-06-11 or equivalent). IDENTITY = IDA. Video Type = ADS. State = UPCOMING.
2. Link creativesadd_collection_items on FILMING/Setup (link the setup) and COMPANY HUB/CREATIVE-NEWS (link all scripts in the batch).
3. Attach brief as PDFUpload to catbox.moe → copy URL → attach to Fibery FILMING entity's File Attachments section. This is the canonical procedure (skl-operations.md Stage 2).
4. Slack alert to #shoot-updates:memo: *PREP FOR FILMING* | ID: [ticket] | Shoot Date: [date] | No. of Scripts: 5 | Owner: <@Asel> | Talent: <@Bonnie> | [Fibery Board Link]
What to look at
  • The filming brief uses the polished script — not the draft. The em-dash fixes and the VF2 Direct Truth Bridge addition from Stage 4 are reflected here. Bonnie sees the clean version.
  • The footnote at the bottom of the brief ("NO META COPY. NO INTERNAL STRATEGY.") is not decoration — it is an operational reminder that this document travels outside the team. The actor should never see the proof IDs, arc allocation, or forbidden-word reasoning.
  • Production Status remains "Script Drafted" until the INGEST ALERT. It does not change when the brief is sent or when filming is scheduled.

Stage 7 Endpoint 2 (secondary): AI-UGC via ugc-factory

The secondary production pathway — mainly used for hook-variation iterations right now. Unlike the actor brief, ugc-factory needs the full stage directions, durations, and speaker labels to function. The script is not stripped; it is fully preserved.

Endpoint 2 — AI-UGC Pathway (secondary)
When this route fires

After /ad-polish, every script is assigned a routing flag from the concept card: EXTERNAL-ACTOR, INTERNAL-TEAM, or AI-UGC. The AI-UGC (artificial intelligence user-generated content) pathway fires when the flag is set to AI-UGC — which, in the current system, is primarily for hook-variation iterations and for formats that are blocked on the filmed pathways (2-Person Friends, 2-Person Recognition, Day in the Life, Multi-Scene Founder, Street Interview). The operator selects the pathway at script-approval time, not at brief time. This is a branch, not a step after /ad-brief.

$ /ad-brief --creative AGE-V1-AgeTooLate-HOOK3 --routing ugc-factory

What happens: ad-ugc-handoff builds the AI-UGC handoff brief — the full script with all stage directions, durations, and speaker labels intact. This goes directly to the ugc-factory pipeline: NBP Pro (generates reference images for identity lock) → Enhancor (applies identity consistency across frames) → Seedance 2.0 (generates the video). The operator sees the generated MP4s before they go to post-production. No auto-promotion — the approval gate is mandatory.

AI-UGC Handoff Brief — hook-variation iteration on Hook 3 (HT9 Epiphany Bridge) representative — structure from production-pathways.md; content constructed from real hg-cold hooks
AI-UGC HANDOFF BRIEF
Expert: Amelia Fenmore (IDA)
Creative: IDA-AGE-V1-Hook3-EpiphanyBridge
Pathway: NBP Pro → Enhancor → Seedance 2.0
Purpose: Hook-variation iteration — testing HT9 (Epiphany Bridge) against the
         F5 (Identity Callout) hook used in the primary filmed script.
Operator approval gate: REQUIRED before post-production handoff.
──────────────────────────────────────────────────────────────────

IDENTITY ANCHOR
  Reference pack: ugc-factory/assets/identity-anchors/ida/pack-clean/
  Headshot refs: 4 (no UI chrome)
  Identity lock method: NBP Pro (current) — Higgsfield pending Gelo's docs

MOTION PROFILE
  Format slug: standard-dtc
  Profile: ugc-factory/profiles/standard-dtc.json
  Camera: handheld, slight drift — lo-fi feel
  Setting: home interior (warm tones, real background)

──────────────────────────────────────────────────────────────────
SCENE 1: HOOK [0:00-0:07] — ~15 seconds duration
Speaker: AMELIA
Format: Talking head, confessional tone, leaning slightly toward camera.
Action: Amelia seated close to camera, slightly leaned in. Text overlay fades in:
        "I kept hearing the same thing." — then disappears before she continues.
Setting: Home setting, warm and informal.

AUDIO: "I kept hearing the same thing from people my age and older. 'I have so
much experience and nowhere to put it.' And at some point I realised — that wasn't
a personal problem. That was a vehicle problem."

──────────────────────────────────────────────────────────────────
SCENE 2: TRANSITION [0:07-0:12] — ~5 seconds
Speaker: AMELIA
Action: Slight camera pull-back, still direct to lens.

AUDIO: "I speak to people in this position every single week."

──────────────────────────────────────────────────────────────────
SCENE 3: STRUGGLE [0:12-0:32] — ~20 seconds
Speaker: AMELIA
Action: Conversational, unhurried. Each failed attempt is its own beat.

AUDIO: "They've been told to take online courses. Build a personal brand. Start
from scratch. And none of it works, because none of it accounts for the one thing
they have more of than anyone else in the room."

[Pause. Let that land.]

AUDIO: "Here's the truth. Right now it feels like that counts for nothing."

──────────────────────────────────────────────────────────────────
SCENE 4–7: [Full scenes continue with durations and action notes]
──────────────────────────────────────────────────────────────────

GENERATION INSTRUCTIONS FOR SEEDANCE 2.0
  Resolution: 1080×1920 (9:16 vertical)
  Duration: 75s total
  Identity lock: apply across all scenes using Enhancor pass
  Lip sync: English — sync to AUDIO tracks above
  Output: MP4 (H.264, 30fps)

──────────────────────────────────────────────────────────────────
OPERATOR APPROVAL GATE
  Review generated MP4s at: [fal.ai run URL — populated at generation time]
  Check: identity lock held across scenes? Lip sync clean? Lighting consistent?
  Approve: hand to skl-operations/post-production-intake
  Reject: flag scene(s), re-generate with adjusted parameters
  No MP4 proceeds to editing without explicit operator approval.
──────────────────────────────────────────────────────────────────
How to read it: The key difference from the actor brief is what the document keeps. Where the actor brief strips stage directions to high-level notes, this brief preserves full stage directions, durations, and speaker labels — because Seedance 2.0 uses them to generate the video. "Lean slightly toward camera" is not a note for a human; it is a generation parameter. The operator approval gate at the bottom is the HITL (human in the loop) check — no generated MP4 goes to editing without explicit operator sign-off on identity lock and lip sync quality.

ugc-factory vs actor brief — the key differences

Why the two endpoints produce structurally different documents
ElementActor / Bonnie Brief (Endpoint 1)ugc-factory Brief (Endpoint 2)
Stage directionsHigh-level only ("the second '30 years' lands slower")Full — every scene has action notes and a duration
Speaker labelsAMELIA: (kept for scene clarity)Speaker: AMELIA (required for multi-speaker generation)
DurationsOmitted — actor reads the roomExplicit per scene — Seedance needs them
Internal strategyStripped — not the actor's concernStripped — also not included
Ad Copy BlockStripped — actor never sees PT/H copyStripped — post-production handles copy
Approval gateOperator approves brief before sendingOperator approves generated MP4s before editing
Primary use nowAll filmed formats (DTC, Selfie, FAQ, etc.)Hook iterations + formats blocked for filming (2-Person, Street Interview, Day in the Life)
What to look at
  • The AI-UGC pathway is the only viable path for several formats in the production matrix: 2-Person Friends, 2-Person Recognition, Day in the Life, Multi-Scene Founder, and Street Interview are all blocked on the filmed pathways. If a concept card specifies one of these formats, it will always route here.
  • The identity lock between NBP Pro and Enhancor is still being documented for IDA (Gelo's Higgsfield integration is pending). Before running a batch through ugc-factory, confirm the identity-lock reference pack exists at ugc-factory/assets/identity-anchors/ida/pack-clean/.
  • After approval, both pathways converge at skl-operations/post-production-intake — the same editing queue. The editor does not need to know which pathway produced the footage.

Glossary Every abbreviation, spelled out

In full, the first time any term appears — and here for reference.

TermIn full / what it means
AI-UGCArtificial Intelligence User-Generated Content — an ad production pathway that uses AI video generation tools (NBP Pro → Enhancor → Seedance 2.0) to produce the ad creative without a human actor filming it. Used primarily for hook-variation iterations and for formats blocked on filmed pathways.
CTACall to Action — the final scene of the ad script. For IDA (Amelia Fenmore), this is a soft close that directs the viewer to the free training link. Never urgency language, never pressure.
DTCDirect to Camera — a video ad format where the presenter speaks directly into the camera lens, as if talking to a single viewer. The Standard DTC format is Amelia speaking alone in a real home setting.
F1–F12Cold Traffic Core Hook Frameworks 1 through 12 — the 12 core cold-traffic hook frameworks defined in ad-hook-generation.md. F5 is Identity Callout (used in sw-tc001). F1 is Contrarian Claim. Full list in the hook-generation skill file.
FiberyFibery (project management platform) — the system of record for all IDA creative entities, their production status, and their Meta performance data. Every script logged by /ad-log creates a CREATIVE entity here.
Hard Landing RepeatHard Landing Repeat — a Voice Book delivery device where a key phrase is spoken twice, the second time slower and with a full stop before continuing. Used in sw-tc001 on "30 years. 30 years." to let the weight of the number land.
HermesHermes (autonomous agent layer) — the always-on agent fleet that keeps the Supabase data layer current between sessions. Curator-Hermes maintains the ad swipe library. Scout-Hermes runs daily. Sales-Hermes extracts audience voice weekly. Format-Hermes recommends format mixes at classify time.
HITLHuman in the Loop — the operator approval gate that sits between every automated step and the next production stage. In V1, no step in the main creative pipeline is fully autonomous — the operator sees and approves at every gate.
HT1–HT12High-Ticket Cold Traffic Hook Frameworks 1 through 12 — hook frameworks designed for high-ticket (£2K+) cold traffic audiences. HT9 is Epiphany Bridge (Hook 3 in the eval run). HT11 is Permission Slip (Hook 10). Full list in ad-hook-generation.md.
ICPIdeal Customer Profile — the specific type of person an ad is designed to speak to. IDA's primary ICP is T1: full-time employees, near-retirees, and burned-out professionals aged 50+. T2 is career-change seekers aged 35–50. T3 (side-income seekers) is excluded from Pioneer batches.
IDAInterior Design Academy — the expert identity for Amelia Fenmore, an interior-design business coach who teaches people to build design businesses around their existing life experience. IDA's expert namespace in all system data is "ida". The full expert name is "Amelia Fenmore."
NCNegative Constraint — a binary rule derived from loser-pattern analysis in ad-autopsy. Every active NC row is checked against every concept card in the review pass. A single NC violation kills the concept card, no operator override.
Pioneer modePioneer mode — the operating mode for a first batch of ads for a new angle or a new expert. Pioneer mode reads competitor intelligence and audience voice only; it does not use IDA's own live performance data, because no performance data exists yet for this angle. Contrast with Iteration mode, which reads IDA's own winning and losing creatives.
PT1 / PT2 / PT3Primary Text variants 1, 2, and 3 — the three ad copy text blocks that appear in the Meta Ads Manager ad creation. The video does 95% of the selling; the primary texts are soft wrappers that frame the video in the feed. Three variants are required for A/B testing.
SPBSocial Proof Bridge — the mandatory script section that stacks three proof entries (Pioneer students) with no connective tissue between them. The speed and absence of pauses is a deliberate structural signal: the sheer accumulation of results is the argument. Never skipped in any IDA format.
SupabaseSupabase (database platform) — the PostgreSQL-based database that hosts the SKL ad creative system data layer. Seven layers from raw ad captures through to launch learnings. All runtime reads by skills go to Supabase views, never to Fibery or Google Drive directly at runtime.
T1 / T2 / T3ICP Tier 1 / 2 / 3 — the demographic tier system for IDA audiences. T1 is the primary buyer (50+, full-time employees, near-retirees). T2 is career-change seekers (35–50). T3 is excluded from Pioneer batches because they are a different buyer type who respond to different arcs.
TEASER (mechanism reveal)TEASER — mechanism reveal level — the script must tease what the approach does (it works; here is a result) without revealing how it works (no steps, no phases, no sequence, no element count). Contrast with REVEAL, which is reserved for warm retargeting where the viewer has already seen the free training.
Three Nots + PositiveThree Nots + Positive — a Voice Book structural device: three things the approach does not require (no degree, no following, no starting from scratch), followed by the one thing it does require. Appears in Scene 5 of sw-tc001. Tied to the Negative Elimination arc.
TOFTop of Funnel — cold traffic — people who have never seen Amelia Fenmore's content before. All Pioneer batch ads target TOF audiences. They drive viewers to a free training, not directly to a sales call.
VF2Voice Fidelity Check 2 — Direct Truth Bridge — a mandatory Voice Book signature requiring either "Here's the truth" or "Honestly" to appear in the spoken script. Absent in the sw-tc001 draft; restored in the polished version. Its presence makes the script sound like Amelia speaking plainly to a friend.
Voice BookExpert Voice Book — the structured Voice Profile built by ad-voice-profile for each expert. For IDA (Amelia Fenmore), it contains signature delivery patterns (Hard Landing Repeat, Three Nots, Direct Truth Bridge, Soft CTA), prohibited words, and proof-presentation rules. ad-scripter-write reads the Voice Book at every invocation and halts if it is empty for the expert.
VOCVoice of Customer — the real language used by IDA's prospects, students, and sales-call attendees. Extracted weekly by Sales-Hermes from intake forms and call transcripts and loaded into L7 (Audience Voice data layer). Scripts draw from this language bank so the spoken copy reflects how the audience already talks about their problem — not how a copywriter would describe it.
VSLVideo Sales Letter — a long-form video (typically 20–60 minutes) used as the main conversion mechanism. IDA uses a VSL funnel — the free training is a VSL. Not the same as the short-form Meta ads this pipeline produces, though the two share voice and proof conventions.
W1–W10Warm Traffic Retargeting Frameworks 1 through 10 — hook frameworks designed for audiences who have already seen Amelia's content. Irrelevant for Pioneer batches (cold traffic only) but used in hook-variation iterations for audiences who have visited the free training.