scenario-video-ads — Claude Code skill: what it does, how to install
Orchestrates end-to-end video ad production in Scenario from a product photo and brief. Builds storyboards, gates budgets, and handles assembly for Reels or YouTube.
npx skills add scenario-labs/skills --skill scenario-video-ads -a claude-codeWhat scenario-video-ads does
This skill operates as a creative director. It takes a single product photo and brief, then guides production through nine stages from concept to pre-flight. The product itself is never generated from scratch; the real uploaded photo is composited into approved plates. Text overlays, logos, and prices are applied during final assembly on clean plates to prevent typography drift between frames.
Video generation is the expensive step. Because of that, the skill runs dry_run cost checks for each planned shot and presents a budget table before producing moving clips. If any required sibling skills are missing, install them with npx skills add scenario-labs/skills --skill <name>.
Attempting to assemble clips locally with ffmpeg will break the expected workflow, because cuts and text overlays rely on Scenario cloud tool models.
What it helps with
- calculate generation budgets with
dry_runbefore rendering video - build structured storyboards for 9:16 or 16:9 commercial spots
- composite real product photos into generated scene stills
- verify label and logo consistency across frames via
asset_analyze - assemble final timelines with text cards aligned to safe zones
Example prompts for the agent
- Create a 20-second 9:16 perfume ad storyboard for TikTok from this bottle photo
- Run dry_run on all planned shots and display the budget table before generating video
- Assemble a 16:9 YouTube ad with text overlays in safe zones and muted raw clips
How to install scenario-video-ads
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-video-ads -a claude-code2Manually: put the files in place
~/.claude/skills/scenario-video-ads/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scenario-video-ads/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-video-ads -a codex2Manually: put the files in place
.agents/skills/scenario-video-ads/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-video-ads -a cursor2Manually: put the files in place
.cursor/skills/scenario-video-ads/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install scenario-labs/skills scenario-video-ads2Manually: put the files in place
.github/skills/scenario-video-ads/SKILL.md1Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-video-ads -a gemini-cli2Platform CLI
gemini skills install https://github.com/scenario-labs/skills --path skills/scenario-video-adsManually: put the files in place
.devin/skills/scenario-video-ads/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add scenario-labs/skills --skill scenario-video-ads -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scenario-video-ads
How to install scenario-video-ads in Claude Code?
Run npx skills add scenario-labs/skills --skill scenario-video-ads -a claude-code.
What does scenario-video-ads do?
It acts as an automated director that turns a product photo and brief into a full video commercial, delegating tasks to Scenario image, video, and assembly tools.
Why does the skill forbid AI-generated product labels and text?
Generative video models drift and distort lettering across frames. The skill preserves brand fidelity by compositing the original product shot and layering text cards in post-production.
Source text
SKILL.md · MIT
---
name: scenario-video-ads
description: "Use when producing a video ad with Scenario from a product shot or brand assets: a mobile 9:16 or landscape 16:9 commercial, a TikTok, Reels, Shorts, YouTube, or CTV spot, or campaign creative needing a creative brief, storyboard, cinematic camera work, brand-faithful product footage, music and voiceover, captions, ad variants, budget planning, or platform delivery specs. Keywords: video ad, commercial, product video, advert, hook, CTA, end card, campaign, ad creative."
license: MIT
---
# Scenario Video Ads
## Overview
For ordered independent edits of an existing clip, use `scenario-ad-variants`; this skill starts new
creative.
This skill is the director layer: it turns one product shot and a brief into a finished ad,
delegating mechanics to the sibling skills it names per stage. Connection and the core loop: see the
`scenario` skill in this repo. If a sibling skill named here is missing from your available skills,
ask the user to install it (`npx skills add scenario-labs/skills --skill <name>`); unattended,
proceed from tool schemas and flag the gap. The full sibling map and install commands:
[references/dependencies.md](references/dependencies.md).
Two rules bind every stage, because they carry the ad's credibility. The product is never generated:
every product shot starts from the uploaded photo, as a first frame or composited into an approved
still. Text is never generated: logos, taglines, prices, and legal lines are overlaid in assembly on
text-free plates.
Ask the brief once, then run without stopping. The one approval that matters sits between the priced
storyboard and generation: video is the expensive stage, so the user signs off on the budget table
first. The concept page and the stills are cheaper checkpoints: show them when someone can answer.
In a run where nobody can, continue: the brief's spend ceiling stands in for the sign-off, so
generate video only while the priced board fits it, and the fidelity gate stands in for still
approval.
## Quick reference
| Stage | What happens | Detail |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| 1. Brief | One objective, audience, proposition, creativity and length dials, platforms, mandatories, spend ceiling | [references/brief.md](references/brief.md) |
| 2. Concept | One page, anchored to a named famous-ad pattern, shown to the user | [references/storyboard.md](references/storyboard.md) |
| 3. Storyboard | Beats and panels per the objective's rulebook, priced shot by shot with `dry_run`, approved | storyboard.md, brief.md |
| 4. Stills | Composed natively per delivery ratio, product composited from the real photo, approved before animating | `scenario-image`, `scenario-consistency` |
| 5. Animate | Image-to-video per approved still, one camera move, `generateAudio: false` where the schema has it, `wait=false` | `scenario-video`, `scenario-seedance` |
| 6. Fidelity gate | Extract frames from every product or character clip, spot-the-difference against the approved reference | storyboard.md, `scenario-asset-analysis` |
| 7. Audio | Music generated on the cut's beat grid, voiceover to a word budget, sonic logo | `scenario-audio`, [references/delivery.md](references/delivery.md) |
| 8. Assemble | Timeline, text cards from `scenario-text-overlay` as image layers, captions in safe zones | `scenario-video-assembly`, delivery.md |
| 9. Pre-flight | Policy, flashes, sound-off pass, loudness, spend report | delivery.md |
## Worked example: a perfume ad, 9:16, 20 seconds
1. Brief once: awareness, twist creativity, 20s for Reels and TikTok, ceiling in CU. Upload the
product shot, then build the fidelity checklist from it with `asset_analyze`, instructing it to
inventory label text, cap geometry, and glass tint: every later check reuses it (`asset_describe`
returns a style line, not this inventory).
2. Concept names its anchor: open inside the gala-and-gown cliche, break it on beat three. Show the
page to the user.
3. Storyboard 7 panels at 2 to 4 seconds each, hero shot designed first, 3 hook variants, 2 inserts
as cut cover. `dry_run` every planned run, multiply by retry floors, present the budget table.
4. Stills at 9:16: composite the real bottle into styled plates with an image-edit model,
baseline-plus-delta prompts. Each still is approved before animating, by the user or by the
fidelity checklist when nobody can answer: image money is cheap, video money is not.
5. Animate each approved still: `model_schema_get` first, prompt movement first ("slow push-in over
4 seconds, the bottle rests fixed in place"), `generateAudio: false` when the schema lists it.
6. Gate every clip: frame-extract, then one `asset_analyze` call against the checklist. Label drift
fails the clip; regenerate from the same still, never from the drifted output.
7. Music at a stated BPM so cuts land on bars; compose the timeline, `scenario-text-overlay` renders
the tagline card into the safe zone; caption the master.
8. Pre-flight per delivery.md, then report spend from `usage` against the approved board.
## Common mistakes
- Reaching for local ffmpeg or a desktop editor for the cut: assembly is `model_run` on Scenario
tool models (see `scenario-video-assembly`).
- Letting the video model render a label, logo, tagline, or price: generated type drifts frame to
frame; composite text in post.
- One long clip at the schema's maximum duration: generate 3 to 5 second product shots and 5 to 10
second coverage, then cut to rhythm in assembly.
- Judging fidelity by watching a clip once: drift hides between glances; run the frame-extract gate.
- Leaving the schema's audio toggle (`generateAudio`, where offered) at its default: the soundtrack
is built in assembly, so clips with baked-in audio fight the bed.
- Cropping a 16:9 master to 9:16: each ratio is its own composition, decided at the storyboard.
- Two objectives in one brief: brand and performance in the same asset serves neither; make two cuts
from one board instead.
- Shipping without the pre-flight: a sensual perfume cut or a wrong-length CTV file dies in ad
review, not in generation.
© scenario-labs · MIT · scenario-labs/skills