Stop fixing AI UI one output at a time

Reactive brand review fails because every agent session is stateless. A Taste Profile plus an AI-ready folder is the root system that keeps Cursor and Claude Code on brand.

Francois Brill

Francois Brill

Designer + Builder

Sep 21, 2026

Last updated

You shipped three AI-generated screens this week. Each one needed a brand pass. Cool gray instead of your sand neutrals. A 12px radius on a 6px product. "Get started" on a brand that never says that. You fixed the tokens, merged, and the next session invented them again.

That is reactive AI UI brand governance: review after generation, patch the output, hope the next chat remembers. It does not. Sessions are stateless. Gaps are invention. The work is not another prompt. It is a root system the agent cannot invent around.

This page owns that process and the commercial path. The howto for DESIGN.md and the Taste Profile package lives on DESIGN.md and Taste Profile. We will not re-tutorial the file format or the skill install. If you need the contract extracted from a shipped frontend, that workflow is generate design specs from code. If the library is already a mess, the offer is a design system audit.

As of 21 Sep 2026, Google Search Console showed 1 impression for a governance long-tail (position 1) and 1 impression for "how do i keep ai-generated ui on-brand?" (position 4). Small numbers. Cited because they are real, not because they look like a market.

Why reactive per-output brand review fails

Coding agents are good at average. Your product is not average on purpose. Every session starts with a blank memory and a pile of nearby files. It infers the rest.

A Cursor chat reads tailwind.config, two components, and whatever you pasted. Claude Code reads CLAUDE.md and whatever the context window still holds. Neither remembers last Tuesday's brand pass. The Notion PDF is gone. The Figma comment is gone. The Slack thread where you said "never that blue for body text" is gone. The agent fills the holes with training-set defaults: plausible spacing, a familiar card, a button that looks like a button. Close. Then you put it next to the product you already shipped and it is obviously not yours.

Stop reactive fixes. Install a root system. Reviewing outputs one by one is a tax that scales with generation speed. Pasting brand guidelines into chat describes the brand for one session. Next session, someone paraphrases it, or skips it, and the UI drifts again. A screenshot of "the good page" is the same trick with pixels. Neither is governance. Governance is what the next session is forced to read before it writes UI.

The brand pass that did not stick

An engineer asked Cursor to add a settings panel "in our brand colors." It returned a clean layout using primary-500. The component compiled. That token does not exist in the repo. The real value is a custom name that went through brand review. The next session had no contract to violate, so it invented a plausible one. The design lead spent twenty minutes fixing hex values that the following Monday reinvented.

If you do not have a contract yet, and the product already ships, do not start by reviewing more outputs. Reverse-specs is how you get a file the agent can load. That workflow is generate design specs from code. Writing the file is still not the system. One file still leaves gaps. Gaps are where agents invent.

The root system: contract, package, load, ownership

AI UI brand governance is four jobs, not one document. Miss any of them and you are back to per-output review.

1. The contract (DESIGN.md).

A machine-readable design contract tells agents brand and UI constraints. YAML tokens say what exists. Prose says what to reach for. Google Labs / Stitch popularized the format. We are not going to re-tutorial section order, the CLI, or how to export from Stitch. That howto is DESIGN.md and Taste Profile. What matters here: a file the agent can load every time is the first durable fix. A file alone is not a full on-brand system.

2. The Taste Profile package.

Pasting guidelines describes the brand. A Taste Profile is the spec the AI reads so it cannot invent a new one. On Clearly projects that package is DESIGN.md plus tokens, component specs, voice, and optional SKILL.md, sitting inside a five-tier AI-ready folder. Tokens stop the agent picking a nearby hex. Specs stop it rebuilding a Button from vibes when one already exists. Voice stops "Get started" on a brand that does not talk like that. The optional skill is how the methodology loads without stuffing CLAUDE.md until the model skims it.

That is Clearly's packaging language. It is not tasteprofile.io. Same two words. Different object. The folder map lives in the AI-ready design systems series. This page will not walk the tree again.

3. Agent load.

The package does nothing if the session never opens it, and it still fails if you dump the whole system into always-on context so the model skims. Point CLAUDE.md or a Cursor rule at the file and the folder. Tell the agent to read DESIGN.md and the relevant spec before generating UI, and not to invent tokens or component APIs that are not there. Do not paste the token table into CLAUDE.md. When you need installable scaffold structure, that is a skill, not a longer always-on file. The hub is Claude Code design skills. We will not copy the install steps here.

4. Ownership.

A design system without an owner becomes a suggestion library. Who can add a component. What happens when a squad ships a one-off. How DESIGN.md, tokens, and specs stay in sync after a rebrand. The folder will not invent that process. Someone has to name it, and someone has to keep it current. That is the part DIY tools skip, and the part a partner actually sells.

If AI UI still looks close and never yours, you do not need another prompt. You need the brand encoded so agents cannot invent around it, loaded every session, owned by a person who can say no.

DIY tools vs Clearly

SERP for AI UI brand governance is owned by tools. They are useful. This page will not clone their docs.

preset AI encodes intent, presets, and rules, then serves them to Cursor, Claude, and Copilot (MCP plus CI checks: forbidden primitives, token enforcement, context rules).

Denote governs structural UI decisions (which template and variant a screen should use, which rule wins when signals conflict). Aesthetics stay with your existing design system.

Primitiv is a repo-scoped design-contract layer: drift checks, rationale files, GitHub CI evals. npx @ai-by-design/primitiv init is the one-repo start.

Token guardrails (lint hardcoded hex, ban off-scale spacing, fail CI when a PR invents a color) are the same idea in smaller pieces.

Use them when they fit. A clean one-repo team with a real design system can get a long way on evals and MCP context. Clearly's job is different. Tools enforce a system that already exists. They do not encode taste, write the don'ts, name an owner, or hold the thread across five products. If the gap is "we keep fixing outputs," the missing object is usually the package and the process, not another validator.

DIY tools (preset AI, Denote, Primitiv, token lint)Clearly Taste Profile governanceClearly partner
JobServe or enforce an existing system at generation and CI timeEncode contract + tokens + specs + voice + load + ownership so agents cannot invent around brandHold the thread: Taste Profile, messy-library path, multi-repo rollout, ongoing governance
When it is enoughOne repo, a trusted library, you can write the rules yourselfYou need the in-repo bundle agents actually read, not another promptMulti-repo brand, agents already shipping UI, the hard part is judgment and process not a plugin
What it still missesTaste, don'ts, named ownership, Figma-plus-code drift, the commercial pathSomeone still has to keep the package currentYou still choose the work. We do not invent a governance SKU on top of live public pricing

Scaffold vs audit vs partner

Three honest forks. Pick the one that matches the mess you actually have.

Scaffold when one repo needs an AI-ready folder and you can encode brand yourself: flavor, adapter, tokens, the don'ts you already know. The open design-system-scaffold will not invent taste. It will not invent ownership. It will put a structure in place so the next session has something to read. Stay on the Claude Code design skills hub if that is the job. Do not hire us to run a skill you can run this afternoon.

Audit when the library is already messy. Figma and production disagree. Tokens exist in three places. Components named Button copy 3 FINAL sit next to the real button. AI tools inherit the drift. That is not a scaffold. That is a design system audit: a mostly read-only readout of the library and the repo, then a prioritized path. We do not publish a standalone audit list price. The method for the code-side document is Article 3. The offer page is the commercial front door. Distinct from this page on purpose.

Partner when the gap is the package, the process, or the surface area. Taste Profile encoding (the calls a designer makes without being asked, written so an agent cannot dodge them). Named ownership. The same company feel across several repos and stacks. Adapters help. They do not hold the thread. If that is the work, we are a design partner for SaaS, not a request queue. Prototype-first. Slack and Looms. If the scoped job is an AI-ready design system for a team shipping with Cursor, Claude Code, or v0, that is the project path.

Live public pricing only. Standard $4,995/mo. Advanced $7,495/mo. The AI design-systems project $8,000-$12,000. Pause or cancel on the retainers. Confirm current numbers on clearly.design before you buy. We do not publish a reverse-specs SKU, a standalone audit list price, or a "governance package" on top of those numbers.

This is not a hard sell for any path. If the open scaffold plus a tool from the previous section does the job, use them. Encode the brand. Point the agents at it. Name an owner. We would rather you have a root system than a project you did not need.

Adjacent pages (keep them distinct)

The map is the AI-ready design systems series. DESIGN.md and Taste Profile is the howto for the contract and the in-repo package (sibling, not a rewrite). Generate design specs from code is reverse-specs when the frontend already ships. Claude Code design skills is the installable procedure. Design system audit is the messy-library offer. AI design systems is the full build. Design partner for SaaS is the embedded retainer.

This page is the governance process: stop reactive fixes, install a root system, then choose scaffold, audit, or partner. Book a call if the file would only name the easy part, and the hard part is still sitting with a founder.

Frequently asked questions

Why does reactive per-output brand review fail for AI-generated UI?
Agent sessions are stateless. Last week's token rename, the Notion PDF, and the Figma comment that said never use that blue for body text are gone. The next Cursor or Claude Code session starts over and fills gaps with training-set defaults. You are not reviewing a system. You are reviewing inventions. Patching hex values after the fact does not teach the next session what on-brand means.
What is AI UI brand governance?
AI UI brand governance is the root system that keeps generated UI on-brand without a human brand-pass on every output. On Clearly projects that system is DESIGN.md (the contract), a Taste Profile package (tokens, component specs, voice, optional SKILL.md inside an AI-ready folder), agent rules that point at the file and the folder, and named ownership for what happens when a squad ships a one-off. It is not a longer prompt, and it is not a DESIGN.md tutorial. The howto for the file and package is https://clearly.design/resources/design-md.
How do I keep AI-generated UI on-brand in Cursor or Claude Code?
Stop reviewing outputs one by one. Encode brand so the session cannot invent around it, then load that encoding every time. Point CLAUDE.md or a Cursor rule at DESIGN.md and the matching specs folder. Prefer existing components. Do not invent tokens, radii, or copy voice that are not in those files. Do not paste the whole system into always-on context. If you do not have a contract yet and the product already ships, reverse-specs is the workflow: https://clearly.design/resources/design-specs-from-code.
When is a scaffold enough vs a design system audit vs a partner?
Scaffold when one repo needs an AI-ready folder and you can encode brand yourself. Audit when Figma and production have already drifted (messy libraries, stale docs, competing token sources). That offer is https://clearly.design/projects/design-system-audit. Partner when the gap is Taste Profile encoding, named ownership, or the same system across several repos. Live public pricing only: Standard $4,995/mo, Advanced $7,495/mo, and the AI design-systems project at $8,000-$12,000. Confirm current numbers on https://clearly.design/ before you buy.
How is this different from DESIGN.md, reverse-specs, and the design system audit offer?
DESIGN.md and Taste Profile (https://clearly.design/resources/design-md) is the howto for the contract and the in-repo package. Generate design specs from code (https://clearly.design/resources/design-specs-from-code) is the reverse-specs workflow when a frontend already ships. The design system audit (https://clearly.design/projects/design-system-audit) is the messy-library commercial offer. This page owns the governance process: stop reactive per-output fixes, install a root system, then choose scaffold, audit, or partner.

Need a root system, not another brand pass?

We'll tell you honestly whether a scaffold is enough, whether a messy library needs an audit, or whether Taste Profile and multi-repo governance need a partner.