---
name: qa-render
description: Run technical checks on a finished video file (specs, loudness, black frames, silence, duration) and report pass or fail. Use before delivering or uploading any export.
argument-hint: <video file> [target: youtube | broadcast | social]
disable-model-invocation: true
---

<!--
Claude Code skill: /qa-render before you deliver
From the AgentCut prompt library: https://agentcut.dev/prompts/skill-qa-render/
Written by AgentCut. Free to copy, edit and use in your own projects.
Sources and credit: ranahaani/i-hate-editing (MIT) (https://github.com/ranahaani/i-hate-editing): Idea of writing every failure down as a check that blocks delivery
Save as: .claude/skills/qa-render/SKILL.md
-->

# QA a render

Input: $ARGUMENTS

Run each check, then print a table with check, result, pass or fail.

1. Specs with ffprobe: container, codec, resolution, fps, duration, audio codec, channels, sample rate. Compare with the delivery spec in CLAUDE.md if there is one.
2. Loudness with `ffmpeg -i FILE -af ebur128=peak=true -f null -`: report integrated LUFS and true peak.
   Targets: youtube and social around -14 LUFS, true peak at or below -1 dBTP. broadcast: ask the user for their spec (many use -23 or -24 LUFS).
3. Black frames: `ffmpeg -i FILE -vf blackdetect=d=0.2:pix_th=0.10 -an -f null -`. Flag any black section that is not at the very start or end.
4. Silence: `silencedetect=noise=-50dB:d=1.5` on the audio. Flag gaps longer than 1.5 s.
5. Frozen frames: `freezedetect=n=0.003:d=2`. Flag anything over 2 s that is not an intended still.
6. Save 6 evenly spaced frames to `work/qa/` so the user can glance at them.

End with: PASS or FAIL, the 3 most important problems, and the exact timecodes. Do not fix anything unless the user asks.
