answer-ads-questions
Answer questions about a brand's Meta ads (spend, results, which ad is winning, is it paused,…
Composite a generated creator track into a product layer, per beat — in the creator's zone on split beats (either side of a seam), full frame on creator beats, hidden on product beats — with the creator's voice as the audio (loudness -14 LUFS) and an optional ducked music bed,
$ npx -y skills add gooseworks-ai/goose-skills --skill compose-creator-layer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/compose-creator-layerContext preview
The summary Claude sees to decide when to auto-load this skill.
Composite a generated creator track into a product layer, per beat — in the creator's zone on split beats (either side of a seam), full frame on creator beats, hidden on product beats — with the creator's voice as the audio (loudness -14 LUFS) and an optional ducked music bed,
name: compose-creator-layer description: Composite a generated creator track into a product layer, per beat — in the creator's zone on split beats (either side of a seam), full frame on creator beats, hidden on product beats — with the creator's voice as the audio (loudness -14 LUFS) and an optional ducked music bed, or a music-only or silent master for voiceless formats. Free, local ffmpeg. Pairs with footage-cutlist (the layer) and create-creator-takes-h3 (the creator). Use for split-screen, screen-insert and any creator-over-product format. status: active
python compose.py --layer layer.mp4 --beats cutlist.aligned.json --creator creator.mp4 \
--out reel.mp4 [--music bed.mp3 --music-db -20] [--head 0.30]`--beats` (re-render it after `align_beats.py`). `--draft` layers are refused.
(voiceless paid ads), or a silent master (organic posts: the track is added in-platform at upload, which is licensed for organic use only).
during its own `creator` beats.
(0 keeps the top, 0.5 centres). 0.30 keeps the head in the upper third.
1. **Crop from the take's real size**, never a hard-coded height. A hard-coded 1080 once cropped the top half of an upscaled take and blew it up. 2. **No grade.** Chasing a saturation or warmth reading was tried twice and both looked wrong. The take goes in as generated. 3. **The voice leads.** A music bed is ducked under the voice (sidechain); the mix is normalised to -14 LUFS. 4. **Captions come after this** (`caption-burn`, transcribed from this output).
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.
Repo: gooseworks-ai/goose-skills
Answer questions about a brand's Meta ads (spend, results, which ad is winning, is it paused,…
Burned-in captions for a finished vertical video, three kinds. transcribe.py gets word…
Generate an AI creator talking to camera, saying an approved script, as one continuous track…
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...),…
Generate a single photoreal or designed image with OpenAI gpt-image via fal.ai. Supports…
Generate an instrumental music bed via ElevenLabs Music, ROUTED THROUGH THE elevenlabs-proxy…