@fprad0/skill-master-mcp 0.0.12 → 1.0.1

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 (353) hide show
  1. package/CHANGELOG.md +100 -88
  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 +287 -285
  6. package/bin/lib/doctor-core.mjs +202 -0
  7. package/bin/lib/menu-core.mjs +1792 -1514
  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 +165 -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 +489 -378
  20. package/bin/skill-master-register-clients.mjs +232 -153
  21. package/bin/skill-master-success-skills.mjs +357 -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 +36 -33
  42. package/docs/operations/assets/menu-frame-dna-hero.html +87 -0
  43. package/docs/operations/assets/menu-frame-fine-helix.html +89 -0
  44. package/docs/operations/assets/menu-frame-large.html +44 -41
  45. package/docs/operations/assets/menu-frame-running.html +41 -38
  46. package/docs/operations/assets/menu-frame-score-10-contact-sheet.html +184 -0
  47. package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -140
  48. package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -85
  49. package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -174
  50. package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -119
  51. package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -134
  52. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -84
  53. package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -56
  54. package/docs/operations/token-economy-transfer/ANALISE_AVANCADA_ECONOMIA_TOKENS_2026-06-30.md +141 -0
  55. package/docs/operations/token-economy-transfer/PLANO_DEV_SENIOR_MASTER_TOKEN_ECONOMY_2026-06-30.md +171 -0
  56. package/docs/operations/token-economy-transfer/README_TRANSFERENCIA_TOKEN_ECONOMY.md +31 -0
  57. package/docs/planning/MENU_RUNTIME_CORRECTION_PLAN_2026-06-30.md +551 -0
  58. package/docs/planning/V0_0_9_APROVACAO_CRITICA_MENSAGENS_DE_VENDA.md +85 -85
  59. package/docs/planning/V0_0_9_FONTES_E_CRITERIOS_DE_AUTORIDADE.md +139 -139
  60. package/docs/planning/V0_0_9_MATRIZ_SKILLS_MULTIDISCIPLINARES.md +105 -105
  61. package/docs/planning/V0_0_9_POLITICA_MORAL_CATOLICA_PARA_IA.md +181 -181
  62. package/docs/planning/V0_0_9_PROMPTS_EXECUCAO.md +59 -59
  63. package/docs/planning/V0_0_9_ROADMAP_DISCERNIMENTO_E_CONHECIMENTO_AMPLO.md +181 -181
  64. package/docs/planning/mcp-1.0.0/00_RESUMO_EXECUTIVO_AUDITORIA_MENU.md +118 -0
  65. package/docs/planning/mcp-1.0.0/01_MATRIZ_TESTES_MENU_E_RESULTADOS.md +250 -0
  66. package/docs/planning/mcp-1.0.0/02_PLANO_CORRECAO_ATIVAR_SKILL_APRENDIDA.md +200 -0
  67. package/docs/planning/mcp-1.0.0/03_PLANO_COMPATIBILIDADE_WINDOWS_LINUX_MACOS.md +167 -0
  68. package/docs/planning/mcp-1.0.0/04_PLANO_UI_CYBERPUNK_PIXEL_ART_E_PERFORMANCE.md +165 -0
  69. package/docs/planning/mcp-1.0.0/05_PROMPT_TASK_EXECUCAO_CORRECOES.md +151 -0
  70. package/docs/planning/mcp-1.0.0/06_CHECKLIST_REGRESSAO_PRE_RELEASE.md +159 -0
  71. package/docs/planning/mcp-1.0.0/07_RELATORIO_APLICACAO_CORRECOES_MENU_SKILL_MASTER.md +136 -0
  72. package/docs/planning/mcp-1.0.0/08_AUDITORIA_CRITICA_MENU_NOTA_E_DNA_REFINADO.md +184 -0
  73. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/00_PROMPT_TASK_MASTER_NOTA_10_10.md +103 -0
  74. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/01_PROMPT_TASK_FINE_HELIX_DNA.md +116 -0
  75. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/02_PROMPT_TASK_DNA_HERO_BOOT_AND_MOTION.md +109 -0
  76. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/03_PROMPT_TASK_MENU_UX_HELP_ERROR_COPY.md +99 -0
  77. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/04_PROMPT_TASK_EVIDENCE_RENDERER_1_0_0.md +97 -0
  78. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/05_PROMPT_TASK_CROSS_PLATFORM_UTF8_MOJIBAKE.md +99 -0
  79. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/06_PROMPT_TASK_VISUAL_REGRESSION_QA.md +105 -0
  80. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/07_PROMPT_TASK_PRE_RELEASE_SCORE_GATE_10_10.md +104 -0
  81. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/README_ORDEM_EXECUCAO_NOTA_10_10.md +77 -0
  82. package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -6
  83. package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -6
  84. package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -6
  85. package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -6
  86. package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -6
  87. package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -83
  88. package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -88
  89. package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -156
  90. package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -105
  91. package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -119
  92. package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -120
  93. package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -123
  94. package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -114
  95. package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -157
  96. package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -127
  97. package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -107
  98. package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -80
  99. package/docs/prompt-tasks/PROMPT_TASK_019_TOKEN_ECONOMY_GLOBAL_SKILLS.md +56 -0
  100. package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -6
  101. package/docs/skill-candidates/v0.0.10/cli-creator/LICENSE.txt +201 -201
  102. package/docs/skill-candidates/v0.0.10/cli-creator/SKILL.md +160 -160
  103. package/docs/skill-candidates/v0.0.10/cli-creator/agents/openai.yaml +4 -4
  104. package/docs/skill-candidates/v0.0.10/cli-creator/references/agent-cli-patterns.md +154 -154
  105. package/docs/skill-candidates/v0.0.10/developer-workstation-ops/SKILL.md +32 -32
  106. package/docs/skill-candidates/v0.0.10/figma/LICENSE.txt +1 -1
  107. package/docs/skill-candidates/v0.0.10/figma/SKILL.md +42 -42
  108. package/docs/skill-candidates/v0.0.10/figma/agents/openai.yaml +14 -14
  109. package/docs/skill-candidates/v0.0.10/figma/assets/figma-small.svg +3 -3
  110. package/docs/skill-candidates/v0.0.10/figma/assets/icon.svg +28 -28
  111. package/docs/skill-candidates/v0.0.10/figma/references/figma-mcp-config.md +35 -35
  112. package/docs/skill-candidates/v0.0.10/figma/references/figma-tools-and-prompts.md +34 -34
  113. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/LICENSE.TXT +1 -1
  114. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/SKILL.md +349 -349
  115. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/agents/openai.yaml +14 -14
  116. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/figma-small.svg +3 -3
  117. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/icon.svg +28 -28
  118. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/references/mapping-checklist.md +7 -7
  119. package/docs/skill-candidates/v0.0.10/figma-code-connect-components/scripts/normalize_node_id.py +25 -25
  120. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/LICENSE.TXT +1 -1
  121. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/SKILL.md +537 -537
  122. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/agents/openai.yaml +14 -14
  123. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/figma-small.svg +3 -3
  124. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/icon.svg +28 -28
  125. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/references/rule-template.md +15 -15
  126. package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -9
  127. package/docs/skill-candidates/v0.0.10/figma-generate-design/LICENSE.TXT +1 -1
  128. package/docs/skill-candidates/v0.0.10/figma-generate-design/SKILL.md +341 -341
  129. package/docs/skill-candidates/v0.0.10/figma-generate-design/agents/openai.yaml +14 -14
  130. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/figma-small.svg +3 -3
  131. package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/icon.svg +28 -28
  132. package/docs/skill-candidates/v0.0.10/figma-generate-design/maintainers.yml +1 -1
  133. package/docs/skill-candidates/v0.0.10/figma-generate-library/LICENSE.TXT +1 -1
  134. package/docs/skill-candidates/v0.0.10/figma-generate-library/SKILL.md +314 -314
  135. package/docs/skill-candidates/v0.0.10/figma-generate-library/agents/openai.yaml +14 -14
  136. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/figma-small.svg +3 -3
  137. package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/icon.svg +28 -28
  138. package/docs/skill-candidates/v0.0.10/figma-generate-library/maintainers.yml +3 -3
  139. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/code-connect-setup.md +260 -260
  140. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/component-creation.md +1014 -1014
  141. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/discovery-phase.md +518 -518
  142. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/documentation-creation.md +834 -834
  143. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/error-recovery.md +540 -540
  144. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/naming-conventions.md +527 -527
  145. package/docs/skill-candidates/v0.0.10/figma-generate-library/references/token-creation.md +962 -962
  146. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/bindVariablesToComponent.js +110 -110
  147. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/cleanupOrphans.js +127 -127
  148. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createComponentWithVariants.js +148 -148
  149. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createDocumentationPage.js +139 -139
  150. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createSemanticTokens.js +108 -108
  151. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createVariableCollection.js +49 -49
  152. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/inspectFileStructure.js +121 -121
  153. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/rehydrateState.js +92 -92
  154. package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/validateCreation.js +83 -83
  155. package/docs/skill-candidates/v0.0.10/figma-implement-design/LICENSE.txt +1 -1
  156. package/docs/skill-candidates/v0.0.10/figma-implement-design/SKILL.md +258 -258
  157. package/docs/skill-candidates/v0.0.10/figma-implement-design/agents/openai.yaml +14 -14
  158. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/figma-small.svg +3 -3
  159. package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/icon.svg +28 -28
  160. package/docs/skill-candidates/v0.0.10/figma-use/LICENSE.TXT +1 -1
  161. package/docs/skill-candidates/v0.0.10/figma-use/SKILL.md +233 -233
  162. package/docs/skill-candidates/v0.0.10/figma-use/agents/openai.yaml +14 -14
  163. package/docs/skill-candidates/v0.0.10/figma-use/assets/figma-small.svg +3 -3
  164. package/docs/skill-candidates/v0.0.10/figma-use/assets/icon.svg +28 -28
  165. package/docs/skill-candidates/v0.0.10/figma-use/maintainers.yml +1 -1
  166. package/docs/skill-candidates/v0.0.10/figma-use/references/api-reference.md +301 -301
  167. package/docs/skill-candidates/v0.0.10/figma-use/references/common-patterns.md +512 -512
  168. package/docs/skill-candidates/v0.0.10/figma-use/references/component-patterns.md +488 -488
  169. package/docs/skill-candidates/v0.0.10/figma-use/references/effect-style-patterns.md +123 -123
  170. package/docs/skill-candidates/v0.0.10/figma-use/references/gotchas.md +599 -599
  171. package/docs/skill-candidates/v0.0.10/figma-use/references/maintainers.yml +12 -12
  172. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-patterns.md +513 -513
  173. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.d.ts +11293 -11293
  174. package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.index.md +441 -441
  175. package/docs/skill-candidates/v0.0.10/figma-use/references/text-style-patterns.md +203 -203
  176. package/docs/skill-candidates/v0.0.10/figma-use/references/validation-and-recovery.md +109 -109
  177. package/docs/skill-candidates/v0.0.10/figma-use/references/variable-patterns.md +354 -354
  178. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/maintainers.yml +9 -9
  179. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--creating.md +17 -17
  180. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--using.md +17 -17
  181. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components.md +50 -50
  182. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-effect-styles.md +52 -52
  183. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-text-styles.md +90 -90
  184. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--creating.md +13 -13
  185. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--using.md +13 -13
  186. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables.md +64 -64
  187. package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds.md +41 -41
  188. package/docs/skill-candidates/v0.0.10/frontend-design/LICENSE.txt +177 -177
  189. package/docs/skill-candidates/v0.0.10/frontend-design/SKILL.md +55 -55
  190. package/docs/skill-candidates/v0.0.10/frontend-ui-ux-systems/SKILL.md +32 -32
  191. package/docs/skill-candidates/v0.0.10/github/SKILL.md +74 -74
  192. package/docs/skill-candidates/v0.0.10/github/agents/openai.yaml +6 -6
  193. package/docs/skill-candidates/v0.0.10/github/assets/github-small.svg +3 -3
  194. package/docs/skill-candidates/v0.0.10/image-graphic-design-rendering/SKILL.md +28 -28
  195. package/docs/skill-candidates/v0.0.10/language-quality-pt-en-fr-it-ru/SKILL.md +28 -28
  196. package/docs/skill-candidates/v0.0.10/math-physics-reasoning/SKILL.md +28 -28
  197. package/docs/skill-candidates/v0.0.10/mcp-builder/LICENSE.txt +201 -201
  198. package/docs/skill-candidates/v0.0.10/mcp-builder/SKILL.md +236 -236
  199. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/evaluation.md +601 -601
  200. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/mcp_best_practices.md +249 -249
  201. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/node_mcp_server.md +969 -969
  202. package/docs/skill-candidates/v0.0.10/mcp-builder/reference/python_mcp_server.md +718 -718
  203. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/connections.py +151 -151
  204. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/evaluation.py +373 -373
  205. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/example_evaluation.xml +22 -22
  206. package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/requirements.txt +2 -2
  207. package/docs/skill-candidates/v0.0.10/mcp-client-readiness/SKILL.md +31 -31
  208. package/docs/skill-candidates/v0.0.10/openai-docs/LICENSE.txt +201 -201
  209. package/docs/skill-candidates/v0.0.10/openai-docs/SKILL.md +161 -161
  210. package/docs/skill-candidates/v0.0.10/openai-docs/agents/openai.yaml +14 -14
  211. package/docs/skill-candidates/v0.0.10/openai-docs/assets/openai-small.svg +3 -3
  212. package/docs/skill-candidates/v0.0.10/openai-docs/references/latest-model.md +37 -37
  213. package/docs/skill-candidates/v0.0.10/openai-docs/references/prompting-guide.md +244 -244
  214. package/docs/skill-candidates/v0.0.10/openai-docs/references/upgrade-guide.md +181 -181
  215. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/fetch-codex-manual.mjs +598 -598
  216. package/docs/skill-candidates/v0.0.10/openai-docs/scripts/resolve-latest-model-info.js +147 -147
  217. package/docs/skill-candidates/v0.0.10/playwright/NOTICE.txt +14 -14
  218. package/docs/skill-candidates/v0.0.10/playwright/SKILL.md +147 -147
  219. package/docs/skill-candidates/v0.0.10/playwright/agents/openai.yaml +6 -6
  220. package/docs/skill-candidates/v0.0.10/playwright/assets/playwright-small.svg +3 -3
  221. package/docs/skill-candidates/v0.0.10/playwright/references/cli.md +116 -116
  222. package/docs/skill-candidates/v0.0.10/playwright/references/workflows.md +95 -95
  223. package/docs/skill-candidates/v0.0.10/playwright/scripts/playwright_cli.sh +25 -25
  224. package/docs/skill-candidates/v0.0.10/polyglot-backend-engineering/SKILL.md +32 -32
  225. package/docs/skill-candidates/v0.0.10/screenshot/LICENSE.txt +201 -201
  226. package/docs/skill-candidates/v0.0.10/screenshot/SKILL.md +267 -267
  227. package/docs/skill-candidates/v0.0.10/screenshot/agents/openai.yaml +6 -6
  228. package/docs/skill-candidates/v0.0.10/screenshot/assets/screenshot-small.svg +5 -5
  229. package/docs/skill-candidates/v0.0.10/screenshot/scripts/ensure_macos_permissions.sh +54 -54
  230. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_display_info.swift +22 -22
  231. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_permissions.swift +40 -40
  232. package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_window_info.swift +126 -126
  233. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.ps1 +163 -163
  234. package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.py +585 -585
  235. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/SKILL.md +62 -62
  236. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/agents/openai.yaml +4 -4
  237. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/activation-policy.md +77 -77
  238. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/human-approval-policy.md +83 -83
  239. package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/persona-dev-senior-master.md +46 -46
  240. package/docs/skill-candidates/v0.0.10/terminal-menu-operations/SKILL.md +30 -30
  241. package/docs/skill-candidates/v0.0.10/terminal-pixel-art-tui/SKILL.md +43 -43
  242. package/docs/skill-candidates/v0.0.10/webapp-testing/LICENSE.txt +201 -201
  243. package/docs/skill-candidates/v0.0.10/webapp-testing/SKILL.md +95 -95
  244. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/console_logging.py +34 -34
  245. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/element_discovery.py +39 -39
  246. package/docs/skill-candidates/v0.0.10/webapp-testing/examples/static_html_automation.py +32 -32
  247. package/docs/skill-candidates/v0.0.10/webapp-testing/scripts/with_server.py +105 -105
  248. package/docs/skill-candidates/v0.0.10/winui-app/LICENSE.txt +201 -201
  249. package/docs/skill-candidates/v0.0.10/winui-app/SKILL.md +94 -94
  250. package/docs/skill-candidates/v0.0.10/winui-app/agents/openai.yaml +5 -5
  251. package/docs/skill-candidates/v0.0.10/winui-app/config.yaml +50 -50
  252. package/docs/skill-candidates/v0.0.10/winui-app/references/_sections.md +96 -96
  253. package/docs/skill-candidates/v0.0.10/winui-app/references/accessibility-input-and-localization.md +51 -51
  254. package/docs/skill-candidates/v0.0.10/winui-app/references/build-run-and-launch-verification.md +72 -72
  255. package/docs/skill-candidates/v0.0.10/winui-app/references/community-toolkit-controls-and-helpers.md +57 -57
  256. package/docs/skill-candidates/v0.0.10/winui-app/references/controls-layout-and-adaptive-ui.md +84 -84
  257. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-environment-audit-and-remediation.md +82 -82
  258. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-setup-and-project-selection.md +67 -67
  259. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-template-first-recovery.md +62 -62
  260. package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-winui-app-structure.md +62 -62
  261. package/docs/skill-candidates/v0.0.10/winui-app/references/motion-animations-and-polish.md +45 -45
  262. package/docs/skill-candidates/v0.0.10/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -46
  263. package/docs/skill-candidates/v0.0.10/winui-app/references/sample-source-map.md +37 -37
  264. package/docs/skill-candidates/v0.0.10/winui-app/references/shell-navigation-and-windowing.md +67 -67
  265. package/docs/skill-candidates/v0.0.10/winui-app/references/styling-theming-materials-and-icons.md +71 -71
  266. package/docs/skill-candidates/v0.0.10/winui-app/references/testing-debugging-and-review-checklists.md +77 -77
  267. package/docs/skill-candidates/v0.0.10/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -52
  268. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/SKILL.md +398 -398
  269. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/common-patterns.md +330 -330
  270. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/complete-examples.md +871 -871
  271. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/component-patterns.md +501 -501
  272. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/data-fetching.md +766 -766
  273. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/file-organization.md +501 -501
  274. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/loading-and-error-states.md +500 -500
  275. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/performance.md +405 -405
  276. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/routing-guide.md +363 -363
  277. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/styling-guide.md +427 -427
  278. package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/typescript-standards.md +417 -417
  279. package/docs/skill-candidates/v0.0.11/git-version-control-ops/SKILL.md +34 -34
  280. package/docs/skill-candidates/v0.0.11/go-engineering/SKILL.md +34 -34
  281. package/docs/skill-candidates/v0.0.11/java-engineering/SKILL.md +34 -34
  282. package/docs/skill-candidates/v0.0.11/javascript-engineering/SKILL.md +34 -34
  283. package/docs/skill-candidates/v0.0.11/json-contract-design/SKILL.md +34 -34
  284. package/docs/skill-candidates/v0.0.11/multi-client-mcp-ops/SKILL.md +36 -36
  285. package/docs/skill-candidates/v0.0.11/nextjs/SKILL.md +745 -745
  286. package/docs/skill-candidates/v0.0.11/nextjs/agents/openai.yaml +3 -3
  287. package/docs/skill-candidates/v0.0.11/nextjs/references/app-router-files.md +94 -94
  288. package/docs/skill-candidates/v0.0.11/python-engineering/SKILL.md +34 -34
  289. package/docs/skill-candidates/v0.0.11/ruby-engineering/SKILL.md +34 -34
  290. package/docs/skill-candidates/v0.0.11/senior-fullstack/SKILL.md +209 -209
  291. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/architecture_patterns.md +103 -103
  292. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/development_workflows.md +103 -103
  293. package/docs/skill-candidates/v0.0.11/senior-fullstack/references/tech_stack_guide.md +103 -103
  294. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/code_quality_analyzer.py +114 -114
  295. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/fullstack_scaffolder.py +114 -114
  296. package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/project_scaffolder.py +114 -114
  297. package/docs/skill-candidates/v0.0.11/shadcn/SKILL.md +573 -573
  298. package/docs/skill-candidates/v0.0.11/shadcn/agents/openai.yaml +3 -3
  299. package/docs/skill-candidates/v0.0.11/sql-postgresql-engineering/SKILL.md +34 -34
  300. package/docs/skill-candidates/v0.0.11/terminal-shell-ops/SKILL.md +34 -34
  301. package/docs/skill-candidates/v0.0.11/typescript-expert/SKILL.md +429 -429
  302. package/docs/skill-candidates/v0.0.11/typescript-expert/references/tsconfig-strict.json +91 -91
  303. package/docs/skill-candidates/v0.0.11/typescript-expert/references/typescript-cheatsheet.md +383 -383
  304. package/docs/skill-candidates/v0.0.11/typescript-expert/references/utility-types.ts +335 -335
  305. package/docs/skill-candidates/v0.0.11/typescript-expert/scripts/ts_diagnostic.py +203 -203
  306. package/docs/skill-candidates/v0.0.11/ui-component-primitives/SKILL.md +34 -34
  307. package/docs/skill-candidates/v0.0.11/web-mobile-design-systems/SKILL.md +34 -34
  308. package/docs/skill-candidates/v0.0.11/windows-linux-platform-ops/SKILL.md +34 -34
  309. package/docs/skill-candidates/v0.0.12/context-compression-handoff/SKILL.md +47 -0
  310. package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -32
  311. package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -32
  312. package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -32
  313. package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -32
  314. package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -32
  315. package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -32
  316. package/docs/skill-candidates/v0.0.12/prompt-budget-gate/SKILL.md +46 -0
  317. package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -32
  318. package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -32
  319. package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -32
  320. package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -48
  321. package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -31
  322. package/docs/skill-candidates/v0.0.12/token-economy-orchestrator/SKILL.md +38 -0
  323. package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -35
  324. package/docs/skill-candidates/v0.0.9/ai-ethics-human-dignity/SKILL.md +32 -32
  325. package/docs/skill-candidates/v0.0.9/broad-domain-router/SKILL.md +41 -41
  326. package/docs/skill-candidates/v0.0.9/catholic-moral-discernment/SKILL.md +31 -31
  327. package/docs/skill-candidates/v0.0.9/engineering-systems-master/SKILL.md +31 -31
  328. package/docs/skill-candidates/v0.0.9/language-quality-pt-en-fr/SKILL.md +28 -28
  329. package/docs/skill-candidates/v0.0.9/math-science-reasoning/SKILL.md +29 -29
  330. package/docs/skill-candidates/v0.0.9/philosophy-sociology-discernment/SKILL.md +28 -28
  331. package/docs/skill-candidates/v0.0.9/professional-boundary-triage/SKILL.md +40 -40
  332. package/docs/skill-candidates/v0.0.9/release-ethics-gate/SKILL.md +32 -32
  333. package/docs/skill-candidates/v0.0.9/source-authority-reviewer/SKILL.md +31 -31
  334. package/examples/client-configs/claude-code.commands.md +21 -21
  335. package/examples/client-configs/claude-code.project.mcp.json +18 -18
  336. package/examples/client-configs/claude-desktop.macos.json +18 -18
  337. package/examples/client-configs/claude-desktop.windows.json +20 -20
  338. package/examples/client-configs/codex.windows.toml +11 -11
  339. package/examples/client-configs/gemini-code-assist.intellij.mcp.json +18 -18
  340. package/examples/client-configs/gemini.linux.settings.json +21 -21
  341. package/examples/client-configs/gemini.windows.settings.json +23 -23
  342. package/examples/client-configs/generic-stdio.json +16 -16
  343. package/manifests/channels/beta.json +24 -24
  344. package/manifests/channels/stable.json +25 -25
  345. package/network/approved-skills.json +54 -54
  346. package/network/unapproved-skill-candidates.json +110 -110
  347. package/package.json +89 -86
  348. package/scripts/configure-private-registry.mjs +208 -208
  349. package/scripts/lib/private-registry.mjs +97 -97
  350. package/scripts/render-menu-evidence.mjs +196 -130
  351. package/scripts/verify-menu-actions.mjs +112 -107
  352. package/scripts/verify-menu-visual.mjs +90 -0
  353. package/sources.json +11 -11
@@ -1,399 +1,399 @@
1
- ---
2
- name: frontend-dev-guidelines
3
- description: Frontend development guidelines for React/TypeScript applications. Modern patterns including Suspense, lazy loading, useSuspenseQuery, file organization with features directory, MUI v7 styling, TanStack Router, performance optimization, and TypeScript best practices. Use when creating components, pages, features, fetching data, styling, routing, or working with frontend code.
4
- ---
5
-
6
- # Frontend Development Guidelines
7
-
8
- ## Purpose
9
-
10
- Comprehensive guide for modern React development, emphasizing Suspense-based data fetching, lazy loading, proper file organization, and performance optimization.
11
-
12
- ## When to Use This Skill
13
-
14
- - Creating new components or pages
15
- - Building new features
16
- - Fetching data with TanStack Query
17
- - Setting up routing with TanStack Router
18
- - Styling components with MUI v7
19
- - Performance optimization
20
- - Organizing frontend code
21
- - TypeScript best practices
22
-
23
- ---
24
-
25
- ## Quick Start
26
-
27
- ### New Component Checklist
28
-
29
- Creating a component? Follow this checklist:
30
-
31
- - [ ] Use `React.FC<Props>` pattern with TypeScript
32
- - [ ] Lazy load if heavy component: `React.lazy(() => import())`
33
- - [ ] Wrap in `<SuspenseLoader>` for loading states
34
- - [ ] Use `useSuspenseQuery` for data fetching
35
- - [ ] Import aliases: `@/`, `~types`, `~components`, `~features`
36
- - [ ] Styles: Inline if <100 lines, separate file if >100 lines
37
- - [ ] Use `useCallback` for event handlers passed to children
38
- - [ ] Default export at bottom
39
- - [ ] No early returns with loading spinners
40
- - [ ] Use `useMuiSnackbar` for user notifications
41
-
42
- ### New Feature Checklist
43
-
44
- Creating a feature? Set up this structure:
45
-
46
- - [ ] Create `features/{feature-name}/` directory
47
- - [ ] Create subdirectories: `api/`, `components/`, `hooks/`, `helpers/`, `types/`
48
- - [ ] Create API service file: `api/{feature}Api.ts`
49
- - [ ] Set up TypeScript types in `types/`
50
- - [ ] Create route in `routes/{feature-name}/index.tsx`
51
- - [ ] Lazy load feature components
52
- - [ ] Use Suspense boundaries
53
- - [ ] Export public API from feature `index.ts`
54
-
55
- ---
56
-
57
- ## Import Aliases Quick Reference
58
-
59
- | Alias | Resolves To | Example |
60
- |-------|-------------|---------|
61
- | `@/` | `src/` | `import { apiClient } from '@/lib/apiClient'` |
62
- | `~types` | `src/types` | `import type { User } from '~types/user'` |
63
- | `~components` | `src/components` | `import { SuspenseLoader } from '~components/SuspenseLoader'` |
64
- | `~features` | `src/features` | `import { authApi } from '~features/auth'` |
65
-
66
- Defined in: [vite.config.ts](../../vite.config.ts) lines 180-185
67
-
68
- ---
69
-
70
- ## Common Imports Cheatsheet
71
-
72
- ```typescript
73
- // React & Lazy Loading
74
- import React, { useState, useCallback, useMemo } from 'react';
75
- const Heavy = React.lazy(() => import('./Heavy'));
76
-
77
- // MUI Components
78
- import { Box, Paper, Typography, Button, Grid } from '@mui/material';
79
- import type { SxProps, Theme } from '@mui/material';
80
-
81
- // TanStack Query (Suspense)
82
- import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
83
-
84
- // TanStack Router
85
- import { createFileRoute } from '@tanstack/react-router';
86
-
87
- // Project Components
88
- import { SuspenseLoader } from '~components/SuspenseLoader';
89
-
90
- // Hooks
91
- import { useAuth } from '@/hooks/useAuth';
92
- import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
93
-
94
- // Types
95
- import type { Post } from '~types/post';
96
- ```
97
-
98
- ---
99
-
100
- ## Topic Guides
101
-
102
- ### 🎨 Component Patterns
103
-
104
- **Modern React components use:**
105
- - `React.FC<Props>` for type safety
106
- - `React.lazy()` for code splitting
107
- - `SuspenseLoader` for loading states
108
- - Named const + default export pattern
109
-
110
- **Key Concepts:**
111
- - Lazy load heavy components (DataGrid, charts, editors)
112
- - Always wrap lazy components in Suspense
113
- - Use SuspenseLoader component (with fade animation)
114
- - Component structure: Props → Hooks → Handlers → Render → Export
115
-
116
- **[📖 Complete Guide: resources/component-patterns.md](resources/component-patterns.md)**
117
-
118
- ---
119
-
120
- ### 📊 Data Fetching
121
-
122
- **PRIMARY PATTERN: useSuspenseQuery**
123
- - Use with Suspense boundaries
124
- - Cache-first strategy (check grid cache before API)
125
- - Replaces `isLoading` checks
126
- - Type-safe with generics
127
-
128
- **API Service Layer:**
129
- - Create `features/{feature}/api/{feature}Api.ts`
130
- - Use `apiClient` axios instance
131
- - Centralized methods per feature
132
- - Route format: `/form/route` (NOT `/api/form/route`)
133
-
134
- **[📖 Complete Guide: resources/data-fetching.md](resources/data-fetching.md)**
135
-
136
- ---
137
-
138
- ### 📁 File Organization
139
-
140
- **features/ vs components/:**
141
- - `features/`: Domain-specific (posts, comments, auth)
142
- - `components/`: Truly reusable (SuspenseLoader, CustomAppBar)
143
-
144
- **Feature Subdirectories:**
145
- ```
146
- features/
147
- my-feature/
148
- api/ # API service layer
149
- components/ # Feature components
150
- hooks/ # Custom hooks
151
- helpers/ # Utility functions
152
- types/ # TypeScript types
153
- ```
154
-
155
- **[📖 Complete Guide: resources/file-organization.md](resources/file-organization.md)**
156
-
157
- ---
158
-
159
- ### 🎨 Styling
160
-
161
- **Inline vs Separate:**
162
- - <100 lines: Inline `const styles: Record<string, SxProps<Theme>>`
163
- - >100 lines: Separate `.styles.ts` file
164
-
165
- **Primary Method:**
166
- - Use `sx` prop for MUI components
167
- - Type-safe with `SxProps<Theme>`
168
- - Theme access: `(theme) => theme.palette.primary.main`
169
-
170
- **MUI v7 Grid:**
171
- ```typescript
172
- <Grid size={{ xs: 12, md: 6 }}> // ✅ v7 syntax
173
- <Grid xs={12} md={6}> // ❌ Old syntax
174
- ```
175
-
176
- **[📖 Complete Guide: resources/styling-guide.md](resources/styling-guide.md)**
177
-
178
- ---
179
-
180
- ### 🛣️ Routing
181
-
182
- **TanStack Router - Folder-Based:**
183
- - Directory: `routes/my-route/index.tsx`
184
- - Lazy load components
185
- - Use `createFileRoute`
186
- - Breadcrumb data in loader
187
-
188
- **Example:**
189
- ```typescript
190
- import { createFileRoute } from '@tanstack/react-router';
191
- import { lazy } from 'react';
192
-
193
- const MyPage = lazy(() => import('@/features/my-feature/components/MyPage'));
194
-
195
- export const Route = createFileRoute('/my-route/')({
196
- component: MyPage,
197
- loader: () => ({ crumb: 'My Route' }),
198
- });
199
- ```
200
-
201
- **[📖 Complete Guide: resources/routing-guide.md](resources/routing-guide.md)**
202
-
203
- ---
204
-
205
- ### ⏳ Loading & Error States
206
-
207
- **CRITICAL RULE: No Early Returns**
208
-
209
- ```typescript
210
- // ❌ NEVER - Causes layout shift
211
- if (isLoading) {
212
- return <LoadingSpinner />;
213
- }
214
-
215
- // ✅ ALWAYS - Consistent layout
216
- <SuspenseLoader>
217
- <Content />
218
- </SuspenseLoader>
219
- ```
220
-
221
- **Why:** Prevents Cumulative Layout Shift (CLS), better UX
222
-
223
- **Error Handling:**
224
- - Use `useMuiSnackbar` for user feedback
225
- - NEVER `react-toastify`
226
- - TanStack Query `onError` callbacks
227
-
228
- **[📖 Complete Guide: resources/loading-and-error-states.md](resources/loading-and-error-states.md)**
229
-
230
- ---
231
-
232
- ### ⚡ Performance
233
-
234
- **Optimization Patterns:**
235
- - `useMemo`: Expensive computations (filter, sort, map)
236
- - `useCallback`: Event handlers passed to children
237
- - `React.memo`: Expensive components
238
- - Debounced search (300-500ms)
239
- - Memory leak prevention (cleanup in useEffect)
240
-
241
- **[📖 Complete Guide: resources/performance.md](resources/performance.md)**
242
-
243
- ---
244
-
245
- ### 📘 TypeScript
246
-
247
- **Standards:**
248
- - Strict mode, no `any` type
249
- - Explicit return types on functions
250
- - Type imports: `import type { User } from '~types/user'`
251
- - Component prop interfaces with JSDoc
252
-
253
- **[📖 Complete Guide: resources/typescript-standards.md](resources/typescript-standards.md)**
254
-
255
- ---
256
-
257
- ### 🔧 Common Patterns
258
-
259
- **Covered Topics:**
260
- - React Hook Form with Zod validation
261
- - DataGrid wrapper contracts
262
- - Dialog component standards
263
- - `useAuth` hook for current user
264
- - Mutation patterns with cache invalidation
265
-
266
- **[📖 Complete Guide: resources/common-patterns.md](resources/common-patterns.md)**
267
-
268
- ---
269
-
270
- ### 📚 Complete Examples
271
-
272
- **Full working examples:**
273
- - Modern component with all patterns
274
- - Complete feature structure
275
- - API service layer
276
- - Route with lazy loading
277
- - Suspense + useSuspenseQuery
278
- - Form with validation
279
-
280
- **[📖 Complete Guide: resources/complete-examples.md](resources/complete-examples.md)**
281
-
282
- ---
283
-
284
- ## Navigation Guide
285
-
286
- | Need to... | Read this resource |
287
- |------------|-------------------|
288
- | Create a component | [component-patterns.md](resources/component-patterns.md) |
289
- | Fetch data | [data-fetching.md](resources/data-fetching.md) |
290
- | Organize files/folders | [file-organization.md](resources/file-organization.md) |
291
- | Style components | [styling-guide.md](resources/styling-guide.md) |
292
- | Set up routing | [routing-guide.md](resources/routing-guide.md) |
293
- | Handle loading/errors | [loading-and-error-states.md](resources/loading-and-error-states.md) |
294
- | Optimize performance | [performance.md](resources/performance.md) |
295
- | TypeScript types | [typescript-standards.md](resources/typescript-standards.md) |
296
- | Forms/Auth/DataGrid | [common-patterns.md](resources/common-patterns.md) |
297
- | See full examples | [complete-examples.md](resources/complete-examples.md) |
298
-
299
- ---
300
-
301
- ## Core Principles
302
-
303
- 1. **Lazy Load Everything Heavy**: Routes, DataGrid, charts, editors
304
- 2. **Suspense for Loading**: Use SuspenseLoader, not early returns
305
- 3. **useSuspenseQuery**: Primary data fetching pattern for new code
306
- 4. **Features are Organized**: api/, components/, hooks/, helpers/ subdirs
307
- 5. **Styles Based on Size**: <100 inline, >100 separate
308
- 6. **Import Aliases**: Use @/, ~types, ~components, ~features
309
- 7. **No Early Returns**: Prevents layout shift
310
- 8. **useMuiSnackbar**: For all user notifications
311
-
312
- ---
313
-
314
- ## Quick Reference: File Structure
315
-
316
- ```
317
- src/
318
- features/
319
- my-feature/
320
- api/
321
- myFeatureApi.ts # API service
322
- components/
323
- MyFeature.tsx # Main component
324
- SubComponent.tsx # Related components
325
- hooks/
326
- useMyFeature.ts # Custom hooks
327
- useSuspenseMyFeature.ts # Suspense hooks
328
- helpers/
329
- myFeatureHelpers.ts # Utilities
330
- types/
331
- index.ts # TypeScript types
332
- index.ts # Public exports
333
-
334
- components/
335
- SuspenseLoader/
336
- SuspenseLoader.tsx # Reusable loader
337
- CustomAppBar/
338
- CustomAppBar.tsx # Reusable app bar
339
-
340
- routes/
341
- my-route/
342
- index.tsx # Route component
343
- create/
344
- index.tsx # Nested route
345
- ```
346
-
347
- ---
348
-
349
- ## Modern Component Template (Quick Copy)
350
-
351
- ```typescript
352
- import React, { useState, useCallback } from 'react';
353
- import { Box, Paper } from '@mui/material';
354
- import { useSuspenseQuery } from '@tanstack/react-query';
355
- import { featureApi } from '../api/featureApi';
356
- import type { FeatureData } from '~types/feature';
357
-
358
- interface MyComponentProps {
359
- id: number;
360
- onAction?: () => void;
361
- }
362
-
363
- export const MyComponent: React.FC<MyComponentProps> = ({ id, onAction }) => {
364
- const [state, setState] = useState<string>('');
365
-
366
- const { data } = useSuspenseQuery({
367
- queryKey: ['feature', id],
368
- queryFn: () => featureApi.getFeature(id),
369
- });
370
-
371
- const handleAction = useCallback(() => {
372
- setState('updated');
373
- onAction?.();
374
- }, [onAction]);
375
-
376
- return (
377
- <Box sx={{ p: 2 }}>
378
- <Paper sx={{ p: 3 }}>
379
- {/* Content */}
380
- </Paper>
381
- </Box>
382
- );
383
- };
384
-
385
- export default MyComponent;
386
- ```
387
-
388
- For complete examples, see [resources/complete-examples.md](resources/complete-examples.md)
389
-
390
- ---
391
-
392
- ## Related Skills
393
-
394
- - **error-tracking**: Error tracking with Sentry (applies to frontend too)
395
- - **backend-dev-guidelines**: Backend API patterns that frontend consumes
396
-
397
- ---
398
-
1
+ ---
2
+ name: frontend-dev-guidelines
3
+ description: Frontend development guidelines for React/TypeScript applications. Modern patterns including Suspense, lazy loading, useSuspenseQuery, file organization with features directory, MUI v7 styling, TanStack Router, performance optimization, and TypeScript best practices. Use when creating components, pages, features, fetching data, styling, routing, or working with frontend code.
4
+ ---
5
+
6
+ # Frontend Development Guidelines
7
+
8
+ ## Purpose
9
+
10
+ Comprehensive guide for modern React development, emphasizing Suspense-based data fetching, lazy loading, proper file organization, and performance optimization.
11
+
12
+ ## When to Use This Skill
13
+
14
+ - Creating new components or pages
15
+ - Building new features
16
+ - Fetching data with TanStack Query
17
+ - Setting up routing with TanStack Router
18
+ - Styling components with MUI v7
19
+ - Performance optimization
20
+ - Organizing frontend code
21
+ - TypeScript best practices
22
+
23
+ ---
24
+
25
+ ## Quick Start
26
+
27
+ ### New Component Checklist
28
+
29
+ Creating a component? Follow this checklist:
30
+
31
+ - [ ] Use `React.FC<Props>` pattern with TypeScript
32
+ - [ ] Lazy load if heavy component: `React.lazy(() => import())`
33
+ - [ ] Wrap in `<SuspenseLoader>` for loading states
34
+ - [ ] Use `useSuspenseQuery` for data fetching
35
+ - [ ] Import aliases: `@/`, `~types`, `~components`, `~features`
36
+ - [ ] Styles: Inline if <100 lines, separate file if >100 lines
37
+ - [ ] Use `useCallback` for event handlers passed to children
38
+ - [ ] Default export at bottom
39
+ - [ ] No early returns with loading spinners
40
+ - [ ] Use `useMuiSnackbar` for user notifications
41
+
42
+ ### New Feature Checklist
43
+
44
+ Creating a feature? Set up this structure:
45
+
46
+ - [ ] Create `features/{feature-name}/` directory
47
+ - [ ] Create subdirectories: `api/`, `components/`, `hooks/`, `helpers/`, `types/`
48
+ - [ ] Create API service file: `api/{feature}Api.ts`
49
+ - [ ] Set up TypeScript types in `types/`
50
+ - [ ] Create route in `routes/{feature-name}/index.tsx`
51
+ - [ ] Lazy load feature components
52
+ - [ ] Use Suspense boundaries
53
+ - [ ] Export public API from feature `index.ts`
54
+
55
+ ---
56
+
57
+ ## Import Aliases Quick Reference
58
+
59
+ | Alias | Resolves To | Example |
60
+ |-------|-------------|---------|
61
+ | `@/` | `src/` | `import { apiClient } from '@/lib/apiClient'` |
62
+ | `~types` | `src/types` | `import type { User } from '~types/user'` |
63
+ | `~components` | `src/components` | `import { SuspenseLoader } from '~components/SuspenseLoader'` |
64
+ | `~features` | `src/features` | `import { authApi } from '~features/auth'` |
65
+
66
+ Defined in: [vite.config.ts](../../vite.config.ts) lines 180-185
67
+
68
+ ---
69
+
70
+ ## Common Imports Cheatsheet
71
+
72
+ ```typescript
73
+ // React & Lazy Loading
74
+ import React, { useState, useCallback, useMemo } from 'react';
75
+ const Heavy = React.lazy(() => import('./Heavy'));
76
+
77
+ // MUI Components
78
+ import { Box, Paper, Typography, Button, Grid } from '@mui/material';
79
+ import type { SxProps, Theme } from '@mui/material';
80
+
81
+ // TanStack Query (Suspense)
82
+ import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
83
+
84
+ // TanStack Router
85
+ import { createFileRoute } from '@tanstack/react-router';
86
+
87
+ // Project Components
88
+ import { SuspenseLoader } from '~components/SuspenseLoader';
89
+
90
+ // Hooks
91
+ import { useAuth } from '@/hooks/useAuth';
92
+ import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
93
+
94
+ // Types
95
+ import type { Post } from '~types/post';
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Topic Guides
101
+
102
+ ### 🎨 Component Patterns
103
+
104
+ **Modern React components use:**
105
+ - `React.FC<Props>` for type safety
106
+ - `React.lazy()` for code splitting
107
+ - `SuspenseLoader` for loading states
108
+ - Named const + default export pattern
109
+
110
+ **Key Concepts:**
111
+ - Lazy load heavy components (DataGrid, charts, editors)
112
+ - Always wrap lazy components in Suspense
113
+ - Use SuspenseLoader component (with fade animation)
114
+ - Component structure: Props → Hooks → Handlers → Render → Export
115
+
116
+ **[📖 Complete Guide: resources/component-patterns.md](resources/component-patterns.md)**
117
+
118
+ ---
119
+
120
+ ### 📊 Data Fetching
121
+
122
+ **PRIMARY PATTERN: useSuspenseQuery**
123
+ - Use with Suspense boundaries
124
+ - Cache-first strategy (check grid cache before API)
125
+ - Replaces `isLoading` checks
126
+ - Type-safe with generics
127
+
128
+ **API Service Layer:**
129
+ - Create `features/{feature}/api/{feature}Api.ts`
130
+ - Use `apiClient` axios instance
131
+ - Centralized methods per feature
132
+ - Route format: `/form/route` (NOT `/api/form/route`)
133
+
134
+ **[📖 Complete Guide: resources/data-fetching.md](resources/data-fetching.md)**
135
+
136
+ ---
137
+
138
+ ### 📁 File Organization
139
+
140
+ **features/ vs components/:**
141
+ - `features/`: Domain-specific (posts, comments, auth)
142
+ - `components/`: Truly reusable (SuspenseLoader, CustomAppBar)
143
+
144
+ **Feature Subdirectories:**
145
+ ```
146
+ features/
147
+ my-feature/
148
+ api/ # API service layer
149
+ components/ # Feature components
150
+ hooks/ # Custom hooks
151
+ helpers/ # Utility functions
152
+ types/ # TypeScript types
153
+ ```
154
+
155
+ **[📖 Complete Guide: resources/file-organization.md](resources/file-organization.md)**
156
+
157
+ ---
158
+
159
+ ### 🎨 Styling
160
+
161
+ **Inline vs Separate:**
162
+ - <100 lines: Inline `const styles: Record<string, SxProps<Theme>>`
163
+ - >100 lines: Separate `.styles.ts` file
164
+
165
+ **Primary Method:**
166
+ - Use `sx` prop for MUI components
167
+ - Type-safe with `SxProps<Theme>`
168
+ - Theme access: `(theme) => theme.palette.primary.main`
169
+
170
+ **MUI v7 Grid:**
171
+ ```typescript
172
+ <Grid size={{ xs: 12, md: 6 }}> // ✅ v7 syntax
173
+ <Grid xs={12} md={6}> // ❌ Old syntax
174
+ ```
175
+
176
+ **[📖 Complete Guide: resources/styling-guide.md](resources/styling-guide.md)**
177
+
178
+ ---
179
+
180
+ ### 🛣️ Routing
181
+
182
+ **TanStack Router - Folder-Based:**
183
+ - Directory: `routes/my-route/index.tsx`
184
+ - Lazy load components
185
+ - Use `createFileRoute`
186
+ - Breadcrumb data in loader
187
+
188
+ **Example:**
189
+ ```typescript
190
+ import { createFileRoute } from '@tanstack/react-router';
191
+ import { lazy } from 'react';
192
+
193
+ const MyPage = lazy(() => import('@/features/my-feature/components/MyPage'));
194
+
195
+ export const Route = createFileRoute('/my-route/')({
196
+ component: MyPage,
197
+ loader: () => ({ crumb: 'My Route' }),
198
+ });
199
+ ```
200
+
201
+ **[📖 Complete Guide: resources/routing-guide.md](resources/routing-guide.md)**
202
+
203
+ ---
204
+
205
+ ### ⏳ Loading & Error States
206
+
207
+ **CRITICAL RULE: No Early Returns**
208
+
209
+ ```typescript
210
+ // ❌ NEVER - Causes layout shift
211
+ if (isLoading) {
212
+ return <LoadingSpinner />;
213
+ }
214
+
215
+ // ✅ ALWAYS - Consistent layout
216
+ <SuspenseLoader>
217
+ <Content />
218
+ </SuspenseLoader>
219
+ ```
220
+
221
+ **Why:** Prevents Cumulative Layout Shift (CLS), better UX
222
+
223
+ **Error Handling:**
224
+ - Use `useMuiSnackbar` for user feedback
225
+ - NEVER `react-toastify`
226
+ - TanStack Query `onError` callbacks
227
+
228
+ **[📖 Complete Guide: resources/loading-and-error-states.md](resources/loading-and-error-states.md)**
229
+
230
+ ---
231
+
232
+ ### ⚡ Performance
233
+
234
+ **Optimization Patterns:**
235
+ - `useMemo`: Expensive computations (filter, sort, map)
236
+ - `useCallback`: Event handlers passed to children
237
+ - `React.memo`: Expensive components
238
+ - Debounced search (300-500ms)
239
+ - Memory leak prevention (cleanup in useEffect)
240
+
241
+ **[📖 Complete Guide: resources/performance.md](resources/performance.md)**
242
+
243
+ ---
244
+
245
+ ### 📘 TypeScript
246
+
247
+ **Standards:**
248
+ - Strict mode, no `any` type
249
+ - Explicit return types on functions
250
+ - Type imports: `import type { User } from '~types/user'`
251
+ - Component prop interfaces with JSDoc
252
+
253
+ **[📖 Complete Guide: resources/typescript-standards.md](resources/typescript-standards.md)**
254
+
255
+ ---
256
+
257
+ ### 🔧 Common Patterns
258
+
259
+ **Covered Topics:**
260
+ - React Hook Form with Zod validation
261
+ - DataGrid wrapper contracts
262
+ - Dialog component standards
263
+ - `useAuth` hook for current user
264
+ - Mutation patterns with cache invalidation
265
+
266
+ **[📖 Complete Guide: resources/common-patterns.md](resources/common-patterns.md)**
267
+
268
+ ---
269
+
270
+ ### 📚 Complete Examples
271
+
272
+ **Full working examples:**
273
+ - Modern component with all patterns
274
+ - Complete feature structure
275
+ - API service layer
276
+ - Route with lazy loading
277
+ - Suspense + useSuspenseQuery
278
+ - Form with validation
279
+
280
+ **[📖 Complete Guide: resources/complete-examples.md](resources/complete-examples.md)**
281
+
282
+ ---
283
+
284
+ ## Navigation Guide
285
+
286
+ | Need to... | Read this resource |
287
+ |------------|-------------------|
288
+ | Create a component | [component-patterns.md](resources/component-patterns.md) |
289
+ | Fetch data | [data-fetching.md](resources/data-fetching.md) |
290
+ | Organize files/folders | [file-organization.md](resources/file-organization.md) |
291
+ | Style components | [styling-guide.md](resources/styling-guide.md) |
292
+ | Set up routing | [routing-guide.md](resources/routing-guide.md) |
293
+ | Handle loading/errors | [loading-and-error-states.md](resources/loading-and-error-states.md) |
294
+ | Optimize performance | [performance.md](resources/performance.md) |
295
+ | TypeScript types | [typescript-standards.md](resources/typescript-standards.md) |
296
+ | Forms/Auth/DataGrid | [common-patterns.md](resources/common-patterns.md) |
297
+ | See full examples | [complete-examples.md](resources/complete-examples.md) |
298
+
299
+ ---
300
+
301
+ ## Core Principles
302
+
303
+ 1. **Lazy Load Everything Heavy**: Routes, DataGrid, charts, editors
304
+ 2. **Suspense for Loading**: Use SuspenseLoader, not early returns
305
+ 3. **useSuspenseQuery**: Primary data fetching pattern for new code
306
+ 4. **Features are Organized**: api/, components/, hooks/, helpers/ subdirs
307
+ 5. **Styles Based on Size**: <100 inline, >100 separate
308
+ 6. **Import Aliases**: Use @/, ~types, ~components, ~features
309
+ 7. **No Early Returns**: Prevents layout shift
310
+ 8. **useMuiSnackbar**: For all user notifications
311
+
312
+ ---
313
+
314
+ ## Quick Reference: File Structure
315
+
316
+ ```
317
+ src/
318
+ features/
319
+ my-feature/
320
+ api/
321
+ myFeatureApi.ts # API service
322
+ components/
323
+ MyFeature.tsx # Main component
324
+ SubComponent.tsx # Related components
325
+ hooks/
326
+ useMyFeature.ts # Custom hooks
327
+ useSuspenseMyFeature.ts # Suspense hooks
328
+ helpers/
329
+ myFeatureHelpers.ts # Utilities
330
+ types/
331
+ index.ts # TypeScript types
332
+ index.ts # Public exports
333
+
334
+ components/
335
+ SuspenseLoader/
336
+ SuspenseLoader.tsx # Reusable loader
337
+ CustomAppBar/
338
+ CustomAppBar.tsx # Reusable app bar
339
+
340
+ routes/
341
+ my-route/
342
+ index.tsx # Route component
343
+ create/
344
+ index.tsx # Nested route
345
+ ```
346
+
347
+ ---
348
+
349
+ ## Modern Component Template (Quick Copy)
350
+
351
+ ```typescript
352
+ import React, { useState, useCallback } from 'react';
353
+ import { Box, Paper } from '@mui/material';
354
+ import { useSuspenseQuery } from '@tanstack/react-query';
355
+ import { featureApi } from '../api/featureApi';
356
+ import type { FeatureData } from '~types/feature';
357
+
358
+ interface MyComponentProps {
359
+ id: number;
360
+ onAction?: () => void;
361
+ }
362
+
363
+ export const MyComponent: React.FC<MyComponentProps> = ({ id, onAction }) => {
364
+ const [state, setState] = useState<string>('');
365
+
366
+ const { data } = useSuspenseQuery({
367
+ queryKey: ['feature', id],
368
+ queryFn: () => featureApi.getFeature(id),
369
+ });
370
+
371
+ const handleAction = useCallback(() => {
372
+ setState('updated');
373
+ onAction?.();
374
+ }, [onAction]);
375
+
376
+ return (
377
+ <Box sx={{ p: 2 }}>
378
+ <Paper sx={{ p: 3 }}>
379
+ {/* Content */}
380
+ </Paper>
381
+ </Box>
382
+ );
383
+ };
384
+
385
+ export default MyComponent;
386
+ ```
387
+
388
+ For complete examples, see [resources/complete-examples.md](resources/complete-examples.md)
389
+
390
+ ---
391
+
392
+ ## Related Skills
393
+
394
+ - **error-tracking**: Error tracking with Sentry (applies to frontend too)
395
+ - **backend-dev-guidelines**: Backend API patterns that frontend consumes
396
+
397
+ ---
398
+
399
399
  **Skill Status**: Modular structure with progressive loading for optimal context management