Video-creation orchestrator — Hollywood-level AI video pipeline. Routes to from-script, from-song, scene, storyboard, stitch.
Scanned 6/5/2026
Install via CLI
openskills install event4u-app/agent-config---
model_tier: inherit
name: video
pack: ai-video
tier: 2
cluster: video
description: Video-creation orchestrator — Hollywood-level AI video pipeline. Routes to from-script, from-song, scene, storyboard, stitch.
type: orchestrator
suggestion:
eligible: true
trigger_description: "create a video from a script, render a single scene, build a storyboard, re-stitch existing clips, AI video pipeline"
trigger_context: "user mentions video generation, scene rendering, storyboard, ffmpeg stitch, or a `.ai-video.xml` config"
workspaces:
- agent-config-maintainer
packs:
- meta
---
# /video
Top-level orchestrator for the `/video:*` family — multi-provider AI
video creation. Reads provider keys + defaults from
[`agents/.ai-video.xml`](../../agents/templates/.ai-video.xml.example) (gitignored
real file; example shipped). Every subcommand is **dry-run by default**;
network calls require explicit per-turn confirmation per the adapter
contract under [`scripts/ai-video/lib/adapter-contract.md`](../../scripts/ai-video/lib/adapter-contract.md).
## Sub-commands
| Sub-command | Routes to | Purpose |
|---|---|---|
| `/video:from-script <path>` | `commands/video/from-script.md` | Full pipeline: script → scenes → blueprint → images → operator pick → motion → video → stitch |
| `/video:from-song <images-dir> <song>` | `commands/video/from-song.md` | Music-video: song + reference images → derived/briefed script → render → stitch → song muxed as master track |
| `/video:scene "<idea>"` | `commands/video/scene.md` | Single-scene iteration without a full script |
| `/video:storyboard <path>` | `commands/video/storyboard.md` | Image-only output; contact-sheet storyboard PNG via `ffmpeg` montage |
| `/video:stitch <slug>` | `commands/video/stitch.md` | Re-stitches existing clips after operator edits, no re-render |
## Dispatch
1. Parse `/video <sub-command> [args]`. The sub-command is the first
token; match it against the table's exact sub-command names only. A
token that is a **file path** (contains `/`, `.`, or a known media
extension — e.g. `from-song.mp3`, `clip/from-song.wav`) is NOT a
sub-command: it belongs to `from-script` (a script path) or is a
mis-typed `/video:from-song` invocation. Never treat `from-song.mp3`
as the `from-song` sub-command, and never route a bare `from-song`
(no images-dir + song args) into `from-script` with the song as the
script. On this ambiguity → ask rather than best-guess.
2. Look up the sub-command in the table above and execute its file
verbatim with the remaining args.
3. Unknown / missing sub-command → print the table and ask:
> 1. from-script — full script → final video
> 2. from-song — music video from a song + reference images
> 3. scene — single-scene iteration
> 4. storyboard — image-only contact sheet
> 5. stitch — re-stitch existing clips
## Rules
- **Do NOT commit, push, or open a PR** — subcommands never do this.
- **Do NOT chain subcommands.** One `/video <sub>` per turn.
- **`AIV_DRYRUN=true` is the default.** A live (paid) call requires
`AIV_DRYRUN=false` AND an explicit operator confirmation in the same
turn; mirrors [`non-destructive-by-default`](../rules/non-destructive-by-default.md).
- **Run `validate-deps.sh` first.** Every subcommand calls
`scripts/ai-video/lib/validate-deps.sh` before any adapter; fails
fast on missing personas / skills.
- **Edit `.agent-src.uncondensed/` only.** Generated mirrors regenerate.
## See also
- [`scripts/ai-video/lib/adapter-contract.md`](../../scripts/ai-video/lib/adapter-contract.md) — provider adapter v1 contract
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md) — `video` cluster registration
No comments yet. Be the first to comment!