AI + Design Systems · Fluent Design Repository
I've Never Designed Anything Like This
14 components. One spec file each. And the Figma asset built by an AI model in 7 minutes — directly in Figma. The shift wasn't adding AI to the workflow. It was making the spec and the component the same artifact.
- Role
- Co-lead — design systems, engineering, and content design partnership
- Repository
- fluent-design repo (internal GitHub)
- Platforms
- Web · iOS (Xcode/SwiftUI) · MCP-compatible
- Components
- 14 — accordion, button, checkbox, divider, menu, menuitem, messagebar, popover, switch, tab, tablist, tag, toolbar, tooltip
By the numbers
Results
14
Components fully spec'd, implemented, and documented from a single markdown source
7 min
Time for an AI model to build a button component directly in Figma from the exported spec
1+
Hours for the full workflow — spec → usage → demo → Figma asset — end to end
3
Consumer types served by one source: human designer, human engineer, AI agent
The core shift
When Documentation Is the Component
The real shift here wasn't adding AI to the workflow. It was structural: the same file that describes a component to a designer describes it to an AI agent and to an engineer. You don't write the component and then document it. The documentation is the component.
This is different from "design + engineering aligned" — that's cultural. This is structural alignment: one markdown spec at the center, all three consumers reading from it simultaneously. When the file is done, every consumer is done.
Impact
Before & After
Before
Designer creates in Figma. Engineer implements in code. Documentation lives in Notion or Confluence — always slightly behind. AI tools querying the system get inconsistent answers depending on which artifact they read first.
- Figma file as designer reference
- Code as engineering source
- Docs as (outdated) prose
- AI gets whatever it can find
After
One markdown spec in the fluent-design repo. Designers read it. Engineers implement from it. AI agents build Figma components from it directly. When the spec updates, all consumers update.
- Glossary.md — shared terminology
- YAML spec files — structured component definitions
- Markdown docs — human-readable + AI-readable
- Figma built from spec by model — not manually
Background
How Design Systems Usually Work
The standard model: a designer creates a component in Figma. An engineer implements it in code. The connection between them is informal — a Figma link, a Zeplin handoff, a Slack thread. Documentation lives separately, in Notion or Confluence or a doc site, and it's always slightly out of date because updating it is a second job.
AI tools trying to generate UI or assist with design read from whatever they can find — Figma files, code comments, documentation pages — and get inconsistent answers depending on which artifact they encounter first. The result: designers, engineers, and AI agents are all reading from different versions of the same truth.
For a team like Fluent, this compounds. 500+ tokens with no shared language to help anyone know what's redundant. Components marked "high priority" in one doc, "P0" in another, "critical" in a third. Figma component authoring was manual, repetitive, and disconnected from the spec — updating a component meant touching the same information in multiple places.
The Problem
Design and engineering were building the same system in parallel languages — and AI tools were getting lost in translation between them. No single source of truth existed that was legible to all three consumers: human designer, human engineer, AI agent.
Approach
Markdown as the Center Node
The fluent-design GitHub repository becomes the source of truth. Not Figma. Not a doc
site. A repo. The shift sounds simple; the implications are substantial. One update in
the markdown propagates to all consumers. Shared language means the same terms appear
in glossary.md, TypeScript type comments, YAML specs, and Figma component
descriptions — tokens are human-readable and AI-inferable from a single source.
The structure of the new system
- glossary.md — shared terminology that flows into Figma descriptions, TypeScript type comments, and YAML specs. The shared language foundation.
- YAML spec files — structured component definitions with props, variants, guidance, and consistent P0/P1/P2 prioritization language baked into the schema. AI tools can filter, prioritize, and generate without ambiguity.
- Markdown component docs — human-readable specs that double as AI prompts. The same file a designer references is the same file an agent consumes.
- Figma connected to the markdown spec — not the other way around. The model reads the exported spec and builds the Figma component from it directly.
What "AI-optimized" actually means
The repo uses a flex-* plugin system that structures how Claude — the primary
AI agent used alongside Copilot and Cursor — navigates and authors within the repo. Skills
are referenced as {plugin}:{skill} — for example,
flex-components:button or flex-processes:spec-review — and the
model loads the relevant skill files before doing any work.
Core skill categories: Tokens (token conventions and definitions), System (system hierarchy and cross-plugin pointers), Components (per-component specs), Processes (spec generation and review), and Output (artifact generation).
flex-local:generate-component-artifacts is the orchestrator: it spawns
per-component generation and review subagents with full process isolation and produces
all four output types — HTML demo, markdown spec page, markdown usage page, summary blurb
— from the single source spec. The HTML demo is the hard gate for definition of done.
Definition of done
A component is complete when: spec files written (SKILL.md, tokens.yaml, usage.md, web/interaction.md, web/accessibility.md) + Figma build done + artifacts generated + review skills pass. The HTML demo is the hard gate — nothing ships without a working demo generated from the spec.
Process
How It Got Built
- 01
Audit existing state
Audited what Fluent documentation existed, where it lived, and who was actually reading it. Identified that designers, engineers, and AI tools were pulling from different versions of the same truth — and that no single artifact served all three consumers.
- 02
Define the information architecture
Designed the structure of the markdown-first spec — how components, tokens, processes, and outputs would be organized within the repository. The architecture needed to be navigable by humans and by models following skill-based routing.
- 03
Build glossary.md as the shared language foundation
The glossary was written first — shared terminology that flows into Figma component descriptions, TypeScript type comments, and YAML specs. Each term was defined once and validated to appear consistently across all three surfaces.
- 04
Develop the YAML schema
Built the component definition schema with structured fields for props, variants, guidance, and a consistent P0/P1/P2 prioritization language. The schema needed to be AI-inferable — a model should be able to filter, prioritize, and generate without ambiguity.
- 05
Build out 14 components
For each component — accordion, button, checkbox, divider, menu, menuitem, messagebar, popover, switch, tab, tablist, tag, toolbar, tooltip — the full sequence ran: spec → usage guidance → demo → Figma asset. Every step derived from the single markdown source.
- 06
Ship cross-platform
Extended the system to MCP packaging and Xcode/SwiftUI integration. The technology-agnostic spec is what makes cross-platform scale possible — the spec doesn't care which platform reads it.
"I think we've shown what a successful design system looks like at Microsoft and brought design/dev even closer together at the horizontal layer, thanks for always presenting a united front whether we are speaking to leadership or teams on the ground."
The artifact
7 Minutes to a Figma Component
The Figma asset step is where the system's speed becomes visible. Claude reads the exported spec and builds the component directly in Figma — no manual Figma work required for the build step. For a button component, this takes 7 minutes.
The important context: 7 minutes is the Figma asset step specifically. The full workflow — spec → usage → demo → Figma asset — is 1+ hours end to end. The 7-minute number is a result of the system working correctly, not a headline claim about AI speed. The speed is evidence of structural alignment. A Figma build that takes 7 minutes from an exported spec is only possible because the spec is precise enough, machine-readable enough, and complete enough for the model to act on without ambiguity.
Scale
One Spec, Every Platform
The technology-agnostic markdown spec is what makes cross-platform extension possible. The same spec that generates a web component generates an iOS/SwiftUI component. The same spec that a human designer reads is the spec an MCP-compatible tool consumes.
This was the core collaboration: the engineering architecture and the design specification were built together, from the beginning, to serve the same source. That joint authorship is what makes the system structural rather than cultural — it's not a design team and an engineering team agreeing to look at the same file. It's one file that's actually right for both.
Detail
The Shared Language in Action
The shared language diagram is the most concrete proof the system is working: the same
term appearing in glossary.md, a TypeScript type description, a YAML spec
field, and a Figma component description — unchanged, without translation, without
interpretation.
Before this system, a designer might call something a "label," an engineer might call it a "caption," the Figma component description might say "text," and a documentation page might use all three. AI tools trying to connect these get inconsistent answers. The glossary resolves this: one term, defined once, verified to appear consistently across all surfaces.
Looking ahead
What's Next
- As AI tools improve at reading structured specs, the Figma asset step compresses further — eventually the spec outputs the component without a human-in-the-loop build step.
- The repository structure becomes a model for how any design system can be organized for AI consumption — not just Fluent, but any team whose AI tools currently read from scattered, inconsistent sources.
- Extension to more platforms: the technology-agnostic spec is the unlock, and the MCP packaging already points toward emerging surfaces.
- The 7-minute Figma build is a preview. As the model gets better at reading the spec, the remaining human steps compress — the spec becomes the component.
The original presentation
An AI-Optimized Design System
Slides 1–20: Karlee Boillot · Slides 21–42 (Modular Skills): Lydia Mitchelson + Toshie Rashtavie