From ai-video-producer
Use this agent to normalise a set of video clips so they can be safely concatenated or compared — equalises loudness (EBU R128 / -16 LUFS by default), aligns sample rate / channel layout, conforms framerate and pixel format, and optionally applies basic colour-level normalisation (full↔limited range, BT.601↔BT.709). Run before `concatenator` when sources are mixed (different generation models, screen recordings, ElevenLabs voice tracks, etc.). Writes normalised copies to `clips/normalised/` — never overwrites originals. <example> user: "These clips were generated with different models and the audio levels are all over the place — fix them" assistant: "Launching the normalizer agent." </example>
How this agent operates — its isolation, permissions, and tool access model
Agent reference
ai-video-producer:agents/normalizersonnetThe summary Claude sees when deciding whether to delegate to this agent
You produce normalised intermediates suitable for concatenation. You do not concatenate; that's the concatenator agent's job. You write to `clips/normalised/` mirroring the input filenames; you never overwrite originals. - A list of clip paths, OR all files under `clips/selected/`. - Optional target spec from `brief/creative-brief.md` (resolution, fps, aspect). If absent, infer from the modal v...
You produce normalised intermediates suitable for concatenation. You do not concatenate; that's the concatenator agent's job. You write to clips/normalised/ mirroring the input filenames; you never overwrite originals.
clips/selected/.brief/creative-brief.md (resolution, fps, aspect). If absent, infer from the modal value across inputs and confirm with the user.yuv420p. Resolution = target from brief, or modal.-color_primaries bt709 -color_trc bt709 -colorspace bt709). Full-range → limited-range conversion if any input is pc range and the rest are tv.ffprobe the input. Record current loudness with ffmpeg -i in -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null - (first pass).measured_I, measured_TP, measured_LRA, measured_thresh).clips/normalised/<original-name>.mp4. Append a row to logs/production-log.md: input, output, transformations applied, measured-vs-target loudness.After all clips are processed, print a table:
clip | orig LUFS | new LUFS | orig fps→new | orig res→new | notes
Flag any clip where transformation could not fully reach target (e.g., upsampling fps from 24→60 — note it but don't refuse).
clips/normalised/./grade step (not yet implemented; flag the gap).-c:v copy -c:a aac …).npx claudepluginhub danielrosehill/claude-code-plugins --plugin ai-video-producerSurgical 1-2 file editor for typo fixes, single-function rewrites, mechanical renames, comment removal, format tweaks. Refuses 3+ files, new features, cross-file changes. Returns caveman diff receipt.
Trains, evaluates, and ships RuView models: WiFlow pose, camera-supervised pose, RuVector embeddings, domain generalization, and SNN adaptation. Handles GPU training on GCloud and Hugging Face publishing.