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-UGC \"stitch reply\" ad from a config: one voiceover carries a verbatim testimonial while about 30 short clips (one creator across about 5 outfits and 3 settings, plus product B-roll) are trimmed to windows cut from the voiceover's word timings and joined.
Claude Code
$ npx -y skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch --agent claude-code
Codex
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a codex -y
Cursor
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a cursor -y
Gemini CLI
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a gemini-cli -y
GitHub Copilot
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a github-copilot -y
OpenCode
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a opencode -y
Windsurf
$ npx skills add gooseworks-ai/goose-skills --skill render-narrated-ugc-wardrobe-stitch -a windsurf -y
name: render-narrated-ugc-wardrobe-stitch description: "Assemble a narrated-UGC \"stitch reply\" ad from a config: one voiceover carries a verbatim testimonial while about 30 short clips (one creator across about 5 outfits and 3 settings, plus product B-roll) are trimmed to windows cut from the voiceover's word timings and joined. The voiceover sits over a ducked music bed, word-by-word captions run throughout, a landing-page scroll is animated from a screenshot, and the brand's real end card closes it (never AI-rendered text). Free, deterministic assembly using the shared stitch-videos-ffmpeg helper; the voiceover, creator stills and clips come from create-vo-elevenlabs, create-image-gpt-image-fal, create-image-fal and create-video-fal. Use for the narrated-ugc-wardrobe-stitch format." status: active version: "1.0.2"
Assemble a **narrated-UGC "stitch reply"** ad from a config: a fast-cut vertical testimonial where a single spoken VO carries a verbatim ~13-sentence testimonial over ONE creator across ~5 wardrobe changes in ~3 micro-worlds, interspersed with product B-roll (e.g. product macro, unboxing, a landing-page scroll), ~30 hard cuts on the VO cadence, closing on a brand end card. This capability is the **FREE, deterministic assembly** — trim-to-EDL, hard-concat, the VO+music mix, the word-by-word caption burn, the landing-page zoompan, and the end-card append.
`scripts/config.example.json` is one worked example (the fictional Sunnook "Don't buy Sunnook Tan Mousse" demo, ~37s 1080×1920 9:16, ~30 body cuts + a ~2s end card) — its creator, voice, hook, worlds and music are that demo's answers, not defaults; `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 by the user (the recipe's `choices`) and arrive in the config; this assembly never picks them.
31-year-old curly-haired woman.
matched to its creator.
demo used a "Don't buy <brand>" reversal.
and mix the VO alone.
This is the **FREE, deterministic** assembly stage — it spends nothing. The paid inputs are separate capabilities — the spoken VO (`create-vo-elevenlabs`) Whisper-aligned so the WORD BOUNDARIES set the cut grid; one locked creator (`create-image-gpt-image-fal` anchor + ~5 wardrobe edits chained off the anchor) + 3 world wides + per-cut start-frames (`create-image-fal` product composites); and one Veo/Seedance i2v clip per cut (`create-video-fal`). Given the VO + `vo-final.words.json` + `edl.json` + one clip per cut + a Playwright landing-page PNG + the brand end-card PNG, `render-narrated-ugc-wardrobe-stitch` trims each clip to its EDL window, hard-concats on the VO cadence, mixes the VO over the ducked bed, burns the word-by-word captions, appends the end card → the master. Re-cuts reuse the existing VO / start-frames / clips and spend nothing.
**The assembly runs on a shared helper.** `montage.py` lives in the shared `stitch-videos-ffmpeg` atom, which this package lists in `requires_skills`, so it installs alongside. After `gooseworks fetch render-narrated-ugc-wardrobe-stitch` it is at `/tmp/gooseworks-scripts/stitch-videos-ffmpeg/scripts/montage.py`. Write a `montage.json` from the config (field mapping in `scripts/README.md`), then:
M=/tmp/gooseworks-scripts/stitch-videos-ffmpeg/scripts/montage.py python3 $M edl --spec montage.json --out edits/edl.json # check every clip + window first python3 $M run --spec montage.json --out edits/master-final.mp4 --workdir edits/work
`run` builds the EDL from the VO word boundaries (`word_range`), trims and hard-cuts every clip with the `filter_complex` concat filter, renders the landing-page scroll as a zoom/pan over the PNG, holds the end-card PNG, burns word-by-word captions (one word at a time in one colour, with `respell`; no active-word highlight), mixes the VO over the ducked bed, and masters to -14 LUFS. It writes `edits/work/manifest.json`. This package ships no scripts of its own.
ad is cut to it. Never plan the cut grid before the VO is locked and Whisper-aligned.
`reaction-insert`, `payoff-hold`, `b-roll-insert`, `landing-page`); snap every cut window to the word boundaries. The payoff line gets a HELD `payoff-hold` beat (~3× mean shot length).
hard-concat with `filter_complex concat` — the `-f concat` demuxer drops the audio when a drawtext/scale step shaves a clip a few ms below its window. No dissolves.
Whisper preset, bold yellow), on every word; re-spell brand tokens Whisper mishears against the locked script (Sunnook demo: "Sunnook" over "Sunook"; kept "I'ma" verbatim) — never edit the script to match Whisper. Captions are suppressed over the end card. If VEED mis-captions a brand token, hand-patch that sentence with local ASS karaoke.
scroll are interspersed with the creator cuts. The landing-page scroll is FFmpeg **zoompan*
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…