Skip to content
Development
Skill

/game-trailer

Make a trailer, promo, teaser, sizzle reel, launch or gameplay video for one of our browser games (Road to AEW / ROAD TO THE BIG TIME, 5 Star Booker, or any game built the same way) from the real game: frame-exact 4K capture under a virtual clock, a beat-mapped edit with poster

BOOST
From plugin
vexjoy-agent
44363 skills198 agents12 commands79 hooks
Install
$ npx -y skills add notque/vexjoy-agent --skill game-trailer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/game-trailer

Context preview

The summary Claude sees to decide when to auto-load this skill.

Make a trailer, promo, teaser, sizzle reel, launch or gameplay video for one of our browser games (Road to AEW / ROAD TO THE BIG TIME, 5 Star Booker, or any game built the same way) from the real game: frame-exact 4K capture under a virtual clock, a beat-mapped edit with poster

SKILL.md

game-trailer.SKILL.md
name: game-trailer
description: "Make a trailer, promo, teaser, sizzle reel, launch or gameplay video for one of our browser games (Road to AEW / ROAD TO THE BIG TIME, 5 Star Booker, or any game built the same way) from the real game: frame-exact 4K capture under a virtual clock, a beat-mapped edit with poster overlays printed in the game's own CSS, a score written in code, the game's own sounds and its crowd engine. Use it whenever someone asks for a trailer, a promo or social video of a game, a YouTube or X cut, a re-cut or recapture of an existing trailer, or just 'make a video that shows the game off'. Carries the pace rules the owner settled on and the capture, edit and audio traps that cost time."
user-invocable: true
argument-hint: "<game, and what the trailer must show>"
agent: python-general-engineer
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Grep
  - Glob
  - Task
  - Skill
routing:
  force_route: true
  category: game
  not_for: "cutting footage from a camera or screen recorder (use video-editing); making art or clips with an image or video model (use image-gen or image-to-video)"
  triggers:
    - game trailer
    - trailer for my game
    - cut a trailer
    - trailer cut
    - trailer
    - promo video
    - promo trailer
    - sizzle reel
    - launch video
    - teaser video
    - gameplay video
    - video for socials
    - youtube trailer
    - recapture the trailer
    - re-cut the trailer
    - new cut of the trailer
    - show the game off
    - virtual clock capture
    - frame-exact capture
  pairs_with:
    - video-editing
    - building-with-jev
    - grill-jev
  agents:
    - python-general-engineer
    - pixijs-combat-renderer

Game trailer

A trailer for one of our games is the game itself, filmed. Nothing is mocked up and no generated art or stock footage goes in. The build itself runs on its dev server and is captured frame by frame under a virtual clock, the cut is pinned to a beat map, the poster graphics print with the game's own CSS, the score is written in code, and the sound is the game's own sounds plus its crowd engine, rebuilt offline to the picture.

This skill carries that pipeline, the pace rules the owner settled on across six cuts of ROAD TO THE BIG TIME (Road to AEW), and the traps that cost time. Reference implementation: `road-to-aew`, `scripts/promo/` plus `scripts/audio/dsp.py`, at commit `2cba9ac` (2026-10-22). The finished trailer: cut 6, 61 s, 1080p60, captured at `20943e7`.

The bar

What "good" meant to the owner, in the order the reviews raised it. Judge every cut against this table before sending it.

| Rule | Why (owner's words) | What it looks like in the cut | |---|---|---| | Readable before fast | "it moves too fast, I can't see or understand things", said of the 15 s cut and again of the 46 s cut | Shots hold about 1 to 2.5 s (median 1.4 s); quick cuts only inside slow motion. Footage plays at or under real speed. Impacts in slow motion. The viewer registers what a thing is before the next thing. | | Longer beats shorter | "I'd rather it be a full minute than so fast my eyes can't follow" | 61 s final. Stretch a fast block 1.5 to 2× (layout `k`) instead of cutting shots. | | Say what the game is | "we need to communicate that it's a card game" | A hook caption on frame 0 ("A wrestling card game"); one whole turn played full screen with captions ("Every move is a card", "They hit back", "New hand, new turn"). | | Show the whole screen playing | "a full picture of the whole screen as you play cards" | Full-screen sections at zoom 1.0 to 1.05 for the creator and the turn. Zoomed cameras only on moments. | | The creator shows choices changing | "show it moving options you can select"; "tattoos are harder to see, pick a change that is obvious" | One pick per 0.4 to 0.6 s: build, headgear, mask, face paint, outfit, colour scheme. Hair and ink are too small at trailer size. | | Moves must read as themselves | "the One Winged Angel doesn't look like one, pick a finisher that looks like what it is" | Pick moves with a dedicated pictogram whose action is legible (Busaiku Knee: run-in, knee, head snaps back). Play the run-in at 0.42×. | | The crowd knows who's who | "cheer when you're playing cards, boo when the enemy attacks" | Cheers on the player's plays, boos on heel intros and heel hits, one reaction at a time. Audit the cue list every cut. | | The game's own look and sound | "the captures need to be in our poster style"; "cut 2 still uses the wrong and old sounds" | Recapture on the current build. Poster overlays from the game's CSS. Sounds logged during capture and rebuilt offline; the crowd from the shared engine. | | End on the win | "I'd rather the video be longer than end with just a sizzle reel" | The roster montage moves before the main event. Finisher, 1-2-3, WINNER, title and call to action close the cut. | | Music that holds | the 128 BPM cut was the one that "moves too fast" | 96 BPM, one tempo throughout, every hit on picture, a beat of silence before each drop. |

Two paths

| Situation | Do | |---|---| | Same game, new trailer or re-cut | Reuse `scripts/promo/`. New for the cut: the takes in `capture/takes/`, `timeline.json`, the `edl.mjs` body, the score's arrangement (`render()` and `DYNAMICS` in `compose_trailer.py`) and the mix's `GAPS` and `BED_CURVE`, all keyed to the beat map's hit and section names. Unchanged unless the game changed: `lib.mjs`, `compose/`, the synths, `arena.py`, `render_game_audio.mjs`. | | A game without the pipeline | Port it: `references/pipeline.md`, "Port to another game". Copy the pipeline, rewrite the boot path and stage seams, the sound log hooks, the overlay's wrestler lookup and the sample map. Budget a day for the port before the first take. |

Workflow

Phase 1: Scope with the owner

List what must be seen (mechanics, moments, screens), the hero, the opponents, the platform and the length target. X caps a video at 2:20 and 512 MB; YouTube takes t

Read more
Ships withvexjoy-agent

Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.

Get the whole plugin

Other skills on vexjoy-agent.