Game trailer factory
The Content Factory trailer_factory pipeline (under
content-factory/pipelines/games/trailer_factory/) is a multi-stage
workflow: research → storyboard → animatic → audio direction → final
render → quality check → re-shoot loop.
Because it spans 4-8 GPU services and takes 20-90 minutes end-to-end,
this skill routes the work through Hermes Kanban so each stage is a
durable task that survives Veo / Kling / Beatoven crashes.
When to use this skill
- User asks for a game trailer, gameplay teaser, launch video.
- User wants an iOS/Android App Store preview video.
- Trailer revision: "make the audio darker", "add a 5-second hook
before the gameplay", "render at 9:16 too".
Prerequisites
- MCP servers configured:
content-factory, content-factory-media,
hermes (for kanban orchestration), gastown (for assignment to
the right rig).
- Hermes Kanban board exists:
hermes kanban board create content-factory
(one-time).
- Game context in S3 App Canvas (icon, hero, mascot, sound logo,
representative screenshots).
The workflow
Gather game context. Confirm with the user:
- Game name + bundle ID + Steam/Apple/Google URLs (if live).
- Target trailer length (
30s for App Store, 60s for YouTube,
15s for TikTok / Reels / Shorts).
- Output aspect ratios needed (
16:9, 9:16, 1:1 typically).
- "Tone words" (3-5 adjectives) — feeds the AudioDirector.
Create the parent kanban task (use the hermes MCP):
kanban_create(
board="content-factory",
assignee="trailer-director",
workspace="dir:/Users/<you>/dev/content-factory",
title="Game trailer: <game_name> (<length>s × <ratios>)",
body="<paste the gathered context as YAML>"
)
Link 5 child tasks (one per stage), each with its own
assignee profile so different models can work each stage:
| Stage |
Assignee |
Toolset |
| storyboard |
screenwriter |
content-factory, firecrawl |
| animatic |
media-producer |
content-factory-media |
| audio |
audio-director |
content-factory-media |
| final-render |
media-producer |
content-factory-media |
| qc |
reviewer |
content-factory (reads quality.py outputs) |
Use kanban_link(parent=..., child=...) for each.
Watch the dispatcher spawn workers as parents complete. Tell
the user the parent task ID so they can kanban_show <id>
anytime to see live progress.
On QC failure, the reviewer comments + blocks. The dispatcher
re-spawns the matching upstream stage with the reviewer's notes
as additional context. Up to 2 retries by default
(kanban.failure_limit).
On all-done, the parent task's last comment includes:
- Final video S3 URLs (one per aspect ratio).
quality_score per ratio.
cost_breakdown (per-model spend).
- Storyboard HTML link for asset-by-asset review.
Triggering directly (single-shot, no kanban)
For experimentation or short trailers (< 15s), bypass kanban and call
the pipeline directly:
trigger_pipeline(
name="trailer_factory",
config_path="configs/pipelines/game_visuals.yaml",
game_context={...}
)
You lose retry + cross-stage visibility but it's faster for iteration.
Variants
- App Store Preview — 30s, 9:16 vertical, mute-friendly (captions
burned in). Use
configs/pipelines/short_video.yaml.
- YouTube launch trailer — 60-90s, 16:9, music + VO. Use
configs/pipelines/long_form_video.yaml.
- Social shorts — 9:16, 6-15s, hook in first 1.5s. Use
configs/pipelines/video_shorts.yaml or quiz_shorts.yaml.
Surfacing results
Always show:
- The storyboard.html link first — user can A/B per shot before
burning GPU credits on the final render.
- The kanban thread for the parent task — full audit trail.
- The cost_breakdown — game trailers can run $5-50 in compute.
Common failures
| Error |
Fix |
| Storyboard stage stalls > 10 min |
Screenwriter model timeout. Check delegation.model in Hermes config — fall back to google/gemini-flash-2.0 for storyboard, keep claude-opus for final QC. |
| Animatic shots flicker |
Veo/Kling continuity bug. The qc stage usually catches this; if not, add continuity_strict: true to the trailer config. |
| Final render aspect-ratio wrong |
The aspect_ratio field must be set on every shot, not just the pipeline level. Check configs/pipelines/<name>.yaml. |
| Music too generic |
AudioDirector needs tone_words. Re-run with explicit ["punchy", "synth-heavy", "hopeful"] style adjectives. |
1---2name: ivx-game-trailer3description: End-to-end game trailer production via the Content Factory trailer_factory pipeline — storyboard → animatic → audio → final cut with inspect-and-fix quality gate. Routes long-running work through Hermes Kanban so it survives pod restarts and exposes a multi-stage status board. Use whenever the user asks for a game trailer, gameplay video, launch teaser, App Store preview video, or any video promoting a game.4---56# Game trailer factory78The Content Factory `trailer_factory` pipeline (under9`content-factory/pipelines/games/trailer_factory/`) is a multi-stage10workflow: research → storyboard → animatic → audio direction → final11render → quality check → re-shoot loop.1213Because it spans 4-8 GPU services and takes 20-90 minutes end-to-end,14this skill routes the work through Hermes Kanban so each stage is a15durable task that survives Veo / Kling / Beatoven crashes.1617## When to use this skill1819- User asks for a game trailer, gameplay teaser, launch video.20- User wants an iOS/Android App Store preview video.21- Trailer revision: "make the audio darker", "add a 5-second hook22 before the gameplay", "render at 9:16 too".2324## Prerequisites2526- MCP servers configured: `content-factory`, `content-factory-media`,27 `hermes` (for kanban orchestration), `gastown` (for assignment to28 the right rig).29- Hermes Kanban board exists: `hermes kanban board create content-factory`30 (one-time).31- Game context in S3 App Canvas (icon, hero, mascot, sound logo,32 representative screenshots).3334## The workflow35361. **Gather game context.** Confirm with the user:37 - Game name + bundle ID + Steam/Apple/Google URLs (if live).38 - Target trailer length (`30s` for App Store, `60s` for YouTube,39 `15s` for TikTok / Reels / Shorts).40 - Output aspect ratios needed (`16:9`, `9:16`, `1:1` typically).41 - "Tone words" (3-5 adjectives) — feeds the AudioDirector.42432. **Create the parent kanban task** (use the `hermes` MCP):4445 ```46 kanban_create(47 board="content-factory",48 assignee="trailer-director",49 workspace="dir:/Users/<you>/dev/content-factory",50 title="Game trailer: <game_name> (<length>s × <ratios>)",51 body="<paste the gathered context as YAML>"52 )53 ```54553. **Link 5 child tasks** (one per stage), each with its own56 assignee profile so different models can work each stage:5758 | Stage | Assignee | Toolset |59 |---|---|---|60 | storyboard | screenwriter | `content-factory`, `firecrawl` |61 | animatic | media-producer | `content-factory-media` |62 | audio | audio-director | `content-factory-media` |63 | final-render | media-producer | `content-factory-media` |64 | qc | reviewer | `content-factory` (reads quality.py outputs) |6566 Use `kanban_link(parent=..., child=...)` for each.67684. **Watch the dispatcher** spawn workers as parents complete. Tell69 the user the parent task ID so they can `kanban_show <id>`70 anytime to see live progress.71725. **On QC failure**, the reviewer comments + blocks. The dispatcher73 re-spawns the matching upstream stage with the reviewer's notes74 as additional context. Up to 2 retries by default75 (`kanban.failure_limit`).76776. **On all-done**, the parent task's last comment includes:78 - Final video S3 URLs (one per aspect ratio).79 - `quality_score` per ratio.80 - `cost_breakdown` (per-model spend).81 - Storyboard HTML link for asset-by-asset review.8283## Triggering directly (single-shot, no kanban)8485For experimentation or short trailers (< 15s), bypass kanban and call86the pipeline directly:8788```89trigger_pipeline(90 name="trailer_factory",91 config_path="configs/pipelines/game_visuals.yaml",92 game_context={...}93)94```9596You lose retry + cross-stage visibility but it's faster for iteration.9798## Variants99100- **App Store Preview** — 30s, 9:16 vertical, mute-friendly (captions101 burned in). Use `configs/pipelines/short_video.yaml`.102- **YouTube launch trailer** — 60-90s, 16:9, music + VO. Use103 `configs/pipelines/long_form_video.yaml`.104- **Social shorts** — 9:16, 6-15s, hook in first 1.5s. Use105 `configs/pipelines/video_shorts.yaml` or `quiz_shorts.yaml`.106107## Surfacing results108109Always show:110- The **storyboard.html** link first — user can A/B per shot before111 burning GPU credits on the final render.112- The **kanban thread** for the parent task — full audit trail.113- The **cost_breakdown** — game trailers can run $5-50 in compute.114115## Common failures116117| Error | Fix |118|---|---|119| Storyboard stage stalls > 10 min | Screenwriter model timeout. Check `delegation.model` in Hermes config — fall back to `google/gemini-flash-2.0` for storyboard, keep claude-opus for final QC. |120| Animatic shots flicker | Veo/Kling continuity bug. The `qc` stage usually catches this; if not, add `continuity_strict: true` to the trailer config. |121| Final render aspect-ratio wrong | The `aspect_ratio` field must be set on *every* shot, not just the pipeline level. Check `configs/pipelines/<name>.yaml`. |122| Music too generic | AudioDirector needs `tone_words`. Re-run with explicit `["punchy", "synth-heavy", "hopeful"]` style adjectives. |