executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
cloning-video-adsClones an existing video ad — reads a supplied reference ad, keeps its structure, pacing, shots, camera and hook, and rebuilds it as a new video with the user's own product in place of the original's. Use when the user wants to copy, clone, recreate, or remake an ad or a competitor's video, or make an ad "like this one" with their product. Not for a product…
Independent GitHub snapshot · Automated classification · Original documentation governs
Take a video ad the user likes and rebuild it with the user's own product. The reference ad's structure, pacing, shots and hook are kept; its product, brand and spoken lines are replaced with the user's.
A product ad built from scratch, with no reference video to follow, is out of scope — that belongs to generating-ad-videos. A still image ad belongs to generating-image-ads.
The reference ad is the plan the clone is rebuilt from, so read it first and read it in full — a thin read here is the one thing that breaks the clone, and no later step recovers it.
Read references/reading-the-ad.md for exactly what to pull out and the breakdown format, then run video_analysis on the ad (a video file or URL) to produce that timed, second-by-second breakdown of the whole thing.
analyzing-products for what the product is, how a person physically uses it, which parts open or move, and what must stay identical wherever it appears.image_analysis on every other image supplied — what each one shows. The product photo is already covered by analyzing-products; don't read it twice.Skip this when you already have both the reference ad and the product, and the user hasn't asked to change the length or ratio.
Otherwise ask once, bundled into a single message, always with a free-text way out.
| Ask | When |
|---|---|
| The reference ad — the video to clone | It wasn't supplied. Offer to wait for an upload or a link. |
| The product — a link or a photo | Neither was supplied. Offer to wait for an upload; a photographed product beats a described one. |
| How long | Only if the user wants a length other than the reference ad's. The default is to match it. |
| Aspect ratio | Only if the user wants a ratio other than the reference ad's. The default is to match it. |
When the user waives questions, match the reference ad's length and ratio, say in one sentence what you took, and keep going.
Write one description of the user's product and reuse it unchanged in the clip prompt — rephrasing it reads as a different product.
Don't transcribe what the label says, even where the product facts spell it out. Spelling out the printing invites the model to redraw it, and redrawn text comes back warped. The facts may name it; the description never repeats it.
Read references/rebuilding-the-ad.md. Then turn the Step 1 read of the reference ad into a shot-by-shot blueprint for the clone — keeping the form and swapping only the identity, as that reference sets out. Two things it leaves to this skill:
list_video_models and pick the model by the target length — up to about 15 seconds runs on seedance-2.0-fast, longer up to 30 seconds on seedance-2.5. If the target is longer than the longest clip available, cap it there and say so. Carry the chosen model and its length into Step 9.Write it down: for each shot, its seconds, what is on screen, the camera move, where the product sits and what's done to it, and — where the ad speaks — one line of what is said.
Where the reference ad speaks, trigger the writing-video-scripts skill workflow with a brief of what the voiceover should communicate, the blueprint from Step 5 — the shot durations and what happens in each — and the reference ad's own spoken lines as the structure to match, at the same length and cadence, heard as a voiceover over the picture, never lip-synced. Use only the claims the user supplied; drop the original brand's. It returns the words as text, sized to the clip.
Where the reference ad carries no spoken words, skip to Step 7.
Nothing has been generated yet, and everything after this step costs money. Get the blueprint approved first.
Show, written out, in one brief message:
Then ask whether it's right, and say plainly that they can change any of it. Expect edits. Rewrite what they change, show it again, and keep going until they approve.
Wait for an answer. Don't write a prompt, don't generate a clip.
Where the user has said they don't want to be asked, say in one line what you're going with and carry on.
Only once the blueprint is approved. The sheet is a reference that holds the product identical, not a frame-by-frame plan — so it covers the key moments only (generating-storyboards caps a sheet at five panels). Pick the beats that most need the product locked — the hook, the shots where the product is featured or handled, and the close — and leave the finer cuts to the clip prompt at Step 9.
Trigger the generating-storyboards skill workflow — one sheet for the clip — with those key beats and their seconds, the product image(s), the product description unchanged, the look and register carried from the reference ad, and, where the ad speaks, the script segment. The panel work is done there. The sheet is always 16:9, with the panels carrying the clone's delivery ratio.
Once the sheet is built, show it and wait. Ask them to check the product in particular — that it is rendered right in every panel it appears in. They can change any panel: rebuild the sheet, show it, and keep going until they approve. Where the user has said they don't want to be asked, say in one line what you're going with and carry on.
Trigger the writing-video-prompts skill workflow with: one prompt for the whole clip, the model and length chosen in Step 5, the panels of the Step 8 sheet as the cuts inside the clip (one cut per panel), the product description carried in unchanged, the rewritten script where the ad speaks, and the media — the storyboard sheet from Step 8 and the product image(s), labelled as reference_images. Where the ad speaks, the lines are voiceover over the picture, never lip-synced.
It returns the prompt as text and the order it labelled the media in. Nothing is generated there.
Call video_generate with a single request, using the model and length chosen in Step 5.
prompt from Step 9; the model from Step 5; the media it labelled — the storyboard sheet and the product image(s) — as reference_images in the order Step 9 labelled them; duration, resolution, aspect_ratio, and generate_audio on so the clone carries the reference ad's sound.{status: "pending", …} — a job handle, not a failure. Pass that exact handle to job_status, and again if it is still pending. Never re-run a pending clip; that starts a second billed job.Return the finished clone's URL and local file path.
Never regenerate a clip without the user asking. Every re-run is billed again. Hand back what came out, say what looks wrong, and wait — including in the cases below.
generating-ad-videos for an ad built from scratch.video_analysis — it analyses the clip inline. Ask for a shorter ad or a trimmed section, or a link to one.error: "no_provider_configured" on any tool → relay the tool's hint (the user must set their key).references/reading-the-ad.md — what to pull out of the reference ad and the timed-breakdown format to capture it in (Step 1).references/rebuilding-the-ad.md — turning that read into the clone blueprint: what to keep, what to swap, and how the product and copy are replaced without losing the original's craft (Step 5 on).