Microsoft · DesignOps

Evolving DesignOps with AI

From component cleanup to generating AI-ready Figma files.

Legacy Figma files can contain outdated components, fragmented libraries, inconsistent structure, or components broken down into individual layers. Cleaning up and reconstructing these files is slow and repetitive. I built a sequence of plugins and AI agents to improve design system compliance, modernize legacy files, and ultimately generate structured AI-ready Figma files from existing designs or screenshots.

The workflow accelerated design, enabled downstream AI workflows, and drove adoption of AI-ready Figma across the Security UX org and Autopatch PM team.

At a glance

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

Context

Figma files accumulate design debt over time as products evolve: outdated components, fragmented libraries, inconsistent structure, and components broken down into individual layers. I encountered these issues repeatedly while working across Microsoft Security, where designs often needed to align with multiple design systems and libraries.

As AI became part of the design workflow, the structure of the Figma file became increasingly important. A visually accurate design was not enough. For AI to interpret, generate, or work with a design downstream, the file needed meaningful components, variables, tokens, auto layout, and semantic naming.

Problem

Design debt made legacy Figma files harder to maintain and use with AI.

Cleaning up and rebuilding legacy files was slow and repetitive. Maintaining design system compliance across multiple libraries made the work even harder. The challenge was to automate this work, then extend it from cleanup to generating structured, AI-ready Figma files.

Three tracks - design drift, library fragmentation and outdated components - start in design and end after the dashed handoff line, in implementation or at launch.

Approach

Remediate → Understand → Rebuild → Generate

The workflow evolved from remediating individual components, to understanding multiple design systems, to rebuilding entire Figma files, and finally to generating structured, AI-ready Figma files from an existing file or screenshot.

# What I built Type Problem to solve What it does
1 SFE Adoption Assistant
SFE: Security Fluent Extension
Figma plugin Outdated components Automates detection and replacement/td>
2 Design System Calibrator Figma plugin Multiple design systems Determines component ownership across libraries
3 Intune Rebuild Figma plugin Inconsistent file structure Rebuilds files with consistent AI-ready structure
4 AI-Ready Figma AI Agent No Figma source Generates structured, AI-ready files from Figma files or screenshots

1. SFE Adoption Assistant (Figma plugin)

To make legacy design cleanup more efficient, I built the SFE (Security Fluent Extension) Adoption Assistant, a Figma plugin that:

  • analyzes selected elements
  • matches non-SFE components to SFE components
  • lets the designer approve replacements

The opening state of the SFE Adoption Assistant. It asks the designer to select an element in the design and choose Analyze components. 1. 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. 2. Compare before replacing Review the proposed SFE component and the attributes used to determine the match.
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. 3. Verify the result Rescan the selection to confirm that components were replaced with valid SFE instances and no replaceable elements remain.

What I learned: Matching against a single library was not enough. To make the tool useful beyond my immediate team, it needed to support multiple design systems and libraries.

2. Design System Calibrator (Figma plugin)

To extend the workflow beyond a single library, I built the Design System Calibrator around a configurable component registry. It lets designers:

  • choose a baseline design system
  • compare selected instances against that baseline
  • identify baseline, non-baseline and orphaned components
  • preview, approve or undo replacements

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. Choose the design system Select a library from the available design systems to define the baseline.
Design System Calibrator ready to analyze six selected elements against the Security Fluent Extension UI kit baseline. 2. Select scope Choose which elements to inspect while keeping the selected baseline visible.
Design System Calibrator separates three baseline and six non-baseline instances, selects three deprecated buttons and proposes Button replacements. 3. Review classified results See baseline, non-baseline, local and orphaned instances separately before making changes.
Design System Calibrator reports three successful swaps and provides controls to undo, finish or scan again. 4. Report and undo changes Confirm successful replacements, with options to undo or rescan.

What I learned: A product file could use components from multiple tiered libraries at the same time. Choosing the right components was only part of the problem. The file also needed a consistent structure that reflected which design system each component belonged to.

3. Intune Rebuild (Figma plugin)

Once I saw that file structure was as important as the components themselves, I moved from component replacement to whole-file reconstruction. Since more than 90% of my design work was in Microsoft Intune, I built a plugin that:

  • inspects file structure against defined rules
  • determines whether a file can be fixed or needs to be rebuilt
  • rebuilds the file with consistent structure, auto layout, variables, tokens and semantic naming

When rebuilding a file, the plugin selects components from the correct design systems following a tiered search order: it starts with Intune's recommended components and Intune UI Toolkit, then checks SFE, Security Data Visualization, Fluent 2 Web and Azure Fluent Extension library. A lower tier is used only when a higher tier does not provide the needed component.

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

What I learned: rebuilding still depended on having a Figma source. Sometimes the available input was just a screenshot. The next tool needed to generate a new AI-native Figma file from either.

4. AI-Ready Figma (AI agent)

The Intune Rebuild addressed inconsistent structure in existing Figma files. But sometimes the only available source is a screenshot, leaving designers to recreate the design from scratch.

To close this gap, I moved from a Figma plugin to an AI agent that can generate a new, structured Figma file from either an existing Figma file or a screenshot. The agent:

  • analyzes the source and identifies the underlying design structure
  • uses components, variables and tokens from the specified libraries
  • follows the same tiered library order established in Intune Rebuild

A. Creating from a legacy Figma file

When a Figma file exists, the agent first analyzes its components, variables, tokens, layouts, styles and naming to identify design debt and opportunities for refactoring.

An AI-Ready Figma prompt treating a legacy Figma file as technical debt. It asks the agent to analyze 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 the structure to inspect before the agent determines how it can be transformed.

B. Creating from a screenshot

When no Figma source exists, the agent infers the layout, information architecture, components and tokens from the screenshot, then rebuilds the design 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 the visual evidence; the agent reconstructs the underlying design structure before creating the new file.
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 working reference defines library precedence and fallback behavior for the generation workflow.
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.
The agent definition turns the design system rules into explicit generation instructions.

What I learned: The quality rules developed across the earlier plugins could become generation instructions. Instead of correcting design debt after a file was built, the agent could apply those rules from the start, creating a structured, AI-ready file and preventing new design debt from accumulating.

Outcome

  • Accelerated design by turning repetitive Figma cleanup and reconstruction into an AI-assisted workflow.
  • Improved design system compliance by using components, variables, tokens and tiered library rules throughout the workflow.
  • Modernized legacy files by inspecting and rebuilding existing Figma files with consistent structure, auto layout and semantic naming.
  • Enabled downstream AI workflows by creating structured, AI-ready Figma files that could be interpreted by AI for working prototypes and reusable code.
  • Drove adoption across the organization by sharing and enabling the AI-ready Figma workflow across the Security UX org and Autopatch PM team.