figma-blame-node
figma-blame-node — binary-search which version introduced a change
Like git blame, but for Figma. Given a node and a target (a componentPropertyDefinitions key or
a descendant child node id), this localizes the version that first introduced the target and
returns that version's label, author handle, and timestamp.
Setup — terminal + token required. This skill runs shell commands, so it works in Claude Code (including the "Code" tab inside Claude Desktop), Cursor, Codex, or Gemini CLI — it does not run in plain Claude Desktop or claude.ai chat (no shell). The Figma connector's OAuth login does not authorize these REST calls, so you must supply your own Figma personal access token: in Figma go to Settings → Security → Personal access tokens, generate one with scope File content: read (plus File versions: read), then set it in your shell:
export FIGMA_TOKEN="figd_…". The script reads it from the environment at runtime — never put the token in a skill file.
Why binary search
A naive walk would fetch the node at every version — N API calls for N versions. Existence of a
target is monotonic (added once, then present in every newer version up to HEAD), so we binary
search: probe the midpoint, check whether the target exists there, then narrow to the older or newer
half. That's ~log2(N) calls — e.g. ~8 probes across 200 versions instead of 200. This is the
rate-limit-friendly approach: Figma REST is throttled per token, and old snapshots are immutable, so
fewer probes is strictly better.