**MANDATORY prerequisite** — load this skill before calling `create_generative_plugin` or `update_generative_plugin`. Use when the user asks to create, author, change, fix, or extend a reusable generative Figma plugin.
67
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Load this skill before every create_generative_plugin or update_generative_plugin call. In user-facing language, call the result a “plugin.” The “generative” qualifier only distinguishes this account-library tool from other plugin systems.
Before authoring, confirm the request fits this surface:
planKey. Reuse one supplied by the user; otherwise call whoami. Use the sole eligible plan automatically, or ask the user to choose when several materially different plans are available.create_generative_plugin once with a concise name, description, and planKey. This creates a runnable square-drawing scaffold, not the requested final plugin.get_generative_plugin with the returned id, then read every source URI. This establishes the scaffold's manifest, UI message contract, and current TypeScript entrypoint.update_generative_plugin with the returned id, a files array containing complete replacements for code.ts and, when the UI changes, ui.html, plus a specific commitMessage. Use metadata when changing the name or description.Never stop after create_generative_plugin: the starter must be replaced with the requested experience.
list_generative_plugins, then get_generative_plugin.update_generative_plugin with complete replacement content for every changed existing file. Use { path: "code.ts", content: "..." } for the entrypoint and { path: "ui.html", content: "..." } for the UI. Unspecified files are preserved.update_generative_plugin can replace existing code.ts and ui.html files, but cannot replace manifest.json or create new files. Keep figma.showUI(__html__, ...) in code.ts and replace ui.html when the requested workflow needs different controls.update_generative_plugin result as success. Record the returned version when present; a successful response may omit it.Report the plugin name and id, plus the returned version when present and a short description of its UI and primary action. Construct and include a clickable URL that opens a new Design file with the unpublished plugin ready to try, using the exact plugin id as try-tool-resource-content-id:
https://www.figma.com/file/new?try-tool-resource-content-id=<id>&try-tool-resource-type=gen_tool&type=design&mode=design
After presenting the new-file link, ask whether the user wants to open the plugin in an existing Figma Design file instead. If yes, reuse a file URL already provided or ask for one, then add the same try-tool-resource-content-id and try-tool-resource-type query parameters to that URL. Never guess the file URL.
ae7e5e5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.