
Semantic search across all tracked Figma frames using QMD hybrid search. Finds frames by content, component names, text strings, or natural language queries like "the login screen" or "frames with portfolio charts". Use when the user runs /figma-differ:search or says "find the Figma frame for", "which frame has", "search Figma frames", or "find frames with".
Fetches the current state of a Figma node and diffs it against the latest stored snapshot. Runs both structural diff (JSON node tree) and visual comparison (PNG via Claude vision). Use when the user runs /figma-differ:diff with a Figma URL, or says "diff this Figma frame", "what changed in Figma", "compare to snapshot", or "check Figma for changes".
Bulk snapshots every frame in a Figma file — fetches all node JSONs, exports PNGs, and stores comments. Uses a single API call for the tree and batched image exports. Use when the user runs /figma-differ:snapshot-all with a Figma file URL, or says "snapshot all frames", "bulk snapshot", "baseline the whole file", or "snapshot everything in this Figma file".
Diffs every frame in a Figma file against stored snapshots. Runs structural diff locally (zero API calls), dispatches vision analysis only on changed frames, and computes comment deltas. Produces a tiered report. Use when the user runs /figma-differ:diff-all with a Figma file URL, or says "diff all frames", "what changed in this Figma file", "bulk diff", "check for design changes", or "run a full file diff".
Re-fetch and enrich thin Figma frames that have shallow data (1 node, generic description like "dark mode screen", or description under 30 chars). Uses REST API to fetch full node JSON and regenerates frame.md for each thin frame. Use when the user runs /figma-differ:enrich, says "enrich thin frames", "improve frame descriptions", or "deep-fetch all frames".
Discovers and catalogs all frames in a Figma file at any depth. Creates a frame manifest for bulk operations. Use when the user runs /figma-differ:index with a Figma file URL, or says "index this Figma file", "list all frames", "catalog Figma screens", or "discover frames".
Posts diff results to Slack using persistent frame threads. Each tracked frame gets a permanent parent message; diffs and comments are thread replies. Use when the user runs /figma-differ:notify, or says "post the diff to Slack", "share the Figma diff", "notify the team about design changes", or "send diff to Slack".
Fetches comments from a Figma file and surfaces unresolved ones grouped by node. Use when the user runs /figma-differ:review-comments with a Figma URL, or says "show Figma comments", "what are the open Figma comments", "review Figma feedback", or "check Figma annotations".
Takes a snapshot of a Figma node — fetches its JSON structure and PNG screenshot and stores both to ~/.figma-differ/ for later diffing. Use when the user runs /figma-differ:snapshot with a Figma URL, or says "snapshot this Figma frame", "save a Figma baseline", or "take a Figma snapshot".
Refresh snapshots and search index for tracked Figma files. Fetches current state from Figma, generates frame.md documents, and updates the QMD search index. Use when the user runs /figma-differ:sync or says "sync Figma", "refresh snapshots", "update the Figma index", or "re-sync tracked files".
Subscribe to a Figma file for automatic syncing and semantic search. Adds the file to tracked.json, runs initial index + snapshot-all + frame.md generation, and initializes the QMD search collection. Use when the user runs /figma-differ:track or says "track this Figma file", "subscribe to Figma", "watch this design file", or "add to tracked files".