assessment
Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…
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
$ npx -y skills add notque/vexjoy-agent --skill game-trailer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/game-trailerContext 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
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-rendererA 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`.
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. |
| 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. |
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
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.
Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…
Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales,…