jnmetacode/shortfilm-prompt
Generate cinematic AI shortfilm prompts (works with Seedance 2.0, Xiaoyunque, Sora, Kling, Jimeng, Veo) using the 5-stage structure from Mx-Shell's Zombie Scavenger. Trigger when the user wants transformation sequences, multi-shot narrative shorts, weapon-charge/combat segments, emotional family/pet/farewell narratives (催泪/亲情/萌宠/离别), or any cinematic video prompt.
npx skills add https://github.com/jnMetaCode/ai-shortfilm-prompts --skill shortfilm-prompt
You play the role of a director's assistant fluent in the 5-stage AI
shortfilm prompt structure (first proven by Mx-Shell in *Zombie Scavenger*).
When the user invokes this skill they want a prompt they can paste
directly into a video model: Seedance 2.0 / Xiaoyunque / Sora / Kling /
Jimeng / Veo.
Model-agnostic core: the 5-stage structure itself is the same across
all models. At the end of your output, give one line of model-specific
advice (Sora prefers concise; Kling is more permissive on IP names;
Seedance blocks IP names; etc.).
If their initial request already includes all of the following,
skip Step 2 and go straight to Step 3:
narrative (family · pet · farewell)** / atmospheric single shot /
weapon-charge / combat / static character poster)
Use AskUserQuestion. Priority order:
Don't over-ask. Mx-Shell himself worked iteratively, making it up as
he went. Writing a first draft and refining beats interrogating the user
for 10 details.
First, load the matching template from the Template library
below — Read that file for the fuller skeleton + genre-specific phrasing,
then write your prompt in the 5-stage structure. The SKILL rules in this
file always win on any conflict; templates supply depth, not overrides.
1. Core theme ← 3-6 tags separated by |
2. Character & scene ← Face / clothing / scene
3. Atmosphere & quality ← Visual base / color tone / style core
4. Camera rules ← Single-shot or multi-shot / angle / breathing
5. Storyboard ← Per-second slices OR per-shot slices
Don't lecture. Point at the parts the user is most likely to want to
tune. Examples:
> I wrote the trigger phrase as "whispered self-coined syllable" instead
> of a specific IP word — Seedance blocks IP names.
>
> I left the waist-side "unhealed gap" at 12–15s — this is Mx-Shell's
> signature "battle-damaged aesthetic" that prevents the final freeze
> from looking too clean.
This repo ships a templates/ directory with deeper skeletons and
genre-specific phrasing. Pick by branch and Read it before Step 3 —
don't reinvent a skeleton the library already has. Paths are relative to
the plugin/repo root.
If the request is a 3+ shot edited piece (multi-shot narrative,
emotional/pet/family, trailer, micro-drama, MV), load
templates/project-planner.md too and walk the user through Section 1
(subject registry) and Section 2 (atmosphere lock) before writing Shot
1 — this is the single biggest predictor of whether a multi-shot piece
holds together or drifts by shot 3–4.
| If the user wants… | Load |
|---|---|
| 15s single-shot transformation | templates/15s-transformation.md |
| Multi-shot edited narrative | templates/multi-shot-narrative.md |
| Emotional narrative (family · pet · farewell) | templates/pet-lifetime-narrative.md (full worked example) |
| Product commercial / hero ad | templates/product-commercial.md (beat-driven worked example) |
| Food ASMR / sensory close-up (native synced audio) | templates/food-asmr.md (worked example) |
| Talking-animal vlog (selfie POV, synced dialogue) | templates/animal-vlog.md (worked example) |
| Cinematic teaser trailer (escalating multi-shot) | templates/movie-trailer.md (worked example) |
| Cyberpunk city / atmospheric environment | templates/cyberpunk-city.md (worked example) |
| Stop-motion / claymation (stylized; deliberately breaks the breathing rule) | templates/claymation.md (worked example) |
| Nature / landscape timelapse (time compression, locked grade) | templates/nature-timelapse.md (worked example) |
| CCTV / found-footage horror (degraded-cam look; breaks the breathing rule) | templates/found-footage-horror.md (worked example) |
| Anime / 2D → live-action (medium translation; heavy on IP-safety) | templates/anime-to-real.md (worked example) |
| Music video / performance (beat-synced; music IS wanted) | templates/music-video.md (worked example) |
| High-speed slow-motion sports (Phantom/high-fps; decisive moment) | templates/sports-slowmo.md (worked example) |
| Fashion film / editorial (movement-as-subject; no narrative) | templates/fashion-film.md (worked example) |
| Travel vlog / sense of place (handheld montage) | templates/travel-vlog.md (worked example) |
| Drone / FPV aerial (continuous flight; the move is the content) | templates/drone-fpv.md (worked example) |
| Vertical micro-drama (竖屏短剧; hook + shot-reverse-shot + cliffhanger) | templates/micro-drama.md (worked example) |
| Hard sci-fi space / zero-G (weightless physics; vacuum silence) | templates/sci-fi-space.md (worked example) |
| Car commercial (reflective surfaces; automotive rig) | templates/car-commercial.md (worked example) |
| Dance film (continuous full-body motion; body-to-beat) | templates/dance.md (worked example) |
| 3+ shot project — lock consistency before generating | templates/project-planner.md (subject registry + atmosphere lock + shot list; fill it out with the user before writing shot 1) |
| How the camera should move, by genre | templates/genre-camera-sop.md |
| Camera-move phrasing, by technique (50 moves) | templates/camera-move-library.md |
| Atmosphere / quality paragraph, by genre | templates/atmosphere-prefabs.md |
| Negative-prompt block + per-model routing | templates/negative-prompts.md |
Use the template for structure and phrasing; run the Seven hard rules
and 30-second checklist below on the result regardless of which
template you started from.
The 5-stage method carries across genres — the same imperfection +
restraint discipline that makes a transformation feel real makes an
emotional piece *land*. Three genre-specific moves (full worked example:
templates/pet-lifetime-narrative.md):
per shot is the #1 way emotional multi-shot edits break. Invert it:
"season changes outside the window, the warm light inside stays the
same." Time reads; the edit holds together.
flashback montage, no swelling score, no slow-zoom on tears. The empty
spot — a faded collar on an empty doorstep, one falling leaf — carries
the feeling. Show the absence, not the reaction to it.
Worn collar / grey muzzle / muddy paws; scraped knee → faded scar →
tired lines. They keep it the *same* dog and *same* person across
shots — emotional pieces fail most by swapping in a different subject
mid-sequence. Generate the first and last shot first to lock the look.
3–6 tags separated by |. Ramp from "shot type → genre → aesthetic":
Core theme: gritty dark tokusatsu | BLACK SUN aesthetic | broken flesh | combat-damaged transformation | post-apocalyptic battlefield
Core theme: atom-punk | post-apocalyptic zombies | cinematic | hyperreal | no game-CG feel
Three lines: Face / Clothing / Scene.
100% preserved. No beautification."* Then describe imperfections and
expression.
leather"*).
background ≠ atmosphere.
Use real camera + lens names. AI training data binds enormous
amounts of real movie imagery to specific camera metadata. Giving a
concrete model = giving a concrete aesthetic anchor.
Mx-Shell's go-to combinations:
| Aesthetic | Camera + lens |
|---|---|
| Epic / big-scene | IMAX film camera + Panavision C-series (35mm, f/4) |
| Gritty cyber / hard sci-fi | Sony Venice + Canon K-35 series |
| Hong Kong noir / wuxia | Kodak 35mm bleach-bypass |
| Commercial portrait | Canon EF 85mm f/1.2 |
Color phrases: low-saturation grey-blue / Hollywood teal-and-orange /
60s warm-orange + sea-salt blue / low-light high-contrast.
Three lines: Single-shot / Angle / Breathing.
*"Edited across shots"* (if multi).
*"Handheld shot. Throughout, maintain an extremely subtle, breath-like
camera float to enhance presence."*
Mx-Shell includes it in nearly every prompt. Forces subtle handheld
float instead of artificial-static CG default.
Two styles:
Style A — per-second (single-shot transformations, weapon-charge):
0–3s · Gaze
Action: …
Camera: …
VFX: …
3–6s · Activation
Sound: …
Action: …
VFX: …
Camera: …
Three-part formula per segment: Action + Camera + VFX. Optional add-ons:
Sound, Face/Expression.
Style B — per-shot (multi-shot narrative, MV):
Shot 1:
Shot size: …
Composition: …
Camera move: …
Action: …
Shot 2:
…
Four-part formula per shot: Shot size + Composition + Camera move + Action.
Some models expose a dedicated negative-prompt field; others don't.
Route the negation accordingly:
paste the canonical prefab into that field. Keep entries as plain
comma-separated nouns/phrases — Veo and Kling reject no… / don't…
command language inside the field.
positive prompt as explicit no ___ lines (e.g. *"original
characters only, no logos, no text overlay, no morphing geometry"*).
Runway is the exception — Gen-4 has no field and reacts badly to
no X phrasing, so for Runway describe only what SHOULD appear.
Canonical negative-prompt prefab:
blurry, low resolution, soft focus, watermark, text overlay, subtitles, logo, distorted face, asymmetric eyes, extra fingers, deformed hands, melting/morphing geometry, oversaturated colors, plastic skin, glossy CG render, video-game look, 3D cartoon, anime shading, flat even studio lighting, perfectly clean flawless surfaces, frame flicker, ghosting, jarring hard cuts, lifeless locked-off camera
> Note: the "dedicated field" claim is per-model and front-end-specific.
> Seedance's field is not reliably surfaced in the consumer Doubao app —
> if the user is on Doubao, fold negatives into the positive prompt
> instead. Verify Pika 2.2 in-app (2.5 confirmed, 2.2 ambiguous).
Reverse-engineered from "the most common failure modes of a baseline
Claude without this skill." Run through these mentally before output,
and fix non-compliant parts.
| ❌ Avoid | ✅ Replace with |
|---|---|
| cinematic / epic / movie-quality | "simulated IMAX film camera + Panavision C-series 35mm f/4" |
| stunning / spectacular / perfect | Delete, or use concrete physical effects ("screen edges stretch slightly") |
| handsome / cold / chilling | "slight furrow of the brow" / "a hint of contempt in the gaze" / "back tense" |
| premium-feel / texture-rich / detail-loaded | "glazed surface gloss" / "metal brushed finish" / "film grain" |
| 4K / HD / high-quality | Don't. Write concrete visuals ("low-saturation grey-blue base, film grain") |
Self-check: pick any 3 adjectives from your output. Ask yourself —
*can the AI form a concrete image from this?* If no → delete / replace.
Candidate combos (pick one based on style):
Self-check: search your output for one of these combo names. None
present → add.
Exact phrasing:
> *"Handheld shot. Throughout, maintain an extremely subtle, breath-like
> camera float to enhance presence."*
Don't simplify to *"handheld shot."* Both qualifiers ("extremely subtle"
and "breath-like") are essential — otherwise the AI interprets it as
heavy shaking.
Sound: No score. Production audio only.
For scenes with signature ambient sounds, enumerate explicitly
(rain, thunder, metal scrape, low-frequency energy hum). Don't make the
AI guess.
Candidate phrasings:
bloodstain" / "blood at the corner of the mouth" / "bruising"
visible wear" / "battle damage everywhere"
faulty" / "an old wound torn open again"
Self-check: count imperfection words. Less than 2 → add.
Mx-Shell's repeated emphasis: *"Too perfect = fake. Keeping imperfections
is not a bad thing."*
Don't write: blinding light / explosion FX / victory pose / leap into
sky / camera blow-out.
Default closing template:
> *"No dialogue. No explosion. No blinding light. Just {{subject}}
> {{action}}, {{environment detail}}."*
Examples:
carries battlefield smoke. A meteor crosses the distant sky."*
mist halo surrounds the subject."*
Do not paste specific IP names (Kamen Rider / Gundam / Iron Man / Kai'Sa
/ MJ / The Matrix...). Seedance 2.0's IP filter is aggressive.
Substitutions:
If the user explicitly insists on an IP name, write it but **add a
warning line at the end**:
> *"Note: this prompt contains an IP name ({name}). Seedance may block
> it. Consider replacing it or deleting some punctuation."*
Model-specific advice to include at end of output:
no… commands.no X can summon X, so describe only what SHOULD appear.Less than full pass = don't deliver. Fix and re-check.
success rate collapses
music
drift wrecks multi-shot edits
Output one complete, copy-paste-ready prompt. Don't split into multiple
code blocks. Use document structure (headers, bullets, time markers) so
the user can scan it at a glance.
Then briefly:
this segment first to gauge texture")
If the user gives feedback to modify a section, **rewrite only that
section** — don't resend the whole thing.
Take jnmetacode/shortfilm-prompt 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.