@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,383 +1,383 @@
1
- # TypeScript Cheatsheet
2
-
3
- ## Type Basics
4
-
5
- ```typescript
6
- // Primitives
7
- const name: string = 'John'
8
- const age: number = 30
9
- const isActive: boolean = true
10
- const nothing: null = null
11
- const notDefined: undefined = undefined
12
-
13
- // Arrays
14
- const numbers: number[] = [1, 2, 3]
15
- const strings: Array<string> = ['a', 'b', 'c']
16
-
17
- // Tuple
18
- const tuple: [string, number] = ['hello', 42]
19
-
20
- // Object
21
- const user: { name: string; age: number } = { name: 'John', age: 30 }
22
-
23
- // Union
24
- const value: string | number = 'hello'
25
-
26
- // Literal
27
- const direction: 'up' | 'down' | 'left' | 'right' = 'up'
28
-
29
- // Any vs Unknown
30
- const anyValue: any = 'anything' // ❌ Avoid
31
- const unknownValue: unknown = 'safe' // ✅ Prefer, requires narrowing
32
- ```
33
-
34
- ## Type Aliases & Interfaces
35
-
36
- ```typescript
37
- // Type Alias
38
- type Point = {
39
- x: number
40
- y: number
41
- }
42
-
43
- // Interface (preferred for objects)
44
- interface User {
45
- id: string
46
- name: string
47
- email?: string // Optional
48
- readonly createdAt: Date // Readonly
49
- }
50
-
51
- // Extending
52
- interface Admin extends User {
53
- permissions: string[]
54
- }
55
-
56
- // Intersection
57
- type AdminUser = User & { permissions: string[] }
58
- ```
59
-
60
- ## Generics
61
-
62
- ```typescript
63
- // Generic function
64
- function identity<T>(value: T): T {
65
- return value
66
- }
67
-
68
- // Generic with constraint
69
- function getLength<T extends { length: number }>(item: T): number {
70
- return item.length
71
- }
72
-
73
- // Generic interface
74
- interface ApiResponse<T> {
75
- data: T
76
- status: number
77
- message: string
78
- }
79
-
80
- // Generic with default
81
- type Container<T = string> = {
82
- value: T
83
- }
84
-
85
- // Multiple generics
86
- function merge<T, U>(obj1: T, obj2: U): T & U {
87
- return { ...obj1, ...obj2 }
88
- }
89
- ```
90
-
91
- ## Utility Types
92
-
93
- ```typescript
94
- interface User {
95
- id: string
96
- name: string
97
- email: string
98
- age: number
99
- }
100
-
101
- // Partial - all optional
102
- type PartialUser = Partial<User>
103
-
104
- // Required - all required
105
- type RequiredUser = Required<User>
106
-
107
- // Readonly - all readonly
108
- type ReadonlyUser = Readonly<User>
109
-
110
- // Pick - select properties
111
- type UserName = Pick<User, 'id' | 'name'>
112
-
113
- // Omit - exclude properties
114
- type UserWithoutEmail = Omit<User, 'email'>
115
-
116
- // Record - key-value map
117
- type UserMap = Record<string, User>
118
-
119
- // Extract - extract from union
120
- type StringOrNumber = string | number | boolean
121
- type OnlyStrings = Extract<StringOrNumber, string>
122
-
123
- // Exclude - exclude from union
124
- type NotString = Exclude<StringOrNumber, string>
125
-
126
- // NonNullable - remove null/undefined
127
- type MaybeString = string | null | undefined
128
- type DefinitelyString = NonNullable<MaybeString>
129
-
130
- // ReturnType - get function return type
131
- function getUser() { return { name: 'John' } }
132
- type UserReturn = ReturnType<typeof getUser>
133
-
134
- // Parameters - get function parameters
135
- type GetUserParams = Parameters<typeof getUser>
136
-
137
- // Awaited - unwrap Promise
138
- type ResolvedUser = Awaited<Promise<User>>
139
- ```
140
-
141
- ## Conditional Types
142
-
143
- ```typescript
144
- // Basic conditional
145
- type IsString<T> = T extends string ? true : false
146
-
147
- // Infer keyword
148
- type UnwrapPromise<T> = T extends Promise<infer U> ? U : T
149
-
150
- // Distributive conditional
151
- type ToArray<T> = T extends any ? T[] : never
152
- type Result = ToArray<string | number> // string[] | number[]
153
-
154
- // NonDistributive
155
- type ToArrayNonDist<T> = [T] extends [any] ? T[] : never
156
- ```
157
-
158
- ## Template Literal Types
159
-
160
- ```typescript
161
- type Color = 'red' | 'green' | 'blue'
162
- type Size = 'small' | 'medium' | 'large'
163
-
164
- // Combine
165
- type ColorSize = `${Color}-${Size}`
166
- // 'red-small' | 'red-medium' | 'red-large' | ...
167
-
168
- // Event handlers
169
- type EventName = 'click' | 'focus' | 'blur'
170
- type EventHandler = `on${Capitalize<EventName>}`
171
- // 'onClick' | 'onFocus' | 'onBlur'
172
- ```
173
-
174
- ## Mapped Types
175
-
176
- ```typescript
177
- // Basic mapped type
178
- type Optional<T> = {
179
- [K in keyof T]?: T[K]
180
- }
181
-
182
- // With key remapping
183
- type Getters<T> = {
184
- [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
185
- }
186
-
187
- // Filter keys
188
- type OnlyStrings<T> = {
189
- [K in keyof T as T[K] extends string ? K : never]: T[K]
190
- }
191
- ```
192
-
193
- ## Type Guards
194
-
195
- ```typescript
196
- // typeof guard
197
- function process(value: string | number) {
198
- if (typeof value === 'string') {
199
- return value.toUpperCase() // string
200
- }
201
- return value.toFixed(2) // number
202
- }
203
-
204
- // instanceof guard
205
- class Dog { bark() {} }
206
- class Cat { meow() {} }
207
-
208
- function makeSound(animal: Dog | Cat) {
209
- if (animal instanceof Dog) {
210
- animal.bark()
211
- } else {
212
- animal.meow()
213
- }
214
- }
215
-
216
- // in guard
217
- interface Bird { fly(): void }
218
- interface Fish { swim(): void }
219
-
220
- function move(animal: Bird | Fish) {
221
- if ('fly' in animal) {
222
- animal.fly()
223
- } else {
224
- animal.swim()
225
- }
226
- }
227
-
228
- // Custom type guard
229
- function isString(value: unknown): value is string {
230
- return typeof value === 'string'
231
- }
232
-
233
- // Assertion function
234
- function assertIsString(value: unknown): asserts value is string {
235
- if (typeof value !== 'string') {
236
- throw new Error('Not a string')
237
- }
238
- }
239
- ```
240
-
241
- ## Discriminated Unions
242
-
243
- ```typescript
244
- // With type discriminant
245
- type Success<T> = { type: 'success'; data: T }
246
- type Error = { type: 'error'; message: string }
247
- type Loading = { type: 'loading' }
248
-
249
- type State<T> = Success<T> | Error | Loading
250
-
251
- function handle<T>(state: State<T>) {
252
- switch (state.type) {
253
- case 'success':
254
- return state.data // T
255
- case 'error':
256
- return state.message // string
257
- case 'loading':
258
- return null
259
- }
260
- }
261
-
262
- // Exhaustive check
263
- function assertNever(value: never): never {
264
- throw new Error(`Unexpected value: ${value}`)
265
- }
266
- ```
267
-
268
- ## Branded Types
269
-
270
- ```typescript
271
- // Create branded type
272
- type Brand<K, T> = K & { __brand: T }
273
-
274
- type UserId = Brand<string, 'UserId'>
275
- type OrderId = Brand<string, 'OrderId'>
276
-
277
- // Constructor functions
278
- function createUserId(id: string): UserId {
279
- return id as UserId
280
- }
281
-
282
- function createOrderId(id: string): OrderId {
283
- return id as OrderId
284
- }
285
-
286
- // Usage - prevents mixing
287
- function getOrder(orderId: OrderId, userId: UserId) {}
288
-
289
- const userId = createUserId('user-123')
290
- const orderId = createOrderId('order-456')
291
-
292
- getOrder(orderId, userId) // ✅ OK
293
- // getOrder(userId, orderId) // ❌ Error - types don't match
294
- ```
295
-
296
- ## Module Declarations
297
-
298
- ```typescript
299
- // Declare module for untyped package
300
- declare module 'untyped-package' {
301
- export function doSomething(): void
302
- export const value: string
303
- }
304
-
305
- // Augment existing module
306
- declare module 'express' {
307
- interface Request {
308
- user?: { id: string }
309
- }
310
- }
311
-
312
- // Declare global
313
- declare global {
314
- interface Window {
315
- myGlobal: string
316
- }
317
- }
318
- ```
319
-
320
- ## TSConfig Essentials
321
-
322
- ```json
323
- {
324
- "compilerOptions": {
325
- // Strictness
326
- "strict": true,
327
- "noUncheckedIndexedAccess": true,
328
- "noImplicitOverride": true,
329
-
330
- // Modules
331
- "module": "ESNext",
332
- "moduleResolution": "bundler",
333
- "esModuleInterop": true,
334
-
335
- // Output
336
- "target": "ES2022",
337
- "lib": ["ES2022", "DOM"],
338
-
339
- // Performance
340
- "skipLibCheck": true,
341
- "incremental": true,
342
-
343
- // Paths
344
- "baseUrl": ".",
345
- "paths": {
346
- "@/*": ["./src/*"]
347
- }
348
- }
349
- }
350
- ```
351
-
352
- ## Best Practices
353
-
354
- ```typescript
355
- // ✅ Prefer interface for objects
356
- interface User {
357
- name: string
358
- }
359
-
360
- // ✅ Use const assertions
361
- const routes = ['home', 'about'] as const
362
-
363
- // ✅ Use satisfies for validation
364
- const config = {
365
- api: 'https://api.example.com'
366
- } satisfies Record<string, string>
367
-
368
- // ✅ Use unknown over any
369
- function parse(input: unknown) {
370
- if (typeof input === 'string') {
371
- return JSON.parse(input)
372
- }
373
- }
374
-
375
- // ✅ Explicit return types for public APIs
376
- export function getUser(id: string): User | null {
377
- // ...
378
- }
379
-
380
- // ❌ Avoid
381
- const data: any = fetchData()
382
- data.anything.goes.wrong // No type safety
383
- ```
1
+ # TypeScript Cheatsheet
2
+
3
+ ## Type Basics
4
+
5
+ ```typescript
6
+ // Primitives
7
+ const name: string = 'John'
8
+ const age: number = 30
9
+ const isActive: boolean = true
10
+ const nothing: null = null
11
+ const notDefined: undefined = undefined
12
+
13
+ // Arrays
14
+ const numbers: number[] = [1, 2, 3]
15
+ const strings: Array<string> = ['a', 'b', 'c']
16
+
17
+ // Tuple
18
+ const tuple: [string, number] = ['hello', 42]
19
+
20
+ // Object
21
+ const user: { name: string; age: number } = { name: 'John', age: 30 }
22
+
23
+ // Union
24
+ const value: string | number = 'hello'
25
+
26
+ // Literal
27
+ const direction: 'up' | 'down' | 'left' | 'right' = 'up'
28
+
29
+ // Any vs Unknown
30
+ const anyValue: any = 'anything' // ❌ Avoid
31
+ const unknownValue: unknown = 'safe' // ✅ Prefer, requires narrowing
32
+ ```
33
+
34
+ ## Type Aliases & Interfaces
35
+
36
+ ```typescript
37
+ // Type Alias
38
+ type Point = {
39
+ x: number
40
+ y: number
41
+ }
42
+
43
+ // Interface (preferred for objects)
44
+ interface User {
45
+ id: string
46
+ name: string
47
+ email?: string // Optional
48
+ readonly createdAt: Date // Readonly
49
+ }
50
+
51
+ // Extending
52
+ interface Admin extends User {
53
+ permissions: string[]
54
+ }
55
+
56
+ // Intersection
57
+ type AdminUser = User & { permissions: string[] }
58
+ ```
59
+
60
+ ## Generics
61
+
62
+ ```typescript
63
+ // Generic function
64
+ function identity<T>(value: T): T {
65
+ return value
66
+ }
67
+
68
+ // Generic with constraint
69
+ function getLength<T extends { length: number }>(item: T): number {
70
+ return item.length
71
+ }
72
+
73
+ // Generic interface
74
+ interface ApiResponse<T> {
75
+ data: T
76
+ status: number
77
+ message: string
78
+ }
79
+
80
+ // Generic with default
81
+ type Container<T = string> = {
82
+ value: T
83
+ }
84
+
85
+ // Multiple generics
86
+ function merge<T, U>(obj1: T, obj2: U): T & U {
87
+ return { ...obj1, ...obj2 }
88
+ }
89
+ ```
90
+
91
+ ## Utility Types
92
+
93
+ ```typescript
94
+ interface User {
95
+ id: string
96
+ name: string
97
+ email: string
98
+ age: number
99
+ }
100
+
101
+ // Partial - all optional
102
+ type PartialUser = Partial<User>
103
+
104
+ // Required - all required
105
+ type RequiredUser = Required<User>
106
+
107
+ // Readonly - all readonly
108
+ type ReadonlyUser = Readonly<User>
109
+
110
+ // Pick - select properties
111
+ type UserName = Pick<User, 'id' | 'name'>
112
+
113
+ // Omit - exclude properties
114
+ type UserWithoutEmail = Omit<User, 'email'>
115
+
116
+ // Record - key-value map
117
+ type UserMap = Record<string, User>
118
+
119
+ // Extract - extract from union
120
+ type StringOrNumber = string | number | boolean
121
+ type OnlyStrings = Extract<StringOrNumber, string>
122
+
123
+ // Exclude - exclude from union
124
+ type NotString = Exclude<StringOrNumber, string>
125
+
126
+ // NonNullable - remove null/undefined
127
+ type MaybeString = string | null | undefined
128
+ type DefinitelyString = NonNullable<MaybeString>
129
+
130
+ // ReturnType - get function return type
131
+ function getUser() { return { name: 'John' } }
132
+ type UserReturn = ReturnType<typeof getUser>
133
+
134
+ // Parameters - get function parameters
135
+ type GetUserParams = Parameters<typeof getUser>
136
+
137
+ // Awaited - unwrap Promise
138
+ type ResolvedUser = Awaited<Promise<User>>
139
+ ```
140
+
141
+ ## Conditional Types
142
+
143
+ ```typescript
144
+ // Basic conditional
145
+ type IsString<T> = T extends string ? true : false
146
+
147
+ // Infer keyword
148
+ type UnwrapPromise<T> = T extends Promise<infer U> ? U : T
149
+
150
+ // Distributive conditional
151
+ type ToArray<T> = T extends any ? T[] : never
152
+ type Result = ToArray<string | number> // string[] | number[]
153
+
154
+ // NonDistributive
155
+ type ToArrayNonDist<T> = [T] extends [any] ? T[] : never
156
+ ```
157
+
158
+ ## Template Literal Types
159
+
160
+ ```typescript
161
+ type Color = 'red' | 'green' | 'blue'
162
+ type Size = 'small' | 'medium' | 'large'
163
+
164
+ // Combine
165
+ type ColorSize = `${Color}-${Size}`
166
+ // 'red-small' | 'red-medium' | 'red-large' | ...
167
+
168
+ // Event handlers
169
+ type EventName = 'click' | 'focus' | 'blur'
170
+ type EventHandler = `on${Capitalize<EventName>}`
171
+ // 'onClick' | 'onFocus' | 'onBlur'
172
+ ```
173
+
174
+ ## Mapped Types
175
+
176
+ ```typescript
177
+ // Basic mapped type
178
+ type Optional<T> = {
179
+ [K in keyof T]?: T[K]
180
+ }
181
+
182
+ // With key remapping
183
+ type Getters<T> = {
184
+ [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
185
+ }
186
+
187
+ // Filter keys
188
+ type OnlyStrings<T> = {
189
+ [K in keyof T as T[K] extends string ? K : never]: T[K]
190
+ }
191
+ ```
192
+
193
+ ## Type Guards
194
+
195
+ ```typescript
196
+ // typeof guard
197
+ function process(value: string | number) {
198
+ if (typeof value === 'string') {
199
+ return value.toUpperCase() // string
200
+ }
201
+ return value.toFixed(2) // number
202
+ }
203
+
204
+ // instanceof guard
205
+ class Dog { bark() {} }
206
+ class Cat { meow() {} }
207
+
208
+ function makeSound(animal: Dog | Cat) {
209
+ if (animal instanceof Dog) {
210
+ animal.bark()
211
+ } else {
212
+ animal.meow()
213
+ }
214
+ }
215
+
216
+ // in guard
217
+ interface Bird { fly(): void }
218
+ interface Fish { swim(): void }
219
+
220
+ function move(animal: Bird | Fish) {
221
+ if ('fly' in animal) {
222
+ animal.fly()
223
+ } else {
224
+ animal.swim()
225
+ }
226
+ }
227
+
228
+ // Custom type guard
229
+ function isString(value: unknown): value is string {
230
+ return typeof value === 'string'
231
+ }
232
+
233
+ // Assertion function
234
+ function assertIsString(value: unknown): asserts value is string {
235
+ if (typeof value !== 'string') {
236
+ throw new Error('Not a string')
237
+ }
238
+ }
239
+ ```
240
+
241
+ ## Discriminated Unions
242
+
243
+ ```typescript
244
+ // With type discriminant
245
+ type Success<T> = { type: 'success'; data: T }
246
+ type Error = { type: 'error'; message: string }
247
+ type Loading = { type: 'loading' }
248
+
249
+ type State<T> = Success<T> | Error | Loading
250
+
251
+ function handle<T>(state: State<T>) {
252
+ switch (state.type) {
253
+ case 'success':
254
+ return state.data // T
255
+ case 'error':
256
+ return state.message // string
257
+ case 'loading':
258
+ return null
259
+ }
260
+ }
261
+
262
+ // Exhaustive check
263
+ function assertNever(value: never): never {
264
+ throw new Error(`Unexpected value: ${value}`)
265
+ }
266
+ ```
267
+
268
+ ## Branded Types
269
+
270
+ ```typescript
271
+ // Create branded type
272
+ type Brand<K, T> = K & { __brand: T }
273
+
274
+ type UserId = Brand<string, 'UserId'>
275
+ type OrderId = Brand<string, 'OrderId'>
276
+
277
+ // Constructor functions
278
+ function createUserId(id: string): UserId {
279
+ return id as UserId
280
+ }
281
+
282
+ function createOrderId(id: string): OrderId {
283
+ return id as OrderId
284
+ }
285
+
286
+ // Usage - prevents mixing
287
+ function getOrder(orderId: OrderId, userId: UserId) {}
288
+
289
+ const userId = createUserId('user-123')
290
+ const orderId = createOrderId('order-456')
291
+
292
+ getOrder(orderId, userId) // ✅ OK
293
+ // getOrder(userId, orderId) // ❌ Error - types don't match
294
+ ```
295
+
296
+ ## Module Declarations
297
+
298
+ ```typescript
299
+ // Declare module for untyped package
300
+ declare module 'untyped-package' {
301
+ export function doSomething(): void
302
+ export const value: string
303
+ }
304
+
305
+ // Augment existing module
306
+ declare module 'express' {
307
+ interface Request {
308
+ user?: { id: string }
309
+ }
310
+ }
311
+
312
+ // Declare global
313
+ declare global {
314
+ interface Window {
315
+ myGlobal: string
316
+ }
317
+ }
318
+ ```
319
+
320
+ ## TSConfig Essentials
321
+
322
+ ```json
323
+ {
324
+ "compilerOptions": {
325
+ // Strictness
326
+ "strict": true,
327
+ "noUncheckedIndexedAccess": true,
328
+ "noImplicitOverride": true,
329
+
330
+ // Modules
331
+ "module": "ESNext",
332
+ "moduleResolution": "bundler",
333
+ "esModuleInterop": true,
334
+
335
+ // Output
336
+ "target": "ES2022",
337
+ "lib": ["ES2022", "DOM"],
338
+
339
+ // Performance
340
+ "skipLibCheck": true,
341
+ "incremental": true,
342
+
343
+ // Paths
344
+ "baseUrl": ".",
345
+ "paths": {
346
+ "@/*": ["./src/*"]
347
+ }
348
+ }
349
+ }
350
+ ```
351
+
352
+ ## Best Practices
353
+
354
+ ```typescript
355
+ // ✅ Prefer interface for objects
356
+ interface User {
357
+ name: string
358
+ }
359
+
360
+ // ✅ Use const assertions
361
+ const routes = ['home', 'about'] as const
362
+
363
+ // ✅ Use satisfies for validation
364
+ const config = {
365
+ api: 'https://api.example.com'
366
+ } satisfies Record<string, string>
367
+
368
+ // ✅ Use unknown over any
369
+ function parse(input: unknown) {
370
+ if (typeof input === 'string') {
371
+ return JSON.parse(input)
372
+ }
373
+ }
374
+
375
+ // ✅ Explicit return types for public APIs
376
+ export function getUser(id: string): User | null {
377
+ // ...
378
+ }
379
+
380
+ // ❌ Avoid
381
+ const data: any = fetchData()
382
+ data.anything.goes.wrong // No type safety
383
+ ```