Help us improve
Share bugs, ideas, or general feedback.
From figma-plugin-alpha-032026
Syncs design tokens between code and Figma variables with drift reporting, mandatory approval before writes, safe delta apply, and persisted reports.
npx claudepluginhub firebenders/sync-figma-token-skillHow this skill is triggered — by the user, by Claude, or both
Slash command
/figma-plugin-alpha-032026:sync-figma-tokenThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill for token parity workflows (code tokens vs Figma variables).
Syncs design tokens between code and Figma using Variables API or Tokens Studio plugin. Use when establishing Figma-to-code workflows, exporting Figma tokens, or setting up design-development handoff.
Pushes tokens from DTCG/Tailwind/config into Figma variables. Safe re-imports update instead of duplicating. Works on any Figma plan.
Audits design system token definitions for naming violations, missing semantic tiers, and structural debt in tiered architectures. Generates severity-rated findings and prioritized remediations.
Share bugs, ideas, or general feedback.
Use this skill for token parity workflows (code tokens vs Figma variables).
MANDATORY prerequisite: load figma-use before every use_figma call.
After producing dry-run output, you MUST STOP and ask for approval.
use_figma calls in the same turn as dry-run output.Prefer real token sources in this order:
tokens.json, tokens/*.json, DTCG-style)If source format is non-standard, explicitly state assumptions in dry-run output.
direction: code_to_figma (default), figma_to_code, bidirectionaldeletePolicy: default archive_only (NOT delete)conflictPolicy: prefer_code, prefer_figma, manual_reviewnamingPolicy: token key normalization strategymodePolicy: code mode <-> Figma mode mappingNever delete by default. Deletion requires explicit user instruction.
Normalize both sides to canonical rows:
key (canonical token name)type (COLOR, FLOAT, STRING, BOOLEAN)modeValues (light/dark/etc.)aliasTargetscopescodeSyntaxName normalization examples:
color.bg.primary <-> color/bg/primaryNeutral10 <-> Neutral/10 only if explicitly mapped by naming policyDry-run must validate values, not only presence/type.
epsilon = 0.0001Each drift item must include one of:
missing_in_figmamissing_in_codevalue_mismatchalias_mismatchtype_mismatchmode_mismatchscope_mismatchcode_syntax_mismatchbroken_aliasAlways return:
{
"create": 0,
"update": 0,
"aliasFix": 0,
"scopeFix": 0,
"syntaxFix": 0,
"archive": 0,
"delete": 0
}
Then ask:
Dry-run complete. Apply these changes? (yes/no)
Persist report JSON every run:
/tmp/sync-figma-token-dry-run-{runId}.json/tmp/sync-figma-token-final-{runId}.jsonIf file persistence fails, mention that explicitly in output.
When conflicting data is found (type/mode/alias ambiguity):
conflictPolicy=manual_review, list conflicts and STOP.conflictPolicy=prefer_code, update Figma to source values/types.conflictPolicy=prefer_figma, keep Figma and emit drift as informational.Apply deltas in this order:
deletePolicyNever parallelize write use_figma calls.
After apply, run a fresh diff. Success = unresolved drift is zero, or only explicitly approved exceptions remain.