migration-assistant — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited migration-assistant (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Assist with migrating a Figma design system between versions: map old tokens to new ones, swap deprecated components, rename variables, and verify migration completeness. Works incrementally with user checkpoints.
ping → verify plugin connection
load_toolset("variables") → variable management
load_toolset("tokens") → token diff/sync
load_toolset("components-advanced") → component swappingIf `ping` fails (plugin not connected): STOP. Do not fall back to other MCP servers. Tell user: open Figma → Plugins → FigCraft → wait for connection, then retry.
Inventory the existing design system:
variables_ep(method: "list") → all current variables
variables_ep(method: "list_collections") → collection structure
components(method: "list") → all components
scan_styles → all stylesWork with the user to define the mapping between old and new:
## Token Migration Map
| Old Token | New Token | Action |
|-----------|-----------|--------|
| color/primary | color/brand/primary | rename |
| color/bg | color/surface/default | rename + remap |
| spacing/sm | space/200 | rename |
| — | color/surface/elevated | create new |
| color/accent | — | deprecate |
## Component Migration Map
| Old Component | New Component | Action |
|---------------|---------------|--------|
| Button/Primary | Button (variant=filled) | swap variant |
| Card/Basic | Card (variant=elevated) | swap + update props |
| OldInput | TextField | swap component |
| DeprecatedBadge | — | remove |⛔ WAIT for user confirmation before proceeding.
For each variable in the migration map:
Rename:
variables_ep(method: "update", variableId: "...", name: "new/name")Create new:
variables_ep(method: "create", name: "...", collectionId: "...", resolvedType: "...")Create alias (semantic → primitive):
create_variable_alias(variableId: "...", targetVariableId: "...")Update scopes:
variables_ep(method: "update", variableId: "...", scopes: [...])After each batch, verify:
variables_ep(method: "list") → confirm changes appliedFor each component swap:
swap_instance(instanceId: "...", componentKey: "new-component-key")For property updates after swap:
nodes(method: "update", patches: [{ nodeId: "...", props: { ... } }])For text/paint/effect style changes, update or create new styles and rebind:
load_toolset("styles")
styles_ep(method: "update_text", ...)
styles_ep(method: "update_paint", ...)Run a comprehensive check:
lint_fix_all → catch broken bindings or layout issuesAdditionally verify:
export_image on key screensAfter verification and user approval:
⛔ WAIT for user confirmation before any destructive operations.
save_version_history before starting migration for easy rollback~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.