@fprad0/skill-master-mcp 0.0.12 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +96 -90
  2. package/README.md +472 -472
  3. package/VERSION.md +9 -9
  4. package/bin/lib/bootstrap-global-core.mjs +34 -0
  5. package/bin/lib/client-config.mjs +293 -293
  6. package/bin/lib/doctor-core.mjs +202 -0
  7. package/bin/lib/menu-core.mjs +1629 -1522
  8. package/bin/lib/operation-result.mjs +59 -0
  9. package/bin/lib/register-clients-core.mjs +247 -0
  10. package/bin/lib/skill-installation.mjs +215 -215
  11. package/bin/lib/update-cli-core.mjs +117 -0
  12. package/bin/skill-master-activation.mjs +163 -163
  13. package/bin/skill-master-bootstrap-global.mjs +61 -49
  14. package/bin/skill-master-configure-private-registry.mjs +3 -3
  15. package/bin/skill-master-doctor.mjs +239 -228
  16. package/bin/skill-master-eval-activation.mjs +32 -32
  17. package/bin/skill-master-install-global-skills.mjs +59 -59
  18. package/bin/skill-master-install-project-skills.mjs +97 -97
  19. package/bin/skill-master-menu.mjs +406 -405
  20. package/bin/skill-master-register-clients.mjs +232 -153
  21. package/bin/skill-master-success-skills.mjs +307 -307
  22. package/bin/skill-master-update.mjs +121 -72
  23. package/bin/skill-master.mjs +3 -3
  24. package/dist/activation.d.ts.map +1 -1
  25. package/dist/activation.js +12 -0
  26. package/dist/activation.js.map +1 -1
  27. package/dist/prompt-router.d.ts.map +1 -1
  28. package/dist/prompt-router.js +19 -0
  29. package/dist/prompt-router.js.map +1 -1
  30. package/dist/recommender.d.ts.map +1 -1
  31. package/dist/recommender.js +4 -1
  32. package/dist/recommender.js.map +1 -1
  33. package/docs/architecture/APRENDIZADO_DE_IMPLEMENTACOES_BEM_SUCEDIDAS.md +125 -125
  34. package/docs/architecture/ARQUITETURA_AUTO_UPDATE.md +9 -9
  35. package/docs/architecture/PLANO_MASTER_ACIONAMENTO_AUTOMATICO_E_APRENDIZADO.md +341 -341
  36. package/docs/architecture/REDE_SEGURA_DE_SKILLS.md +148 -148
  37. package/docs/operations/GUIA_MULTI_COMPUTADOR.md +262 -262
  38. package/docs/operations/GUIA_NPM_PRIVADO.md +294 -294
  39. package/docs/operations/GUIA_NPM_PUBLICO.md +147 -147
  40. package/docs/operations/MENU_VISUAL_EVIDENCE_2026-06-28.md +66 -66
  41. package/docs/operations/assets/menu-frame-compact.html +75 -75
  42. package/docs/operations/assets/menu-frame-large.html +83 -83
  43. package/docs/operations/assets/menu-frame-running.html +79 -79
  44. package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -140
  45. package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -85
  46. package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -174
  47. package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -119
  48. package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -134
  49. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -84
  50. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -56
  51. package/docs/operations/token-economy-transfer/ANALISE_AVANCADA_ECONOMIA_TOKENS_2026-06-30.md +141 -0
  52. package/docs/operations/token-economy-transfer/PLANO_DEV_SENIOR_MASTER_TOKEN_ECONOMY_2026-06-30.md +171 -0
  53. package/docs/operations/token-economy-transfer/README_TRANSFERENCIA_TOKEN_ECONOMY.md +31 -0
  54. package/docs/planning/MENU_RUNTIME_CORRECTION_PLAN_2026-06-30.md +551 -0
  55. package/docs/planning/V0_0_9_APROVACAO_CRITICA_MENSAGENS_DE_VENDA.md +85 -85
  56. package/docs/planning/V0_0_9_FONTES_E_CRITERIOS_DE_AUTORIDADE.md +139 -139
  57. package/docs/planning/V0_0_9_MATRIZ_SKILLS_MULTIDISCIPLINARES.md +105 -105
  58. package/docs/planning/V0_0_9_POLITICA_MORAL_CATOLICA_PARA_IA.md +181 -181
  59. package/docs/planning/V0_0_9_PROMPTS_EXECUCAO.md +59 -59
  60. package/docs/planning/V0_0_9_ROADMAP_DISCERNIMENTO_E_CONHECIMENTO_AMPLO.md +181 -181
  61. package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -6
  62. package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -6
  63. package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -6
  64. package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -6
  65. package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -6
  66. package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -83
  67. package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -88
  68. package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -156
  69. package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -105
  70. package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -119
  71. package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -120
  72. package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -123
  73. package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -114
  74. package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -157
  75. package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -127
  76. package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -107
  77. package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -80
  78. package/docs/prompt-tasks/PROMPT_TASK_019_TOKEN_ECONOMY_GLOBAL_SKILLS.md +56 -0
  79. package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -6
  80. package/docs/skill-candidates/v0.0.10/cli-creator/LICENSE.txt +201 -201
  81. package/docs/skill-candidates/v0.0.10/cli-creator/SKILL.md +160 -160
  82. package/docs/skill-candidates/v0.0.10/cli-creator/agents/openai.yaml +4 -4
  83. package/docs/skill-candidates/v0.0.10/cli-creator/references/agent-cli-patterns.md +154 -154
  84. package/docs/skill-candidates/v0.0.10/developer-workstation-ops/SKILL.md +32 -32
  85. package/docs/skill-candidates/v0.0.10/figma/LICENSE.txt +1 -1
  86. package/docs/skill-candidates/v0.0.10/figma/SKILL.md +42 -42
  87. package/docs/skill-candidates/v0.0.10/figma/agents/openai.yaml +14 -14
  88. package/docs/skill-candidates/v0.0.10/figma/assets/figma-small.svg +3 -3
  89. package/docs/skill-candidates/v0.0.10/figma/assets/icon.svg +28 -28
  90. package/docs/skill-candidates/v0.0.10/figma/references/figma-mcp-config.md +35 -35
  91. package/docs/skill-candidates/v0.0.10/figma/references/figma-tools-and-prompts.md +34 -34
  92. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/LICENSE.TXT +1 -1
  93. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/SKILL.md +349 -349
  94. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/agents/openai.yaml +14 -14
  95. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/figma-small.svg +3 -3
  96. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/icon.svg +28 -28
  97. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/references/mapping-checklist.md +7 -7
  98. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/scripts/normalize_node_id.py +25 -25
  99. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/LICENSE.TXT +1 -1
  100. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/SKILL.md +537 -537
  101. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/agents/openai.yaml +14 -14
  102. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/figma-small.svg +3 -3
  103. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/icon.svg +28 -28
  104. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/references/rule-template.md +15 -15
  105. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -9
  106. package/docs/skill-candidates/v0.0.10/figma-generate-design/LICENSE.TXT +1 -1
  107. package/docs/skill-candidates/v0.0.10/figma-generate-design/SKILL.md +341 -341
  108. package/docs/skill-candidates/v0.0.10/figma-generate-design/agents/openai.yaml +14 -14
  109. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/figma-small.svg +3 -3
  110. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/icon.svg +28 -28
  111. package/docs/skill-candidates/v0.0.10/figma-generate-design/maintainers.yml +1 -1
  112. package/docs/skill-candidates/v0.0.10/figma-generate-library/LICENSE.TXT +1 -1
  113. package/docs/skill-candidates/v0.0.10/figma-generate-library/SKILL.md +314 -314
  114. package/docs/skill-candidates/v0.0.10/figma-generate-library/agents/openai.yaml +14 -14
  115. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/figma-small.svg +3 -3
  116. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/icon.svg +28 -28
  117. package/docs/skill-candidates/v0.0.10/figma-generate-library/maintainers.yml +3 -3
  118. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/code-connect-setup.md +260 -260
  119. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/component-creation.md +1014 -1014
  120. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/discovery-phase.md +518 -518
  121. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/documentation-creation.md +834 -834
  122. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/error-recovery.md +540 -540
  123. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/naming-conventions.md +527 -527
  124. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/token-creation.md +962 -962
  125. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/bindVariablesToComponent.js +110 -110
  126. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/cleanupOrphans.js +127 -127
  127. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createComponentWithVariants.js +148 -148
  128. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createDocumentationPage.js +139 -139
  129. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createSemanticTokens.js +108 -108
  130. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createVariableCollection.js +49 -49
  131. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/inspectFileStructure.js +121 -121
  132. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/rehydrateState.js +92 -92
  133. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/validateCreation.js +83 -83
  134. package/docs/skill-candidates/v0.0.10/figma-implement-design/LICENSE.txt +1 -1
  135. package/docs/skill-candidates/v0.0.10/figma-implement-design/SKILL.md +258 -258
  136. package/docs/skill-candidates/v0.0.10/figma-implement-design/agents/openai.yaml +14 -14
  137. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/figma-small.svg +3 -3
  138. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/icon.svg +28 -28
  139. package/docs/skill-candidates/v0.0.10/figma-use/LICENSE.TXT +1 -1
  140. package/docs/skill-candidates/v0.0.10/figma-use/SKILL.md +233 -233
  141. package/docs/skill-candidates/v0.0.10/figma-use/agents/openai.yaml +14 -14
  142. package/docs/skill-candidates/v0.0.10/figma-use/assets/figma-small.svg +3 -3
  143. package/docs/skill-candidates/v0.0.10/figma-use/assets/icon.svg +28 -28
  144. package/docs/skill-candidates/v0.0.10/figma-use/maintainers.yml +1 -1
  145. package/docs/skill-candidates/v0.0.10/figma-use/references/api-reference.md +301 -301
  146. package/docs/skill-candidates/v0.0.10/figma-use/references/common-patterns.md +512 -512
  147. package/docs/skill-candidates/v0.0.10/figma-use/references/component-patterns.md +488 -488
  148. package/docs/skill-candidates/v0.0.10/figma-use/references/effect-style-patterns.md +123 -123
  149. package/docs/skill-candidates/v0.0.10/figma-use/references/gotchas.md +599 -599
  150. package/docs/skill-candidates/v0.0.10/figma-use/references/maintainers.yml +12 -12
  151. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-patterns.md +513 -513
  152. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.d.ts +11293 -11293
  153. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.index.md +441 -441
  154. package/docs/skill-candidates/v0.0.10/figma-use/references/text-style-patterns.md +203 -203
  155. package/docs/skill-candidates/v0.0.10/figma-use/references/validation-and-recovery.md +109 -109
  156. package/docs/skill-candidates/v0.0.10/figma-use/references/variable-patterns.md +354 -354
  157. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/maintainers.yml +9 -9
  158. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--creating.md +17 -17
  159. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--using.md +17 -17
  160. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components.md +50 -50
  161. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-effect-styles.md +52 -52
  162. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-text-styles.md +90 -90
  163. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--creating.md +13 -13
  164. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--using.md +13 -13
  165. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables.md +64 -64
  166. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds.md +41 -41
  167. package/docs/skill-candidates/v0.0.10/frontend-design/LICENSE.txt +177 -177
  168. package/docs/skill-candidates/v0.0.10/frontend-design/SKILL.md +55 -55
  169. package/docs/skill-candidates/v0.0.10/frontend-ui-ux-systems/SKILL.md +32 -32
  170. package/docs/skill-candidates/v0.0.10/github/SKILL.md +74 -74
  171. package/docs/skill-candidates/v0.0.10/github/agents/openai.yaml +6 -6
  172. package/docs/skill-candidates/v0.0.10/github/assets/github-small.svg +3 -3
  173. package/docs/skill-candidates/v0.0.10/image-graphic-design-rendering/SKILL.md +28 -28
  174. package/docs/skill-candidates/v0.0.10/language-quality-pt-en-fr-it-ru/SKILL.md +28 -28
  175. package/docs/skill-candidates/v0.0.10/math-physics-reasoning/SKILL.md +28 -28
  176. package/docs/skill-candidates/v0.0.10/mcp-builder/LICENSE.txt +201 -201
  177. package/docs/skill-candidates/v0.0.10/mcp-builder/SKILL.md +236 -236
  178. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/evaluation.md +601 -601
  179. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/mcp_best_practices.md +249 -249
  180. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/node_mcp_server.md +969 -969
  181. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/python_mcp_server.md +718 -718
  182. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/connections.py +151 -151
  183. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/evaluation.py +373 -373
  184. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/example_evaluation.xml +22 -22
  185. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/requirements.txt +2 -2
  186. package/docs/skill-candidates/v0.0.10/mcp-client-readiness/SKILL.md +31 -31
  187. package/docs/skill-candidates/v0.0.10/openai-docs/LICENSE.txt +201 -201
  188. package/docs/skill-candidates/v0.0.10/openai-docs/SKILL.md +161 -161
  189. package/docs/skill-candidates/v0.0.10/openai-docs/agents/openai.yaml +14 -14
  190. package/docs/skill-candidates/v0.0.10/openai-docs/assets/openai-small.svg +3 -3
  191. package/docs/skill-candidates/v0.0.10/openai-docs/references/latest-model.md +37 -37
  192. package/docs/skill-candidates/v0.0.10/openai-docs/references/prompting-guide.md +244 -244
  193. package/docs/skill-candidates/v0.0.10/openai-docs/references/upgrade-guide.md +181 -181
  194. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/fetch-codex-manual.mjs +598 -598
  195. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/resolve-latest-model-info.js +147 -147
  196. package/docs/skill-candidates/v0.0.10/playwright/NOTICE.txt +14 -14
  197. package/docs/skill-candidates/v0.0.10/playwright/SKILL.md +147 -147
  198. package/docs/skill-candidates/v0.0.10/playwright/agents/openai.yaml +6 -6
  199. package/docs/skill-candidates/v0.0.10/playwright/assets/playwright-small.svg +3 -3
  200. package/docs/skill-candidates/v0.0.10/playwright/references/cli.md +116 -116
  201. package/docs/skill-candidates/v0.0.10/playwright/references/workflows.md +95 -95
  202. package/docs/skill-candidates/v0.0.10/playwright/scripts/playwright_cli.sh +25 -25
  203. package/docs/skill-candidates/v0.0.10/polyglot-backend-engineering/SKILL.md +32 -32
  204. package/docs/skill-candidates/v0.0.10/screenshot/LICENSE.txt +201 -201
  205. package/docs/skill-candidates/v0.0.10/screenshot/SKILL.md +267 -267
  206. package/docs/skill-candidates/v0.0.10/screenshot/agents/openai.yaml +6 -6
  207. package/docs/skill-candidates/v0.0.10/screenshot/assets/screenshot-small.svg +5 -5
  208. package/docs/skill-candidates/v0.0.10/screenshot/scripts/ensure_macos_permissions.sh +54 -54
  209. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_display_info.swift +22 -22
  210. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_permissions.swift +40 -40
  211. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_window_info.swift +126 -126
  212. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.ps1 +163 -163
  213. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.py +585 -585
  214. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/SKILL.md +62 -62
  215. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/agents/openai.yaml +4 -4
  216. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/activation-policy.md +77 -77
  217. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/human-approval-policy.md +83 -83
  218. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/persona-dev-senior-master.md +46 -46
  219. package/docs/skill-candidates/v0.0.10/terminal-menu-operations/SKILL.md +30 -30
  220. package/docs/skill-candidates/v0.0.10/terminal-pixel-art-tui/SKILL.md +43 -43
  221. package/docs/skill-candidates/v0.0.10/webapp-testing/LICENSE.txt +201 -201
  222. package/docs/skill-candidates/v0.0.10/webapp-testing/SKILL.md +95 -95
  223. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/console_logging.py +34 -34
  224. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/element_discovery.py +39 -39
  225. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/static_html_automation.py +32 -32
  226. package/docs/skill-candidates/v0.0.10/webapp-testing/scripts/with_server.py +105 -105
  227. package/docs/skill-candidates/v0.0.10/winui-app/LICENSE.txt +201 -201
  228. package/docs/skill-candidates/v0.0.10/winui-app/SKILL.md +94 -94
  229. package/docs/skill-candidates/v0.0.10/winui-app/agents/openai.yaml +5 -5
  230. package/docs/skill-candidates/v0.0.10/winui-app/config.yaml +50 -50
  231. package/docs/skill-candidates/v0.0.10/winui-app/references/_sections.md +96 -96
  232. package/docs/skill-candidates/v0.0.10/winui-app/references/accessibility-input-and-localization.md +51 -51
  233. package/docs/skill-candidates/v0.0.10/winui-app/references/build-run-and-launch-verification.md +72 -72
  234. package/docs/skill-candidates/v0.0.10/winui-app/references/community-toolkit-controls-and-helpers.md +57 -57
  235. package/docs/skill-candidates/v0.0.10/winui-app/references/controls-layout-and-adaptive-ui.md +84 -84
  236. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-environment-audit-and-remediation.md +82 -82
  237. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-setup-and-project-selection.md +67 -67
  238. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-template-first-recovery.md +62 -62
  239. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-winui-app-structure.md +62 -62
  240. package/docs/skill-candidates/v0.0.10/winui-app/references/motion-animations-and-polish.md +45 -45
  241. package/docs/skill-candidates/v0.0.10/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -46
  242. package/docs/skill-candidates/v0.0.10/winui-app/references/sample-source-map.md +37 -37
  243. package/docs/skill-candidates/v0.0.10/winui-app/references/shell-navigation-and-windowing.md +67 -67
  244. package/docs/skill-candidates/v0.0.10/winui-app/references/styling-theming-materials-and-icons.md +71 -71
  245. package/docs/skill-candidates/v0.0.10/winui-app/references/testing-debugging-and-review-checklists.md +77 -77
  246. package/docs/skill-candidates/v0.0.10/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -52
  247. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/SKILL.md +398 -398
  248. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/common-patterns.md +330 -330
  249. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/complete-examples.md +871 -871
  250. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/component-patterns.md +501 -501
  251. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/data-fetching.md +766 -766
  252. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/file-organization.md +501 -501
  253. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/loading-and-error-states.md +500 -500
  254. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/performance.md +405 -405
  255. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/routing-guide.md +363 -363
  256. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/styling-guide.md +427 -427
  257. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/typescript-standards.md +417 -417
  258. package/docs/skill-candidates/v0.0.11/git-version-control-ops/SKILL.md +34 -34
  259. package/docs/skill-candidates/v0.0.11/go-engineering/SKILL.md +34 -34
  260. package/docs/skill-candidates/v0.0.11/java-engineering/SKILL.md +34 -34
  261. package/docs/skill-candidates/v0.0.11/javascript-engineering/SKILL.md +34 -34
  262. package/docs/skill-candidates/v0.0.11/json-contract-design/SKILL.md +34 -34
  263. package/docs/skill-candidates/v0.0.11/multi-client-mcp-ops/SKILL.md +36 -36
  264. package/docs/skill-candidates/v0.0.11/nextjs/SKILL.md +745 -745
  265. package/docs/skill-candidates/v0.0.11/nextjs/agents/openai.yaml +3 -3
  266. package/docs/skill-candidates/v0.0.11/nextjs/references/app-router-files.md +94 -94
  267. package/docs/skill-candidates/v0.0.11/python-engineering/SKILL.md +34 -34
  268. package/docs/skill-candidates/v0.0.11/ruby-engineering/SKILL.md +34 -34
  269. package/docs/skill-candidates/v0.0.11/senior-fullstack/SKILL.md +209 -209
  270. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/architecture_patterns.md +103 -103
  271. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/development_workflows.md +103 -103
  272. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/tech_stack_guide.md +103 -103
  273. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/code_quality_analyzer.py +114 -114
  274. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/fullstack_scaffolder.py +114 -114
  275. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/project_scaffolder.py +114 -114
  276. package/docs/skill-candidates/v0.0.11/shadcn/SKILL.md +573 -573
  277. package/docs/skill-candidates/v0.0.11/shadcn/agents/openai.yaml +3 -3
  278. package/docs/skill-candidates/v0.0.11/sql-postgresql-engineering/SKILL.md +34 -34
  279. package/docs/skill-candidates/v0.0.11/terminal-shell-ops/SKILL.md +34 -34
  280. package/docs/skill-candidates/v0.0.11/typescript-expert/SKILL.md +429 -429
  281. package/docs/skill-candidates/v0.0.11/typescript-expert/references/tsconfig-strict.json +91 -91
  282. package/docs/skill-candidates/v0.0.11/typescript-expert/references/typescript-cheatsheet.md +383 -383
  283. package/docs/skill-candidates/v0.0.11/typescript-expert/references/utility-types.ts +335 -335
  284. package/docs/skill-candidates/v0.0.11/typescript-expert/scripts/ts_diagnostic.py +203 -203
  285. package/docs/skill-candidates/v0.0.11/ui-component-primitives/SKILL.md +34 -34
  286. package/docs/skill-candidates/v0.0.11/web-mobile-design-systems/SKILL.md +34 -34
  287. package/docs/skill-candidates/v0.0.11/windows-linux-platform-ops/SKILL.md +34 -34
  288. package/docs/skill-candidates/v0.0.12/context-compression-handoff/SKILL.md +47 -0
  289. package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -32
  290. package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -32
  291. package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -32
  292. package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -32
  293. package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -32
  294. package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -32
  295. package/docs/skill-candidates/v0.0.12/prompt-budget-gate/SKILL.md +46 -0
  296. package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -32
  297. package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -32
  298. package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -32
  299. package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -48
  300. package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -31
  301. package/docs/skill-candidates/v0.0.12/token-economy-orchestrator/SKILL.md +38 -0
  302. package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -35
  303. package/docs/skill-candidates/v0.0.9/ai-ethics-human-dignity/SKILL.md +32 -32
  304. package/docs/skill-candidates/v0.0.9/broad-domain-router/SKILL.md +41 -41
  305. package/docs/skill-candidates/v0.0.9/catholic-moral-discernment/SKILL.md +31 -31
  306. package/docs/skill-candidates/v0.0.9/engineering-systems-master/SKILL.md +31 -31
  307. package/docs/skill-candidates/v0.0.9/language-quality-pt-en-fr/SKILL.md +28 -28
  308. package/docs/skill-candidates/v0.0.9/math-science-reasoning/SKILL.md +29 -29
  309. package/docs/skill-candidates/v0.0.9/philosophy-sociology-discernment/SKILL.md +28 -28
  310. package/docs/skill-candidates/v0.0.9/professional-boundary-triage/SKILL.md +40 -40
  311. package/docs/skill-candidates/v0.0.9/release-ethics-gate/SKILL.md +32 -32
  312. package/docs/skill-candidates/v0.0.9/source-authority-reviewer/SKILL.md +31 -31
  313. package/examples/client-configs/claude-code.commands.md +21 -21
  314. package/examples/client-configs/claude-code.project.mcp.json +18 -18
  315. package/examples/client-configs/claude-desktop.macos.json +18 -18
  316. package/examples/client-configs/claude-desktop.windows.json +20 -20
  317. package/examples/client-configs/codex.windows.toml +11 -11
  318. package/examples/client-configs/gemini-code-assist.intellij.mcp.json +18 -18
  319. package/examples/client-configs/gemini.linux.settings.json +21 -21
  320. package/examples/client-configs/gemini.windows.settings.json +23 -23
  321. package/examples/client-configs/generic-stdio.json +16 -16
  322. package/manifests/channels/beta.json +26 -26
  323. package/manifests/channels/stable.json +27 -27
  324. package/network/approved-skills.json +54 -54
  325. package/network/unapproved-skill-candidates.json +110 -110
  326. package/package.json +87 -86
  327. package/scripts/configure-private-registry.mjs +208 -208
  328. package/scripts/lib/private-registry.mjs +97 -97
  329. package/scripts/render-menu-evidence.mjs +130 -130
  330. package/scripts/verify-menu-actions.mjs +117 -117
  331. package/sources.json +11 -11
@@ -1,301 +1,301 @@
1
- # Figma Plugin API Reference
2
-
3
- > Part of the [use_figma skill](../SKILL.md). What works and what doesn't in the `use_figma` environment.
4
-
5
- ## Contents
6
-
7
- - Node Creation
8
- - Grouping and Boolean Operations
9
- - Library Imports
10
- - Variables API
11
- - Core Properties
12
- - Node Manipulation
13
- - Descriptions and Documentation Links
14
- - SVG and Images
15
- - Utilities and Plugin Lifecycle
16
- - Node Traversal
17
- - Unsupported APIs
18
-
19
-
20
- ## Node Creation (Design Mode)
21
-
22
- ```js
23
- figma.createRectangle()
24
- figma.createFrame()
25
- figma.createComponent() // Creates a ComponentNode
26
- figma.createText()
27
- figma.createEllipse()
28
- figma.createStar()
29
- figma.createLine()
30
- figma.createVector()
31
- figma.createPolygon()
32
- figma.createBooleanOperation()
33
- figma.createSlice()
34
- figma.createPage() // Page node can be created, but child persistence is limited in headless mode
35
- figma.createSection()
36
- figma.createTextPath()
37
- ```
38
-
39
- ## Grouping & Boolean Operations
40
-
41
- ```js
42
- figma.group(nodes, parent, index?) // Group nodes
43
- figma.flatten(nodes, parent?, index?) // Flatten to vector
44
- figma.union(nodes, parent?, index?) // Boolean union
45
- figma.subtract(nodes, parent?, index?) // Boolean subtract
46
- figma.intersect(nodes, parent?, index?) // Boolean intersect
47
- figma.exclude(nodes, parent?, index?) // Boolean exclude
48
- figma.combineAsVariants(components, parent?) // Combine ComponentNodes into ComponentSet (Design/Sites only)
49
- ```
50
-
51
- ## Library Component Import
52
-
53
- These methods import components from **team libraries** (not the same file you're working in). For components in the current file, use `use_figma` with `figma.getNodeByIdAsync()` or `findOne()`/`findAll()` to locate them directly.
54
-
55
- ```js
56
- // Import a published component from a team library by key
57
- const comp = await figma.importComponentByKeyAsync("COMPONENT_KEY")
58
- const instance = comp.createInstance()
59
-
60
- // Import a published component set from a team library by key
61
- const compSet = await figma.importComponentSetByKeyAsync("COMPONENT_SET_KEY")
62
- const variant =
63
- compSet.children.find((c) => c.type === "COMPONENT" && c.name.includes("size=md")) ||
64
- compSet.defaultVariant
65
- const variantInstance = variant.createInstance()
66
- ```
67
-
68
- ## Library Style Import (Team Libraries)
69
-
70
- These methods import styles from **team libraries** (not the same file). For styles in the current file, use `figma.getLocalPaintStyles()`, `figma.getLocalTextStyles()`, etc.
71
-
72
- ```js
73
- // Import a published style from a team library by key
74
- const style = await figma.importStyleByKeyAsync("STYLE_KEY")
75
-
76
- // Apply the imported style to a node
77
- await node.setFillStyleIdAsync(style.id) // for PaintStyle as fill
78
- await node.setStrokeStyleIdAsync(style.id) // for PaintStyle as stroke
79
- await node.setTextStyleIdAsync(style.id) // for TextStyle
80
- await node.setEffectStyleIdAsync(style.id) // for EffectStyle
81
- await node.setGridStyleIdAsync(style.id) // for GridStyle
82
- ```
83
-
84
- ## Library Variable Import (Team Libraries)
85
-
86
- This imports variables from **team libraries** (not the same file). For variables in the current file, use `figma.variables.getLocalVariables()` or `figma.variables.getVariableById()`.
87
-
88
- ```js
89
- // Import a published variable from a team library by key
90
- const variable = await figma.variables.importVariableByKeyAsync("VARIABLE_KEY")
91
-
92
- // Bind the imported variable to node properties
93
- node.setBoundVariable("width", variable) // FLOAT variable
94
-
95
- // Bind to fills/strokes (COLOR variable) — returns a NEW paint, must capture it
96
- const newPaint = figma.variables.setBoundVariableForPaint(paintCopy, "color", variable)
97
- node.fills = [newPaint]
98
- ```
99
-
100
- ## Variables API
101
-
102
- ```js
103
- // Collections
104
- const collection = figma.variables.createVariableCollection("Name")
105
- collection.name // Get/set name
106
- collection.modes // Array of {modeId, name} — starts with 1 mode
107
- collection.addMode("Dark") // Returns new modeId string
108
- collection.renameMode(modeId, "Light")
109
-
110
- // Variables
111
- const variable = figma.variables.createVariable("name", collection, "COLOR")
112
- // ^ object or ID string
113
- // resolvedType: "COLOR" | "FLOAT" | "STRING" | "BOOLEAN"
114
- variable.setValueForMode(modeId, value)
115
-
116
- // Scopes — controls where variable appears in property pickers
117
- variable.scopes = ["FRAME_FILL", "SHAPE_FILL"] // only fill pickers
118
- variable.scopes = ["TEXT_FILL"] // only text color picker
119
- variable.scopes = ["STROKE_COLOR"] // only stroke picker
120
- variable.scopes = [] // hidden from all pickers (use for primitives)
121
- // All valid scope values:
122
- // ALL_SCOPES, TEXT_CONTENT, CORNER_RADIUS, WIDTH_HEIGHT, GAP,
123
- // ALL_FILLS, FRAME_FILL, SHAPE_FILL, TEXT_FILL,
124
- // STROKE_COLOR, STROKE_FLOAT, EFFECT_FLOAT, EFFECT_COLOR,
125
- // OPACITY, FONT_FAMILY, FONT_STYLE, FONT_WEIGHT, FONT_SIZE,
126
- // LINE_HEIGHT, LETTER_SPACING, PARAGRAPH_SPACING, PARAGRAPH_INDENT
127
-
128
- // Querying
129
- figma.variables.getVariableById(id)
130
- figma.variables.getLocalVariables(resolvedType?)
131
- figma.variables.getVariableCollectionById(id)
132
- figma.variables.getLocalVariableCollections()
133
-
134
- // Binding variables to paints (COLOR variables)
135
- const newPaint = figma.variables.setBoundVariableForPaint(paintCopy, "color", variable)
136
- // ⚠️ Returns a NEW paint — must capture return value!
137
- node.fills = [newPaint]
138
-
139
- // Binding variables to effects (COLOR/FLOAT variables)
140
- const newEffect = figma.variables.setBoundVariableForEffect(effectCopy, field, variable)
141
- // field for shadows: "color" (COLOR), "radius" | "spread" | "offsetX" | "offsetY" (FLOAT)
142
- // field for blurs: "radius" (FLOAT)
143
- // ⚠️ Returns a NEW effect — must capture return value!
144
- node.effects = [newEffect]
145
-
146
- // Binding variables to layout grids (FLOAT variables)
147
- const newGrid = figma.variables.setBoundVariableForLayoutGrid(gridCopy, field, variable)
148
- // field: "sectionSize" | "offset" | "count" | "gutterSize"
149
- // ⚠️ Returns a NEW layout grid — must capture return value!
150
- node.layoutGrids = [newGrid]
151
-
152
- // Binding variables to node properties (FLOAT/STRING/BOOLEAN)
153
- // Layout & sizing (FLOAT):
154
- node.setBoundVariable("width", variable)
155
- node.setBoundVariable("height", variable)
156
- node.setBoundVariable("minWidth", variable)
157
- node.setBoundVariable("maxWidth", variable)
158
- node.setBoundVariable("minHeight", variable)
159
- node.setBoundVariable("maxHeight", variable)
160
- node.setBoundVariable("paddingLeft", variable)
161
- node.setBoundVariable("paddingRight", variable)
162
- node.setBoundVariable("paddingTop", variable)
163
- node.setBoundVariable("paddingBottom", variable)
164
- node.setBoundVariable("itemSpacing", variable)
165
- node.setBoundVariable("counterAxisSpacing", variable)
166
- // Corner radii (FLOAT) — use individual corners, NOT cornerRadius:
167
- node.setBoundVariable("topLeftRadius", variable)
168
- node.setBoundVariable("topRightRadius", variable)
169
- node.setBoundVariable("bottomLeftRadius", variable)
170
- node.setBoundVariable("bottomRightRadius", variable)
171
- // Other (FLOAT):
172
- node.setBoundVariable("opacity", variable)
173
- node.setBoundVariable("strokeWeight", variable)
174
- // ⚠️ fontSize, fontWeight, lineHeight are NOT bindable via setBoundVariable
175
- // — set these directly as values on text nodes
176
-
177
- // Aliases
178
- figma.variables.createVariableAlias(variable)
179
-
180
- // Explicit modes — CRITICAL for variant components
181
- node.setExplicitVariableModeForCollection(collectionId, modeId)
182
- // Without this, all nodes use the default (first) mode of the collection
183
- ```
184
-
185
- ## Core Properties
186
-
187
- ```js
188
- figma.root // DocumentNode
189
- figma.currentPage // Current page (read-only in use_figma; sync setter throws)
190
- figma.setCurrentPageAsync(page) // Switch page and load its content (MUST await)
191
- figma.fileKey // File key string
192
- figma.mixed // Mixed sentinel value
193
- ```
194
-
195
- ## Node Manipulation
196
-
197
- ```js
198
- // Fills & Strokes (read-only arrays — must clone)
199
- node.fills = [{ type: 'SOLID', color: { r: 1, g: 0, b: 0 } }]
200
- node.strokes = [{ type: 'SOLID', color: { r: 0, g: 0, b: 0 } }]
201
- node.strokeWeight = 1
202
- node.strokeAlign = 'INSIDE' // 'INSIDE' | 'CENTER' | 'OUTSIDE'
203
-
204
- // Effects
205
- node.effects = [{ type: 'DROP_SHADOW', color: {r:0,g:0,b:0,a:0.25}, offset:{x:0,y:4}, radius:4, visible:true }]
206
-
207
- // Layout
208
- node.layoutMode = 'HORIZONTAL' // 'NONE' | 'HORIZONTAL' | 'VERTICAL'
209
- node.primaryAxisAlignItems = 'CENTER' // 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN'
210
- node.counterAxisAlignItems = 'CENTER' // 'MIN' | 'CENTER' | 'MAX' | 'BASELINE'
211
- node.paddingLeft = 8
212
- node.paddingRight = 8
213
- node.paddingTop = 4
214
- node.paddingBottom = 4
215
- node.itemSpacing = 4
216
- node.layoutSizingHorizontal = 'HUG' // 'FIXED' | 'HUG' | 'FILL'
217
- node.layoutSizingVertical = 'HUG' // 'FIXED' | 'HUG' | 'FILL'
218
-
219
- // Sizing
220
- node.resize(width, height) // ⚠️ Resets sizing modes to FIXED
221
- node.resizeWithoutConstraints(width, height) // Doesn't affect constraints
222
-
223
- // Corner radius
224
- node.cornerRadius = 8
225
-
226
- // Visibility & Opacity
227
- node.visible = true
228
- node.opacity = 0.5
229
-
230
- // Naming & Hierarchy
231
- node.name = "My Node"
232
- parent.appendChild(child)
233
- parent.insertChild(index, child)
234
- node.remove()
235
- ```
236
-
237
- ## Descriptions & Documentation Links
238
-
239
- ```js
240
- // Description — plain text, shown in Figma's component panel
241
- node.description = "A short summary of this component's purpose and usage."
242
-
243
- // Documentation links — array of {uri, label} shown as clickable links
244
- componentSet.documentationLinks = [
245
- { uri: "https://example.com/docs", label: "Component Docs" }
246
- ]
247
- // ⚠️ uri MUST be a valid URL (https://...) — relative paths will throw
248
- ```
249
-
250
- ## SVG Import
251
-
252
- ```js
253
- const svgNode = figma.createNodeFromSvg('<svg>...</svg>')
254
- ```
255
-
256
- ## Images
257
-
258
- ```js
259
- const image = figma.createImage(uint8Array)
260
- node.fills = [{ type: 'IMAGE', scaleMode: 'FILL', imageHash: image.hash }]
261
- ```
262
-
263
- ## Utilities
264
-
265
- ```js
266
- figma.base64Encode(uint8Array) // Uint8Array → base64 string
267
- figma.base64Decode(base64String) // base64 string → Uint8Array
268
- figma.createComponentFromNode(node) // Convert existing node to component (Design/Sites only)
269
- ```
270
-
271
- ## Plugin Lifecycle
272
-
273
- ```js
274
- figma.closePlugin("message") // Close and return a message to the agent (success)
275
- figma.closePluginWithFailure("error msg") // Close with error — ALWAYS use in catch blocks
276
- ```
277
-
278
- ## Node Traversal
279
-
280
- ```js
281
- node.findAll(pred?) // Find all descendants matching predicate
282
- node.findOne(pred?) // Find first descendant matching predicate
283
- node.findChildren(pred?) // Find direct children matching predicate
284
- node.findChild(pred?) // Find first direct child matching predicate
285
- node.children // Direct children array
286
- node.parent // Parent node
287
- ```
288
-
289
- ---
290
-
291
- ## What Does NOT Work
292
-
293
- | API | Status |
294
- |-----|--------|
295
- | `figma.notify()` | **Throws "not implemented"** — most common mistake |
296
- | `figma.showUI()` | No-op (silently ignored) |
297
- | `figma.openExternal()` | No-op (silently ignored) |
298
- | `figma.listAvailableFontsAsync()` | Not implemented |
299
- | `figma.loadAllPagesAsync()` | Not implemented |
300
- | `figma.variables.extendLibraryCollectionByKeyAsync()` | Not implemented |
301
- | `figma.teamLibrary.*` | Not implemented (requires LiveGraph) |
1
+ # Figma Plugin API Reference
2
+
3
+ > Part of the [use_figma skill](../SKILL.md). What works and what doesn't in the `use_figma` environment.
4
+
5
+ ## Contents
6
+
7
+ - Node Creation
8
+ - Grouping and Boolean Operations
9
+ - Library Imports
10
+ - Variables API
11
+ - Core Properties
12
+ - Node Manipulation
13
+ - Descriptions and Documentation Links
14
+ - SVG and Images
15
+ - Utilities and Plugin Lifecycle
16
+ - Node Traversal
17
+ - Unsupported APIs
18
+
19
+
20
+ ## Node Creation (Design Mode)
21
+
22
+ ```js
23
+ figma.createRectangle()
24
+ figma.createFrame()
25
+ figma.createComponent() // Creates a ComponentNode
26
+ figma.createText()
27
+ figma.createEllipse()
28
+ figma.createStar()
29
+ figma.createLine()
30
+ figma.createVector()
31
+ figma.createPolygon()
32
+ figma.createBooleanOperation()
33
+ figma.createSlice()
34
+ figma.createPage() // Page node can be created, but child persistence is limited in headless mode
35
+ figma.createSection()
36
+ figma.createTextPath()
37
+ ```
38
+
39
+ ## Grouping & Boolean Operations
40
+
41
+ ```js
42
+ figma.group(nodes, parent, index?) // Group nodes
43
+ figma.flatten(nodes, parent?, index?) // Flatten to vector
44
+ figma.union(nodes, parent?, index?) // Boolean union
45
+ figma.subtract(nodes, parent?, index?) // Boolean subtract
46
+ figma.intersect(nodes, parent?, index?) // Boolean intersect
47
+ figma.exclude(nodes, parent?, index?) // Boolean exclude
48
+ figma.combineAsVariants(components, parent?) // Combine ComponentNodes into ComponentSet (Design/Sites only)
49
+ ```
50
+
51
+ ## Library Component Import
52
+
53
+ These methods import components from **team libraries** (not the same file you're working in). For components in the current file, use `use_figma` with `figma.getNodeByIdAsync()` or `findOne()`/`findAll()` to locate them directly.
54
+
55
+ ```js
56
+ // Import a published component from a team library by key
57
+ const comp = await figma.importComponentByKeyAsync("COMPONENT_KEY")
58
+ const instance = comp.createInstance()
59
+
60
+ // Import a published component set from a team library by key
61
+ const compSet = await figma.importComponentSetByKeyAsync("COMPONENT_SET_KEY")
62
+ const variant =
63
+ compSet.children.find((c) => c.type === "COMPONENT" && c.name.includes("size=md")) ||
64
+ compSet.defaultVariant
65
+ const variantInstance = variant.createInstance()
66
+ ```
67
+
68
+ ## Library Style Import (Team Libraries)
69
+
70
+ These methods import styles from **team libraries** (not the same file). For styles in the current file, use `figma.getLocalPaintStyles()`, `figma.getLocalTextStyles()`, etc.
71
+
72
+ ```js
73
+ // Import a published style from a team library by key
74
+ const style = await figma.importStyleByKeyAsync("STYLE_KEY")
75
+
76
+ // Apply the imported style to a node
77
+ await node.setFillStyleIdAsync(style.id) // for PaintStyle as fill
78
+ await node.setStrokeStyleIdAsync(style.id) // for PaintStyle as stroke
79
+ await node.setTextStyleIdAsync(style.id) // for TextStyle
80
+ await node.setEffectStyleIdAsync(style.id) // for EffectStyle
81
+ await node.setGridStyleIdAsync(style.id) // for GridStyle
82
+ ```
83
+
84
+ ## Library Variable Import (Team Libraries)
85
+
86
+ This imports variables from **team libraries** (not the same file). For variables in the current file, use `figma.variables.getLocalVariables()` or `figma.variables.getVariableById()`.
87
+
88
+ ```js
89
+ // Import a published variable from a team library by key
90
+ const variable = await figma.variables.importVariableByKeyAsync("VARIABLE_KEY")
91
+
92
+ // Bind the imported variable to node properties
93
+ node.setBoundVariable("width", variable) // FLOAT variable
94
+
95
+ // Bind to fills/strokes (COLOR variable) — returns a NEW paint, must capture it
96
+ const newPaint = figma.variables.setBoundVariableForPaint(paintCopy, "color", variable)
97
+ node.fills = [newPaint]
98
+ ```
99
+
100
+ ## Variables API
101
+
102
+ ```js
103
+ // Collections
104
+ const collection = figma.variables.createVariableCollection("Name")
105
+ collection.name // Get/set name
106
+ collection.modes // Array of {modeId, name} — starts with 1 mode
107
+ collection.addMode("Dark") // Returns new modeId string
108
+ collection.renameMode(modeId, "Light")
109
+
110
+ // Variables
111
+ const variable = figma.variables.createVariable("name", collection, "COLOR")
112
+ // ^ object or ID string
113
+ // resolvedType: "COLOR" | "FLOAT" | "STRING" | "BOOLEAN"
114
+ variable.setValueForMode(modeId, value)
115
+
116
+ // Scopes — controls where variable appears in property pickers
117
+ variable.scopes = ["FRAME_FILL", "SHAPE_FILL"] // only fill pickers
118
+ variable.scopes = ["TEXT_FILL"] // only text color picker
119
+ variable.scopes = ["STROKE_COLOR"] // only stroke picker
120
+ variable.scopes = [] // hidden from all pickers (use for primitives)
121
+ // All valid scope values:
122
+ // ALL_SCOPES, TEXT_CONTENT, CORNER_RADIUS, WIDTH_HEIGHT, GAP,
123
+ // ALL_FILLS, FRAME_FILL, SHAPE_FILL, TEXT_FILL,
124
+ // STROKE_COLOR, STROKE_FLOAT, EFFECT_FLOAT, EFFECT_COLOR,
125
+ // OPACITY, FONT_FAMILY, FONT_STYLE, FONT_WEIGHT, FONT_SIZE,
126
+ // LINE_HEIGHT, LETTER_SPACING, PARAGRAPH_SPACING, PARAGRAPH_INDENT
127
+
128
+ // Querying
129
+ figma.variables.getVariableById(id)
130
+ figma.variables.getLocalVariables(resolvedType?)
131
+ figma.variables.getVariableCollectionById(id)
132
+ figma.variables.getLocalVariableCollections()
133
+
134
+ // Binding variables to paints (COLOR variables)
135
+ const newPaint = figma.variables.setBoundVariableForPaint(paintCopy, "color", variable)
136
+ // ⚠️ Returns a NEW paint — must capture return value!
137
+ node.fills = [newPaint]
138
+
139
+ // Binding variables to effects (COLOR/FLOAT variables)
140
+ const newEffect = figma.variables.setBoundVariableForEffect(effectCopy, field, variable)
141
+ // field for shadows: "color" (COLOR), "radius" | "spread" | "offsetX" | "offsetY" (FLOAT)
142
+ // field for blurs: "radius" (FLOAT)
143
+ // ⚠️ Returns a NEW effect — must capture return value!
144
+ node.effects = [newEffect]
145
+
146
+ // Binding variables to layout grids (FLOAT variables)
147
+ const newGrid = figma.variables.setBoundVariableForLayoutGrid(gridCopy, field, variable)
148
+ // field: "sectionSize" | "offset" | "count" | "gutterSize"
149
+ // ⚠️ Returns a NEW layout grid — must capture return value!
150
+ node.layoutGrids = [newGrid]
151
+
152
+ // Binding variables to node properties (FLOAT/STRING/BOOLEAN)
153
+ // Layout & sizing (FLOAT):
154
+ node.setBoundVariable("width", variable)
155
+ node.setBoundVariable("height", variable)
156
+ node.setBoundVariable("minWidth", variable)
157
+ node.setBoundVariable("maxWidth", variable)
158
+ node.setBoundVariable("minHeight", variable)
159
+ node.setBoundVariable("maxHeight", variable)
160
+ node.setBoundVariable("paddingLeft", variable)
161
+ node.setBoundVariable("paddingRight", variable)
162
+ node.setBoundVariable("paddingTop", variable)
163
+ node.setBoundVariable("paddingBottom", variable)
164
+ node.setBoundVariable("itemSpacing", variable)
165
+ node.setBoundVariable("counterAxisSpacing", variable)
166
+ // Corner radii (FLOAT) — use individual corners, NOT cornerRadius:
167
+ node.setBoundVariable("topLeftRadius", variable)
168
+ node.setBoundVariable("topRightRadius", variable)
169
+ node.setBoundVariable("bottomLeftRadius", variable)
170
+ node.setBoundVariable("bottomRightRadius", variable)
171
+ // Other (FLOAT):
172
+ node.setBoundVariable("opacity", variable)
173
+ node.setBoundVariable("strokeWeight", variable)
174
+ // ⚠️ fontSize, fontWeight, lineHeight are NOT bindable via setBoundVariable
175
+ // — set these directly as values on text nodes
176
+
177
+ // Aliases
178
+ figma.variables.createVariableAlias(variable)
179
+
180
+ // Explicit modes — CRITICAL for variant components
181
+ node.setExplicitVariableModeForCollection(collectionId, modeId)
182
+ // Without this, all nodes use the default (first) mode of the collection
183
+ ```
184
+
185
+ ## Core Properties
186
+
187
+ ```js
188
+ figma.root // DocumentNode
189
+ figma.currentPage // Current page (read-only in use_figma; sync setter throws)
190
+ figma.setCurrentPageAsync(page) // Switch page and load its content (MUST await)
191
+ figma.fileKey // File key string
192
+ figma.mixed // Mixed sentinel value
193
+ ```
194
+
195
+ ## Node Manipulation
196
+
197
+ ```js
198
+ // Fills & Strokes (read-only arrays — must clone)
199
+ node.fills = [{ type: 'SOLID', color: { r: 1, g: 0, b: 0 } }]
200
+ node.strokes = [{ type: 'SOLID', color: { r: 0, g: 0, b: 0 } }]
201
+ node.strokeWeight = 1
202
+ node.strokeAlign = 'INSIDE' // 'INSIDE' | 'CENTER' | 'OUTSIDE'
203
+
204
+ // Effects
205
+ node.effects = [{ type: 'DROP_SHADOW', color: {r:0,g:0,b:0,a:0.25}, offset:{x:0,y:4}, radius:4, visible:true }]
206
+
207
+ // Layout
208
+ node.layoutMode = 'HORIZONTAL' // 'NONE' | 'HORIZONTAL' | 'VERTICAL'
209
+ node.primaryAxisAlignItems = 'CENTER' // 'MIN' | 'CENTER' | 'MAX' | 'SPACE_BETWEEN'
210
+ node.counterAxisAlignItems = 'CENTER' // 'MIN' | 'CENTER' | 'MAX' | 'BASELINE'
211
+ node.paddingLeft = 8
212
+ node.paddingRight = 8
213
+ node.paddingTop = 4
214
+ node.paddingBottom = 4
215
+ node.itemSpacing = 4
216
+ node.layoutSizingHorizontal = 'HUG' // 'FIXED' | 'HUG' | 'FILL'
217
+ node.layoutSizingVertical = 'HUG' // 'FIXED' | 'HUG' | 'FILL'
218
+
219
+ // Sizing
220
+ node.resize(width, height) // ⚠️ Resets sizing modes to FIXED
221
+ node.resizeWithoutConstraints(width, height) // Doesn't affect constraints
222
+
223
+ // Corner radius
224
+ node.cornerRadius = 8
225
+
226
+ // Visibility & Opacity
227
+ node.visible = true
228
+ node.opacity = 0.5
229
+
230
+ // Naming & Hierarchy
231
+ node.name = "My Node"
232
+ parent.appendChild(child)
233
+ parent.insertChild(index, child)
234
+ node.remove()
235
+ ```
236
+
237
+ ## Descriptions & Documentation Links
238
+
239
+ ```js
240
+ // Description — plain text, shown in Figma's component panel
241
+ node.description = "A short summary of this component's purpose and usage."
242
+
243
+ // Documentation links — array of {uri, label} shown as clickable links
244
+ componentSet.documentationLinks = [
245
+ { uri: "https://example.com/docs", label: "Component Docs" }
246
+ ]
247
+ // ⚠️ uri MUST be a valid URL (https://...) — relative paths will throw
248
+ ```
249
+
250
+ ## SVG Import
251
+
252
+ ```js
253
+ const svgNode = figma.createNodeFromSvg('<svg>...</svg>')
254
+ ```
255
+
256
+ ## Images
257
+
258
+ ```js
259
+ const image = figma.createImage(uint8Array)
260
+ node.fills = [{ type: 'IMAGE', scaleMode: 'FILL', imageHash: image.hash }]
261
+ ```
262
+
263
+ ## Utilities
264
+
265
+ ```js
266
+ figma.base64Encode(uint8Array) // Uint8Array → base64 string
267
+ figma.base64Decode(base64String) // base64 string → Uint8Array
268
+ figma.createComponentFromNode(node) // Convert existing node to component (Design/Sites only)
269
+ ```
270
+
271
+ ## Plugin Lifecycle
272
+
273
+ ```js
274
+ figma.closePlugin("message") // Close and return a message to the agent (success)
275
+ figma.closePluginWithFailure("error msg") // Close with error — ALWAYS use in catch blocks
276
+ ```
277
+
278
+ ## Node Traversal
279
+
280
+ ```js
281
+ node.findAll(pred?) // Find all descendants matching predicate
282
+ node.findOne(pred?) // Find first descendant matching predicate
283
+ node.findChildren(pred?) // Find direct children matching predicate
284
+ node.findChild(pred?) // Find first direct child matching predicate
285
+ node.children // Direct children array
286
+ node.parent // Parent node
287
+ ```
288
+
289
+ ---
290
+
291
+ ## What Does NOT Work
292
+
293
+ | API | Status |
294
+ |-----|--------|
295
+ | `figma.notify()` | **Throws "not implemented"** — most common mistake |
296
+ | `figma.showUI()` | No-op (silently ignored) |
297
+ | `figma.openExternal()` | No-op (silently ignored) |
298
+ | `figma.listAvailableFontsAsync()` | Not implemented |
299
+ | `figma.loadAllPagesAsync()` | Not implemented |
300
+ | `figma.variables.extendLibraryCollectionByKeyAsync()` | Not implemented |
301
+ | `figma.teamLibrary.*` | Not implemented (requires LiveGraph) |