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.
Analyzes a Figma file and produces an interactive design knowledge graph in the existing dashboard.
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>.
Security: the token is read only from the environment and travels only in the
X-Figma-Tokenrequest header. Never write it to the graph,meta.json, logs, or intermediate files. This skill makes outbound calls toapi.figma.com— unlike/understand, it is not fully offline. Tell the user this once.
$ARGUMENTS for a Figma URL or bare file key (the non-flag token) and an optional --language <lang>.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.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
mkdir -p $UA_DIR/intermediate.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 withUNDERSTAND_FIGMA_FORCE=1set in the environment.
scan-manifest.json. Group nodes into batches of ~15, grouped by page when possible.design-analyzer agent definition (agents/design-analyzer.md). Pass:
id, type, name, figmaMeta, child names, token usage),$INTERMEDIATE_DIR = $UA_DIR/intermediate,analysis-batch-<N>.json.
Append $LANGUAGE_DIRECTIVE if --language was provided (reuse /understand's directive text).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.
scan-manifest.json:
INTER="$UA_DIR/intermediate"
find "$INTER" -mindepth 1 -maxdepth 1 -not -name 'scan-manifest.json' -exec rm -rf {} +
$UA_DIR/knowledge-graph.json./understand-dashboard skill.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/understand-figma · pinned to the source commit
# Run from your project root
git clone https://github.com/Egonex-AI/Understand-Anything.git .skillboard-tmp
git -C .skillboard-tmp checkout f2d0164f72fe678805c34245a6df36acededfebd
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/understand-anything-plugin/skills/understand-figma" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/Egonex-AI/Understand-Anything.git .skillboard-tmp
git -C .skillboard-tmp checkout f2d0164f72fe678805c34245a6df36acededfebd
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/understand-anything-plugin/skills/understand-figma" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/understand-figma
Scanner static-checks@0.1.0 · commit f2d0164f72fe. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Contains commands that can irreversibly delete or overwrite data.
Evidence: rm -rf· fingerprint 3aa78388a06d8af1