A design system that works without a designer in the room

After a reorganization cut capacity and the work kept growing, I made our design system readable by AI agents, so PMs and agents build on-system UI by default, and engineers build features from it.

Lead designer, Syntax design system · Phrase · 2026 → now · Part 2

Role
Lead designer, Syntax design system
Team
Design-system engineers, a content designer, a platform engineer. PMs, designers, and developers as early users. Sponsored by the CPTO.
Timeline
March 2026 → now
Status
In use. As of October 2026, the curated index is in review.

Outcomes so far

  • ShippedIn a small test built to tempt an agent into copying hand-built UI, it did so every time without the setup and never with it. Three runs each, prototypes only.
  • ShippedA PM prototyped a redesigned sign-in page on the real design system, and the front-end team built it from that prototype. About two weeks from first prototype to production.
  • ShippedA couple of dozen prototypes from about fifteen people across design, product, and content. At least two engineering teams built production features from them.
  • ShippedA design plugin with 26 skills from six contributors, which other teams build on.
  • Decision"Agent-ready design system" became company direction, with my spec as the reference.

Fewer people, more work

Syntax is the design system behind Phrase's products. Getting a merged company to adopt it across three tech stacks took three years (Part 1). By early 2026, adoption was finally moving.

In March 2026, a two-week spike showed that an AI agent could build real, on-system UI if the system was written for it. In May, a reorganization cut design, engineering, and QA capacity. The work didn't shrink. It grew. What had been an experiment became the plan.

The system had to keep working without a designer in the room. More UI would be built by PMs, by developers working fast, and by AI agents. The only way to keep that UI on-system was to make the system readable by the things building it.

  1. March 2026

    A two-week spike

    Sponsored by the CPTO. Can an agent build real, on-system UI? Yes, with the right grounding.

  2. April

    A pilot with PMs and designers

    First testers, first setup walls, first guides.

  3. May

    Reorganization

    Design, engineering, and QA capacity cut. The workload went up. The experiment became the plan.

  4. June

    The design plugin

    Skills that wrap the setup, so the rules arrive by default.

  5. August

    Docs agents can read, and a first feature shipped

    The sign-in redesign goes from prototype to production.

  6. October

    Rules enforced

    Lint, edit-time reminders, and docs lookup. Prototypes build on the system by default.

Agents copy what they see

Building it surfaced a problem I hadn't expected. Our codebase was full of custom components the system never designed. Agents read the code around them and treated those components as permission.

We tested it. We asked an agent to add a button to a legacy screen full of hand-built buttons. Without our setup, it copied the hand-built style every time. With it, never. Three runs each, on prototypes, so a small sample. But the pattern was unmistakable.

Without the setup

Copied the screen's hand-built buttons

<button type="button" class="btn" @click="duplicate(item)">Duplicate</button>

With the setup

Reached for the system's Button

<SynButton
  :variant="SynButtonVariant.outline"
  :size="SynButtonSize.small"
  @click="duplicate(item)"
>
  Duplicate
</SynButton>
The new button, as the agent wrote it. Both render as a button. Only one is part of the system. Three runs each; all matched these.

The system had to out-teach the codebase.

Three versions of teaching an agent to choose

Knowing the components isn't the hard part. Choosing is. An agent needs to know "this is the right one" or "keep looking," without reading everything first.

We chose a coding agent that works inside our repository, on our real Vue components, over tools that generate lookalikes. Then we went through three versions of how it picks a component.

  1. 1

    A full list

    Every component and all its options

    Too much to hold in mind at once

  2. 2

    A compact list

    The technical detail stripped out

    About eight times smaller. Better, still inefficient.

  3. 3

    A curated index

    Choose from a few notes per component, then load only the ones picked

    Small to choose from, with full guidance only where it's needed

How much each version asked the agent to hold in mind. In the curated index, the dark part is the index; the amber part is the guidance for the few components it picked.

I judged each version by the output, by cost, and by a few tests. The deciding signal was the custom-component problem: whatever we built had to make agents reach for the system first.

From code to judgment

The notes that made the difference weren't specs. They were judgment. Why this component and not that one. When a variant stops being right.

That judgment used to live in people's heads. A junior engineer struggled with the same gaps an agent did. It wasn't an AI problem. It was a documentation problem AI happened to expose.

Button · a note written for agents

Use when
  • An action in a header, toolbar, form, or dialog
  • The main action needs emphasis (aim for one per area)
Avoid when
  • A variant already fits: don't hand-style a clickable element
  • Two primary buttons would compete
  • An icon-only button has no accessible label
Related
  • Button with chevron
  • Tooltip
Judgment, not specs. The same note helps a junior engineer and an agent.

So the per-component notes grew beyond code: design choices, accessibility, and content guidance, each in a small file the agent loads only when it needs it. Along the way we found that most guidance pages had drifted from the code. We reconciled them, so the code is the single source.

  1. Prompt

  2. Project rules

    Cached

  3. Index

    Every component, where it lives, when to use it, when to avoid it, what's related. Cached.

  4. The agent picks only what it needs

  5. Metadata

    Content

    Accessibility

    Types

    Pattern guide

  6. Output

Before, the agent read one big list and one big guide. After, it chooses from a small index, then loads only the files for what it picked.

The people using it

The system's users are people first.

On day one of the pilot, the first testers got stuck on setup, not on the design system. We fixed the guide that morning. Then we built a starter project, and rules that tell the agent its user may never have used a terminal.

From prototype to production. A PM was asked to redesign the sign-in and sign-up pages. They started from the starter project and had a first full page within a few hours. A designer shaped the directions. The front-end team then built the production feature from that prototype, on the same design-system components. About two weeks from first prototype to production.

The PM's prototype

Sign-in form in the PM's prototype, built on the design system

In production

The live sign-in form, built by the front-end team from the prototype
Same components, same structure. The front-end team rebuilt it in the product codebase from the prototype.

The PM's verdict: smooth, but long build sessions got expensive. Within days, the design plugin had a skill that keeps long builds cheap.

That loop was the method. Collect where people stumble, change the system, and watch the next person not stumble there. Another PM's flow exposed copy that broke our content rules and rules the agent forgot, so we added content skills and made the rules enforced instead of advisory.

By October, a couple of dozen prototypes came from about fifteen people across design, product, and content, and at least two engineering teams had built production features from them.

The design plugin grew the same way: about two dozen small skills from six contributors. I built the plugin and the prototyping, docs, and audit skills; colleagues contributed the rest, including accessibility and content. Colleagues in other teams have built their own plugins on top of it.

Start

  • New prototype

    Sets up a fresh prototype that already uses the design system

  • Share as a link

    Turns a throwaway prototype into a shareable internal link

  • Design file for any project

    Teaches an AI assistant the system's look, with nothing to install

Build

  • Read the docs from anywhere

    Any project or chat can look up the design system

  • On-voice copy

    Writes or reviews interface copy against the content rules

Check

  • Audit for hand-built UI

    Flags hand-built parts the design system already covers

    Use SynButton from @syntax-design/syntax-ui instead.

  • Accessibility review

    Checks a component against accessibility checklists

  • Report UX issues

    Reviews a live page, then files confirmed issues to the team that owns it

Eight of about two dozen skills. The audit rule's own message, when it finds a hand-built button: the same mistake the agent made in the test.

What it didn't fix

The AI setup covers the component library, not the older toolkit products. For those, the agent has to guess, and the guesses show.

The agent exposed that gap instead of closing it. That turned out to be useful. It put a price on the compromise from Part 1 and gave a new argument for migrating those products.

Where it stands

As of October 2026:

  • Per-component notes ship with the design system. The curated index is in review.
  • Rules are enforced, not advisory: lint, edit-time reminders, and a docs lookup.
  • New prototypes build with the system by default.
  • An automatic check to keep guidance and code aligned is next.
  • "Agent-ready design system" is company direction, with my spec as the reference for other teams.

None of this happens without the design-system engineers who built the pipelines, the content designer who wrote the content rules, and the PMs and designers who tested it before it was comfortable.

What I'd take with me

Progressive disclosure works for agents too. Show what's needed to decide, then reveal the detail. Load only what's relevant to the task. It's the oldest pattern in interface design, applied to a new kind of user.