Before learning the solution, you need to feel the weight of the problem.
A design spec is structured documentation that tells engineers exactly how to build a UI component. Think of it as a blueprint.
For a single component like a button, a complete spec includes:
| Section | What It Covers |
|---|---|
| Anatomy | Every visual element labeled and described |
| API | Every configurable property, its values, defaults |
| Properties | Variant axes and toggle options |
| Color Annotation | Design tokens mapped to each element and state |
| Structure | Heights, padding, spacing across sizes |
| Screen Reader | Accessibility for VoiceOver, TalkBack, ARIA |
๐ก Key Insight: That is 6 sections for one component, covering only the implementation side. The screen reader section alone references 3 separate accessibility APIs, each with hundreds of properties.
Let's do the math Uber faced:
Hundreds of components
ร 7 implementation stacks (UIKit, SwiftUI, Android XML,
Android Compose, Web React, Go, SDUI)
ร Multiple density variants per stack
ร Strict accessibility requirements
= Thousands of spec pages that must stay accurate
The core problems with manual spec writing:
Uber built uSpec โ an agentic system with three connected layers.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ YOU (Designer) โ
โ Provide: Figma link + context โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI AGENT (in Cursor) โ
โ Runs agent "skills" with domain โ
โ knowledge encoded per spec section โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ local connection only
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Figma Console MCP (open-source) โ
โ Bridge between agent and Figma โ
โ Read/write access to your file โ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FIGMA DESKTOP (local) โ
โ Finished spec rendered directly โ
โ into your file โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Critical Detail: Everything runs locally. No design data leaves your machine. This is what makes it viable for an enterprise like Uber.
This is where the intelligence lives.
An agent skill is a specialized instruction set that encodes domain expertise for one specific section of a spec.
Think of it like hiring a specialist instead of a generalist:
| Skill | What Domain Knowledge It Carries |
|---|---|
| Anatomy | How to identify and label component elements |
| API | How to document properties, values, and defaults |
| Properties | How to represent variant axes and toggles |
| Color Annotation | How to map design tokens to states |
| Structure | How to document dimensions and spacing |
| Screen Reader | VoiceOver modifiers, TalkBack semantics, ARIA roles |
Without a skill, an AI agent would guess at accessibility property names.
With the screen reader skill:
๐ก Key Insight: The skill is what separates "AI that guesses" from "AI that knows." Domain knowledge is encoded, not improvised.
MCP stands for Model Context Protocol โ it is the technical bridge that gives the AI agent direct access to your Figma file.
This distinction is important. Many AI tools analyze Figma by taking screenshots. The MCP goes deeper:
| Capability | Screenshot Analysis | Figma Console MCP |
|---|---|---|
| Read token names | โ Guesses from visuals | โ Reads exact token values |
| Traverse component tree | โ Sees flat image | โ Crawls parent-child layers |
| Detect variable modes | โ Cannot see | โ Reads directly |
| Identify sub-components | โ Limited | โ Full structure access |
| Write back to Figma | โ Cannot | โ Renders spec directly |
Different skills need different data, and the MCP is configured accordingly:
Color Annotation Skill โ Needs: token values, variable modes
Screen Reader Skill โ Needs: screenshots + component structure
API Skill โ Needs: component properties, variant axes
Structure Skill โ Needs: dimensions, spacing values
Now that you understand the parts, here is the complete workflow reduced to its simplest form.
Step 1 โ You provide input:
Step 2 โ The agent does the rest:
Agent connects to Figma via MCP
โ
Extracts component structure, tokens, variables, styles
โ
Maps parent-child layer relationships
โ
Loads skill-specific domain knowledge
โ
Imports matching documentation template from your library
โ
Detaches template, populates it:
- Fills text fields
- Clones sections
- Builds tables
- Places markers
โ
Finished spec appears in your Figma file
๐ก Key Insight: There is no intermediate output. No export, no copy-paste, no formatting step. The agent reads the component and renders the spec in one pass.
Uber identified 6 properties that make this viable beyond a prototype:
1. Security
2. Consistency
3. Speed
4. Accuracy
5. Multi-platform
6. Maintainability
The article points to a larger trend worth understanding:
Traditional separation:
Designer โ writes spec โ Engineer reads spec โ builds component
Emerging reality:
Designer โ Code (designers submitting PRs, fixing issues in code)
Spec โ Component (automation shrinking the gap between intent and implementation)
The Figma Console MCP is open source. This is a deliberate choice with a practical reason:
๐ก Key Insight: The article distinguishes between infrastructure layer (Figma Console MCP โ shared, open source) and application layer (uSpec โ built on top). Understanding this separation helps you think about how to build on existing tools rather than rebuilding from scratch.
PROBLEM
Manual spec writing is slow, inconsistent, and drifts out of date
At enterprise scale this becomes unsustainable
โ
SOLUTION COMPONENTS
Agent Skills = Domain knowledge encoded per spec section
Figma MCP = Local bridge giving agent read/write Figma access
Cursor Agent = Orchestrates skills and MCP calls
โ
WORKFLOW
You: Figma link + context
Agent: reads โ interprets โ renders spec directly in Figma
โ
RESULT
Consistent, accurate, multi-platform specs
Minutes instead of weeks
Fully local, enterprise-safe
Maintainable as components evolve
Test yourself with these questions: