One-pager · for design teams
Coherence used to be enforced by how slowly we could make things. Generation removed that constraint. What the bottleneck enforced, the system must now guarantee.
Every surface passed through us. Production was slow, and that slowness was the quality control.
Copy, layouts, and flows are generated per user, per market, per channel. Consistency is an architecture problem, not a discipline problem.
Generate every surface. Govern one system.
When agents emit a tree of components against a catalog we own, rather than raw code or raw prose, the machine-readable design system becomes literal. The catalog is the vocabulary and it is ours. The composition is the expression and it is the model's. On brand stops being a review of the output and becomes a property of the tree: this node is present, in this order, outside any collapsed container.
Components, required props, composition rules, tokens, voice. The design system, made readable.
The agent arranges components for this person, channel, and market.
Structural check on the emitted tree, before anything renders.
Our surface: rules enforced. Someone else's: rules requested, not guaranteed.
Gate fails, the pre-approved fallback tree ships instead.
// catalog/PriceDisclosure.yaml the design system, made readable
tokens: [type.body, color.ink, space.tight]
variants: [inline, stacked]
voice: neutral-es | voseado-es | en
never: [collapsed, belowFold, restyled]
// what the agent emits, per person and per market
- PriceDisclosure: { variant: inline, voice: neutral-es }
- ConfirmAction: { label: catalog.confirm.send }
// a label, not free text
// checks/brand.rules
disclosure precedes the action → pass
every label resolves to catalog → pass
register matches market profile → pass
anything else → pre-approved fallback
Estás por enviar $350.00 a María López.
Comisión $4.99 · Cambio 18.90 · Recibe MX$6,615
You're sending $350.00 to María López.
One catalog entry, one set of commitments, two surfaces. The variant and the register change. The fee, the rate, and the received amount do not, because the catalog will not render the component without them. Three things worth noticing. The voice varies at cluster level, so one market profile serves many countries. The action label resolves to a catalog key rather than free text, because a generic button with a writable label is a hole in the system. And on brand is now a check that runs, not a meeting that happens.
Every state drawn by hand, in a file.
Spec, redlines, a ticket.
Everyone sees what was drawn.
Coherence came from the bottleneck. Everything passed through us.
Components, rules, voice, fallbacks.
Per person, channel, language, market.
Required nodes, in the right order.
None of them drawn by hand.
Coherence comes from the catalog and the gate. Nothing passes through us.
We stop designing the output and start designing the space of allowed outputs.
An eval is a rubric made executable, attached to a behavior rather than a prompt. Does the explanation state the fee before the consent control appears? Does the recovery message avoid opening with an apology? Each is checkable across a hundred generated variants, which is the only scale at which checking now matters.
Metrics decide winners; evals decide entrants. A variant that converts beautifully while breaching a disclosure rule is not a winner. It is an incident with good numbers.
The on-brand score is a dial, and it should climb as the voice artifacts and their evals improve. The brand commitments are floors: the claim never made, the register never used, the disclosure always shown. Floors are never averaged away and never traded for conversion.
If we generated a thousand versions of this tomorrow, what would we be embarrassed to see, and where is that written down?
Full argument: The Adaptive Brand. Companion one-pager: Conversational Design Systems. Print-styled for handouts.