Microsoft · DesignOps

Evolving DesignOps with AI

From component swaps to AI-generated Figma files.

I built four tools in sequence. Each one solved a limitation I learned from the previous stage: fixing components, understanding systems, rebuilding files, then generating them.

At a glance

Role
Designer, builder and DesignOps advocate
Scope
Three Figma plugins and one agent
Focus
Components, libraries, file structure and generation
Type
DesignOps · AI tooling · Design systems

The problem

This self-initiated work began as a personal hackathon project to address a pain point I and many other designers repeatedly experienced: existing Figma files mixed outdated components, multiple libraries and inconsistent file structure. I did not solve all of that at once. I started with one component-level task, then expanded the scope as each stage showed me what the next tool needed to understand.

Three tracks — design drift, library fragmentation and outdated components — start in design and end after the dashed handoff line, in implementation or at launch.
All three problems started in design, but none were caught before handoff.

Four stages, one learning loop

The scope grew from a component, to multiple libraries, to a whole file, and finally to any input that could be used to generate a new file.

# Tool Form Scope Core shift
1 SFE Adoption Assistant
Security Fluent Extension
Figma plugin Component Automate the swap
2 Design System Calibrator Figma plugin Multi-library Understand which system a thing belongs to
3 Intune Figma Rebuild Figma plugin Whole file Rebuild structure, not just contents
4 AI-Ready Figma Agent Any input → new file Generate, not remediate

1. SFE Adoption Assistant (Figma plugin)

Scope: Component · Core shift: Automate the swap

I built the Security Fluent Extension (SFE) Adoption Assistant, a Figma plugin that analyses selected elements, matches non-SFE components to SFE components and lets the designer approve replacements.

What I learned: matching against one library was not enough. Product files used components from multiple libraries, so the next tool needed to understand which design system each component belonged to.

The opening state of the SFE Adoption Assistant. It asks the designer to select an element in the design and choose Analyze components. Before analysis Start from the designer’s selection The scope stays visible and deliberate: select an element, then ask the plugin to inspect its component usage.
The SFE Adoption Assistant compares a selected non-SFE button with the closest SFE Button match attribute by attribute. Match Compare before replacing The plugin shows the proposed SFE component and the attributes used to match it.
The SFE Adoption Assistant after replacement. Three analyzed buttons are now recognized as SFE Button components, matched by variant key, and the summary reports zero replaceable or other elements. After replacement Verify the result, not just the action A second scan confirms that all three buttons resolve to real SFE instances and no replaceable elements remain.
Select, analyse, replace and verify.

2. Design System Calibrator (Figma plugin)

Scope: Multi-library · Core shift: Understand which system a thing belongs to

I expanded the plugin around a configurable component registry. It compares instances with a selected baseline library, separates baseline and non-baseline components, and shows which items have a replacement.

What I learned: using the right components did not make the file structure right. The next tool needed to work at the whole-file level instead of swapping individual instances.

Design System Calibrator baseline selector showing multiple library options, including the Security Fluent Extension UI kit and Web UI kit Azure Fluent 1 extension. 1 · Set baseline Choose the design system The designer chooses which available library defines the baseline.
Design System Calibrator ready to analyse six selected elements against the Security Fluent Extension UI kit baseline. 2 · Select scope Analyse the chosen elements The plugin keeps the baseline visible while the designer chooses what to inspect.
Design System Calibrator separates three baseline and six non-baseline instances, selects three deprecated buttons and proposes Button replacements. 3 · Review Classify and select matches Baseline, non-baseline, local and orphaned instances stay separate before swapping.
Design System Calibrator reports three successful swaps and provides controls to undo, finish or scan again. 4 · Complete Report and undo changes The final state reports successful swaps and keeps undo and rescan available.
Choose a system, define the scope, review the classification and verify the swaps.

3. Intune Figma Rebuild (Figma plugin)

Scope: Whole file · Core shift: Rebuild structure, not just contents

I moved from component replacement to whole-file reconstruction. The plugin inspects file structure against explicit rules, reports whether it is parseable, and ranks the structural problems that need to be addressed in the rebuild.

It also introduced a tiered search order for multiple libraries. The tool starts with Intune’s recommended components and Intune UI Toolkit, then checks SFE, Security Data Visualization, Fluent 2 Web and Azure Fluent Extension Icons. A lower tier is used only when a higher tier does not provide the needed component.

Intune Figma Rebuild with a selected Button instance ready for a read-only inspection against seven AI-readiness rules. 1 · Inspect Start with the selected frame Inspection is read-only and evaluates the selection before rebuilding.
The complete Intune Figma Rebuild inspection result in one merged capture, showing a Clean verdict, seven AI-readiness checks and ranked top fixes. 2 · Review Read the complete inspection One merged capture shows the verdict, all seven checks and the ranked fixes from the same scrollable screen.
Intune Figma Rebuild showing pattern choices including list page, detail blade, wizard, dashboard, drawer and settings page. 3 · Configure Choose the rebuild pattern The designer selects the target page pattern and can add contextual hints.
Intune Figma Rebuild after extracting nine component keys grouped by library file, with JSON ready to copy into the component registry. 4 · Register Extract component keys Registered keys connect rebuilt elements back to known library components.
Inspect the structure, review the result, configure the rebuild and register its components.

What I learned: rebuilding still depended on having a usable Figma source. Sometimes the available input was a legacy file or only a screenshot. The next tool needed to generate a new file from either.

4. AI-Ready Figma (AI agent)

Scope: Any input → new file · Core shift: Generate, not remediate

I moved the workflow from a Figma plugin to an agent. Given a Figma file or screenshot, the agent generates a new file using library components, variables, tokens, auto layout and semantic naming. It carries forward the same tiered library order from Intune Figma Rebuild rather than choosing among subscribed libraries arbitrarily.

Creating from a legacy Figma file

When a Figma file exists, the prompt asks the agent to analyse its components, variables, tokens, layouts, styles and naming before identifying transformations and refactoring opportunities.

An AI-Ready Figma prompt treating a legacy Figma file as technical debt. It asks the agent to analyse components, variables, tokens, layouts, styles, naming, documentation and accessibility, then produce assessments, a design debt heatmap, recommended transformations, refactoring opportunities and a governance model.
The existing file provides structure to inspect before the agent recommends how to transform it.

Creating from a screenshot

When no Figma source exists, the prompt asks the agent to infer the layout, information architecture, components and tokens from the image, then rebuild the screen with explicit structure.

An AI-Ready Figma prompt with a legacy product screenshot attached. It asks the agent to reconstruct the underlying design system, produce layout, information architecture, component and token inventories, then rebuild with auto layout, variables, tokens, reusable components and semantic naming.
The screenshot provides visual evidence; the agent reconstructs the missing design-system structure before creating the new file.

What I learned: the quality rules developed across the earlier plugins could become generation instructions. Instead of correcting a file after it was built, the agent could create the new file with those rules from the start.

ai-ready-figma-reference.md Working reference · excerpt
## Component Search Order

Step 0: Follow the Intune Component List […]
Step 1: Search Intune UI Toolkit […]
Step 2: Search SFE […]
Step 3: Search Security Data Viz UI kit […]
Step 4: Search Fluent 2 Web UI Kit […]
Step 5: Azure Fluent Extension Icons […]
Step 6: If no component is found […] report the gap and build with
primitives + tokens from the highest-priority library.
The companion reference makes library precedence explicit and gives both tools the same fallback behavior.
ai-ready-figma-vs.agent.md Working agent · excerpt
## Core Principles

1. Library only. Before creating any frame, text, or shape, call
`search_design_system` (or `get_libraries` to confirm what's
subscribed) for an existing component. If a component (or component
set) exists, instantiate it via `use_figma` using its component key
— never hand-build a lookalike.

2. Tokens always. Colors, type, spacing, radii must come from
library variables/styles. Resolve token names via
`get_variable_defs`. If a token isn't found, surface that gap rather
than hardcoding hex/px silently.

[…]

7. Preserve component provenance. Note which library/key/variant
a result came from, and warn the user when detachment severs the
link to library updates.

8. No invented data. Headers, rows, labels come from the user's
source (screenshot, code, extraction). If data is missing, leave the
library's placeholder text and flag the gap — never paper over with
sample literals.
Four principles from the working agent definition.

What evolved

The work did not begin with an agent plan. The scope changed as I learned what each tool could not solve.

  • Scope: component → multiple libraries → whole file → any input.
  • Method: swap → classify → rebuild → generate.
  • Form: three focused Figma plugins → one agent that can work from files or screenshots.