Pixel diff
Screenshot vs. a committed baseline (Pillow/numpy). Fast, free, reproducible. A size change is itself a regression.
DriftGate · Visual regression as a CI gate
Off-brand colours, broken spacing, drifted typography — visual bugs slip past code review and reach production, where they erode trust and turn into costly hotfixes. DriftGate renders every front-end change in a real browser, scores it against your design system, and runs a bounded fix loop until it conforms. Pixel diff and design-token checks are the hard gate; the Claude-vision critic is advisory, so a non-deterministic model can never wrongly fail a build.
Two deterministic checks decide pass/fail. The model explains why — it never holds the gate alone.
Screenshot vs. a committed baseline (Pillow/numpy). Fast, free, reproducible. A size change is itself a regression.
Computed styles checked against design tokens — colour, 8 px spacing, type scale, radius. Exact and explainable.
Scores the screenshot against DESIGN_SYSTEM.md (prompt-cached) and proposes CSS fixes. Informs; never blocks alone.
One engine, two drivers, two surfaces.
Loading…
Pre-recorded playback — each step replays the loop’s real CSS patch into the live frame.
Zero backend, zero cost.
Regenerate from real runs with scripts/record_demo.py.
Runs the real loop — Playwright renders, Claude vision scores, the loop
proposes CSS — using the API key in your backend .env. Access-code
gated so only people you share the code with can spend your tokens. Start the
backend with uvicorn visual_qe_loop.api.app:app.