Made, measured, corrected
Generation is the commodity part. Anything can turn a prompt into a video; very little can tell you whether the result is any good. Cleya's shape is a loop with a measurement step in it.
Made
An animation is declarative data. A scene spec describes layers, entrances, idle motion, keyframe tracks, camera moves and looping tickers — and the compiler turns it into the runtime. You never hand-write timing code, and the spec can be validated before anything is drawn.
Measured
After a render, the instruments read the rendered pixels back:
| Tool | What it measures |
|---|---|
contrast | WCAG ratio per OCR'd text box, strokes split from ground by Otsu |
align | Near-miss optical alignment — edges and centres off by a few px — and broken vertical rhythm |
palette | Coverage-weighted dominant colours, ΔE-merged, plus luminance stats |
brand_check | 0–100 conformance against a BrandProfile by ΔE, neutrals passing |
review | Black, empty and frozen frames, text collisions, unsafe margins, tiny text, audio dead-air |
claims | Copy linted against a claims policy — banned phrases, required disclaimer, line length |
diff | Amplified difference image and PSNR between two frames |
The distinction that matters: these measure output, not intent. A scene spec can declare a colour and still render an unreadable overlay once type lands on a gradient. Only pixels tell you.
Because they read pixels, they work on any video file. contrast, align, palette,
brand_check, review and pacing all take --input <file> and measure whatever is in it —
output from a different renderer, a cut from an editor, a file a client sent you.
That means the measuring half of the loop is adoptable on its own. You do not have to move your
authoring to get the checks. (scrub is the one exception: it drives a film through seekTo, so
it needs a scene spec or a seekTo HTML film.)
Corrected
edit applies deterministic scene surgery — centre, set-text, recolour, retime, resize, move,
swap-motion — validating before it writes so an edit can never produce a broken scene.
--verify re-renders a probe frame and re-runs the instruments.
Compounded
harvest promotes an approved scene into a reusable starter: de-branding concrete colours back
to $palette tokens, deriving copy slots and a beat map, and filing it in your starter library.
Both harvest and edit --verify are instrument-gated — alignment defects block the write,
contrast findings warn. A defective scene cannot silently become the template for the next
twenty jobs.