AI Frontier Post
The motionmaxxing hero frame: the word motionmaxxing with measurement overlays — blue guide lines, a 0 px marker, and a softLand ease annotation on a dark glitchy ground
Your keyframes get a face rating: the motionmaxxing hero frame, made with the skill’s own runtime. Artwork: motionmaxxing project (Apache-2.0).

Every AI-generated video has the same tells: a brand label tucked in a corner, a headline held on the left, a card floating on a flat colour, and a fade between every beat. motionmaxxing (Tejashmakwana/motionmaxxing) is an agent skill that exists to kill those defaults — past 300 GitHub stars, Apache-2.0 — built not from opinions but from frame-by-frame measurement of 53 professional motion moments. It turns Claude Code, or any agent that reads a SKILL.md folder, into a motion designer with opinions, and then it checks its own work with scripts instead of telling you it came out well. This tutorial installs it, renders your first piece, and shows how its quality gates catch the slop.

What you’ll need

1. Install the skill

The README’s own install lines. For Claude Code:

git clone https://github.com/Tejashmakwana/motionmaxxing ~/.claude/skills/motionmaxxing
bash ~/.claude/skills/motionmaxxing/install.sh        # checks the requirements; installs nothing system-wide

Checked out elsewhere: ./install.sh links it into your skills folder. Flags: --dir PATH for another skills folder, --copy to copy instead of symlink, --force to replace an existing install. Other agents: point the agent at the folder — the skill is just a SKILL.md plus scripts — and give it shell access.

2. Check your machine

Before anything renders, ask the toolbox what you actually have:

bash ~/.claude/skills/motionmaxxing/scripts/providers.sh   # JSON: chrome, ffmpeg, key, codex, disk. Never installs anything.

The output is JSON: whether Chrome and ffmpeg are reachable, whether an ElevenLabs key is set, whether the Codex CLI can generate images, and how much disk you have. No Chrome, no render — the skill renders frame by frame through headless Chrome and stitches with ffmpeg. This is the step that fails silently later if you skip it now.

3. Render your first film

In Claude Code, run /motionmaxxing or ask in plain language. The skill triggers on any request to make, plan, storyboard, fix, or critique a motion graphic. Three ways in, straight from the README:

From a URL — the skill captures the site’s brand first (brand.mjs: brand.json, BRAND.md, board.png, logo, fonts, screens):

/motionmaxxing make a 20s launch film for https://example.com. I want to see the idea and the storyboard before you build.

A single moment — the cheapest way to see the craft:

/motionmaxxing a 6 second kinetic-type sting for our brand: the one line "Ship it" with real 3D on the mark. Silent is fine.

Rate and repair — bring your own slop:

/motionmaxxing here is draft.mp4 and its index.html. Rate it slop, mid or maxxed, run the gates, tell me what fails, and fix it.

Every run follows the same 10-step protocol: toolbox and taste → brand → one true thing → the idea → world and time (STORYBOARD.md) → hardest beat first → look honestly → sound to picture → deliver. The agent shows you the idea and the storyboard before it builds. When a gate fails, it fixes in a fixed order — a failing gate is fixed, not argued.

4. Read the gates

This is the part most “video skills” skip: scripted quality checks with numbers. A gate that fails gets fixed; two gates have no script, and the agent has to say so.

The page-chrome lint catching a synthetic frame: a tracked-caps brand label, a counter, a timecode, a progress bar and a kicker over a left-aligned headline all fail gate G5
The page-chrome lint doing its job: every default the skill forbids, caught by geometry. Artwork: motionmaxxing project (Apache-2.0).
GatePass conditionComputed by
G0 render existsDecodes, is not blank, the picture moves, the length matches the plan, audio present when plannedlook.py
G1 proof readableUI text at least 0.04 H; fragment at least 0.55 W or cropped by the frame; lit, in a worldby eye on the contact sheet
G2 no empty frameNo run of more than 3 consecutive flat frameslook.py
G3 end card shortEnd hold at most 1.4 s; the final shot at most 25% of the filmlook.py
G4 one hero per frameTwo panels only if one has twice the area of the other, or the camera moves between themby eye on the contact sheet
G5 no page chromeNo corner labels, counters, timecodes, header/footer bars, kicker over a headline, left headline beside right-side media, progress bars, letter-typed headlines, or vibe-coded UI cardslint.mjs

G5 is the signature move: page chrome — a brand name in a corner, a “02 / SPEAK” counter, a timecode — was the strongest signal in the skill’s slop autopsy that nobody had decided anything. The lint catches it by geometry and typography. G2 is the mewing rule for your frames: in the measured 3–7 s pro moments, something moves on about 99% of frames, and more than 3 flat frames in a row fails.

5. Steal the measurements

Most “motion design skills” are a list of opinions. This one started with a measurement: 53 frame-accurate pro moments decoded by 6 parallel AI analyst agents (reviewed by a human) into about 150 designer rules, each written as WHEN / DO / BECAUSE with evidence. About 4,300 distinct moves were seeked frame by frame — that gave 12 measured eases, named and reusable in the runtime (M.ease.softLand, snapSettle, accelExit, …):

The 12 measured eases of motionmaxxing plotted from 0 to 1, each with its typical length in frames, its share of measured moves and when professionals use it
The 12 measured eases: each curve decoded frame by frame from professional motion moments, with when the pros actually use it. Artwork: motionmaxxing project (Apache-2.0).

The numbers worth stealing, even if you never install the skill:

The runtime is honest engineering too: runtime/motion.js is one plain <script> on top of vendored GSAP with no build step, and every frame is a pure function of time — seek-safe, so jumping to any frame equals playing to it (Motion.selfTest proves it, canvas pixels included).

What you built

A skill installed in your agent’s skills folder, a machine check you can re-run any time, and a repeatable protocol: brief → brand → idea → storyboard → hardest beat first → scripted gates → sound → deliverables. A finished run leaves you four files: film/final.mp4 (the film), film/index.html (the editable source — plain HTML plus the Motion runtime, reproducible frame by frame), film/STORYBOARD.md (the plan and the beat table), and film/NOTE.md (the honest account: what is real and what is illustrative or generated, the G0–G5 numbers, what you would still improve). The skill’s own rule: the agent never certifies the film as good.

Honest limitations