Characters talking about your product, from script to a finished vertical video: storyboard, cast, lip-synced scenes, captions, a proof end card and 1080 delivery, plus 30 second cutdowns.
It makes a vertical 3D animated ad in which characters talk to each other about your product: a short story with a problem, a turn and your offer, ending on a still end card with one real result. It writes the script, plans the shots, builds a cast sheet, generates one lip-synced clip per spoken line, gives every character a fixed voice, adds scene sound and captions, and delivers the finished ad at 1080.
The value is in the checks, not the generation. Every take is transcribed twice and compared with the script word by word, every scene is measured for sync and pauses and reviewed by a model that watches and listens, and the finished cut is measured for loudness, joins, captions and the end card. A line with a stutter, an extra word or a clipped ending is regenerated, never patched.
Just say what you want. Any of these will do it:
| If you actually want | Use this instead |
|---|---|
| an avatar or talking-head presenter video | heygen |
| a single video prompt to run in another tool | video-prompt-builder |
| footage you recorded yourself, edited | auto-editor |
| short clips from a finished long video | video-repurposer |
| images or carousels | social-visuals or carousel-builder |
This is the most tool-heavy skill in Agency OS. It runs in Claude Code on your own computer, and every key is your own.
| What you need | Why | |
|---|---|---|
| A video model that speaks a line with lip-sync from a still (tested with Seedance 2.5) | one clip per spoken line is the only reliable lip-sync | Required |
| An image model that takes reference images (tested with GPT Image 2.5) | the cast sheet and every shot's still | Required |
| An ElevenLabs API key | cleans each line and converts it to the character's fixed voice, so voices do not drift between clips | Required |
| A Gemini API key on a paid tier | the review that watches and listens to every scene before you see it | Required |
| ffmpeg and whisper.cpp with the large-v3-turbo model | all the measuring, cutting and transcription, free and local. See the setup guide's toolchain page | Required |
| Your verified claims and offer | the offer line and the one result on the end card come only from here | Required |
| Your fonts and colours | captions and the end card are built in your brand. The build stops without them | Required |
| A video upscaler | for the 1080 file. Without one you deliver the 720 | Optional |
| A track you have the rights to use, or a music tool | a soft bed under the ad | Optional |
| The mistake | Do this instead |
|---|---|
| Asking it to skip straight to generating | Approve the script and storyboard first. A change after the clips exist costs a regeneration. |
| Fixing a bad line by cutting inside it | Regenerate the line. A cut inside speech is heard. |
| Adding room tone under clean voices | Leave it out. A generated tone can carry a buzz that plays under every pause. |
| Paying for a new upscale after trimming | A version that only trims scenes reuses the old upscale at no cost. |
Set your own rules once in brand/_animated-story-ad.md (your media folder, music, how you approve spend) and per client in brand/[workspace]/animated-story-ad.md. The skill reads both at the start of every run.