PluginBench
Skill
Fail
Audit score 45

understand-figma

egonex-ai/understand-anything

Analyze Figma files and generate interactive design knowledge graphs with component and token mapping.

What is understand-figma?

This skill connects to your Figma file via the Figma REST API, extracts pages, screens, components, design tokens, and instances, then builds an interactive design knowledge graph with a visual dashboard. Use it to document design systems, audit component usage, or explore design structure programmatically.

  • Fetches Figma file structure (pages, frames, components, component sets, instances) via REST API
  • Extracts and catalogs design tokens (colors, typography, spacing, etc.)
  • Groups nodes into batches and enriches them with LLM analysis for semantic understanding
  • Merges scan data with analysis to produce a unified knowledge graph
  • Generates an interactive design dashboard for exploration and navigation
  • Supports optional language directives for non-English analysis output

How to install understand-figma

npx skills add https://github.com/egonex-ai/understand-anything --skill understand-figma
Prerequisites
  • Figma personal access token (create at https://www.figma.com/settings and set as FIGMA_TOKEN environment variable)
  • Node.js ≥ 22
  • pnpm ≥ 10
Claude Code
Cursor
Windsurf
Cline

How to use understand-figma

  1. 1.Set your Figma token: `export FIGMA_TOKEN=<your-token>` (create one at figma.com/settings)
  2. 2.Run the skill with a Figma file URL or key: `understand-figma <figma-url-or-key>`
  3. 3.Optionally specify a language for analysis: `understand-figma <figma-url-or-key> --language <lang>`
  4. 4.Wait for the skill to fetch, analyze, and merge the design data
  5. 5.Review the generated knowledge graph and interactive dashboard

Use cases

Good for
  • Document a design system by mapping all components and their relationships
  • Audit component instance usage across a Figma file to identify unused or over-used patterns
  • Extract design tokens programmatically for code generation or design-to-dev handoff
  • Explore design hierarchy and dependencies interactively via the dashboard
  • Generate semantic descriptions of screens and components for accessibility or documentation
Who it's for
  • Design system maintainers
  • Product designers auditing design consistency
  • Frontend engineers integrating design tokens into code
  • Design-to-dev workflow automation
  • Teams building design documentation

understand-figma FAQ

What is a Figma personal access token and how do I create one?

A personal access token is a secure credential for API access. Create one at https://www.figma.com/settings under Developer settings, then set it as the FIGMA_TOKEN environment variable.

Does this skill work offline?

No. Unlike the base /understand skill, this makes outbound calls to api.figma.com to fetch your Figma file data. The token is sent only in the X-Figma-Token request header and is never logged or written to files.

What if the design graph is already up to date?

The skill checks the Figma file version and skips re-analysis if nothing has changed. To force a full rebuild, set UNDERSTAND_FIGMA_FORCE=1 in the environment.

Can I analyze multiple Figma files?

Run the skill separately for each file. Each analysis is stored in the .ua/ directory and can be explored via the dashboard.

What happens if a batch analysis fails?

The skill logs a warning and continues with remaining batches. The scan manifest provides a solid base even if some LLM enrichment steps fail.

Full instructions (SKILL.md)

Source of truth, from egonex-ai/understand-anything.


name: understand-figma description: Analyze a Figma file via the Figma REST API and generate an interactive design knowledge graph (pages, screens, components, component sets, instances, design tokens) with a kind:"design" dashboard. argument-hint: "<figma-file-url-or-key> [--language <lang>]"

/understand-figma

Analyzes a Figma file and produces an interactive design knowledge graph in the existing dashboard.

Prerequisites

  • FIGMA_TOKEN environment variable — a Figma personal access token (create one at https://www.figma.com/settings). If it is missing, STOP and tell the user:

    Set a Figma token first: create one at figma.com/settings, then export FIGMA_TOKEN=<token>.

  • Node ≥ 22, pnpm ≥ 10.

Security: the token is read only from the environment and travels only in the X-Figma-Token request header. Never write it to the graph, meta.json, logs, or intermediate files. This skill makes outbound calls to api.figma.com — unlike /understand, it is not fully offline. Tell the user this once.

Phase 0 — Pre-flight

  1. Parse $ARGUMENTS for a Figma URL or bare file key (the non-flag token) and an optional --language <lang>.
  2. Resolve PROJECT_ROOT to the current working directory. Resolve the data directory $UA_DIR once and reuse it for every read and write below: UA_DIR="$PROJECT_ROOT/$([ -d "$PROJECT_ROOT/.understand-anything" ] && echo .understand-anything || echo .ua)" — the legacy .understand-anything/ when it already exists, otherwise the new .ua/. Because each phase may run in a fresh shell, carry $UA_DIR forward like $PROJECT_ROOT, re-resolving it with the same line if a later command block needs it.
  3. Resolve PLUGIN_ROOT and ensure core is built (same logic as /understand Phase 0.1.5). If packages/core/dist/figma/index.js is missing, run:
    cd "$PLUGIN_ROOT" && (pnpm install --frozen-lockfile 2>/dev/null || pnpm install) && pnpm --filter @understand-anything/core build
    
  4. mkdir -p $UA_DIR/intermediate.

Phase 1 — FETCH & PARSE (deterministic)

Run the bundled scan script (<SKILL_DIR> is this skill's directory):

FIGMA_TOKEN="$FIGMA_TOKEN" node <SKILL_DIR>/figma-scan.mjs "$PROJECT_ROOT" "<url-or-key>"

It writes $UA_DIR/intermediate/scan-manifest.json and prints the node counts. Relay the counts to the user. If it exits non-zero, relay stderr and STOP.

If the scan prints UP_TO_DATE, report "Design graph is already up to date for this Figma file version" and STOP. To force a full rebuild, re-run with UNDERSTAND_FIGMA_FORCE=1 set in the environment.

Phase 2 — ANALYZE (LLM enrichment)

  1. Read scan-manifest.json. Group nodes into batches of ~15, grouped by page when possible.
  2. For each batch, dispatch a subagent using the design-analyzer agent definition (agents/design-analyzer.md). Pass:
    • the batch of nodes (id, type, name, figmaMeta, child names, token usage),
    • the full list of existing node IDs,
    • $INTERMEDIATE_DIR = $UA_DIR/intermediate,
    • the batch number for output naming. The agent writes analysis-batch-<N>.json. Append $LANGUAGE_DIRECTIVE if --language was provided (reuse /understand's directive text).
  3. Run up to 5 batches concurrently. If a batch fails, log a warning and continue — the manifest is a solid base.

Phase 3 — MERGE

node <SKILL_DIR>/figma-merge.mjs "$PROJECT_ROOT"

It combines scan-manifest.json + analysis-batch-*.json, runs mergeDesignGraph (validates, re-attaches kind:"design"), and writes knowledge-graph.json + meta.json. Relay the printed stats and any non-auto-corrected issues.

Phase 4 — SAVE & LAUNCH

  1. Clean up intermediate files except scan-manifest.json:
    INTER="$UA_DIR/intermediate"
    find "$INTER" -mindepth 1 -maxdepth 1 -not -name 'scan-manifest.json' -exec rm -rf {} +
    
  2. Report a summary: project name, counts by node type, edges by type, layers, tour steps, and the path $UA_DIR/knowledge-graph.json.
  3. Auto-launch the dashboard by invoking the /understand-dashboard skill.