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
fixesmechanically first. They carry anactiondiscriminator plus exact target values (for examplesnap_to_tokenwith 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.

