The design-kit gate

When a turn ends, the result doesn't just land — it passes through the design-kit gate first. The gate runs the kit's checks against the files the agent wrote and reports in the transcript: Gate passed or a FAIL list naming the exact rules broken and where.

What it checks

The gate reads the result the way a browser does — rendered, at real widths:

  • Contrast — text must clear the luminance floor against its background
  • Minimum type — no text under the kit's size floor
  • Hit targets — interactive controls sized to be tappable
  • Live navigation — every nav item must reach something, checked at phone and tablet widths where toggles most often dead-end
  • Dead zones — regions where the layout swallows interaction

The checks run across five widths — desktop, laptop, tablet and two phone widths — so a design that only works at the size the agent happened to write gets caught, not shipped.

The gate PASS card in the transcript — Design checks green, files changed listed

PASS

Gate passed means the result clears the kit — it's yours to keep, steer further, or ship. The transcript lists the files the turn touched so you can see the blast radius of the change at a glance.

FAIL — and the fix loop

A FAIL lists each broken rule as a finding — the check id, the width it broke at, and the element. "Fix at this width" on a finding sends exactly that issue back to the agent as a one-line fix brief; a FAIL isn't a dead end, it's the next turn already written for you. The auto-fix loop retries once on its own before the findings land in your hands.

The design-checks panel with a finding — the check, the width, and "Fix at this width"

What it doesn't check

The gate enforces the rules, not the taste — a passing result can still be the wrong design for the brief, which is what steering, review modes and your eyes are for. And it checks what the kit knows: novel interactions or unusual structure outside the rules get a pass by default, not a verdict.

Where it runs

The gate runs at the end of every standard project turn. Codebase projects are different: adopted repos run diff-scoped checks on the files the turn changed, against your own dev server — see Build mode. Free and Pro run the same gate; it isn't part of what the license meters.

Tip: When a FAIL finding looks right-by-design (a deliberate accent exception, a known trade-off), you don't have to fix it — steer around it with a comment or a Tweak, or accept the finding and move on. The gate advises; you decide.