create-component-md turns that capture into a single self-contained .md specification, and the create-* skills render sections of that .md back into Figma as annotation frames.
The pipeline
Everything flows through the Component Markdown file. It is the required input for everycreate-* render skill — there is no longer a path that points a render skill straight at a raw Figma link.
Component Markdown (.md)
The source of truth, written to disk by
create-component-md. Best for feeding specs to any LLM (Cursor, Claude Design, GPT), committing alongside code, or diffing across design iterations.Figma annotations
Annotation frames rendered next to the component by the
create-* skills, drawn from the .md. Best for design reviews, spec handoff inside Figma, and component libraries where the spec lives beside the component.Stage 1: generate the .md
The plugin runs deterministic extraction inside Figma’s sandbox (no network calls), producing a _base.json that captures every variant, token binding, and sub-component. The create-component-md skill then runs four parallel interpretation agents (API, structure, color, voice), reconciles their outputs, and renders a single Markdown file. See the Component Markdown page for the full pipeline diagram.
Stage 2: render into Figma
Everycreate-* skill reads its section from the component .md — plus the render-meta that maps each section to Figma node ids — then renders documentation directly in Figma through the MCP. They do not re-extract the component over MCP; any live read is a small, whitelisted verification or measurement delta. The internal steps differ depending on what each skill renders. The diagrams below show what happens inside each skill.
Triggering a skill
- Cursor
- Claude Code
- Codex
Skills are triggered by typing
@ followed by the skill name in Cursor’s chat.Select a skill
Continue typing to filter (e.g.,
@create-v) or use arrow keys to select. The skill name must match exactly: @create-voice, not create voice or voice spec.Inside each skill
Every render skill loads an instruction file, reads platform-specific or domain-specific reference files, reads its section from the component.md (plus the render-meta node ids), runs through a checklist, and renders the output via the MCP. Any live Figma read is a small, whitelisted verification or measurement delta — not a re-extraction. The reference files determine what the agent knows about each domain. (create-component-md, the stage-1 generator, is the exception: it reads a plugin _base.json rather than a .md.)
- Component Markdown
- Anatomy
- Properties
- API
- Structure
- Color Annotation
- Screen Reader
- Motion
The
create-component-md orchestrator is the only skill that does not render into Figma. It consumes a plugin-produced _base.json, dispatches four interpretation specialists (one serial, three in parallel), reconciles typed disagreements, then renders a single .md file to disk.The API specialist runs first and solo because its output (the property dictionary) anchors the three downstream specialists on a shared property and state vocabulary. Structure, color, and voice then run in a single parallel batch so their contexts stay isolated and the parent orchestrator only holds the returned summaries. Reconciliation is typed and deterministic: each disagreement has a defined signature (conflicting child classification, mismatched axes, missing states), and only the matching specialist is re-dispatched. The integrity gate validates cache-file shapes, axis consistency, and the structure coverage matrix before the Markdown renderer runs.See the Component Markdown spec page for install, usage, and output details.What the pipeline captures vs. what you provide
The uSpec Extract plugin andcreate-component-md capture structure, tokens, and styles into the .md automatically. But some information only exists in your head — add it in the plugin’s design-intent field or in your prompt:
| The pipeline captures | You need to describe |
|---|---|
| Component layers and hierarchy | States not visible in the captured variants |
| Design token names and values | Behavioral modes (fill vs. hug, truncation) |
| Variant axes and properties | Focus order preferences |
| Visual dimensions and spacing | Platform-specific interaction details |
| Styles and color values | Business logic or conditional rules |
Architecture overview
The component data, tokens, and styles a render skill needs come from the.md — not a live MCP extraction. The MCP is the render channel back into Figma, plus the occasional small whitelisted read for verification or a measurement delta. uSpec supports two Figma MCP providers — choose the one that fits your setup:
- Figma Console MCP (by Southleft) connects via a Desktop Bridge plugin running inside Figma Desktop, communicating over WebSocket. It exposes 59+ tools for design creation and variable management.
- Native Figma MCP (by Figma) connects directly to Figma’s API with read and write access. No Desktop Bridge plugin required.
MCP providers update their capabilities and setup instructions frequently. For the latest details, see the Figma Console MCP docs or the native Figma MCP docs.