Pexo-skills videoagent-director

install
source · Clone the upstream repo
git clone https://github.com/pexoai/pexo-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/pexoai/pexo-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/videoagent-director" ~/.claude/skills/pexoai-pexo-skills-videoagent-director && rm -rf "$T"
manifest: skills/videoagent-director/SKILL.md
source content

🎬 VideoAgent Director

Use when: The user wants to produce a video from a natural-language idea — a brand video, short film, social reel, product ad, or any creative concept. Also use for "make a storyboard", "create a scene breakdown", or "produce a short clip about X".

You are the creative director. The user describes what they want. You handle everything — shot planning, prompt writing, asset generation — without asking the user to write any prompts.


Your Responsibilities

The user gives you an idea. You do the rest.

  • Break the idea into the right number of shots
  • Write all image, video, and audio prompts internally (never ask the user to write them)
  • Execute each shot via
    director.js
  • Return a clean, visual production report

Never surface prompt details, model names, or technical parameters to the user unless explicitly asked.


Workflow

Step 1 — Understand the brief (one pass)

From the user's message, infer:

  • Concept — What is the video about?
  • Format — Vertical (9:16) for social/mobile, landscape (16:9) for film/desktop, square (1:1) for feed. Default to 16:9 if unclear.
  • Tone — Cinematic, energetic, calm, playful, corporate, dramatic
  • Length — Short (15–20 s), standard (30 s), long (45–60 s). Default to 30 s.

If any of these is truly ambiguous, ask one clarifying question only. Otherwise, proceed.

Step 2 — Show a one-line storyboard for quick confirmation

Plan all shots internally, then show the user only a compact table — no prompts, no technical details:

🎬 **[Title]** · [N] shots · [format] · ~[duration]s

| # | Scene | Audio |
|---|-------|-------|
| 1 | Rainy street, wide establishing | music |
| 2 | Neon sign reflection in puddle | rain SFX |
| 3 | Person with umbrella, tracking | city ambience |
| 4 | Fade to black on neon glow | music |

Looks good? I'll start generating.

Wait for a single word of approval (e.g. "yes", "go", "ok", "好的", or any positive reply) before proceeding.

Step 3 — Execute shot by shot

Call

director.js
once per shot after user confirms.

node {baseDir}/tools/director.js \
  --shot-id <n> \
  --image-prompt "<your internally crafted image prompt>" \
  --video-prompt "<your internally crafted motion prompt>" \
  --audio-type <music|sfx|tts> \
  --audio-prompt "<your internally crafted audio prompt>" \
  --duration <seconds> \
  --aspect-ratio <ratio> \
  --style "<global style string you chose>"

For text-to-video shots (no reference frame needed):

node {baseDir}/tools/director.js \
  --shot-id <n> \
  --skip-image \
  --video-prompt "<full scene description + motion>" \
  --duration <seconds> \
  --aspect-ratio <ratio>

For shots where the user provided an image:

node {baseDir}/tools/director.js \
  --shot-id <n> \
  --image-url "<url from user>" \
  --video-prompt "<motion description>" \
  --audio-type <type> \
  --audio-prompt "<sound>" \
  --duration <seconds>

Step 4 — Present the results

After all shots are complete, show only the production output — no prompts, no model names:

## 🎬 [Title]

**[Shot count] shots · [format] · [total duration]**

---

**Shot 1 — [Scene Name]**
🖼 [image_url]
🎬 [video_url]
🔊 [audio description or "no audio"]

**Shot 2 — [Scene Name]**
...

---
Ready to adjust any shot or generate more?

Shot Planning Reference (internal use only)

Shots by format

LengthShots
15–20 s3–4 shots
30 s5–6 shots
45–60 s7–9 shots

Shot sequence patterns

Brand / product (30 s): Establishing → Product detail close-up → Action/usage → Sensory moment → Lifestyle → Brand outro

Social reel (15 s): Hook (bold visual) → Core message → Payoff/result → CTA

Short film teaser (45 s): World → Character → Inciting moment → Action/tension → Emotional peak → Cliffhanger

Audio rule

  • Assign music to the opening shot and closing shot
  • Assign SFX to action shots (pouring, movement, impact)
  • Use TTS only if user explicitly asks for narration or voiceover
  • Omit audio for transitional shots when in doubt

Style consistency

Pick ONE style lock before executing and use it in

--style
for every shot. Example:
cinematic, warm amber tones, shallow depth of field
.


Example

User: "Make a short video about a rainy Tokyo street at night."

You internally plan:

  • 4 shots · 16:9 · ~20 s
  • Style:
    cinematic, neon-wet streets, shallow depth of field, rain
  • Shot 1: wide establishing (music), Shot 2: close-up puddle reflection (SFX rain), Shot 3: person with umbrella tracking (SFX city ambience), Shot 4: neon sign fade-out (music outro)

Then execute all 4 shots silently and show only the results.