About review-loop
A video-review skill for checking rendered frames through contact sheets and iterating until the visual and audio checklist passes. It helps creators catch composition, readability, timing, consistency, and sound issues before reporting a video as complete.
Key features
- 01Draft-render and contact-sheet review
- 02Timestamped frame inspection
- 03Focused transition and still capture
- 04Composition, type, and timing checklist
- 05Audio level and beat checks
- 06Re-render verification before reporting
Use cases
- 01Inspecting an animation after a draft render
- 02Finding overlap or clipping during transitions
- 03Checking text legibility at phone width
- 04Verifying final video frames and sound
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ whaleyxbt/ claude-motion --skill review-loopAfter installing, type/review-loopin Claude Code to confirm it loaded.
Details
From the project READMEReview loop
You can't watch the video, but you can look at frames. Never report a video as done without looking at contact sheets of the current render.
Loop
npm run draft— half-resolution render toout/draft.mp4(fast).npm run sheet— one frame per timeline beat, 0.3 s after it so motion has settled, tiled 4×2 intoout/sheets/beats-N.png. Each tile is labelled with its timestamp.- Open every sheet image and go through the checklist below.
- Zoom in on anything suspicious:
npm run sheet -- --from 3 --to 5 --every 0.2to scrub a transition,npm run sheet -- 3.7 3.75 3.8for exact moments,npm run still -- out/still.png --frame=222for one full-resolution frame.
- Fix, then go back to step 1. Stop when a full pass finds nothing.
- Final:
npm run build, thennpm run sheet -- --video out/effort.mp4andnpm run wave.
Checklist
Composition
- One focal point per frame. If two things compete, one of them waits.
- Nothing collides or overlaps unintentionally, especially during transitions where an exiting and an entering element share space.
- Safe area: nothing important within ~60 px of an edge.
- Frame 0 is a real image, not black (it's the X thumbnail).
Type
- Nothing clipped by a mask, container or the frame when it shouldn't be.
- Key message readable when the sheet tile is shrunk to phone width.
- Text isn't moving while it's meant to be read.
Timing
- Each readable state holds long enough (see
motion-design§4). If a tile mid-hold shows text still animating, the hold is too short. - Scenes overlap instead of cutting to empty frames.
- Exits are faster than entrances.
Consistency
- Only palette colors from
C; the accent marks the point of the frame. - Same element looks the same in every scene it appears in.
Sound (after npm run wave)
- Transients sit on beat lines in
out/wave.png. - −14 LUFS ±1, true peak ≤ −1 dBFS.
Report
When you finish, say what you checked, what you fixed, and which sheet shows it. Don't claim a fix you haven't re-rendered and looked at.
Comments
Markdown supported