Pipeline Hub

format-whistleblower

Insider confession ad, 60-180 s. A school-side insider (attendance clerk, school nurse, bus driver, truancy officer, pediatric sleep nurse) with her face hidden confesses what she sees every school morning and which parents get wrongly blamed, then tells one mom's story through to the fix.

Lane: cartoon-h3 narrator (animated, default); photoreal execution = ugc-omni (silhouette insider frame, gates G0-G4) · not built yet: 1 (see below) · source: /Users/ayden/.openclaw/workspace/skills/format-whistleblower

SKILL.mdbeat-sheet.mdsources.mdEvals (6)Learnings (12)
1. Read first2. When to use / when not3. The format4. Why it sells5. Beat sheet (full rules in references/beat-sheet.md)6. Pack spec7. Visual grammar8. Audio9. Production10. Gates & QA checklist11. Variants & test plan12. Failure modes13. Sources

format-whistleblower — the insider confesses, the mom is cleared

1. Read first

2. When to use / when not

3. The format

4. Why it sells

5. Beat sheet (full rules in references/beat-sheet.md)

Beat % runtime Job Must contain
1 Confession hook 0-8 Stop the scroll on her An against-interest admission + the mom named by a symptom; the role is clear by line 2; no backstory
2 What I see every morning 8-28 Prove the pattern is real Concrete counts/times from the insider's vantage; the moms, not the kids, carry it; generic failed solutions the moms tell her
3 The wrongly-blamed parent 28-50 Put the stake on HER One specific mom; the blame lands on her (letter in her name, meeting, CPS mention, family); her verbatim VOC line quoted
4 The real cause 50-65 Root cause + clear her Fish's ruled root-cause line verbatim; "it was never her"; how the insider knows
5 What works 65-88 Mechanism + product + payoff Touch gets through; silent to everyone else; keeps going until he turns it off; product named once; the insider sees that mom on time / cleared
6 Offer 88-100 CTA Product name + 60-night wake-up guarantee; the insider's closing wish (fewer letters to sign); end card (optional, --end-card; off by default per Fish 10-06)

6. Pack spec

7. Visual grammar

8. Audio

9. Production

Animated (free until gate 4):

P=output/concept-packs/<slug>.md   # <slug>.args: --char-ref "insider=<png>" --char-ref "mom=<png>" --env "<room>=<png>" --characters "the insider, Mom and <kid>"
A=(${(z)"$(python3 -m scripts.cartoon_h3.packargs $P --storyboard)"}); A=(${(Q)A})   # core §5; re-run without --storyboard once sheets exist
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage vo        # EL VO + vo_check gate (EL quota)
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage storyboard   # free
python3 -m scripts.cartoon_h3.sheet <out.png> <prompt.txt> [ref.png ...]   # each sheet PAID ~$0.15-0.30, after Fish's go
touch output/cartoon-h3/<slug>/storyboard.approved                         # Fish only
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage canvas           # image-gen role (registry), paid ~$0.22/batch
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage gen --prompts-only   # Fish reviews motion prompts
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage gen --spend --backend fal --model h3-max --batches 1   # smoke, then the wave
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage assemble        # + (optional end card) + gemini_qa

Photoreal (ugc-omni; skills/ugc-omni/SKILL.md owns the engine, read it, never edit it; every paid step dry-runs until --spend): - Job shape (references/omni-job.example.json): style: photoreal, mode: cuts, aroll_model: flash, resolution: 1080p, image_arms: ["gpt2", "sd5"], product_refs: ["@dawn"], product_truth with ugc-omni's display-off sentence, plus core §5 keys and label: "Dramatization". - Frames: avatar = MOM (fully lit; b-roll uses her as the identity ref, a different outfit per shot, KJ); insider = the silhouette frame (seated before a bright window, face in shadow). Every INSIDER pack line → lines[] entry with frame: "insider", visual: "AI UGC", or "broll:<id>" for the literal cutaway of what she describes (her voice runs under it). MOM's voiced lines (if any) → frame: "avatar". - prompt.scene: "Static locked-off shot, UGC iPhone footage of a woman seated in front of a bright window, her face in shadow and unreadable, only her outline and hands visible. She stays still and talks quietly, confiding." says: "The woman says:"; rules end "One take, no jump cuts. Same avatar, same location, same camera framing. Do not recompose the shot. No captions, subtitles or on-screen text." Never "mouth moving" or "eye contact" for her. - Product (beat 5 only): broll.<id> with product: true, display: "off", band worn on the kid's wrist (wrist down/resting, close); gated by pick --name broll_<id> --product; real footage = fallback (copy the clip to <job>/broll/<id>.mp4). - Hooks: hook + end_frame: "insider" on each hook line.

O=scripts/ugc_omni/omni.py; J=output/ugc_omni/<slug>
python3 $O board --job $J                                         # G0: structure clean ("not picked yet" only) → Fish
python3 $O refscan --job $J --src <real mom creator video>; python3 $O ref --job $J --pick $J/ref/<cand>.jpg
python3 $O avatar --job $J --n 3 --arms gpt2,sd5 [--spend]; python3 $O pick --job $J --name avatar --file $J/avatar/<pick>.png
python3 $O ref --job $J --pick <real back-lit/silhouette frame, picked by eye>        # refscan's face detector can't rank silhouettes
python3 $O avatar --job $J --n 3 --arms gpt2,sd5 [--spend]; python3 $O pick --job $J --name insider --file $J/avatar/<pick>.png   # G1
python3 $O lock --job $J --line H1-1 --frame insider --n 3 [--spend]; python3 $O lock --job $J --approve $J/lock/<take>.mp4    # G2
python3 $O gen --job $J --lines all [--spend]; python3 $O verify --job $J                                                     # G3
python3 $O broll --job $J --id <id> --stage frame [--spend]; python3 $O pick --job $J --name broll_<id> [--product] --file <png>; python3 $O broll --job $J --id <id> --stage anim [--spend]
python3 $O assemble --job $J --hook H1; python3 $O cost --job $J; python3 scripts/meta_preflight.py $J/final/<slug>-H1.mp4   # G4

10. Gates & QA checklist

11. Variants & test plan

12. Failure modes

13. Sources

~/research/davidaistar/REPORT.md §2.5 + §3 rows 2/5; foreplay/02_whistleblower.gemini.md, 05_founder.gemini.md, 08_authority.gemini.md; analysis/diff_podcast_dialogue.md, diff_copy.md, diff_ai_ugc.md; MAP.md; dawn-stakes.md + raw banks; research/voc-blame-2026-10-04/thread_1de6jwp.txt; product-truth.md; claims-register.md; survey-intel 09-04; cartoon-h3 SKILL.md + scripts/cartoon_h3/{run,pack,vo,vo_check,assemble,clipqa,sheet}.py; ugc-omni SKILL.md + scripts/ugc_omni/omni.py; feedback_ai_avatar_broll_lane; 10-01 attendance-office pack + launch memory. Detail in references/sources.md.

Not built yet (needs Fish's go)

Every line in this skill that mentions something not built, roughly de-duplicated. Some items repeat in different words.