multigent/multigent/asset-director
Claude Code and agent skill by multigent/multigent
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install multigent/multigent/asset-directorSKILL.md
Asset Director — Explainer Pipeline
When to Use
You are the Asset Producer for a generated explainer video. You have a scene_plan with required assets and a script with narration text. Your job is to generate every asset needed: narration audio, images, diagrams, code snippets, and background music. Every file must exist on disk before you finish.
This is where plans become real files. A missing or low-quality asset will torpedo the final video.
Animation authoring — which runtime
Before authoring any animated Remotion component for this pipeline, read `skills/meta/animation-runtime-selector.md`. It's the routing authority for deciding between Remotion primitives and GSAP plugins.
Quick routing for common explainer needs:
| Scene type | Recommended approach | |
|---|---|---|
| Title card, fade, slide, scale | Remotion primitives — interpolate() + spring() | |
| Word-level caption highlight synced to narration | Existing CaptionOverlay component (already in remotion-composer/src/components/) | |
| Per-character kinetic typography ("words explode in one letter at a time") | GSAP SplitText — read .agents/skills/gsap-plugins/SKILL.md | |
| Multi-step choreography across 4+ tweens | GSAP timeline — read .agents/skills/gsap-timeline/SKILL.md | |
| Logo build (line drawing, stroke reveal) | GSAP DrawSVG — read .agents/skills/gsap-plugins/SKILL.md | |
| Data chart (bar/line/pie/KPI) | Remotion built-in chart components — see remotion-composer/SCENE_TYPES.md | |
| Terminal or CLI demo | Remotion TerminalScene — read .agents/skills/synthetic-screen-recording/SKILL.md |
The keep-it-simple bias: if Remotion primitives solve a scene in ≤ 20 lines, use them. Only pull in GSAP when the plugin genuinely earns its bundle weight.
Prerequisites
| Layer | Resource | Purpose | |
|---|---|---|---|
| Schema | schemas/artifacts/asset_manifest.schema.json | Artifact validation | |
| Prior artifacts | state.artifacts["scene_plan"]["scene_plan"], state.artifacts["script"]["script"], state.artifacts["proposal"]["proposal_packet"] | What to produce | |
| Playbook | Active style playbook | Image prompts, diagram style, audio preferences | |
| Tools | tts_selector, image_selector, video_selector, diagram_gen, code_snippet, music_gen — selectors auto-discover all available providers from the registry | Generation capabilities | |
| Cost tracker | tools/cost_tracker.py | Budget governance |
Process
Step 1: Inventory Required Assets
Walk every scene in the scene plan. For each required_assets entry, create an asset task:
Also create tasks for:
- Narration audio — one per script section (use
tts_selectoror a concrete TTS provider) - Background music — one track for the whole video (use
music_genor select from library) - Sound effects — per playbook's
sfx_style(optional, usemusic_genor stock)
Step 2: Check Budget
Before generating anything:
- Sum all estimated costs from the asset tasks
- Compare against the cost tracker's remaining budget
- If over budget:
- Switch expensive tools to cheaper alternatives (use
tts_selectorwithpreferred_providerto route to cheaper TTS; useimage_selectorto route to cheaper image providers) - Reduce image count (combine similar scenes)
- Skip optional assets (SFX, B-roll)
- Get cost approval via cost tracker before proceeding
Step 2b: Sample Preview (Prevents Wasted Spend)
Before batch-generating assets, produce one sample of each expensive asset type and present them to the user for approval:
- TTS sample: Generate narration for
script.voice_performance.sample_section_idwhen present; otherwise pick the section with the most demanding delivery. Play it for the user. Confirm voice, pace, pauses, emphasis, and tone are acceptable before generating the rest. - Image sample: Generate one image for the most representative scene. Show it to the user. Confirm the style, quality, and prompt approach before batch-generating all images.
- Music sample (if using
music_gen): Generate one short clip. Confirm mood and energy before committing.
If the user rejects a sample:
- Adjust the parameters (voice, prompt style, provider) and regenerate the sample.
- Do not batch-generate until the sample is approved.
- Max 3 sample iterations per asset type before escalating to the user for a decision.
This step typically costs $0.03–0.08 total and prevents $1–3 of wasted generation.
Step 3: Generate Narration
For each script section:
- Extract the narration text
- Read
script.voice_performanceand sectiondelivery_cues - Use
delivery_cues.provider_textwhen present; otherwise transform the section text with purposeful punctuation and break tags only when the selected provider supports them - Apply speaker directions from the script (pace, emphasis, emotion)
- Apply the playbook's
audio.voice_style - Map cues to provider parameters:
- OpenAI:
instructionsonly withmodel: "gpt-4o-mini-tts"; useresponse_formatfor output format - Google TTS:
input_type: "ssml"when using<break>tags, plusspeaking_ratein0.25..2.0andpitchin-20..20 - ElevenLabs:
stability,similarity_boost,style,speed, anduse_speaker_boost
- Generate using
tts_selector— it auto-routes to the best available TTS provider based on user preference and availability. Check the registry'sbest_forfields to understand each provider's strengths. - Record the applied
voice_performancemetadata on each narration asset - Verify the audio file exists and duration matches expected timing (±15%)
Pronunciation guide: If the script contains technical terms, jargon, or names with non-obvious pronunciation, include a pronunciation map in the TTS request.
Flat voice failure: If the approved voice sounds monotone, robotic, rushed, or ignores intended pauses, do not batch the remaining sections. Revise the voice_performance plan or provider parameters and regenerate the sample.
Step 4: Generate Visual Assets
Process asset tasks grouped by tool for efficiency:
Images (`image_selector`):
- Build the prompt from the scene's actual purpose:
- scene-specific shot/lighting/texture cues from
shot_language,shot_intent, andtexture_keywords - an adapted visual anchor from the playbook or custom identity
- the concrete subject/action/environment
Use lib/shot_prompt_builder.py when helpful.
- Add negative prompt from playbook
- Include consistency anchors (same character/world/palette family), but do NOT reuse the exact same phrasing for every image
- Generate and verify the file exists
- If the result doesn't match expectations, refine the prompt and regenerate (max 2 retries)
Diagrams (`diagram_gen`):
- Convert the scene description into valid Mermaid syntax
- Apply playbook's
asset_generation.diagram_style - Generate SVG/PNG
- Verify all nodes and edges are present
Code snippets (`code_snippet`):
- Extract language and code from the scene description
- Apply syntax highlighting theme from playbook's overlay styles
- Generate highlighted image or Remotion-compatible data
Step 5: Generate Music
- Read playbook's
audio.music_moodandaudio.music_volume - Check the music decision from
proposal_packet.production_plan.music_source(set by the Proposal Director) - Source the background track in this priority order:
- User-selected library track: If the proposal specified a track from
music_library/, copy it toprojects/<project>/assets/music/background_music.mp3 - User music library (`music_library/`): If the folder exists and has tracks, pick the best match for the playbook's
audio.music_mood. List candidates by filename and let the EP decide. - Music generation API: Use
music_gen(ElevenLabs) orsuno_musicif available. Check status via registry first — if the tool is unavailable or quota-exhausted, skip immediately (do NOT attempt and fail silently). - No music available: Log this clearly in the asset manifest as
"music_status": "unavailable"with the reason. Do NOT silently produce a video without music — the EP and user should know.
- Duration should be at least as long as total video duration. If shorter, it can be looped by the compose stage.
- Verify the audio file exists at
projects/<project>/assets/music/background_music.mp3
Critical: If music generation fails or is unavailable, report it immediately in the asset manifest — do not defer the problem to the compose stage.
Step 6: Build Asset Manifest
Assemble all generated assets into the manifest:
Pre/Post Self-Review for Generation Prompts
Before sending a prompt to any generation tool —image_selector,diagram_gen,video_selector, evencode_snippetstyling prompts — run a three-step self-review modeled on the CHAI oversight loop ("Building a Precise Video Language with Human-AI Oversight", arXiv 2604.21718v2). Cost is small (no extra tool calls); benefit is large (avoids wasted generations). This applies just as strongly todiagram_genMermaid prompts andimage_selectorillustration prompts as it does to video generation — bad explainer visuals fail in the same way: missing subject, missing framing, vague "make it look educational."Step 1 — Pre-caption pass. Write the prompt the way you'd write it today. Do not over-edit; aim for a complete first draft.Step 2 — Critique pass. Score the draft against the 5-aspect checklist (Subject / Subject Motion / Scene / Spatial Framing / Camera). For each aspect:- Is it specified? If not, is the omission deliberate (e.g., "Camera N/A — Remotion native scene", "no subject motion — static diagram") or accidental?- Are confusable terms disambiguated? (dolly vs zoom, pan vs truck, bird's-eye vs aerial, fisheye vs barrel, full shot vs close-up; for diagrams: flowchart vs sequence vs state diagram, top-down vs left-right)- Are emotional adjectives ("clean", "professional", "modern") replaced with their visual causes (sans-serif typography, generous whitespace, monochromatic palette with one accent)?- For multi-shot prompts: is identity anchored verbatim across shots? Forimage_selectorprompts that recur (a character or world appearing in multiple scenes), are consistency anchors specified verbatim?Step 3 — Post-caption pass. Rewrite filling the missing aspects, fixing confusable terms, and replacing subjective language. The post-caption is what gets sent to the generation tool.Log the (pre, critique, post) triplet in the asset metadata for traceability. This mirrors the CHAI workflow and creates a record the reviewer can audit.
Step 7: Verify All Assets
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinginternal/playbook/openmontage_assets/asset-director/SKILL.md
Popularity
- Repository stars
- 66
- Repository forks
- 8
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/multigent/multigent/asset-director)