Skip to main content
An agent that builds a page from an extraction ships its best first guess. Verification turns that guess into a loop: build, verify, feed the verdict back, build again. Each pass replaces the agent’s own sense of “looks right” with the engine’s measurement of it. The verdict is designed for exactly this: recommendations and fixes arrive worst-first with exact target values, so they drop straight into the agent’s context as its next work queue.

The loop

1

Build from the brand

Extract the reference brand (or reuse an existing submission) and have the agent generate the page from the design system.
2

Deploy where the engine can reach it

The Verifier extracts the source_url itself, so the agent’s output must be a live URL: a preview deployment, a staging site, or a tunnel to a local build.
3

Verify

Create the job with POST /judge/brand-adherence: reference_url is the brand, source_url is the deployed page. Poll until completed.
4

Hand the verdict back

Put the score, the recommendations, and the fixes into the agent’s context and have it apply them to the code.
5

Redeploy and re-verify

Each pass is a new job against the new deployment. Stop when the score meets your bar or stops improving.

What to feed the agent, and how

The two verdict lists behave differently in a loop, and the agent should treat them differently:
  • Apply fixes mechanically first. They carry an action discriminator plus exact target values (for example snap_to_token with the token to snap to). There is nothing to interpret, so they land reliably.
  • Then work through recommendations. They are prose guidance, worst-first, with exact target values where they exist. Items that name a concrete value (“set the heading to 64px Inter semibold”) land reliably; items that only describe a gap (“the buttons diverge from the brand”) take judgment. For those, have the agent re-read the relevant section of the reference’s design system before it changes anything, instead of guessing. A guess can make the score worse.
  • Respect the order. Both lists are worst-first, so the top items move the score most. An agent with a limited budget should work from the top down and stop, not sample.

Stop conditions

Give the loop explicit exits, or it will run on noise:
  • The score meets your bar. Set the bar from two control runs first: score a page that follows the brand and a page that clearly does not, and place the bar between them.
  • The score stopped improving. Repeat runs vary slightly, so a small delta between passes is not signal. When a pass fails to clearly beat the previous one, further passes are unlikely to help.
  • A pass cap. Most of the improvement lands in the first passes. Cap the loop at a small number (two or three passes is a sensible default) and escalate to a human beyond it.

With MCP tools

The whole loop maps onto the MCP tools, so a coding agent can drive it itself: The brand-adherence skill packages this loop as installable instructions: build from the extraction’s verbatim values, verify, apply the verdict, and verify once more.

Next steps

MCP server

Connect the tools the loop runs on.

Check brand adherence

The single-check workflow each pass runs.