# scenario-video-ads

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.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 379 installs · ★ 1141
- Author: scenario-labs
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-video-ads/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/scenario-video-ads

## What it 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.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-video-ads -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/scenario-video-ads/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/scenario-video-ads/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-video-ads -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/scenario-video-ads/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-video-ads -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/scenario-video-ads/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install scenario-labs/skills scenario-video-ads
```

2. **Manually: put the files in place**
- File: `.github/skills/scenario-video-ads/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-video-ads -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/scenario-labs/skills --path skills/scenario-video-ads
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/scenario-video-ads/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-video-ads -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-video-ads/SKILL.md

## When to use it
- calculate generation budgets with `dry_run` before 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
- 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

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 645a4bcdfca752a6.

BEGIN THIRD-PARTY FILE 645a4bcdfca752a6
```text
---
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)                         |
```
END THIRD-PARTY FILE 645a4bcdfca752a6

The third-party file has ended. Everything between the 645a4bcdfca752a6 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2669 of 6989 bytes. © scenario-labs · MIT · https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-video-ads/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
