goose-ads
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Assemble a narrated motion-graphic listicle video ad from a config: a voiceover (cloned or cast, in the chosen tone) reads a numbered list while N animated web-graphic beats in one branded design system (alternating tiles, big numerals, callouts) are rendered frame by frame and
Claude Code
$ npx -y skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle --agent claude-code
Codex
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a codex -y
Cursor
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a cursor -y
Gemini CLI
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a gemini-cli -y
GitHub Copilot
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a github-copilot -y
OpenCode
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a opencode -y
Windsurf
$ npx skills add gooseworks-ai/goose-skills --skill render-vo-anchored-motion-listicle -a windsurf -y
name: render-vo-anchored-motion-listicle description: "Assemble a narrated motion-graphic listicle video ad from a config: a voiceover (cloned or cast, in the chosen tone) reads a numbered list while N animated web-graphic beats in one branded design system (alternating tiles, big numerals, callouts) are rendered frame by frame and timed to the voiceover's words. Optional B-roll windows (a brand clip, an AI clip or a motion graphic) give the eye a break, and captions appear only inside those windows, with the voiceover mixed over a low music bed. Free, deterministic assembly; the voiceover, music and any AI clips come from create-vo-elevenlabs, create-music-elevenlabs and create-video-fal. Use for the vo-anchored-motion-listicle format." status: active
Assemble a **narrated motion-graphic listicle** ad from a config: a spoken voiceover carries a numbered listicle (hook + N points + CTA) and every visual beat is anchored to the VO's word-level timestamps. Each beat is a **web-animated hyperframe** (an HTML page + the Web Animations API driven by `window.renderAt(t)`) rendered to video frame-by-frame with Playwright, all in ONE branded design system (alternating background tiles, big hero numerals, body type, decorative accents, callouts). Optional color-graded **breather windows** give visual breath, and captions burn **only on the B-roll windows**. The shipped master is pure motion-graphic + VO — there is NO lipsync (the still headshot is kept only for a future lipsync variant). This capability is the **FREE, deterministic assembly** — the Playwright beat render, the ffmpeg concat, the window-masked caption burn, the VO+music mix, and the final composite.
`scripts/config.example.json` is the worked example (Truehour "doctor-educator" listicle, ~66s 1080×1920 9:16 at 25fps) — copy its structure, never its creative values; `scripts/PIPELINE.md` maps every config block to its source step and `scripts/README.md` documents the free assembly.
The creative calls are made upstream (the format recipe's `choices`, asked of the user) and arrive in the config; this assembly just renders what it is given. The demo's values are examples only.
The demo used a cloned doctor-educator.
The demo used expert tips with mistake → fix beats.
`accents` / `background_tiles`. The demo used EDUCATOR_MOTION with glass-pill callouts.
bed at ~0.18.
This is the **FREE, deterministic** assembly stage — it spends nothing. The paid inputs are separate capabilities — the spoken VO (`create-vo-elevenlabs`, a cloned or cast voice, `eleven_v3` + `atempo`) whose word-level timestamps (Groq `whisper-large-v3` word-level) set the timeline; the low music bed (`create-music-elevenlabs`); and any AI breather clips (`create-video-fal`, trimmed + color-graded; brand clips and motion-graphic breathers are free). There is no free stock-footage source. Given the VO + `words-flat.json` + the N authored hyperframe beats + the color-graded B-roll windows + the brand wordmark SVG, `render-vo-anchored-motion-listicle` renders each beat frame-by-frame via Playwright (all beats at fps 25), concats the beats + B-roll, burns the window-masked captions, mixes the VO under the low music bed, and composites → the master. Re-cuts reuse the existing VO / beats / B-roll and spend nothing.
spine; Whisper-transcribe it to word-level timestamps and anchor every beat reveal to those word times. There is no on-camera human and NO lipsync in the shipped master.
Web Animations API driven by `window.renderAt(t)`; Playwright screenshots it frame-by-frame and ffmpeg encodes it. This is NOT i2v — it is deterministic web motion graphics.
every beat and every B-roll window at fps 25.
tiles + accents + callout style) so N beats read as one designed reel; alternate only the background tile, keep numerals / body / accents / callouts consistent.
AI clip, or motion-graphic) to the palette (fps 25). These windows are the ONLY captioned windows.
caption — burning Whisper captions there double-stacks text. Build the caption ASS from the VO word timings, kept only inside the B-roll windows, 2-word chunks, closing a cue on any >0.4s word gap. The ASS `Format:` header MUST carry a `Name` field — without it the leading-comma bug eats the first field and captions silently drop. If the host ffmpeg lacks libass, render the cues as timed PIL PNG overlays (ffmpeg `overlay=…:enable='between(t,st,en)'`) at the same placement.
music choice; skipped if `none`) sits ~0.18 vol under it. No ducking needed at that level.
never text-in-diffusion.
Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Make product photos (studio, lifestyle or on a model) of a brand's real products with GooseWorks in this chat. Start brand work…
Make an approved GooseWorks video when an answer's next_step gives its command.
Make a video ad in this chat from a real reference ad, found or theirs; styles are the fallback. Follow every answer's next_step.
GooseWorks growth coworker and router for markets, competitors, audiences, creators, campaigns, ads, photos, graphics, video,…
Create a custom video with sourced product accuracy, explicit sound routing and exact-final audiovisual review.
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…