Video director
Skill event4u-app/agent-config/dist/agent-src/skills/video-director
Use when turning a scene idea into the 11-block cinematic prompt for live-action AI video — lens, lighting, blocking, motion, negatives. Triggers 'cinematic prompt', 'film-grade scene'.From its SKILL.md
npx -y skills add event4u-app/agent-config --skill video-directorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
video-director
Turn a scene idea into the 11-block cinematic prompt the
hollywood-directorpersona ships. Output is provider-agnostic prose; provider-specific tuning is handed off tomotion-choreographer.
When to use
- A scene idea, beat, or script line needs to become a cinematic prompt ready to feed an image+video pipeline.
- A draft prompt reads as "AI video" — flat, centered, generic golden-hour — and needs directorial choices on the page.
- Live-action / photoreal scenes. For animation acting beats, route
to
pixar-storyteller.
Do NOT use when:
- The deliverable is a still graphic or poster →
canvas-design. - The work is provider-specific token tuning →
motion-choreographerafter this skill has produced the blocks. - A character identity must be re-used across scenes → run
character-consistencyfirst to lock identity tokens, then call this skill.
Procedure
Step 0: Inspect
- Confirm the input is a live-action / photoreal beat (not animation).
- If a
character.jsonexists underagents/reference/ai-video/<project>/characters/, read the identity tokens — they are reused verbatim. - Read the scene's intent in one sentence — what is the camera witnessing, and why now?
Step 1: Draft the 11 blocks
Emit each block on its own labeled line. Blocks are mandatory and in this order:
- SCENE — location, time-of-day, weather, era.
- CHARACTER — verbatim identity tokens from
character.jsonwhen present; otherwise silhouette + wardrobe + signature prop. - ACTION — verbs and beats. Anticipation → action → reaction named separately. No "doing things" prose.
- CAMERA — position, height, distance, move (lock-off, dolly, handheld, push, pull). Off-axis when on-axis is the AI default.
- LENS — focal length in mm (24 / 35 / 50 / 85 / 200) and aperture intent (deep / shallow). "Cinematic" alone fails.
- LIGHTING — key, fill, back, practical sources named. "Golden hour" requires an angle (low-east 15°, etc.).
- ENVIRONMENT MOTION — what the world does (wind, water, crowd, traffic) and on which beat.
- SECONDARY MOTION — hair, cloth, dust, breath. Names the reactive layer that sells the primary action.
- MOOD — one emotional read; no compound moods.
- DURATION — seconds. Integer or one decimal.
- NEGATIVE CONSTRAINTS — clichés to reject, in load-bearing order (top survives truncation). Always names: centered framing, symmetric composition, generic "cinematic", soap-opera contrast.
Step 2: Self-review
- Lens length present? "Cinematic" without mm → fail.
- Lighting direction present? "Golden hour" without angle → fail.
- ACTION names beats, not adjectives?
- NEGATIVE block has at least 4 entries, load-bearing on top?
- CHARACTER block reuses identity tokens verbatim when a lock exists?
Any "no" → revise that block before handing off.
Step 3: Validate
- Output is plain text, one labeled block per line, ready for
scripts/ai-video/lib/parse-blueprint.sh(Phase 3 Step 5). - No provider tokens (no
--aspect, no--model). That ismotion-choreographer's job.
Output format
scenes/<id>/prompt.txt— 11 labeled blocks, one per line, ready for the blueprint parser.scenes/<id>/review.md— one-paragraph rationale per non-obvious directorial choice (lens, light angle, camera move).
Gotcha
- The model defaults to centered, on-axis, symmetric — name an off-axis or rule-of-thirds camera or it will silently center.
- "Golden hour" alone reads as a sunset GIF; require a sun angle.
- ACTION written as a paragraph of adjectives ("dynamically", "powerfully") fails — adapters need verbs with beat counts.
- When
character.jsonexists, paraphrasing identity tokens breaks Character Lock — copy them verbatim. - Negative constraints in the truncated tail get dropped — load- bearing ones go first.
Do NOT
- Do NOT emit provider-specific tokens (aspect ratio, model id,
duration flags) — that is
motion-choreographer's scope. - Do NOT collapse anticipation / action / reaction into one verb.
- Do NOT use "cinematic" without lens + lighting + camera move.
- Do NOT invent character details when a
character.jsonexists.
Policies
11-block cinematic prompt is live-action shape — real-person + brand-impersonation risks highest in cluster. Before emitting:
agents/settings/policies/media/likeness.md— prompt names / visually identifies real person on camera.agents/settings/policies/media/public-figures.md— subject is recognised public figure.agents/settings/policies/media/brand-impersonation.md— prompt copies journalism / broadcaster / regulated-industry visual identity.agents/settings/policies/media/style.md— LIGHT / LENS anchored to named living cinematographer's signature.agents/settings/policies/media/disclosure.md— every distributed live-action AI clip carries non-removable AI-generation disclosure.
Refuse-and-surface at directorial layer; live-action realism amplifies every downstream policy gap.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.