Agentic Design System
- Company
- Proctorio, then fibo
- Role
- Staff Designer, research lead
- Team
- Research run with Proctorio's lead front-end engineer; fibo built solo with Claude Code
- Type
- Internal R&D, then open source
- Design Systems
- Figma MCP
- Code Connect
- Design Tokens
- Claude Code
- Storybook
- Figma
Problem
Engineers were generating code from designs and designers were prototyping in code. Both used the same design system, and neither got it right.
Task
Find out whether a model can use a design system, then build one where it has to.
Process
Tested it with Figma MCP and fixed prompts at Proctorio, then rebuilt my own system, fibo, around checks an agent can run.
Where I started
After the design system overhaul at Proctorio, engineers started generating code from designs and designers started prototyping in code. Both used our system. Neither got it right, and nobody knew why.
So I ran it as research with our lead front-end engineer. Same design, same prompt, and the only thing I changed was how much of the system the model could see.
What I found
The research showed us quickly that any inconsistency between what the model read in Figma and what actually existed in the codebase confused it.
A model reads a design fine. It can't look at a rectangle and know it's your Button. Left alone, it rebuilt components from scratch, hardcoded the colors it could see, and combined parts in ways the system doesn't allow.
Without usage instructions
Rebuilt from scratch
<div
className="rounded-md px-4 py-3
bg-[#008b8b] text-white
text-sm font-medium"
>
Save changes
</div>The hex is hardcoded and nothing links back to the system.
With Code Connect
Resolved to the component
<Button
variant="primary"
size="sm"
>
Save changes
</Button>Variants and tokens come with it, so a rebrand just works.
The information was in the system the whole time. The model just couldn't reach it.
What I built
Three fixes, all doing one thing: moving what the team knew into something a model can read.
Tokens. The agent only sees semantic names like color/action/primary,
never raw values like #008b8b. Change one alias and everything follows.
Metadata. Each component got a JSON file with its props, the tokens it uses, and how to use it. An agent can draft most of it. The last 20%, the stuff your team learned the hard way, a person has to write.
One source. Figma, the docs and the token files all point at the same contract, so the agent never has to guess.
That work grew into my design skills infrastructure, which took spec production from days to under 30 minutes.
What was missing
Every fix was something I handed the agent. Nothing checked whether it listened.
Where I am now
fibo is my own design system, built with Claude Code. This time the rules aren't just written down. They're enforced.
- Lint, format, Figma drift, build, types and tests run on every pull request.
- Every part installs into a fresh app before it ships.
- Every story runs an accessibility check that fails on any violation.
- A part missing its metadata fails the build.
It works. An agent recently added a voice memo component and the pull request came in complete, with stories, docs, metadata, a changelog line and 396 passing tests. Nobody had to catch anything.
What works today
Most public design systems now ship an MCP server and agent skills (survey of 21). Here's what actually moves the needle:
- 01Real components beat descriptions.
A registry of installable parts got agents to 95% compliance in a CHI '26 study.
- 02Checks beat docs.
Agents opened rule files in 3.5% of runs, but followed rules 90 to 100% of the time once a check gave feedback (RepoComplianceBench).
- 03Small context beats big context.
A short index in AGENTS.md scored 100% in Vercel's test. Long overviews just cost more.
- 04One name on both sides.
When Figma and code use the same token names, a script can catch drift.
What's next
Measuring it. fibo shows the setup works, but I still want a benchmark that tells me whether the system is getting easier for agents to use over time.



