Skip to main content
Agentic engineering infrastructure

Keep AI-generated UI consistent

When agents write your front-end code, your design system stops being a reference and becomes the context that keeps every screen on-brand, accessible, and production-ready.

What are design systems for AI agents?

Design systems for AI agents turn visual standards, tokens, components, examples, and review rules into context agents can actually use.

The system you already maintain in Figma and human heads has to become machine-readable: named tokens instead of hex codes, documented component contracts instead of tribal knowledge, worked examples the agent can pattern-match against, and review rules enforced by automated checks. The design system stops being a PDF and starts being infrastructure your agents read on every change.

THE PROBLEM

Why AI-generated UI drifts without constraints

Agents are excellent pattern-matchers and relentless guessers. Without machine-readable constraints, they fill the gaps with plausible-looking output that slowly walks away from your system.

It invents tokens

Without a machine-readable token reference, an agent will reach for plausible-looking values. You get fourteen shades of "almost brand purple" and a spacing scale that drifts a few pixels every PR.

It reimplements primitives

Agents that cannot see your component library rebuild buttons, modals, and dropdowns from scratch. Each copy carries its own bugs, its own accessibility gaps, and its own maintenance cost.

It skips accessibility

Focus traps, keyboard handlers, and ARIA roles are easy to omit and invisible in a screenshot. Unless accessibility is written into the rules the agent reads, generated UI quietly regresses.

It has no review memory

A human reviewer who flagged "use the Card component" last week is not in the loop this week. Without codified review rules, the same corrections get re-litigated on every change.

None of this is the agent being careless—it is the agent having nothing to anchor to. Drift is a context problem, and context is something you can engineer.

THE FOUNDATION

What to document for your agents

Six categories of context turn a design system from a human reference into something an agent can execute against.

Design tokens

Color, spacing, typography, radius, and elevation as named values—not raw hex codes. Agents should reach for `--space-4` and `color.brand.primary`, never `#6c47ff` or a magic `13px`.

Component contracts

The canonical component for each job, its props, allowed variants, and when to use it. Document that a primary action is `<Button variant="primary">`, not a hand-rolled `<div onClick>`.

Worked examples

Real, copyable usage for common patterns: a form, a modal, an empty state, a data table. Agents pattern-match aggressively—good examples are the highest-leverage context you can provide.

Anti-patterns

Explicit "do not do this" rules. No inline styles, no one-off color values, no nesting interactive elements, no reimplementing a primitive that already exists. Name the failure modes.

Accessibility expectations

Required focus states, ARIA roles, label associations, contrast minimums, keyboard interaction, and motion-reduction rules. Encode them so they are non-negotiable, not aspirational.

Content and copy rules

Voice, casing, sentence vs title case, button verb conventions, error message tone, and empty-state language. UI text is part of the system; agents will invent copy unless you constrain it.

THE WIRING

How to wire your design system into the agentic loop

Documentation alone is not enough. The system has to live where the agent works—in prompts, skills, repo docs, tests, Storybook, visual checks, and code review.

Repo docs the agent reads

Put the rules where the agent already looks: AGENTS.md, a rules directory, and component-level READMEs. A repo-aware agent treats these as ground truth, not suggestions.

Skills for repeated UI tasks

Package "build a settings form" or "add a table view" as a skill that loads tokens, the right components, and worked examples on demand—so the agent gets the system context exactly when it needs it.

Prompts and system context

Bake the non-negotiables into the agent's instructions: use design tokens, never inline styles, reuse primitives, meet the accessibility bar. Constraints in context beat corrections after the fact.

Tests and lint as guardrails

Token linters, no-inline-style rules, and accessibility unit tests fail the build when the agent drifts. The agent can read the failure and fix itself before a human ever sees the diff.

Storybook as the source of truth

Stories are executable examples. Point the agent at Storybook so the canonical component, its props, and its states are discoverable—and so new UI is generated against real, rendered references.

Visual and snapshot checks

Visual regression and snapshot tests catch the drift that type checks miss: a misaligned grid, a wrong shade, a broken dark mode. They turn "looks off" into a deterministic failing check.

AI code review on every PR

Codify your review rules so an automated reviewer enforces them on each change—flagging an inlined color or a duplicated primitive before merge, every time, with no reviewer fatigue.

Human-in-the-loop sign-off

Agents handle the mechanical conformance; designers and staff engineers approve intent, taste, and edge cases. The system makes the easy calls automatic so humans spend judgment where it matters.

Kilo's agents are repo-aware: they read your rules files, components, and examples as ground truth, can load design-system context as skills, and run an automated code reviewer that enforces your guardrails on every pull request—with a human in the loop for the calls that need judgment.

CONSTRAINED VS UNCONSTRAINED

The same task, with and without constraints

Give an agent a design system it can read, and the output converges on your primitives instead of reinventing them.

A primary button

Unconstrained agent
<div
  style={{
    background: '#6c47ff',
    padding: '11px 18px',
    borderRadius: '7px',
    color: 'white',
  }}
  onClick={onSave}
>
  Save changes
</div>
With a design system
<Button variant="primary" onClick={onSave}>
  Save changes
</Button>

Unconstrained: a clickable div with a near-brand color, off-scale spacing, no focus state, and no keyboard support. Constrained: the canonical primitive, which carries tokens, states, and a11y for free.

Spacing and color

Unconstrained agent
<section style={{ marginTop: 13, gap: 9 }}>
  <h2 style={{ color: '#1a1a1d' }}>Team usage</h2>
  <p style={{ color: '#777' }}>This month</p>
</section>
With a design system
<section className="mt-4 flex flex-col gap-2">
  <h2 className="text-foreground">Team usage</h2>
  <p className="text-muted">This month</p>
</section>

Magic numbers and one-off greys drift on every edit. Tokens keep spacing on the scale and color semantics intact across light and dark themes.

An accessible field

Unconstrained agent
<div>
  Email
  <input type="email" />
</div>
With a design system
<Field>
  <Field.Label>Email</Field.Label>
  <Field.Control type="email" required />
  <Field.Error />
</Field>

No label association, no error handling, no required semantics. The system component wires up labelling, validation messaging, and focus management by default.

THE WORKFLOW

Who owns what in an agentic design system

The roles do not disappear—they shift. Agents handle mechanical conformance so humans spend their judgment where it actually matters.

Designers

Own tokens, components, and intent in Figma—then ensure those decisions are mirrored as machine-readable rules and examples the agent can consume. Approve taste and edge cases, not pixel conformance.

Front-end engineers

Maintain the component library, Storybook, and worked examples. Drive the agent with skills and prompts, and treat generated UI as a draft to shape rather than accept blindly.

Reviewers

Codify review rules so an AI reviewer enforces conformance on every PR. Spend human review on architecture, accessibility nuance, and product judgment instead of re-flagging inlined styles.

Platform teams

Own the guardrails: token linters, accessibility tests, visual checks, and the repo docs the agent reads. Make the right thing the easy thing—and the wrong thing a failing build.

For teams standardizing this across the org, Kilo Teams adds shared modes and analytics, and Enterprise brings SSO, audit logs, and the controls platform teams need to roll out guardrails at scale.

Frequently Asked Questions

Design systems, agents, and production-quality front-end work

Make your design system agent-ready

Kilo's repo-aware agents, skills, and AI code reviewer turn your tokens, components, and rules into guardrails that keep AI-generated UI consistent—without slowing your team down.