agent-routing
Decide which model, effort level, and cascade shape each subagent gets, and how to keep improvement loops safe…
Create video from prompts by overseeing multi-clip AI generation end to end: write a shot list, generate each scene with Gemini Omni Flash (via the Cloudflare AI Gateway), review the results, and assemble them into a finished cut. Use when the user asks to make/generate a video,
$ npx -y skills add oaustegard/claude-skills --skill creating-video --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/creating-videoContext preview
The summary Claude sees to decide when to auto-load this skill.
Create video from prompts by overseeing multi-clip AI generation end to end: write a shot list, generate each scene with Gemini Omni Flash (via the Cloudflare AI Gateway), review the results, and assemble them into a finished cut. Use when the user asks to make/generate a video,
name: creating-video description: "Create video from prompts by overseeing multi-clip AI generation end to end: write a shot list, generate each scene with Gemini Omni Flash (via the Cloudflare AI Gateway), review the results, and assemble them into a finished cut. Use when the user asks to make/generate a video, a short film, an animatic, or a multi-scene clip from a script or idea; when they mention Omni, Veo, text-to-video, or image-to-video; or when acting as the editing/director agent over generated footage. Triggers on 'make a video', 'generate a clip', 'short film', 'video from this script', 'turn this into a video', 'omni', 'veo', 'text to video', 'storyboard to video'. For transcoding/trimming/merging/GIF/subtitles use processing-video; for reading or summarizing existing video content use parsing-video." metadata: version: 0.2.1
Claude cannot render video itself, but it can direct a generator. This skill drives a multi-clip pipeline — **script → per-scene generation → review → assembly** — with Claude as the editing agent overseeing continuity and cut.
Requires `ffmpeg`/`ffprobe` and Cloudflare AI Gateway creds (`/mnt/project/proxy.env`).
**Default model: Gemini Omni Flash** (`gemini-omni-flash-preview`, Interactions API) — Google's own guidance as of 2026-07. It beats Veo on character consistency, reference-image control, text rendering, and conversational editing, and generates faster (~30–90 s/clip vs 1–3 min). Fall back to **Veo 3.1** (`scripts/veo_generate.py`, kept intact) only for scene extension, first+last-frame interpolation, or legacy pipelines — Omni supports neither.
1. **Shot list** — break the story into beats, up to 10 s each, one prompt per shot. 2. **Generate** — `scripts/omni_generate.py`, run detached. 3. **Review** — `parsing-video` on each clip **and** on the assembled cut. 4. **Assemble** — `scripts/assemble.py`, run detached. 5. **Iterate** — re-review, then **edit** failing scenes conversationally (cheaper and more stable than regenerating from scratch).
Auth is CF AI Gateway BYOK: `proxy.env` supplies `CF_ACCOUNT_ID`, `CF_GATEWAY_ID`, `CF_API_TOKEN`; the Google key lives *inside* the gateway. Both the interactions call and the `files/{id}:download` retrieval route through it (verified 2026-07-20).
**Run detached.** The Interactions API is *synchronous* — the HTTP call holds open for the whole generation (~30–90 s/clip). `bash_tool` caps at ~50 s. Launch and adaptive-wait on the `DONE` sentinel:
# prompts.json = {"1": "...", "2": {"text": "...", "images": ["ref0.png"]}, ...}
set -a; . /mnt/project/proxy.env; set +a
(setsid python3 scripts/omni_generate.py prompts.json --out omni/ \
--negative "on-screen watermark" &)
# then, in a separate call:
timeout 45 sh -c 'while [ ! -f omni/DONE ]; do sleep 3; done'; cat omni/generate.log**Gotchas (all verified 2026-07-20 — the script already handles them):**
generation (~58k video output tokens). Every request costs money; never "validate" with a throwaway call.
params). `--negative` folds into the prompt as "Do not include: X."
via the gateway. The script always uses uri delivery, inline base64 as fallback.
watermark. No video extension, no first↔last-frame interpolation, no multi-video referencing — those are Veo territory.
**Omni defaults to multi-shot.** Left alone it invents its own cuts inside a clip, which fights a shot-list pipeline. Every per-scene prompt should say "single continuous shot" / "no scene cuts" unless the beat wants internal cuts.
Contact-sheet **each clip and the assembled cut**. Per-clip sheets miss cross-clip continuity; the full-cut sheet is where character drift, prop jumps, and logic breaks show up in one read (Oskar, 2026-07-18: review the whole assembly, not just scenes). Scan every sheet against the **continuity checklist**:
lands on the sill)?
Trims each clip to its beat, crossfades, drops audio by default, optionally burns an overlay word, and holds the final frame so the ending lands.
(setsid python3 scripts/assemble.py omni/scene_1.mp4 ... omni/scene_6.mp4 \
--out film.mp4 --tail-hold 1.3 &)Run detached too — six trims plus a 30 s stitch exceed the bash ceiling on the single-core container. Diagnosed: abrupt ending → `--tail-hold`; jarring cuts between independently generated ambiences → audio dropped by default (`--keep-audio` to `acrossfade` instead).
`results.json` stores each scene's `interaction_id`. A failed detail (wrong color, unwanted object, lighting) is a one-line conversational edit that preserves everything else:
python3 scripts/omni_generate.py --edit <interaction_id> \
"Make the scarf red. Keep everything else the same." --out omni/scene_3_v2.mp4Simple edit prompts work best; append "Keep everything else the same." Reserve full regeneration for scenes whose composition or action is wrong. (Editing requires `store=true`, the script's default.)
The failure modes below came from real crits on 2026-07-18 (Veo era). Omni narrows several of t
A collection of Claude skills distributed as a Claude Code plugin marketplace. Skills are primarily designed for the Claude.ai PaaS skill compute environment; mileage will vary if used as Claude Code Agent Skills.
Decide which model, effort level, and cascade shape each subagent gets, and how to keep improvement loops safe…
Cross-context adversarial review for deliverables before shipping. Use when producing blog posts, technical recommendations,…
Convenes expert panels for problem-solving. Use when user mentions panel, experts, multiple perspectives, MECE, DMAIC, RAPID, Six…
Routes, triages, flags and rates a piece of text with a probability for every option: which department or queue a ticket goes to,…
Delegates work to a subagent or spawned session by writing only the task, while a PreToolUse hook pages the parent transcript…
Chooses how to launch subagents from Claude Code (the Agent tool, a Workflow script, or headless claude -p children) and runs a…