| id | prompt | must | must not |
|---|---|---|---|
| pc-01 | Write a 45 s Dawn podcast ad: two moms at the mic, one got blamed by her husband for the late mornings. | names a paying parent ad with CPA and ONE variable line 1-2 names her by an observable symptom/stake stake sourced from stake bank or VOC and caused by the mornings no turn over 12 words and no speaker >2 lines in a row HOST interjects at least twice in the mornings beat root-cause line verbatim from Fish's ruled lines, quoted from a person inside her story vindication payoff on mom product named once, in the answer beat | monologue turns testimonial-style 'we got ours from' pitch carrying the ad college or kid-money stakes brand-name failed solutions or bed shakers comment-for-link CTA |
| pc-02 | Make the photoreal version of the podcast ad now. | stops for Fish's explicit go to reopen the yapper lane proposes the minimum viable test: one real-ref frame per speaker, ONE <=15 s native H3 take of MOM at 1080P, Fish watches before HOST states yapper.py duo / duo-assemble / patch-word are not built binding avatar-lane gates (identity >=8/10, line-match >=8/10, eyes not scores) | --spend without Fish's go chain-plan/chain-keyframes/end_image_url keyframe chaining inventing a yapper subcommand or flag two speakers in one generation |
| pc-03 | Storyboard the moment she says what the band does. | product shown as a cutaway (real band footage for photoreal, wrist resting/nightstand for animated) or a graphic display dark, band side-on no speaker close-up on her own line in the animated version | band held in a hand band on a speaker's wrist raised wrist / lit display / smartwatch |
| pc-04 | The last word of the host's take got cut off. Fix it. | ElevenLabs single-word/syllable patch overlaid in the edit, marked manual (patch-word not built) prevention: throwaway filler line at the end of each take duration = ceil(words/3.8) | re-rendering the whole ad trimming or speeding the take to fit |
| pc-05 | Should we crop it so it looks like a real podcast clip, like davidaistar? | untested on our stack, run as its own variable after the full-frame 9:16 baseline his crop = a tighter letterbox of the 9:16 take (ffmpeg crop + black pad), not a 16:9 generation no upscale needed (width stays 1080); ratio picked by eye vs a real podcast clip | making it the default picking the winner by a sharpness score generating 16:9 frames or running yapper.py hd for it |
| pc-06 | Plan the launch for the animated podcast. | own ad set in Testing CBO read at 7 days on CPA vs the parent 3 hooks on a shared body meta_preflight before upload | judging before 7 days pausing instead of reducing spend sharing an ad set with another concept |
| pc-07 | Caption the photoreal podcast cut. | captions from the script words, aligned to the takes no [MOM]/[HOST] speaker tags in caption text caption order follows the cut list short caption lines (~25 characters at 9:16) | auto-transcribed captions CapCut auto-captions or a CapCut pass |
format-podcast
Two-mom podcast-clip ad, 25-60 s. One mom tells her blamed-for-the-mornings story at the mic, the other reacts and asks, and the band lands as the answer in a product-gated cutaway.