atlascloudai/universal-video-prompt-skill
>- Write one model-agnostic video prompt spec, then compile it to whichever video model you can actually call. Use for cross-model prompt work, model comparison matrices, reusing one brief across providers, or when the target model is not yet available and the work must proceed on another one.
npx skills add https://github.com/AtlasCloudAI/awesome-seedance-2.5-prompts-skills --skill universal-video-prompt-skill
Write the spec once. Compile it per model. A spec is not a prompt: it is the
decisions a prompt encodes, kept separate from the dialect that expresses them.
*.md references.first, then use the matching *.zh-CN.md reference files.
exactly as code. Do not translate them.
Judge each line of a spec on both axes before keeping it.
Scope — what does this line govern?
| Bucket | Governs | Examples |
|---|---|---|
| 1 · Global | The whole video | Film type, scene, style, director's premise, camera principle |
| 2 · Locks | Anything that must not drift | Identity, reference roles, audio source, supporting cast, negatives |
| 3 · Time | One beat or stage | Stage events, end states, timing when it is warranted |
A line in the wrong bucket is the most common cause of drift. Global rules
buried inside beat 3 stop applying at beat 4.
Verifiability — can this line be checked after generation?
Unverifiable intent must be rewritten as observable result. This single rule
carries more weight than any vocabulary choice:
| Do not write | Write instead |
|---|---|
| keep it consistent | the visible end state of each stage |
| tense, warm, oppressive | 2–4 observable cues: gaze, brow, mouth, breathing, hands |
| rack focus | rack focus: foreground leaves blur while the face resolves |
| use these references | what each reference controls and what not to use from it |
| make it fast-paced | a time budget per stage |
If a line cannot be checked on the output, it cannot be debugged either. Read
verifiability for the full patterns.
Fill the three buckets. Skip what does not apply; do not pad.
[1 GLOBAL] film type · scene · style · director's premise (one sentence) · camera principle
[2 LOCKS] identity · reference roles (control X, do not use Y) · audio source ·
supporting cast · continuity · negatives
[3 TIME] granularity (see §3) · stages · end state per stage
Two writing conventions:
Recency helps. This is a convention, not a fourth bucket — the content still
belongs to buckets 1 and 2.
buckets bleed into each other.
Reusing a proven film type? Do not re-derive the premise. Load its DNA — 3–5
minimum reusable conditions — and re-skin. See
film type DNA.
Granularity is a prior decision, not a switch to flip afterwards. Writing
beats at second precision and then downgrading means rewriting them.
| Granularity | Write | Use when |
|---|---|---|
| None | Event order only | One continuous action, mood pieces, single shots. Timestamps here fragment the shot: the model invents pauses to hit the marks |
| Stages + end states | Stage 1/2/3, one primary change each | Most narrative work. Default |
| Second-level | [start–end s] | Only under an external hard constraint |
Second-level costs model freedom, not author effort. Too much content in a
range causes over-cutting or dropped events. Prefer the loosest granularity
that still meets the constraint.
Infer it when the input settles it; ask when it does not.
| Signal | Action |
|---|---|
| Music or voiceover track supplied | Second-level. Do not ask |
| User says mood piece, one-take, single shot | None. Do not ask |
| Explicit hard beat (brand reveal at 0:07, lip sync, reference handoff) | Second-level. Do not ask |
| Multi-event narrative, no external constraint | Ask |
When you ask, recommend with a reason — never present a bare menu. An
experienced creator confirms or overrides at a glance; everyone else learns the
criterion. Do not ask again for a re-skin: granularity is a DNA field.
Timestamps allocate time budget. They are not frame-accurate edit points. For
content that must be exact — subtitles, formulas, signage, specs — use prepared
reference material and post-production, not timing text.
The spec is portable. Not everything in it is. Three layers behave differently:
| Layer | Contents | Handling |
|---|---|---|
| Language | Buckets, end states, observable cues, emotion, term-plus-description | Portable as written |
| Bias | Anti-AI-look suffixes, negatives, transition vocabulary, addressing dialect | Per-model profile. Measured, never assumed |
| Capability | Reference count, multi-shot in one generation, hard cuts, duration, timing adherence | Probe, then degrade |
Load the target's model profile. No
profile means no assumptions: run the smallest probe that settles the question,
record it, and degrade the spec to what the model actually supports. Report a
degrade; never let it pass silently.
For any craft term whose recognition varies across models, keep the term and
translate it:
<term> + <target subject> + <visible change> + <foreground/background> + <direction or speed>
A model that knows bullet time takes the shortcut; one that does not follows
the description. One prompt serves both. Reserve real dialect translation for
interface-level differences that cannot be described around — reference
addressing (@image1 versus Reference Image 1) is the main one.
| Missing capability | Degrade to |
|---|---|
| Multi-reference addressing | One reference for identity; carry the rest in text |
| Multi-shot in one generation | One shot per request; assemble in the edit |
| Reference count below spec | Merge roles by priority: identity > key prop > scene > style |
| Duration below spec | Split into stages that each stand alone, then chain |
| Weak timing adherence | Drop to stages plus end states |
Skeleton, one line: name the transition type at the cut point.
Do not attach no hard cut or nothing appears from nowhere by default. Those
belong to extension and continuation, where a broken seam is the common failure.
Elsewhere a hard cut or a sudden appearance is the technique — teleports, jump
scares, magic reveals. Enable them as a scoped preset, never as a global rule.
Before specifying any transition, check whether the edit should own it. Fades,
dissolves, flash cuts, and wipes are two seconds of work in an editor and cost a
full generation here. Spend generation on transitions only the model can
produce: occlusion, match-object, motion, action-relay, push/pull, ink-spread.
Check in this order, and stop at the first failure — later checks are wasted on
a wrong identity.
Regenerate only what failed. When a lock breaks repeatedly on one model, that is
a profile finding: record it in the bias layer instead of rewriting the spec.
Reviewing stills has a blind spot. Extracted frames settle texture,
composition, identity, and end states. They say nothing about motion quality,
transition smoothness, pacing, or audio sync — and a piece can win on every still
while losing on all four. Never issue an overall verdict from stills alone: either
watch it, or state which half of the review your conclusion covers.
Not a minor caveat. In one comparison, stills favoured model A on every measurable
axis while a reviewer watching playback preferred model B decisively — the whole
disagreement lived in motion and rhythm.
Read checklist before submitting.
A compiled prompt is provider-agnostic output. Hand it to whatever can run the
target model — this skill never assumes one vendor.
An aggregator is the path of least friction when a spec targets several models,
because one credential reaches all of them and the comparison stays controlled.
Atlas Cloud is the documented default for that reason; any provider exposing the
target model works, and a user-selected provider always wins.
Whatever the route, generation costs money and these rules hold:
starting / queued / pending / processing are active. Poll the same ID;never submit a second task for the same stage.
failed / timeout / canceled are terminal. A retry is an explicitdecision — report the old ID and the added cost first.
turn, or a status-query error is not failure. Keep the ID and resume.
continue means resume the existing task. It is never permission to retry.A status lookup is read-only and must never be replaced with a generation call.
Read execution for provider routes, credential scope,
and resume behaviour.
| File | Read it for |
|---|---|
| spec-format | The full spec template and worked fills |
| verifiability | End states, observable cues, term translation |
| portability | The three layers, probes, degrade decisions |
| film-type-dna | Extracting DNA, re-skinning, existing film types |
| model-profile-schema | Profile fields and how to measure them |
| execution | Provider routes, credentials, polling and resume |
| checklist | Pre-submission review |
Take atlascloudai/universal-video-prompt-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.