Skip to content
Marketing
Skill

/compose-creator-layer

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,

BOOST
From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill compose-creator-layer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/compose-creator-layer

Context 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,

SKILL.md

compose-creator-layer.SKILL.md
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

compose-creator-layer

Run

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]
  • `--layer`: `footage-cutlist` `cut.py` output rendered from the **same** cut list as

`--beats` (re-render it after `align_beats.py`). `--draft` layers are refused.

  • `--creator`: `create-creator-takes-h3` `join_takes.py` output, reel time from 0.
  • `--audio creator|music|none`: the voice (+ ducked `--music`), the `--music` bed alone

(voiceless paid ads), or a silent master (organic posts: the track is added in-platform at upload, which is licensed for organic use only).

  • The creator track may be shorter than the reel (a 2.3s reaction hook): it only shows

during its own `creator` beats.

  • `--head`: where the crop sits vertically when the creator is scaled to cover an area

(0 keeps the top, 0.5 centres). 0.30 keeps the head in the upper third.

Rules

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).

Read more
Ships withgoose-skills

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.

Get the whole plugin

Other skills on goose-skills.