brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
generating-videosALWAYS read this skill before generating or animating any video, or calling video_generate — text-to-video, image-to-video, a start→end transition, or a reference / motion / audio-guided clip. Generates a video from a brief — one clip, or several clips joined into a single file at any length. Use when the user wants to make or generate a video, animate a ph…
Independent GitHub snapshot · Automated classification · Original documentation governs
Turn a brief into a video.
Look at everything the user supplied. Run image_analysis on each image and video_analysis on
each video. Write down what each one shows — who is in it, where it is, how it is lit, how it is
framed — so the prompt matches it instead of describing something different. Send a product URL or
photo to analyzing-products. Skip an image you already know: you made it this turn, or you have
already analyzed it.
Then read the brief: how long the video runs, what happens in it, where it will be posted, and whether anyone speaks.
Where the video has a product, write one description of it and reuse it unchanged in every storyboard — rephrasing it between calls reads as a different product.
Don't transcribe what the label says. Spelling out the printing invites the model to redraw it, and redrawn text comes back warped.
seedance-2.0-fast is the default — the general-purpose workhorse; a weak result is usually the
prompt's fault, not the model's.
The storyboard route always runs on seedance-2.0-fast unless the user named a model. The table below
decides a single clip.
Reach past the default only on a clear signal:
| Reach for another model when the brief… | Model |
|---|---|
| Needs one unbroken shot longer than 15 seconds, or more than nine reference images | seedance-2.5 |
| Needs spoken dialogue with lip-sync, the tightest prompt-following, or top cinematic quality | veo-3.1-fast |
| Is editing an existing clip — restyle it, add or replace an element, fix on-screen text — or hinges on legible on-screen text | gemini-omni |
| Must hold one person or character consistent across references or several shots | kling-3.0-pro |
| Has an edgy or sensitive subject Seedance would refuse, or wants the fastest, cheapest draft | grok-imagine-video |
| Is a high-volume or cost-sensitive batch where top quality isn't essential | wan-2.7 |
When more than one fits, work down this list and stop at the first that applies:
seedance-2.0-fast.nsfw / ip) or keeps failing — use the fallback from the table.seedance-2.0-fast. If two models tie, use the newer one.Then call list_video_models for the chosen model and read its accepted modes, aspect ratios, durations, resolutions, and media — each validates its own subset, and you need these before writing the prompt.
Take one of four paths:
generating-ugc-videos skill workflow, whether or not the brief says UGC.generating-ad-videos skill workflow.references/direct-route.md.references/storyboard-route.md.list_video_models gives the model's longest clip. Storyboard sheets are what keep a person, a place
and a product looking the same from clip to clip, and what fixes the frame on both sides of a cut, so
anything with more than one clip takes the storyboard route.
A supplied image is used one of two ways. Ask which, if the brief doesn't say:
A start frame works for one clip only, and that clip can carry nothing else —
start_frame_image cannot be combined with any reference_* input. Where a person, a product or a
style has to match an image that isn't the start frame, pass that image as a reference and drop the
start frame.
grok-imagine-video (see Step 2). A second rejection: tell the user which element is blocked
instead of retrying blind.status: "pending") or the call times out → the clip is still rendering on
the server, not a failure — do not resubmit (that starts a second billed job). If you got a
pending handle, call job_status with it to rejoin; if the call timed out with no handle, wait and
tell the user it's still processing rather than firing a fresh generation.list_video_models.list_video_models and pick by strengths.generating-audio, and say plainly that separate music and
effects tracks aren't generated here.error: "no_provider_configured" → relay the tool's hint (the user must set their key).Each route is a complete workflow. Read the one Step 3 picked, and follow it to the end.
references/direct-route.md — one clip: the six modes and what each one passes, the beats, the
prompt and the call.references/storyboard-route.md — more than one clip: the video planned as beats, built through
storyboards and joined into one file.