animation-frame-qa
Skill0 starsChanged 2 months agoMITView on GitHub
Reviews a rendered animation video at delivery size before sign-off - bounded contact sheet, phone-width stills, safe-area overlay, loop seam strip, luminance flash report, a look-at-it checklist with pass, fail or manual verdicts. Use when the user asks to check, review, QA, proof or sign off a rendered mp4 or gif, whether text reads on a phone, or which frames flash or strobe. Not for rendering.
In this repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-skillSkill
- publish-repoSkill
- animation-export-presetsSkill
- animation-storyboardSkill
- smooth-motion-choreographySkill
- storytelling-animationSkill
- vector-asset-sourcingSkill
- vector-scene-layoutSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Use on a finished MP4 or GIF when someone asks to review, check, QA, proof or sign it off, when a client says text looks tiny, or when …
- Very specific: line 21
Do NOT use for: producing the files (animation-export-presets), fixing motion (smooth-motion-choreography), fixing layout …
- Distinctive: line 50
Close: only when every item is recorded pass.
- Distinctive: line 65
Every luminance jump not at a storyboard transition is a defect (unloaded font, missing asset, random value).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
animation-frame-qa
Makes an agent look at the video it made, the way a viewer will see it, before it says "done". It fixes the failure where a render that passed every script check still ships with an unreadable phone view, a CTA under the feed controls, a hook frame that is blank, a seam that jumps, or a flash nobody noticed because nobody opened a frame.
When to use / when NOT to use
Use on a finished MP4 or GIF when someone asks to review, check, QA, proof or sign it off, when a client says text looks tiny, or when something flickers or strobes and the frames need finding.
Do NOT use for: producing the files (animation-export-presets), fixing motion
(smooth-motion-choreography), fixing layout (vector-scene-layout), checking
colour pairs before layout (that skill's contrast command), code review, web
accessibility audits, extracting frames for other purposes, or film criticism.
Workflow
- Produce the artefacts into a fresh folder per deliverable (bounded: ≤ 60
sampled frames, tiles scaled first, exact decoded frame count):
python3 "${CLAUDE_SKILL_DIR}/scripts/qa_frames.py" out/linkedin-4x5.mp4 --out out/qa-linkedin-4x5 --family feed --storyboard storyboard.json python3 "${CLAUDE_SKILL_DIR}/scripts/qa_frames.py" out/gif-loop.gif --out out/qa-gif-loop --family feed --storyboard storyboard.json --wrap--familyisfeed(LinkedIn 4:5, 1:1, 16:9, GIF),vertical(9:16) orslide(PowerPoint);--storyboardadds a settled phone-width still per beat;--wrapadds the loop seam strip. A non-zero exit means an artefact could not be made. - Open every image the script wrote:
contact.png,phone-first/mid/last.png,phone-beat-<id>.png,safe-first/mid/last.png,wrap.png. Readreport.jsonfor the luminance jumps. - Walk the checklist in
references/review-checklist.md: poster frame, phone legibility, safe areas, pacing and stillness, luminance jumps, loop seam, delivery facts, credits. Decide each item pass or fail with the frame numbers or beat ids. - Record the decisions into the report so the pipeline can tell reviewed from
generated:
python3 "${CLAUDE_SKILL_DIR}/scripts/qa_frames.py" --record out/qa-linkedin-4x5/report.json "poster frame reads alone=pass" "CTA still=pass" - Route each failure to the skill that owns it (table in the checklist) and re-run this review after the fix. Do not re-encode to fix a motion or layout defect.
- Close only when every item is recorded pass. This is local visual QA; say so, and list what stays manual outside the repo (platform preview, presenter machine).
Output spec
out/qa-<preset>/per deliverable with the images andreport.jsonwhose checks are all recordedpass.- A verdict per checklist item with evidence (frame numbers, which image), the routed fixes, and an explicit "not done" when anything failed or was unverified.
Gotchas
- The contact sheet samples at most 60 frames: it shows pacing, not every frame. The luminance report covers every decoded frame but only mean luma; it finds cuts and broken frames, not flash safety, which stays a judgement call.
- Every luminance jump not at a storyboard transition is a defect (unloaded font, missing asset, random value).
- Old images in a reused folder are not evidence; the script refuses a non-empty
--out. - Judge legibility on the 390 px stills, never on the full-size frames; the full-size frames always look fine.
- Frame 0 is the thumbnail on LinkedIn; a fade-from-black hook means a black thumbnail.
- For loops, "last frame equals first frame" is wrong; the last frame is one step before the first. Judge the seam on the wrap strip's continuity, not on equality.
check_output.py(export skill) proves the container; this skill proves the picture. Neither proves the platform accepted the upload: do a test post.- Safe areas are heuristics from EBU R95, Meta Reels and LinkedIn's "keep the edges free"; a client's own overlay (subtitle band, watermark) may need more.
Pointers
scripts/qa_frames.py— artefacts + luminance report;--storyboard,--wrap,--family,--record,--self-test.references/review-checklist.md— the eight checks, sources, and the routing table.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

