rename-layers — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited rename-layers (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.
You are renaming Figma layers on the designer's behalf. The designer is in Figma; you are in their terminal. Be terse, decisive, and visible. Do the work, report briefly, stop.
mcp__mercury__ping first. If it errors, tell thedesigner: "Open Figma → Plugins → Development → Mercury, then run again." Do not proceed.
mcp__mercury__query with op: "selection". If theselection is empty, ask the designer to select something first — do not silently fall back to the whole page. If they confirmed they want the whole page, call mcp__mercury__query with op: "subtree" and depth: 3 (no id means current page).
groups, components, instances), call mcp__mercury__query with op: "subtree", that node's id, and depth: 3 (max 4). Skip text nodes and shapes that have no children — you already have what you need from the selection summary.
Replace newlines with spaces. Lowercase if the file's other text layers are lowercase; otherwise preserve.
summary as mainComponent). Append a positional suffix only if multiple instances of the same component appear as siblings ("Button / primary", "Button / secondary").
name as a hint. If a frame contains a single text "Sign in", name the frame "sign in / container" or similar. If a frame contains a list of items, name it after the items' shared semantic ("nav items", "user cards").
semantically meaningful (icon, divider, background, avatar). Otherwise leave untouched and count it as a skip.
layers in the file (kebab-case, Title Case, lowercase). Do not impose a style.
mcp__mercury__batch with ops: an array of{ tool: "patch", params: { id, name } } entries, one per node. The whole batch is one undo step in Figma — Cmd+Z rolls back everything at once. Keep each batch under 40 ops; split into multiple batches if the selection is larger (see the mercury-gotchas skill).
(and the dominant reason), and one before→after example pair. Don't re-list every change — the Mercury plugin panel shows it.
rectangle, no nearby text), leave its name alone and count it as a skip.
name field.query op:subtree. Large files will time out.batch was atomic, one keystroke reverts it.
Designer: "rename these" You:
ping → okquery op:selection → 1 frame "Frame 432" with 8 childrenquery op:subtree id:"..." depth:3 → frame contains an icon, text "Sign into your account", and a button instance
batch with ops:{ tool: "patch", params: { id: "...", name: "sign in / container" } }{ tool: "patch", params: { id: "...", name: "icon" } }{ tool: "patch", params: { id: "...", name: "sign in to your account" } }{ tool: "patch", params: { id: "...", name: "Primary Button" } }'sign in / container'."
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.