Pipeline Hub

format-skit

Short absurdist animated skit ad for Dawn (12-30 s) built on one escalating, sound-off-readable morning-failure gag (the kid sleeps through the smoke alarm, the tuba, mom's fifth knock) whose punchline is the band's silent buzz, or the same gag cut to a 3-5 s pattern-interrupt hook spliced in front of a proven body.

Lane: cartoon-h3 narrator (dialogue for in-scene shouts; song bodies via hooksplice) · not built yet: 2 (see below) · source: /Users/ayden/.openclaw/workspace/skills/format-skit

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 + word budgets in references/beat-sheet.md)6. Pack spec7. Visual grammar8. Audio9. Production (free until core §4 gate 4)10. Gates & QA checklist11. Variants & test plan12. Failure modes13. Sources

format-skit — one gag, sound off, the buzz is the punchline

1. Read first

2. When to use / when not

3. The format

4. Why it sells

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

Beat % runtime Job Must contain
1 Callout gag 0-20 Stop the scroll on HER Overlay names her symptom; line 1 names it too; ONE noise source, kid asleep, mom deadpan
2 Escalation 20-45 Raise the absurdity one step per shot 1-2 bigger attempts, one action per shot; kid still asleep; the cost on her (time, voice, coffee gone cold)
3 Turn 45-55 Root cause, one line Fish's ruled line verbatim: sound doesn't reach a deep-sleeping brain
4 Punchline 55-80 The silent buzz Product named; wrist resting, buzz lines, eyes open, he sits up; someone in the same wide stays asleep; "keeps going until he turns it off"
5 CTA 80-100 Offer Product + 60 nights, spoken; this line plays UNDER the end card (optional, --end-card; off by default per Fish 10-06) (overlay, not append)
- Hook-only: beats 1-2 only, inside 3-5 s; it ends on the open loop (kid still asleep, her face). No product, no turn, no buzz: the body owns those, and showing the product early breaks the body's reveal.

6. Pack spec

7. Visual grammar

8. Audio

Voice choice When How
Mom deadpan narrator (default) standalone; recipe B confession single EL narrator, ≥3.4 wps (vo_check FAIL below)
Brand-voice callout standalone; recipe B callout ("If you're his fifth alarm…") single narrator; test vs mom as the one variable
In-scene shouts, no narrator the yelling IS the gag dialogue pack, [MOM] "Ethan. Up. Now."; staged through the door / from behind (no lip-sync, core §3)
Base's voice hook-only whatever the base pack uses (body hash, §6)
Wordless (gag SFX carry it) Not built yet (needs Fish's go) VO is the clock (every pack line is an EL take), assemble strips clip audio (-an) and lays ONE bed: no tuba, no smoke alarm on the track
- Silent gag pauses don't exist in this lane: narrator dead air >0.4 s FAILS vo_check. Write a line for every shot; the timing comes from the words.
- One ducked bed (--music <path>). audio-library/INDEX.md has no comedic/upbeat bed (warm, cinematic, transition stings only); pick the least solemn one or source a licensed bed first (free task, Fish picks).
- End card (optional, --end-card; off by default per Fish 10-06) 3 s, an overlay on the last 3 s; the spoken CTA plays under it.

9. Production (free until core §4 gate 4)

# A) STANDALONE (style keys in front matter; refs in <slug>.args: --char-ref "label=<png>" ... --env "<room>=<png>" ... --characters "Mom, Ethan and the tuba player")
P=output/concept-packs/dawnbands-skit-<gag>-h1-<date>.md
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_check gate
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage storyboard             # free; Fish reviews storyboard.md
touch output/cartoon-h3/<slug>/storyboard.approved                         # Fish only
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage canvas                 # paid, ~$0.22/batch
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage gen --prompts-only
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage gen --spend --backend fal --model h3-max
python3 -m scripts.cartoon_h3.run "${A[@]}" --stage assemble --title-style dragon --music <bed>   # dragon = overlay held 4-6 s
# B1) HOOK-ONLY on an EL narrator/dialogue body (base = approved pack with body_start, already rendered)
B=output/concept-packs/<base>.md; H=output/concept-packs/<concept>-h<N>-l1-<date>.md   # copy of B, hook lines swapped (§6)
#   base already has lead_start → write ## Hook h<N> sections instead and: python3 -m scripts.cartoon_h3.matrix --base $B --variants <skit-hooks.md> --write
python3 -m scripts.cartoon_h3.run --pack $H --stage vo                       # log must say "body …s (shared <hash>)"
python3 -c "import json;print(json.load(open('output/cartoon-h3/<base-slug>/vo-receipt.json'))['body_hash'])"   # must equal <hash>; else STOP
python3 -m scripts.cartoon_h3.run --pack $H <base refs> --stage storyboard  # cache guard fails if body intents differ
# then canvas / gen as in A: log "shared segments: N clip files pulled from cache"; only the hook batch is paid
# B2) HOOK-ONLY on a SONG body (9-19 flow; hook is sung, lyrics block = base lyrics with the hook lines swapped, same suno_style)
python3 -m scripts.cartoon_h3.song --pack $H --takes 1                        # kie, ~12 cr per task (2 takes)
python3 -m scripts.cartoon_h3.hooksplice --pack $H --base output/cartoon-h3/<base-slug> [--take N]
python3 -m scripts.cartoon_h3.run --pack $H --song <base refs> --stage storyboard
python3 -m scripts.cartoon_h3.hooksplice --pack $H --base output/cartoon-h3/<base-slug> --copy-body   # writes body-reuse.json hook_batches
# canvas → gen → clipqa → assemble with --batches <hook_batches> (hookrun.sh does these 4 but is hard-coded to the 9-19 bluey refs: run them by hand)

10. Gates & QA checklist

11. Variants & test plan

12. Failure modes

13. Sources

REPORT §3 row 1 + §4; Foreplay foreplay/01_skits.gemini.md; analysis/gemini_IolBFaQIrl4.md, analysis/animation.md, analysis/diff_animation_styles.md; skills/cartoon-h3/SKILL.md; scripts/cartoon_h3/{hooksplice,matrix,readout,vo,pack,storyboard,endcard,assemble,run}.py, hookrun.sh; MAP.md; dawn-stakes.md; feedback_hook_taxonomy; corrections-hot 10-05/10-06; project_song_lane_2026-09-19.

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.