@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,314 +1,314 @@
1
- ---
2
- name: figma-generate-library
3
- description: "Build or update a professional-grade design system in Figma from a codebase. Use when the user wants to create variables/tokens, build component libraries, set up theming (light/dark modes), document foundations, or reconcile gaps between code and Figma. This skill teaches WHAT to build and in WHAT ORDER — it complements the `figma-use` skill which teaches HOW to call the Plugin API. Both skills should be loaded together."
4
- ---
5
-
6
- # Design System Builder — Figma MCP Skill
7
-
8
- Build professional-grade design systems in Figma that match code. This skill orchestrates multi-phase workflows across 20–100+ `use_figma` calls, enforcing quality patterns from real-world design systems (Material 3, Polaris, Figma UI3, Simple DS).
9
-
10
- **Prerequisites**: The `figma-use` skill MUST also be loaded for every `use_figma` call. It provides Plugin API syntax rules (return pattern, page reset, ID return, font loading, color range). This skill provides design system domain knowledge and workflow orchestration.
11
-
12
- **Always pass `skillNames: "figma-generate-library"` when calling `use_figma` as part of this skill.** This is a logging parameter — it does not affect execution.
13
-
14
- ---
15
-
16
- ## 1. The One Rule That Matters Most
17
-
18
- **This is NEVER a one-shot task.** Building a design system requires 20–100+ `use_figma` calls across multiple phases, with mandatory user checkpoints between them. Any attempt to create everything in one call WILL produce broken, incomplete, or unrecoverable results. Break every operation to the smallest useful unit, validate, get feedback, proceed.
19
-
20
- ---
21
-
22
- ## 2. Mandatory Workflow
23
-
24
- Every design system build follows this phase order. Skipping or reordering phases causes structural failures that are expensive to undo.
25
-
26
- ```
27
- Phase 0: DISCOVERY (always first — no use_figma writes yet)
28
- 0a. Analyze codebase → extract tokens, components, naming conventions
29
- 0b. Inspect Figma file → pages, variables, components, styles, existing conventions
30
- 0c. Search subscribed libraries → use search_design_system for reusable assets
31
- 0d. Lock v1 scope → agree on exact token set + component list before any creation
32
- 0e. Map code → Figma → resolve conflicts (code and Figma disagree = ask user)
33
- ✋ USER CHECKPOINT: present full plan, await explicit approval
34
-
35
- Phase 1: FOUNDATIONS (tokens first — always before components)
36
- 1a. Create variable collections and modes
37
- 1b. Create primitive variables (raw values, 1 mode)
38
- 1c. Create semantic variables (aliased to primitives, mode-aware)
39
- 1d. Set scopes on ALL variables
40
- 1e. Set code syntax on ALL variables
41
- 1f. Create effect styles (shadows) and text styles (typography)
42
- → Exit criteria: every token from the agreed plan exists, all scopes set, all code syntax set
43
- ✋ USER CHECKPOINT: show variable summary, await approval
44
-
45
- Phase 2: FILE STRUCTURE (before components)
46
- 2a. Create page skeleton: Cover → Getting Started → Foundations → --- → Components → --- → Utilities
47
- 2b. Create foundations documentation pages (color swatches, type specimens, spacing bars)
48
- → Exit criteria: all planned pages exist, foundations docs are navigable
49
- ✋ USER CHECKPOINT: show page list + screenshot, await approval
50
-
51
- Phase 3: COMPONENTS (one at a time — never batch)
52
- For EACH component (in dependency order: atoms before molecules):
53
- 3a. Create dedicated page
54
- 3b. Build base component with auto-layout + full variable bindings
55
- 3c. Create all variant combinations (combineAsVariants + grid layout)
56
- 3d. Add component properties (TEXT, BOOLEAN, INSTANCE_SWAP)
57
- 3e. Link properties to child nodes
58
- 3f. Add page documentation (title, description, usage notes)
59
- 3g. Validate: get_metadata (structure) + get_screenshot (visual)
60
- 3h. Optional: lightweight Code Connect mapping while context is fresh
61
- → Exit criteria: variant count correct, all bindings verified, screenshot looks right
62
- ✋ USER CHECKPOINT per component: show screenshot, await approval before next component
63
-
64
- Phase 4: INTEGRATION + QA (final pass)
65
- 4a. Finalize all Code Connect mappings
66
- 4b. Accessibility audit (contrast, min touch targets, focus visibility)
67
- 4c. Naming audit (no duplicates, no unnamed nodes, consistent casing)
68
- 4d. Unresolved bindings audit (no hardcoded fills/strokes remaining)
69
- 4e. Final review screenshots of every page
70
- ✋ USER CHECKPOINT: complete sign-off
71
- ```
72
-
73
- ---
74
-
75
- ## 3. Critical Rules
76
-
77
- **Plugin API basics** (from use_figma skill — enforced here too):
78
- - Use `return` to send data back (auto-serialized). Do NOT wrap in IIFE or call closePlugin.
79
- - Return ALL created/mutated node IDs in every return value
80
- - Page context resets each call — always `await figma.setCurrentPageAsync(page)` at start
81
- - `figma.notify()` throws — never use it
82
- - Colors are 0–1 range, not 0–255
83
- - Font MUST be loaded before any text write: `await figma.loadFontAsync({family, style})`
84
-
85
- **Design system rules**:
86
- 1. **Variables BEFORE components** — components bind to variables. No token = no component.
87
- 2. **Inspect before creating** — run read-only `use_figma` to discover existing conventions. Match them.
88
- 3. **One page per component** *(default)* — exception: tightly related families (e.g., Input + helpers) may share a page with clear section separation.
89
- 4. **Bind visual properties to variables** *(default)* — fills, strokes, padding, radius, gap. Exceptions: intentionally fixed geometry (icon pixel-grid sizes, static dividers).
90
- 5. **Scopes on every variable** — NEVER leave as `ALL_SCOPES`. Background: `FRAME_FILL, SHAPE_FILL`. Text: `TEXT_FILL`. Border: `STROKE_COLOR`. Spacing: `GAP`. Radii: `CORNER_RADIUS`. Primitives: `[]` (hidden).
91
- 6. **Code syntax on every variable** — WEB syntax MUST use the `var()` wrapper: `var(--color-bg-primary)`, not `--color-bg-primary`. Use the actual CSS variable name from the codebase. ANDROID/iOS do NOT use a wrapper.
92
- 7. **Alias semantics to primitives** — `{ type: 'VARIABLE_ALIAS', id: primitiveVar.id }`. Never duplicate raw values in semantic layer.
93
- 8. **Position variants after combineAsVariants** — they stack at (0,0). Manually grid-layout + resize.
94
- 9. **INSTANCE_SWAP for icons** — never create a variant per icon. Cap variant matrices: if Size × Style × State > 30 combinations, split into sub-component.
95
- 10. **Deterministic naming** — use consistent, unique node names for idempotent cleanup and resumability. Track created node IDs via return values and the state ledger.
96
- 11. **No destructive cleanup** — cleanup scripts identify nodes by name convention or returned IDs, not by guessing.
97
- 12. **Validate before proceeding** — never build on unvalidated work. `get_metadata` after every create, `get_screenshot` after each component.
98
- 13. **NEVER parallelize `use_figma` calls** — Figma state mutations must be strictly sequential. Even if your tool supports parallel calls, never run two use_figma calls simultaneously.
99
- 14. **Never hallucinate Node IDs** — always read IDs from the state ledger returned by previous calls. Never reconstruct or guess an ID from memory.
100
- 15. **Use the helper scripts** — embed scripts from `scripts/` into your use_figma calls. Don't write 200-line inline scripts from scratch.
101
- 16. **Explicit phase approval** — at each checkpoint, name the next phase explicitly. "looks good" is not approval to proceed to Phase 3 if you asked about Phase 1.
102
-
103
- ---
104
-
105
- ## 4. State Management (Required for Long Workflows)
106
-
107
- > **`getPluginData()` / `setPluginData()` are NOT supported in `use_figma`.** Use `getSharedPluginData()` / `setSharedPluginData()` instead (these ARE supported), or use name-based lookups and the state ledger (returned IDs).
108
-
109
- | Entity type | Idempotency key | How to check existence |
110
- |-------------|----------------|----------------------|
111
- | Scene nodes (pages, frames, components) | `setSharedPluginData('dsb', 'key', value)` or unique name | `node.getSharedPluginData('dsb', 'key')` or `page.findOne(n => n.name === 'Button')` |
112
- | Variables | Name within collection | `(await figma.variables.getLocalVariablesAsync()).find(v => v.name === name && v.variableCollectionId === collId)` |
113
- | Styles | Name | `getLocalTextStyles().find(s => s.name === name)` |
114
-
115
- Tag every created **scene node** immediately after creation:
116
- ```javascript
117
- node.setSharedPluginData('dsb', 'run_id', RUN_ID); // identifies this build run
118
- node.setSharedPluginData('dsb', 'phase', 'phase3'); // which phase created it
119
- node.setSharedPluginData('dsb', 'key', 'component/button');// unique logical key
120
- ```
121
-
122
- **State persistence**: Do NOT rely solely on conversation context for the state ledger. Write it to disk:
123
- ```
124
- /tmp/dsb-state-{RUN_ID}.json
125
- ```
126
- Re-read this file at the start of every turn. In long workflows, conversation context will be truncated — the file is the source of truth.
127
-
128
- Maintain a state ledger tracking:
129
- ```json
130
- {
131
- "runId": "ds-build-2024-001",
132
- "phase": "phase3",
133
- "step": "component-button",
134
- "entities": {
135
- "collections": { "primitives": "id:...", "color": "id:..." },
136
- "variables": { "color/bg/primary": "id:...", "spacing/sm": "id:..." },
137
- "pages": { "Cover": "id:...", "Button": "id:..." },
138
- "components": { "Button": "id:..." }
139
- },
140
- "pendingValidations": ["Button:screenshot"],
141
- "completedSteps": ["phase0", "phase1", "phase2", "component-avatar"]
142
- }
143
- ```
144
-
145
- **Idempotency check** before every create: query by name + state ledger ID. If exists, skip or update — never duplicate.
146
-
147
- **Resume protocol**: at session start or after context truncation, run a read-only `use_figma` to scan all pages, components, variables, and styles by name to reconstruct the `{key → id}` map. Then re-read the state file from disk if available.
148
-
149
- **Continuation prompt** (give this to the user when resuming in a new chat):
150
- > "I'm continuing a design system build. Run ID: {RUN_ID}. Load the figma-generate-library skill and resume from the last completed step."
151
-
152
- ---
153
-
154
- ## 5. search_design_system — Reuse Decision Matrix
155
-
156
- Search FIRST in Phase 0, then again immediately before each component creation.
157
-
158
- ```
159
- search_design_system({ query, fileKey, includeComponents: true, includeVariables: true, includeStyles: true })
160
- ```
161
-
162
- **Reuse if** all of these are true:
163
- - Component property API matches your needs (same variant axes, compatible types)
164
- - Token binding model is compatible (uses same or aliasable variables)
165
- - Naming conventions match the target file
166
- - Component is editable (not locked in a remote library you don't own)
167
-
168
- **Rebuild if** any of these:
169
- - API incompatibility (different property names, wrong variant model)
170
- - Token model incompatible (hardcoded values, different variable schema)
171
- - Ownership issue (can't modify the library)
172
-
173
- **Wrap if** visual match but API incompatible:
174
- - Import the library component as a nested instance inside a new wrapper component
175
- - Expose a clean API on the wrapper
176
-
177
- **Three-way priority**: local existing → subscribed library import → create new.
178
-
179
- ---
180
-
181
- ## 6. User Checkpoints
182
-
183
- Mandatory. Design decisions require human judgment.
184
-
185
- | After | Required artifacts | Ask |
186
- |-------|-------------------|-----|
187
- | Discovery + scope lock | Token list, component list, gap analysis | "Here's my plan. Approve before I create anything?" |
188
- | Foundations | Variable summary (N collections, M vars, K modes), style list | "All tokens created. Review before file structure?" |
189
- | File structure | Page list + screenshot | "Pages set up. Review before components?" |
190
- | Each component | get_screenshot of component page | "Here's [Component] with N variants. Correct?" |
191
- | Each conflict (code ≠ Figma) | Show both versions | "Code says X, Figma has Y. Which wins?" |
192
- | Final QA | Per-page screenshots + audit report | "Complete. Sign off?" |
193
-
194
- **If user rejects**: fix before moving on. Never build on rejected work.
195
-
196
- ---
197
-
198
- ## 7. Naming Conventions
199
-
200
- Match existing file conventions. If starting fresh:
201
-
202
- **Variables** (slash-separated):
203
- ```
204
- color/bg/primary color/text/secondary color/border/default
205
- spacing/xs spacing/sm spacing/md spacing/lg spacing/xl spacing/2xl
206
- radius/none radius/sm radius/md radius/lg radius/full
207
- typography/body/font-size typography/heading/line-height
208
- ```
209
-
210
- **Primitives**: `blue/50` → `blue/900`, `gray/50` → `gray/900`
211
-
212
- **Component names**: `Button`, `Input`, `Card`, `Avatar`, `Badge`, `Checkbox`, `Toggle`
213
-
214
- **Variant names**: `Property=Value, Property=Value` — e.g., `Size=Medium, Style=Primary, State=Default`
215
-
216
- **Page separators**: `---` (most common) or `——— COMPONENTS ———`
217
-
218
- > Full naming reference: [naming-conventions.md](references/naming-conventions.md)
219
-
220
- ---
221
-
222
- ## 8. Token Architecture
223
-
224
- | Complexity | Pattern |
225
- |-----------|---------|
226
- | < 50 tokens | Single collection, 2 modes (Light/Dark) |
227
- | 50–200 tokens | **Standard**: Primitives (1 mode) + Color semantic (Light/Dark) + Spacing (1 mode) + Typography (1 mode) |
228
- | 200+ tokens | **Advanced**: Multiple semantic collections, 4–8 modes (Light/Dark × Contrast × Brand). See M3 pattern in [token-creation.md](references/token-creation.md) |
229
-
230
- Standard pattern (recommended starting point):
231
- ```
232
- Collection: "Primitives" modes: ["Value"]
233
- blue/500 = #3B82F6, gray/900 = #111827, ...
234
-
235
- Collection: "Color" modes: ["Light", "Dark"]
236
- color/bg/primary → Light: alias Primitives/white, Dark: alias Primitives/gray-900
237
- color/text/primary → Light: alias Primitives/gray-900, Dark: alias Primitives/white
238
-
239
- Collection: "Spacing" modes: ["Value"]
240
- spacing/xs = 4, spacing/sm = 8, spacing/md = 16, ...
241
- ```
242
-
243
- ---
244
-
245
- ## 9. Per-Phase Anti-Patterns
246
-
247
- **Phase 0 anti-patterns:**
248
- - ❌ Starting to create anything before scope is locked with user
249
- - ❌ Ignoring existing file conventions and imposing new ones
250
- - ❌ Skipping `search_design_system` before planning component creation
251
-
252
- **Phase 1 anti-patterns:**
253
- - ❌ Using `ALL_SCOPES` on any variable
254
- - ❌ Duplicating raw values in semantic layer instead of aliasing
255
- - ❌ Not setting code syntax (breaks Dev Mode and round-tripping)
256
- - ❌ Creating component tokens before agreeing on token taxonomy
257
-
258
- **Phase 2 anti-patterns:**
259
- - ❌ Skipping the cover page or foundations docs
260
- - ❌ Putting multiple unrelated components on one page
261
-
262
- **Phase 3 anti-patterns:**
263
- - ❌ Creating components before foundations exist
264
- - ❌ Hardcoding any fill/stroke/spacing/radius value in a component
265
- - ❌ Creating a variant per icon (use INSTANCE_SWAP instead)
266
- - ❌ Not positioning variants after combineAsVariants (they all stack at 0,0)
267
- - ❌ Building variant matrix > 30 without splitting (variant explosion)
268
- - ❌ Importing remote components then immediately detaching them
269
-
270
- **General anti-patterns:**
271
- - ❌ Retrying a failed script without understanding the error first
272
- - ❌ Using name-prefix matching for cleanup (deletes user-owned nodes)
273
- - ❌ Building on unvalidated work from the previous step
274
- - ❌ Skipping user checkpoints to "save time"
275
- - ❌ Parallelizing use_figma calls (always sequential)
276
- - ❌ Guessing/hallucinating node IDs from memory (always read from state ledger)
277
- - ❌ Writing massive inline scripts instead of using the provided helper scripts
278
- - ❌ Starting Phase 3 because the user said "build the button" without completing Phases 0-2
279
-
280
- ---
281
-
282
- ## 10. Reference Docs
283
-
284
- Load on demand — each reference is authoritative for its phase:
285
-
286
- Use your file reading tool to read these docs when needed. Do not assume their contents from the filename.
287
-
288
- | Doc | Phase | Required / Optional | Load when |
289
- |-----|-------|---------------------|-----------|
290
- | [discovery-phase.md](references/discovery-phase.md) | 0 | **Required** | Starting any build — codebase analysis + Figma inspection |
291
- | [token-creation.md](references/token-creation.md) | 1 | **Required** | Creating variables, collections, modes, styles |
292
- | [documentation-creation.md](references/documentation-creation.md) | 2 | Required | Creating cover page, foundations docs, swatches |
293
- | [component-creation.md](references/component-creation.md) | 3 | **Required** | Creating any component or variant |
294
- | [code-connect-setup.md](references/code-connect-setup.md) | 3–4 | Required | Setting up Code Connect or variable code syntax |
295
- | [naming-conventions.md](references/naming-conventions.md) | Any | Optional | Naming anything — variables, pages, variants, styles |
296
- | [error-recovery.md](references/error-recovery.md) | Any | **Required on error** | Script fails, multi-step workflow recovery, cleanup of abandoned workflow state |
297
-
298
- ---
299
-
300
- ## 11. Scripts
301
-
302
- Reusable Plugin API helper functions. Embed in `use_figma` calls:
303
-
304
- | Script | Purpose |
305
- |--------|---------|
306
- | [inspectFileStructure.js](scripts/inspectFileStructure.js) | Discover all pages, components, variables, styles; returns full inventory |
307
- | [createVariableCollection.js](scripts/createVariableCollection.js) | Create a named collection with modes; returns `{collectionId, modeIds}` |
308
- | [createSemanticTokens.js](scripts/createSemanticTokens.js) | Create aliased semantic variables from a token map |
309
- | [createComponentWithVariants.js](scripts/createComponentWithVariants.js) | Build a component set from a variant matrix; handles grid layout |
310
- | [bindVariablesToComponent.js](scripts/bindVariablesToComponent.js) | Bind design tokens to all component visual properties |
311
- | [createDocumentationPage.js](scripts/createDocumentationPage.js) | Create a page with title + description + section structure |
312
- | [validateCreation.js](scripts/validateCreation.js) | Verify created nodes match expected counts, names, structure |
313
- | [cleanupOrphans.js](scripts/cleanupOrphans.js) | Remove orphaned nodes by name convention or state ledger IDs |
314
- | [rehydrateState.js](scripts/rehydrateState.js) | Scan file for all pages, components, variables by name; returns full `{key → nodeId}` map for state reconstruction |
1
+ ---
2
+ name: figma-generate-library
3
+ description: "Build or update a professional-grade design system in Figma from a codebase. Use when the user wants to create variables/tokens, build component libraries, set up theming (light/dark modes), document foundations, or reconcile gaps between code and Figma. This skill teaches WHAT to build and in WHAT ORDER — it complements the `figma-use` skill which teaches HOW to call the Plugin API. Both skills should be loaded together."
4
+ ---
5
+
6
+ # Design System Builder — Figma MCP Skill
7
+
8
+ Build professional-grade design systems in Figma that match code. This skill orchestrates multi-phase workflows across 20–100+ `use_figma` calls, enforcing quality patterns from real-world design systems (Material 3, Polaris, Figma UI3, Simple DS).
9
+
10
+ **Prerequisites**: The `figma-use` skill MUST also be loaded for every `use_figma` call. It provides Plugin API syntax rules (return pattern, page reset, ID return, font loading, color range). This skill provides design system domain knowledge and workflow orchestration.
11
+
12
+ **Always pass `skillNames: "figma-generate-library"` when calling `use_figma` as part of this skill.** This is a logging parameter — it does not affect execution.
13
+
14
+ ---
15
+
16
+ ## 1. The One Rule That Matters Most
17
+
18
+ **This is NEVER a one-shot task.** Building a design system requires 20–100+ `use_figma` calls across multiple phases, with mandatory user checkpoints between them. Any attempt to create everything in one call WILL produce broken, incomplete, or unrecoverable results. Break every operation to the smallest useful unit, validate, get feedback, proceed.
19
+
20
+ ---
21
+
22
+ ## 2. Mandatory Workflow
23
+
24
+ Every design system build follows this phase order. Skipping or reordering phases causes structural failures that are expensive to undo.
25
+
26
+ ```
27
+ Phase 0: DISCOVERY (always first — no use_figma writes yet)
28
+ 0a. Analyze codebase → extract tokens, components, naming conventions
29
+ 0b. Inspect Figma file → pages, variables, components, styles, existing conventions
30
+ 0c. Search subscribed libraries → use search_design_system for reusable assets
31
+ 0d. Lock v1 scope → agree on exact token set + component list before any creation
32
+ 0e. Map code → Figma → resolve conflicts (code and Figma disagree = ask user)
33
+ ✋ USER CHECKPOINT: present full plan, await explicit approval
34
+
35
+ Phase 1: FOUNDATIONS (tokens first — always before components)
36
+ 1a. Create variable collections and modes
37
+ 1b. Create primitive variables (raw values, 1 mode)
38
+ 1c. Create semantic variables (aliased to primitives, mode-aware)
39
+ 1d. Set scopes on ALL variables
40
+ 1e. Set code syntax on ALL variables
41
+ 1f. Create effect styles (shadows) and text styles (typography)
42
+ → Exit criteria: every token from the agreed plan exists, all scopes set, all code syntax set
43
+ ✋ USER CHECKPOINT: show variable summary, await approval
44
+
45
+ Phase 2: FILE STRUCTURE (before components)
46
+ 2a. Create page skeleton: Cover → Getting Started → Foundations → --- → Components → --- → Utilities
47
+ 2b. Create foundations documentation pages (color swatches, type specimens, spacing bars)
48
+ → Exit criteria: all planned pages exist, foundations docs are navigable
49
+ ✋ USER CHECKPOINT: show page list + screenshot, await approval
50
+
51
+ Phase 3: COMPONENTS (one at a time — never batch)
52
+ For EACH component (in dependency order: atoms before molecules):
53
+ 3a. Create dedicated page
54
+ 3b. Build base component with auto-layout + full variable bindings
55
+ 3c. Create all variant combinations (combineAsVariants + grid layout)
56
+ 3d. Add component properties (TEXT, BOOLEAN, INSTANCE_SWAP)
57
+ 3e. Link properties to child nodes
58
+ 3f. Add page documentation (title, description, usage notes)
59
+ 3g. Validate: get_metadata (structure) + get_screenshot (visual)
60
+ 3h. Optional: lightweight Code Connect mapping while context is fresh
61
+ → Exit criteria: variant count correct, all bindings verified, screenshot looks right
62
+ ✋ USER CHECKPOINT per component: show screenshot, await approval before next component
63
+
64
+ Phase 4: INTEGRATION + QA (final pass)
65
+ 4a. Finalize all Code Connect mappings
66
+ 4b. Accessibility audit (contrast, min touch targets, focus visibility)
67
+ 4c. Naming audit (no duplicates, no unnamed nodes, consistent casing)
68
+ 4d. Unresolved bindings audit (no hardcoded fills/strokes remaining)
69
+ 4e. Final review screenshots of every page
70
+ ✋ USER CHECKPOINT: complete sign-off
71
+ ```
72
+
73
+ ---
74
+
75
+ ## 3. Critical Rules
76
+
77
+ **Plugin API basics** (from use_figma skill — enforced here too):
78
+ - Use `return` to send data back (auto-serialized). Do NOT wrap in IIFE or call closePlugin.
79
+ - Return ALL created/mutated node IDs in every return value
80
+ - Page context resets each call — always `await figma.setCurrentPageAsync(page)` at start
81
+ - `figma.notify()` throws — never use it
82
+ - Colors are 0–1 range, not 0–255
83
+ - Font MUST be loaded before any text write: `await figma.loadFontAsync({family, style})`
84
+
85
+ **Design system rules**:
86
+ 1. **Variables BEFORE components** — components bind to variables. No token = no component.
87
+ 2. **Inspect before creating** — run read-only `use_figma` to discover existing conventions. Match them.
88
+ 3. **One page per component** *(default)* — exception: tightly related families (e.g., Input + helpers) may share a page with clear section separation.
89
+ 4. **Bind visual properties to variables** *(default)* — fills, strokes, padding, radius, gap. Exceptions: intentionally fixed geometry (icon pixel-grid sizes, static dividers).
90
+ 5. **Scopes on every variable** — NEVER leave as `ALL_SCOPES`. Background: `FRAME_FILL, SHAPE_FILL`. Text: `TEXT_FILL`. Border: `STROKE_COLOR`. Spacing: `GAP`. Radii: `CORNER_RADIUS`. Primitives: `[]` (hidden).
91
+ 6. **Code syntax on every variable** — WEB syntax MUST use the `var()` wrapper: `var(--color-bg-primary)`, not `--color-bg-primary`. Use the actual CSS variable name from the codebase. ANDROID/iOS do NOT use a wrapper.
92
+ 7. **Alias semantics to primitives** — `{ type: 'VARIABLE_ALIAS', id: primitiveVar.id }`. Never duplicate raw values in semantic layer.
93
+ 8. **Position variants after combineAsVariants** — they stack at (0,0). Manually grid-layout + resize.
94
+ 9. **INSTANCE_SWAP for icons** — never create a variant per icon. Cap variant matrices: if Size × Style × State > 30 combinations, split into sub-component.
95
+ 10. **Deterministic naming** — use consistent, unique node names for idempotent cleanup and resumability. Track created node IDs via return values and the state ledger.
96
+ 11. **No destructive cleanup** — cleanup scripts identify nodes by name convention or returned IDs, not by guessing.
97
+ 12. **Validate before proceeding** — never build on unvalidated work. `get_metadata` after every create, `get_screenshot` after each component.
98
+ 13. **NEVER parallelize `use_figma` calls** — Figma state mutations must be strictly sequential. Even if your tool supports parallel calls, never run two use_figma calls simultaneously.
99
+ 14. **Never hallucinate Node IDs** — always read IDs from the state ledger returned by previous calls. Never reconstruct or guess an ID from memory.
100
+ 15. **Use the helper scripts** — embed scripts from `scripts/` into your use_figma calls. Don't write 200-line inline scripts from scratch.
101
+ 16. **Explicit phase approval** — at each checkpoint, name the next phase explicitly. "looks good" is not approval to proceed to Phase 3 if you asked about Phase 1.
102
+
103
+ ---
104
+
105
+ ## 4. State Management (Required for Long Workflows)
106
+
107
+ > **`getPluginData()` / `setPluginData()` are NOT supported in `use_figma`.** Use `getSharedPluginData()` / `setSharedPluginData()` instead (these ARE supported), or use name-based lookups and the state ledger (returned IDs).
108
+
109
+ | Entity type | Idempotency key | How to check existence |
110
+ |-------------|----------------|----------------------|
111
+ | Scene nodes (pages, frames, components) | `setSharedPluginData('dsb', 'key', value)` or unique name | `node.getSharedPluginData('dsb', 'key')` or `page.findOne(n => n.name === 'Button')` |
112
+ | Variables | Name within collection | `(await figma.variables.getLocalVariablesAsync()).find(v => v.name === name && v.variableCollectionId === collId)` |
113
+ | Styles | Name | `getLocalTextStyles().find(s => s.name === name)` |
114
+
115
+ Tag every created **scene node** immediately after creation:
116
+ ```javascript
117
+ node.setSharedPluginData('dsb', 'run_id', RUN_ID); // identifies this build run
118
+ node.setSharedPluginData('dsb', 'phase', 'phase3'); // which phase created it
119
+ node.setSharedPluginData('dsb', 'key', 'component/button');// unique logical key
120
+ ```
121
+
122
+ **State persistence**: Do NOT rely solely on conversation context for the state ledger. Write it to disk:
123
+ ```
124
+ /tmp/dsb-state-{RUN_ID}.json
125
+ ```
126
+ Re-read this file at the start of every turn. In long workflows, conversation context will be truncated — the file is the source of truth.
127
+
128
+ Maintain a state ledger tracking:
129
+ ```json
130
+ {
131
+ "runId": "ds-build-2024-001",
132
+ "phase": "phase3",
133
+ "step": "component-button",
134
+ "entities": {
135
+ "collections": { "primitives": "id:...", "color": "id:..." },
136
+ "variables": { "color/bg/primary": "id:...", "spacing/sm": "id:..." },
137
+ "pages": { "Cover": "id:...", "Button": "id:..." },
138
+ "components": { "Button": "id:..." }
139
+ },
140
+ "pendingValidations": ["Button:screenshot"],
141
+ "completedSteps": ["phase0", "phase1", "phase2", "component-avatar"]
142
+ }
143
+ ```
144
+
145
+ **Idempotency check** before every create: query by name + state ledger ID. If exists, skip or update — never duplicate.
146
+
147
+ **Resume protocol**: at session start or after context truncation, run a read-only `use_figma` to scan all pages, components, variables, and styles by name to reconstruct the `{key → id}` map. Then re-read the state file from disk if available.
148
+
149
+ **Continuation prompt** (give this to the user when resuming in a new chat):
150
+ > "I'm continuing a design system build. Run ID: {RUN_ID}. Load the figma-generate-library skill and resume from the last completed step."
151
+
152
+ ---
153
+
154
+ ## 5. search_design_system — Reuse Decision Matrix
155
+
156
+ Search FIRST in Phase 0, then again immediately before each component creation.
157
+
158
+ ```
159
+ search_design_system({ query, fileKey, includeComponents: true, includeVariables: true, includeStyles: true })
160
+ ```
161
+
162
+ **Reuse if** all of these are true:
163
+ - Component property API matches your needs (same variant axes, compatible types)
164
+ - Token binding model is compatible (uses same or aliasable variables)
165
+ - Naming conventions match the target file
166
+ - Component is editable (not locked in a remote library you don't own)
167
+
168
+ **Rebuild if** any of these:
169
+ - API incompatibility (different property names, wrong variant model)
170
+ - Token model incompatible (hardcoded values, different variable schema)
171
+ - Ownership issue (can't modify the library)
172
+
173
+ **Wrap if** visual match but API incompatible:
174
+ - Import the library component as a nested instance inside a new wrapper component
175
+ - Expose a clean API on the wrapper
176
+
177
+ **Three-way priority**: local existing → subscribed library import → create new.
178
+
179
+ ---
180
+
181
+ ## 6. User Checkpoints
182
+
183
+ Mandatory. Design decisions require human judgment.
184
+
185
+ | After | Required artifacts | Ask |
186
+ |-------|-------------------|-----|
187
+ | Discovery + scope lock | Token list, component list, gap analysis | "Here's my plan. Approve before I create anything?" |
188
+ | Foundations | Variable summary (N collections, M vars, K modes), style list | "All tokens created. Review before file structure?" |
189
+ | File structure | Page list + screenshot | "Pages set up. Review before components?" |
190
+ | Each component | get_screenshot of component page | "Here's [Component] with N variants. Correct?" |
191
+ | Each conflict (code ≠ Figma) | Show both versions | "Code says X, Figma has Y. Which wins?" |
192
+ | Final QA | Per-page screenshots + audit report | "Complete. Sign off?" |
193
+
194
+ **If user rejects**: fix before moving on. Never build on rejected work.
195
+
196
+ ---
197
+
198
+ ## 7. Naming Conventions
199
+
200
+ Match existing file conventions. If starting fresh:
201
+
202
+ **Variables** (slash-separated):
203
+ ```
204
+ color/bg/primary color/text/secondary color/border/default
205
+ spacing/xs spacing/sm spacing/md spacing/lg spacing/xl spacing/2xl
206
+ radius/none radius/sm radius/md radius/lg radius/full
207
+ typography/body/font-size typography/heading/line-height
208
+ ```
209
+
210
+ **Primitives**: `blue/50` → `blue/900`, `gray/50` → `gray/900`
211
+
212
+ **Component names**: `Button`, `Input`, `Card`, `Avatar`, `Badge`, `Checkbox`, `Toggle`
213
+
214
+ **Variant names**: `Property=Value, Property=Value` — e.g., `Size=Medium, Style=Primary, State=Default`
215
+
216
+ **Page separators**: `---` (most common) or `——— COMPONENTS ———`
217
+
218
+ > Full naming reference: [naming-conventions.md](references/naming-conventions.md)
219
+
220
+ ---
221
+
222
+ ## 8. Token Architecture
223
+
224
+ | Complexity | Pattern |
225
+ |-----------|---------|
226
+ | < 50 tokens | Single collection, 2 modes (Light/Dark) |
227
+ | 50–200 tokens | **Standard**: Primitives (1 mode) + Color semantic (Light/Dark) + Spacing (1 mode) + Typography (1 mode) |
228
+ | 200+ tokens | **Advanced**: Multiple semantic collections, 4–8 modes (Light/Dark × Contrast × Brand). See M3 pattern in [token-creation.md](references/token-creation.md) |
229
+
230
+ Standard pattern (recommended starting point):
231
+ ```
232
+ Collection: "Primitives" modes: ["Value"]
233
+ blue/500 = #3B82F6, gray/900 = #111827, ...
234
+
235
+ Collection: "Color" modes: ["Light", "Dark"]
236
+ color/bg/primary → Light: alias Primitives/white, Dark: alias Primitives/gray-900
237
+ color/text/primary → Light: alias Primitives/gray-900, Dark: alias Primitives/white
238
+
239
+ Collection: "Spacing" modes: ["Value"]
240
+ spacing/xs = 4, spacing/sm = 8, spacing/md = 16, ...
241
+ ```
242
+
243
+ ---
244
+
245
+ ## 9. Per-Phase Anti-Patterns
246
+
247
+ **Phase 0 anti-patterns:**
248
+ - ❌ Starting to create anything before scope is locked with user
249
+ - ❌ Ignoring existing file conventions and imposing new ones
250
+ - ❌ Skipping `search_design_system` before planning component creation
251
+
252
+ **Phase 1 anti-patterns:**
253
+ - ❌ Using `ALL_SCOPES` on any variable
254
+ - ❌ Duplicating raw values in semantic layer instead of aliasing
255
+ - ❌ Not setting code syntax (breaks Dev Mode and round-tripping)
256
+ - ❌ Creating component tokens before agreeing on token taxonomy
257
+
258
+ **Phase 2 anti-patterns:**
259
+ - ❌ Skipping the cover page or foundations docs
260
+ - ❌ Putting multiple unrelated components on one page
261
+
262
+ **Phase 3 anti-patterns:**
263
+ - ❌ Creating components before foundations exist
264
+ - ❌ Hardcoding any fill/stroke/spacing/radius value in a component
265
+ - ❌ Creating a variant per icon (use INSTANCE_SWAP instead)
266
+ - ❌ Not positioning variants after combineAsVariants (they all stack at 0,0)
267
+ - ❌ Building variant matrix > 30 without splitting (variant explosion)
268
+ - ❌ Importing remote components then immediately detaching them
269
+
270
+ **General anti-patterns:**
271
+ - ❌ Retrying a failed script without understanding the error first
272
+ - ❌ Using name-prefix matching for cleanup (deletes user-owned nodes)
273
+ - ❌ Building on unvalidated work from the previous step
274
+ - ❌ Skipping user checkpoints to "save time"
275
+ - ❌ Parallelizing use_figma calls (always sequential)
276
+ - ❌ Guessing/hallucinating node IDs from memory (always read from state ledger)
277
+ - ❌ Writing massive inline scripts instead of using the provided helper scripts
278
+ - ❌ Starting Phase 3 because the user said "build the button" without completing Phases 0-2
279
+
280
+ ---
281
+
282
+ ## 10. Reference Docs
283
+
284
+ Load on demand — each reference is authoritative for its phase:
285
+
286
+ Use your file reading tool to read these docs when needed. Do not assume their contents from the filename.
287
+
288
+ | Doc | Phase | Required / Optional | Load when |
289
+ |-----|-------|---------------------|-----------|
290
+ | [discovery-phase.md](references/discovery-phase.md) | 0 | **Required** | Starting any build — codebase analysis + Figma inspection |
291
+ | [token-creation.md](references/token-creation.md) | 1 | **Required** | Creating variables, collections, modes, styles |
292
+ | [documentation-creation.md](references/documentation-creation.md) | 2 | Required | Creating cover page, foundations docs, swatches |
293
+ | [component-creation.md](references/component-creation.md) | 3 | **Required** | Creating any component or variant |
294
+ | [code-connect-setup.md](references/code-connect-setup.md) | 3–4 | Required | Setting up Code Connect or variable code syntax |
295
+ | [naming-conventions.md](references/naming-conventions.md) | Any | Optional | Naming anything — variables, pages, variants, styles |
296
+ | [error-recovery.md](references/error-recovery.md) | Any | **Required on error** | Script fails, multi-step workflow recovery, cleanup of abandoned workflow state |
297
+
298
+ ---
299
+
300
+ ## 11. Scripts
301
+
302
+ Reusable Plugin API helper functions. Embed in `use_figma` calls:
303
+
304
+ | Script | Purpose |
305
+ |--------|---------|
306
+ | [inspectFileStructure.js](scripts/inspectFileStructure.js) | Discover all pages, components, variables, styles; returns full inventory |
307
+ | [createVariableCollection.js](scripts/createVariableCollection.js) | Create a named collection with modes; returns `{collectionId, modeIds}` |
308
+ | [createSemanticTokens.js](scripts/createSemanticTokens.js) | Create aliased semantic variables from a token map |
309
+ | [createComponentWithVariants.js](scripts/createComponentWithVariants.js) | Build a component set from a variant matrix; handles grid layout |
310
+ | [bindVariablesToComponent.js](scripts/bindVariablesToComponent.js) | Bind design tokens to all component visual properties |
311
+ | [createDocumentationPage.js](scripts/createDocumentationPage.js) | Create a page with title + description + section structure |
312
+ | [validateCreation.js](scripts/validateCreation.js) | Verify created nodes match expected counts, names, structure |
313
+ | [cleanupOrphans.js](scripts/cleanupOrphans.js) | Remove orphaned nodes by name convention or state ledger IDs |
314
+ | [rehydrateState.js](scripts/rehydrateState.js) | Scan file for all pages, components, variables by name; returns full `{key → nodeId}` map for state reconstruction |