Agent skill

Figma Component Sync

by bitovi in bitovi/ai-enablement-prompts

Check a React component against its Figma design source and identify differences.

MITAuto-check passedFrontend & Design

Install Figma Component Sync

skills CLI
$ npx skills add bitovi/ai-enablement-prompts --skill figma-component-sync -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bitovi/ai-enablement-prompts figma-component-sync --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bitovi/ai-enablement-prompts.git skills-src && mkdir -p .claude/skills && cp -r skills-src/figma/figma-component-sync .claude/skills/figma-component-sync && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
figma-component-sync
GitHub stars
121
Token cost
~2.8k tokens
SKILL.md length
708 words
Files
3
Skills in repo
40
Repo updated
First seen
Licence
MIT

At a glance

Check a React component against its Figma design source and identify differences.

  • Works in 5 steps: Initialize Check → Trace Dependencies → Generate Comparison → …
  • Reviewing component implementations
  • SKILL.md covers When to Use, Prerequisites, Workflow Overview and Step-by-Step Instructions, plus 8 more sections
  • Reaches figma.com

What it does

Figma Component Sync is an agent skill from bitovi/ai-enablement-prompts. Check a React component against its Figma design source and identify differences. Use when reviewing component implementations, syncing designs, auditing visual accuracy, or updating components to match new Figma designs.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `examples/comparison-template.md` and `examples/figma-context-template.md`).

It sits in Frontend & Design, covering React components. It works with Figma. The repository describes itself as: Prompts Bitovi uses for software development. The licence is MIT.

When your agent uses it

  • Reviewing component implementations
  • Syncing designs
  • Auditing visual accuracy
  • Updating components to match new Figma designs

Example prompts

  • “/figma-component-sync”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Initialize Check
  2. Trace Dependencies
  3. Generate Comparison
  4. User Review
  5. Apply Decisions

What it can do on your machine

Read from SKILL.md and the folder at commit df229b1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • figma.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Figma Component Sync loads about 2.8k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 708 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bitovi/ai-enablement-prompts at commit df229b1, republished under its MIT licence (© bitovi). 708 words, ~2,751 tokens.

Download SKILL.mdSave it as .claude/skills/figma-component-sync/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
figma-component-sync
description
Check a React component against its Figma design source and identify differences. Use when reviewing component implementations, syncing designs, auditing visual accuracy, or updating components to match new Figma designs.

Skill: Figma Component Sync

This skill checks a component's implementation against its Figma design source and helps you decide which differences to accept, ignore, or implement.

When to Use

  • Reviewing if a component matches its Figma design
  • Auditing visual accuracy of existing components
  • Updating components after Figma design changes
  • Documenting known/accepted design deviations

Prerequisites

  • Component must have a README.md with a Figma link in the format:
    markdown
    ## Figma Source
    https://www.figma.com/design/{fileKey}/{fileName}?node-id={nodeId}&m=dev
  • Figma MCP must be configured and authenticated

Workflow Overview

┌─────────────────────────────────────────────────────────────────┐
│ 1. FETCH - Get Figma design context and current component code  │
├─────────────────────────────────────────────────────────────────┤
│ 2. TRACE DEPENDENCIES - Identify internal components used       │
├─────────────────────────────────────────────────────────────────┤
│ 3. ANALYZE - Compare design vs implementation (all files)       │
├─────────────────────────────────────────────────────────────────┤
│ 4. REVIEW - User decides: implement, ignore, or accept each     │
├─────────────────────────────────────────────────────────────────┤
│ 5. APPLY - Implement approved changes                           │
├─────────────────────────────────────────────────────────────────┤
│ 6. TEST - Verify implementation matches Figma                   │
└─────────────────────────────────────────────────────────────────┘

Step-by-Step Instructions

Before starting any work, call manage_todo_list with the following items and mark each one in-progress before starting it and completed immediately after finishing:

1. Fetch Figma design context and read component source
2. Trace internal dependencies and map property ownership
3. Generate comparison report (comparison.md)
4. Present findings and prompt user for decisions
5. Apply approved changes to source files
6. Verify implementation against Figma
Step 1: Initialize Check

Given a component path (e.g., packages/client/src/components/inline-edit/EditableText):

  1. Create output directory:

    .temp/component-updates/{component-name}/
  2. Find and read the component's README.md to extract Figma link

  3. Check parent folder for additional README.md with relevant Figma context

  4. Fetch Figma design context using mcp_figma_get_design_context:

    • Extract fileKey and nodeId from the Figma URL
    • Call the MCP tool with those parameters
    • Save output to .temp/component-updates/{component-name}/figma-context.md
  5. Read current component implementation:

    • Main component file (.tsx)
    • Styles if separate
    • Save analysis to .temp/component-updates/{component-name}/current-implementation.md
Step 2: Trace Dependencies

Identify internal components that may implement Figma-specified styles:

  1. Parse imports from the main component file:

    • Look for imports from relative paths (e.g., ../BaseEditable, ../EditControls)
    • Ignore external packages (react, lucide-react, @/components/ui/*)
  2. For each internal dependency:

    • Read the component's source code
    • Check if it has its own README.md with Figma source
    • If yes, fetch that Figma context too
  3. Map Figma properties to responsible files:

    • For each Figma property (spacing, colors, shadows, etc.)
    • Determine which file's code actually implements it
    • Create a property-to-file mapping
  4. Save dependency analysis to .temp/component-updates/{component-name}/dependencies.md:

    markdown
    # Dependency Analysis: {ComponentName}
    
    ## Internal Dependencies
    | Component | Path | Has Figma Source? |
    |-----------|------|-------------------|
    | BaseEditable | ../BaseEditable | Yes (node 1252-9022) |
    | EditControls | ../EditControls | No |
    
    ## Property Ownership Map
    | Figma Property | Responsible File | Current Value |
    |----------------|------------------|---------------|
    | Label-Content Gap | BaseEditable.tsx | gap-1 (4px) |
    | Content Padding | BaseEditable.tsx | py-0.5 (2px) |
    | Button Shadow | EditControls.tsx | shadow-sm |
    | Input Border | EditableText.tsx | border-input |
Step 3: Generate Comparison

Create .temp/component-updates/{component-name}/comparison.md:

IMPORTANT: Only include differences and decisions. Do NOT include:

  • Figma Design Summary sections
  • Current Implementation Summary sections
  • "Previously Matching" or "No Changes Needed" sections
markdown
# Component Comparison: {ComponentName}

> Figma: https://www.figma.com/design/...?node-id=...

## Differences

### 📁 {ComponentName}.tsx

#### 1. Border color
- **Figma:** `border-gray-300`
- **Code:** `border-input`
- **Impact:** Low

**Decision:**
- [ ] 🔧 IMPLEMENT
- [ ] ✅ ACCEPT - Reason: 
- [ ] ⏭️ SKIP

---

### 📁 BaseEditable.tsx (dependency)

#### 1. Label-Content Gap
- **Figma:** `0px` (no gap)
- **Code:** `gap-1` (4px)
- **Impact:** Medium

**Decision:**
- [ ] 🔧 IMPLEMENT
- [ ] ✅ ACCEPT - Reason: 
- [ ] ⏭️ SKIP

#### 2. Content Padding
- **Figma:** `py-2` (8px)
- **Code:** `py-0.5` (2px)
- **Impact:** Medium

**Decision:**
- [ ] 🔧 IMPLEMENT
- [ ] ✅ ACCEPT - Reason: 
- [ ] ⏭️ SKIP

---

## Previously Accepted

| Category | Figma | Code | File | Reason |
|----------|-------|------|------|--------|
| Width | fixed | `w-full` | {ComponentName}.tsx | Container flexibility |
Step 4: User Review

Prompt the user to:

  1. Open the comparison.md file
  2. Review each difference (grouped by file)
  3. Mark decisions inline
  4. Save the file

Use this prompt format:

📋 Component sync analysis complete!

Found differences in {N} files:
- {ComponentName}.tsx: {n} differences
- BaseEditable.tsx (dependency): {n} differences
- EditControls.tsx (dependency): {n} differences

Please review and make decisions:
1. Open: `.temp/component-updates/{component-name}/comparison.md`
2. For each difference, choose: IMPLEMENT, ACCEPT, or SKIP
3. Save the file
4. Tell me to apply the decisions
Step 5: Apply Decisions

After user completes review:

  1. Parse the comparison.md for decisions (grouped by file)
  2. For IMPLEMENT decisions:
    • Generate a technical plan per file
    • Apply code changes to each file
    • Run tests to verify
  3. For ACCEPT decisions:
    • Add to the target component's README.md under "## Accepted Design Differences"
    • Include which file the deviation is in
  4. For SKIP decisions:
    • Leave as-is for future review

Important: When changing dependency files (like BaseEditable), consider:

  • These changes affect ALL components using that dependency
  • Document the change scope in the implementation plan
  • Run broader test coverage if needed
Show full SKILL.md (277 more words)Show less

Output Files Structure

.temp/component-updates/{component-name}/
├── figma-context.md          # Raw Figma MCP output
├── dependencies.md           # Internal dependency analysis & property mapping
├── technical-comparison.md   # Side-by-side property comparison
├── decisions.md              # Grouped changes with decision checkboxes
└── implementation-plan.md    # Generated after review (if changes needed)

README.md Format for Accepted Differences

Components should document accepted differences in their README:

markdown
# ComponentName

Description...

## Figma Source

https://www.figma.com/design/...

## Accepted Design Differences

| Category | Figma | Implementation | File | Reason |
|----------|-------|----------------|------|--------|
| Width | Fixed 200px | `w-full` | EditableText.tsx | Container flexibility |
| Gap | 0px | `gap-1` (4px) | BaseEditable.tsx | Visual breathing room |
| Shadow | `shadow-lg` | `shadow-sm` | EditControls.tsx | Subtler appearance |

Dependency Detection Rules

When tracing dependencies, include a component if:

  1. It's imported from a relative path within the same component family

    • ✅ import { BaseEditable } from '../BaseEditable'
    • ✅ import { EditControls } from '../EditControls'
    • ❌ import { Button } from '@/components/ui/button' (external UI lib)
    • ❌ import { cn } from '@/lib/utils' (utility, not component)
  2. It renders visual elements (not just hooks or utilities)

  3. It implements styling that corresponds to Figma properties:

    • Layout (flex, gap, padding, margin)
    • Colors (background, text, border)
    • Typography (font size, weight, line-height)
    • Effects (shadow, border-radius)

Property-to-File Mapping Guidelines

When determining which file "owns" a Figma property:

Figma ElementUsually Owned By
Label stylingBase/wrapper component
Content area stylingBase/wrapper component
Edit mode containerTarget component
Input field stylingTarget component
Save/Cancel buttonsControls component
Hover statesBase/wrapper component
Focus ringsUsually the focused element's component

Example Usage

Check a single component:

Check the EditableText component against its Figma design

Check all inline-edit components:

Check all components in packages/client/src/components/inline-edit/ against their Figma designs

Apply decisions after review:

Apply the figma sync decisions for EditableText

Prompts for Follow-up Actions

After generating comparison.md, provide these follow-up prompts:

To apply changes:
@workspace Read .temp/component-updates/{component-name}/comparison.md and implement all changes marked as IMPLEMENT
To update README with accepted deviations:
@workspace Read .temp/component-updates/{component-name}/comparison.md and add all ACCEPT decisions to the component's README.md

Common Figma Properties to Check

CategoryFigma PropertyCode Equivalent
ColorsFill colorsbg-*, text-*, CSS colors
TypographyFont size/weighttext-*, font-*
SpacingAuto layout gapsgap-*, space-*, p-*, m-*
BordersStrokeborder-*, ring-*
ShadowsEffectsshadow-*
CornersCorner radiusrounded-*
SizingWidth/Heightw-*, h-*, min-*, max-*

Troubleshooting

  • Ensure README.md exists in the component folder
  • Check the link format matches expected pattern
"MCP authentication failed"
  • Verify Figma MCP is configured
  • Run mcp_figma_whoami to check auth status
"Component not found at path"
  • Verify the component path is correct
  • Check for typos in component name

© bitovi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in figma/figma-component-sync of bitovi/ai-enablement-prompts.

  • SKILL.md
  • examples/comparison-template.md
  • examples/figma-context-template.md

Open the folder on GitHubat commit df229b1

Compare with similar skills

Figma Component Sync next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Figma Component Sync compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Figma Component Sync this skillbitovi/ai-enablement-prompts121—~2.8kAutomated safety check: PassMIT
Figma Usedannote/figma-use607—~4.6kAutomated safety check: PassMIT
Wonder BlocksKhan/wonder-blocks163—~3.2kAutomated safety check: PassMIT
Connect Component To Figmadequelabs/cauldron129—~2kAutomated safety check: PassMPL-2.0
DaleuiDaleStudy/daleui119—~675Automated safety check: PassMIT
Loora Design Guidelassejlv/loora140—~2.4kAutomated safety check: PassAGPL-3.0

Similar skills

  • Figma Use

    dannote/figma-use

    Control Figma via CLI — create shapes, frames, text, components, set styles, layout, variables, export images.

    607 GitHub stars~4.6k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Wonder Blocks

    Khan/wonder-blocks

    Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.

    163 GitHub stars~3.2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Connect Component To Figma

    dequelabs/cauldron

    Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.

    129 GitHub stars~2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Daleui

    DaleStudy/daleui

    Use the daleui React design system with semantic Panda CSS tokens and accessible components.

    119 GitHub stars~675 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Loora Design Guide

    lassejlv/loora

    Build, edit, refine, troubleshoot, and review polished responsive product interfaces through the Loora MCP server and its structured Canvas schemas.

    140 GitHub stars~2.4k tokensUpdated 11 days ago
    Frontend & DesignAuto-check passed
  • Figma Use

    shepherdjerred/monorepo

    This skill should be used when the user asks to "create a Figma design", "design in Figma", "make a Figma mockup", "create an app icon", "design UI", "render JSX to Figma", "export from Figma"…

    112 GitHub stars~946 tokensUpdated today
    Frontend & DesignAuto-check passed

More from bitovi/ai-enablement-prompts

All 40 skills in this repo
  • Component Registry

    bitovi/ai-enablement-prompts

    Track reusable UI components and unextracted patterns. An agent skill from bitovi/ai-enablement-prompts.

    121 GitHub stars~597 tokensUpdated 27 days ago
    Auto-check passed
  • Computed Styles

    bitovi/ai-enablement-prompts

    Extract and compare computed CSS styles between a baseline URL and a dev/Storybook URL using Playwright MCP evaluate calls.

    121 GitHub stars~2.4k tokensUpdated 27 days ago
    Auto-check passed
  • Create Plugin

    bitovi/ai-enablement-prompts

    A skill your agent uses when the user asks to "create a plugin", "add a plugin", "make a new plugin", "build a plugin", or wants to package skills into an installable plugin for this marketplace.

    121 GitHub stars~2k tokensUpdated 27 days ago
    Auto-check passed
  • Create React Modlet

    bitovi/ai-enablement-prompts

    Create React components, hooks, or utilities following the modlet pattern.

    121 GitHub stars~2.1k tokensUpdated 27 days ago
    Auto-check passed
  • Create Skill

    bitovi/ai-enablement-prompts

    A skill your agent uses when the user asks to "create a skill", "add a skill", "make a new skill", "build a skill", or wants to automate a repeated workflow into a reusable prompt.

    121 GitHub stars~1.6k tokensUpdated 27 days ago
    Auto-check passed
  • Create Skill

    bitovi/ai-enablement-prompts

    Create new Agent Skills for this project. An agent skill from bitovi/ai-enablement-prompts.

    121 GitHub stars~1.7k tokensUpdated 27 days ago
    Auto-check passed

Works with

Questions about Figma Component Sync

What does Figma Component Sync do?

Check a React component against its Figma design source and identify differences. Figma Component Sync is an agent skill from bitovi/ai-enablement-prompts. Check a React component against its Figma design source and identify differences.

When should I use Figma Component Sync?

Figma Component Sync fits situations like: reviewing component implementations; syncing designs; auditing visual accuracy; updating components to match new Figma designs.

How do I install Figma Component Sync in Claude Code?

Run `npx skills add bitovi/ai-enablement-prompts --skill figma-component-sync -a claude-code`. Or copy the skill folder (figma/figma-component-sync in bitovi/ai-enablement-prompts) into .claude/skills/figma-component-sync in your project. Claude Code loads it when a task matches its description.

How do I install Figma Component Sync in Codex?

Run `npx skills add bitovi/ai-enablement-prompts --skill figma-component-sync -a codex`. Or copy the skill folder (figma/figma-component-sync in bitovi/ai-enablement-prompts) into .agents/skills/figma-component-sync in your project. Codex loads it when a task matches its description.

Can I use Figma Component Sync in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bitovi/ai-enablement-prompts --skill figma-component-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/figma-component-sync, .gemini/skills/figma-component-sync, .github/skills/figma-component-sync and .opencode/skills/figma-component-sync in your project.

What does Figma Component Sync need to run?

SKILL.md names no scripts, command-line tools or credentials: Figma Component Sync is instructions for the agent only.

Does Figma Component Sync access the network?

SKILL.md names 1 domain. In commands or code: figma.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Figma Component Sync safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Figma Component Sync use?

Figma Component Sync is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Figma Component Sync use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Figma Component Sync?

Skills that share tags, products or a category with Figma Component Sync: Figma Use (dannote/figma-use, 607 stars), Wonder Blocks (Khan/wonder-blocks, 163 stars), Connect Component To Figma (dequelabs/cauldron, 129 stars) and Daleui (DaleStudy/daleui, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Figma Component Sync?

bitovi (a GitHub organization) maintains it in bitovi/ai-enablement-prompts, which has 121 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on September 11, 2026.

Source: bitovi/ai-enablement-prompts on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.