Pipeline Hub

format-ai-actor-demo

Short (15-35 s) TikTok-Shop-style product demo ad: an AI actor says a callout to camera, names the problem in one line, the band is demoed (ugc-omni product gate, real footage as fallback), then the result and a guarantee CTA. Recipe B (callout, her burden, guarantee/science authority), never a testimonial.

Lane: — · not built yet: 3 (see below) · source: /Users/ayden/.openclaw/workspace/skills/format-ai-actor-demo

SKILL.mdbeat-sheet.mdsources.mdEvals (7)Learnings (15)

AI actor demo: beat sheet + line rules

Runtime target 25-30 s (range 15-35 s). Words = runtime × the locked Omni pace (lock measures it; omni.py default 2.7 wps, 10-06 measured 2.2-2.7). That gives 65-85 words, 6-9 pack lines. Every line is one Omni take, ≤10 s (plan_line refuses longer lines). Most lines are 8-16 words (4-6 s buckets, the cheapest).

# Beat % Lines Visual (job.json) Job Line rules
1 Hook to camera 0-12 1 (H1/H2/H3 variants) AI UGC, frame avatar Stop HER: name her by an observable symptom, in action 8-14 words; 2nd person or a callout about her ("If you're…", "The seventh alarm in your house is you"); emotion + curiosity gap + high stakes; no product, no backstory, no "Hi guys"; overlay text = this line
2 Problem in one line 12-28 1-2 broll:<sleeps-through-it> (band-free omni b-roll or a real clip, e.g. Lori boy + phone alarms), then back to her The burden + the root cause Concrete counts/times from VOC; failed solutions generic (louder alarms, phone across the room, lights on): never brand names, never bed shakers; root cause = sound doesn't reach a deep-sleeping brain (Fish's ruled line, verbatim or the claims-register wording)
3 Demo 28-60 2-3 scene change: frame scene2 (band on the counter, gated); product line product: true + end_frame: holding; then broll:<band clip> (gated omni or real) over her voice Show the band doing its one job First product mention here, named once ("Dawn Band"); touch gets through; silent to everyone else in the house; keeps buzzing, stronger, until he turns it off. The words describe what the shot shows at that moment (KJ: "show what she's saying")
4 Result 60-82 1-2 AI UGC on scene2, or a real "kid out the door" clip Payoff on HER, then his independence Her quiet morning / not the alarm anymore comes first; he gets himself up comes second; no exaggerated transformation; no college/kid-money stakes
5 CTA 82-100 1 AI UGC, then endcard.py 2.5 s with the real cutout Risk reversal + action "60 nights" guarantee as reassurance, not the headline; no spoken price (price test live since 10-04); end card (optional, --end-card; off by default per Fish 10-06) carries name + offer

Line rules (all beats)

Register cells (one per ad; the cell IS the test variable)

Structure example (ILLUSTRATIVE — shows the shape only, not shipping copy; real lines come from VOC with src IDs and Fish's approval)

  1. H1 [AI UGC, avatar] "If you're still knocking on his door at six forty, this is for you." (hook)
  2. [broll: real boy asleep, phone alarms going] "He's not ignoring you. Sound just doesn't reach a brain that deep asleep." (problem + root cause)
  3. [AI UGC, scene2, product line: she lifts the band off the counter into her palm → end_frame holding] "So this goes on his wrist. Dawn Band. It buzzes, nobody else hears it." (demo, product named)
  4. [broll: band on his wrist, kid sitting up (gated omni, or real)] "And it keeps getting stronger until he turns it off himself." (demo, mechanism)
  5. [AI UGC, scene2] "Now I drink my coffee while he gets himself up." (result on her → his independence)
  6. [AI UGC, scene2] "Sixty nights. If it doesn't wake him, you don't pay." (CTA) → end card (optional, --end-card; off by default per Fish 10-06)

≈ 70 words ≈ 26 s at 2.7 wps. H2/H3 swap only line 1.