memory-journal-mcp 7.7.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,453 @@
1
+ ---
2
+ name: typescript
3
+ description: |
4
+ Master enterprise-grade TypeScript development with type-safe patterns, modern tooling, and framework integration. This skill provides comprehensive guidance for TypeScript 6.0+, covering type system fundamentals (generics, mapped types, conditional types, satisfies operator), enterprise patterns (error handling, validation with Zod), React integration for type-safe frontends, NestJS for scalable APIs, and LangChain.js for AI applications. Use when building type-safe applications, migrating JavaScript codebases, configuring modern toolchains (Vite 7, pnpm, ESLint, Vitest), implementing advanced type patterns, or comparing TypeScript with Java/Python approaches.
5
+ version: 1.0.0
6
+ category: programming-languages
7
+ triggers:
8
+ - typescript
9
+ - ts
10
+ - type-safe
11
+ - generics
12
+ - nestjs typescript
13
+ - react typescript
14
+ - typescript migration
15
+ - tsconfig
16
+ - type guards
17
+ - mapped types
18
+ - conditional types
19
+ - satisfies operator
20
+ - zod validation
21
+ author: Richard Hightower
22
+ license: MIT
23
+ tags:
24
+ - typescript
25
+ - type-safety
26
+ - enterprise
27
+ - react
28
+ - nestjs
29
+ - langchain
30
+ - vite
31
+ ---
32
+
33
+ # Mastering Modern TypeScript
34
+
35
+ Build enterprise-grade, type-safe applications with TypeScript 6.0+.
36
+
37
+ > **Compatibility:** TypeScript 6.0+, Node.js 25.3+, Vite 7, NestJS 11, React 19
38
+
39
+ ## TypeScript 6.0 Modernization
40
+
41
+ Released in March 2026, TypeScript 6.0 acts as the final JavaScript-based bridge prior to the TS 7.0 native Go compiler transition:
42
+
43
+ - **Build Performance Defaults**: `strict: true` and `types: []` are now generated by default (no automatic crawling of `@types` to drastically reduce cold start compilation).
44
+ - **Core API Enhancements**: Standard typings added for `Temporal` API, Map "Upsert" (`getOrInsert`), and `RegExp.escape`.
45
+ - **Go Migration Compliance**: Adopt the new `--stableTypeOrdering` flag to preemptively map legacy TS shapes to the future TS 7.0 AST parser.
46
+
47
+ ## Quick Start
48
+
49
+ ```bash
50
+ # Initialize TypeScript project with ESM
51
+ pnpm create vite@latest my-app --template vanilla-ts
52
+ cd my-app && pnpm install
53
+
54
+ # Configure strict TypeScript
55
+ cat > tsconfig.json << 'EOF'
56
+ {
57
+ "compilerOptions": {
58
+ "target": "ES2024",
59
+ "module": "ESNext",
60
+ "moduleResolution": "bundler",
61
+ "strict": true,
62
+ "noUncheckedIndexedAccess": true,
63
+ "exactOptionalPropertyTypes": true,
64
+ "esModuleInterop": true,
65
+ "skipLibCheck": true
66
+ }
67
+ }
68
+ EOF
69
+ ```
70
+
71
+ ## When to Use This Skill
72
+
73
+ Use when:
74
+
75
+ - Building type-safe React, NestJS, or Node.js applications
76
+ - Migrating JavaScript codebases to TypeScript
77
+ - Implementing advanced type patterns (generics, mapped types, conditional types)
78
+ - Configuring modern TypeScript toolchains (Vite, pnpm, ESLint)
79
+ - Designing type-safe API contracts with Zod validation
80
+ - Comparing TypeScript approaches with Java or Python
81
+
82
+ ## Project Setup Checklist
83
+
84
+ Before starting any TypeScript project:
85
+
86
+ ```
87
+ - [ ] Use pnpm for package management (faster, disk-efficient)
88
+ - [ ] Configure ESM-first (type: "module" in package.json)
89
+ - [ ] Enable strict mode in tsconfig.json
90
+ - [ ] Set up ESLint with @typescript-eslint
91
+ - [ ] Add Prettier for consistent formatting
92
+ - [ ] Configure Vitest for testing
93
+ ```
94
+
95
+ ## Type System Quick Reference
96
+
97
+ ### Primitive Types
98
+
99
+ ```typescript
100
+ const name: string = 'Alice'
101
+ const age: number = 30
102
+ const active: boolean = true
103
+ const id: bigint = 9007199254740991n
104
+ const key: symbol = Symbol('unique')
105
+ ```
106
+
107
+ ### Union and Intersection Types
108
+
109
+ ```typescript
110
+ // Union: value can be one of several types
111
+ type Status = 'pending' | 'approved' | 'rejected'
112
+
113
+ // Intersection: value must satisfy all types
114
+ type Employee = Person & { employeeId: string }
115
+
116
+ // Discriminated union for type-safe handling
117
+ type Result<T> = { success: true; data: T } | { success: false; error: string }
118
+
119
+ function handleResult<T>(result: Result<T>): T | null {
120
+ if (result.success) {
121
+ return result.data // TypeScript knows data exists here
122
+ }
123
+ console.error(result.error)
124
+ return null
125
+ }
126
+ ```
127
+
128
+ ### Type Guards
129
+
130
+ ```typescript
131
+ // typeof guard
132
+ function process(value: string | number): string {
133
+ if (typeof value === 'string') {
134
+ return value.toUpperCase()
135
+ }
136
+ return value.toFixed(2)
137
+ }
138
+
139
+ // Custom type guard
140
+ interface User {
141
+ type: 'user'
142
+ name: string
143
+ }
144
+ interface Admin {
145
+ type: 'admin'
146
+ permissions: string[]
147
+ }
148
+
149
+ function isAdmin(person: User | Admin): person is Admin {
150
+ return person.type === 'admin'
151
+ }
152
+ ```
153
+
154
+ ### The `satisfies` Operator (TS 5.0+)
155
+
156
+ Validate type conformance while preserving inference:
157
+
158
+ ```typescript
159
+ // Problem: Type assertion loses specific type info
160
+ const colors1 = {
161
+ red: '#ff0000',
162
+ green: '#00ff00',
163
+ } as Record<string, string>
164
+
165
+ colors1.red.toUpperCase() // OK, but red could be undefined
166
+
167
+ // Solution: satisfies preserves literal types
168
+ const colors2 = {
169
+ red: '#ff0000',
170
+ green: '#00ff00',
171
+ } satisfies Record<string, string>
172
+
173
+ colors2.red.toUpperCase() // OK, and TypeScript knows red exists
174
+ ```
175
+
176
+ ## Generics Patterns
177
+
178
+ ### Basic Generic Function
179
+
180
+ ```typescript
181
+ function first<T>(items: T[]): T | undefined {
182
+ return items[0]
183
+ }
184
+
185
+ const num = first([1, 2, 3]) // number | undefined
186
+ const str = first(['a', 'b']) // string | undefined
187
+ ```
188
+
189
+ ### Constrained Generics
190
+
191
+ ```typescript
192
+ interface HasLength {
193
+ length: number
194
+ }
195
+
196
+ function logLength<T extends HasLength>(item: T): T {
197
+ console.log(item.length)
198
+ return item
199
+ }
200
+
201
+ logLength('hello') // OK: string has length
202
+ logLength([1, 2, 3]) // OK: array has length
203
+ logLength(42) // Error: number has no length
204
+ ```
205
+
206
+ ### Generic API Response Wrapper
207
+
208
+ ```typescript
209
+ interface ApiResponse<T> {
210
+ data: T
211
+ status: number
212
+ timestamp: Date
213
+ }
214
+
215
+ async function fetchUser(id: string): Promise<ApiResponse<User>> {
216
+ const response = await fetch(`/api/users/${id}`)
217
+ const data = await response.json()
218
+ return {
219
+ data,
220
+ status: response.status,
221
+ timestamp: new Date(),
222
+ }
223
+ }
224
+ ```
225
+
226
+ ## Utility Types Reference
227
+
228
+ | Type | Purpose | Example |
229
+ | --------------- | ----------------------------- | ---------------------------- |
230
+ | `Partial<T>` | All properties optional | `Partial<User>` |
231
+ | `Required<T>` | All properties required | `Required<Config>` |
232
+ | `Pick<T, K>` | Select specific properties | `Pick<User, "id" \| "name">` |
233
+ | `Omit<T, K>` | Exclude specific properties | `Omit<User, "password">` |
234
+ | `Record<K, V>` | Object with typed keys/values | `Record<string, number>` |
235
+ | `ReturnType<F>` | Extract function return type | `ReturnType<typeof fn>` |
236
+ | `Parameters<F>` | Extract function parameters | `Parameters<typeof fn>` |
237
+ | `Awaited<T>` | Unwrap Promise type | `Awaited<Promise<User>>` |
238
+
239
+ ## Conditional Types
240
+
241
+ ```typescript
242
+ // Basic conditional type
243
+ type IsString<T> = T extends string ? true : false
244
+
245
+ // Extract array element type
246
+ type ArrayElement<T> = T extends (infer E)[] ? E : never
247
+
248
+ type Numbers = ArrayElement<number[]> // number
249
+ type Strings = ArrayElement<string[]> // string
250
+
251
+ // Practical: Extract Promise result type
252
+ type UnwrapPromise<T> = T extends Promise<infer R> ? R : T
253
+ ```
254
+
255
+ ## Mapped Types
256
+
257
+ ```typescript
258
+ // Make all properties readonly
259
+ type Immutable<T> = {
260
+ readonly [K in keyof T]: T[K]
261
+ }
262
+
263
+ // Make all properties nullable
264
+ type Nullable<T> = {
265
+ [K in keyof T]: T[K] | null
266
+ }
267
+
268
+ // Create getter functions for each property
269
+ type Getters<T> = {
270
+ [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
271
+ }
272
+
273
+ interface Person {
274
+ name: string
275
+ age: number
276
+ }
277
+ type PersonGetters = Getters<Person>
278
+ // { getName: () => string; getAge: () => number }
279
+ ```
280
+
281
+ ## Framework Integration
282
+
283
+ ### React with TypeScript
284
+
285
+ ```typescript
286
+ // Typed functional component
287
+ interface ButtonProps {
288
+ label: string;
289
+ onClick: () => void;
290
+ variant?: "primary" | "secondary";
291
+ }
292
+
293
+ const Button: React.FC<ButtonProps> = ({ label, onClick, variant = "primary" }) => (
294
+ <button className={variant} onClick={onClick}>
295
+ {label}
296
+ </button>
297
+ );
298
+
299
+ // Typed hooks
300
+ const [count, setCount] = useState<number>(0);
301
+ const userRef = useRef<HTMLInputElement>(null);
302
+ ```
303
+
304
+ ### NestJS with TypeScript
305
+
306
+ ```typescript
307
+ // Type-safe DTO with class-validator
308
+ import { IsString, IsEmail, MinLength } from 'class-validator'
309
+
310
+ class CreateUserDto {
311
+ @IsString()
312
+ @MinLength(2)
313
+ name: string
314
+
315
+ @IsEmail()
316
+ email: string
317
+ }
318
+
319
+ // Or with Zod (modern approach)
320
+ import { z } from 'zod'
321
+
322
+ const CreateUserSchema = z.object({
323
+ name: z.string().min(2),
324
+ email: z.string().email(),
325
+ })
326
+
327
+ type CreateUserDto = z.infer<typeof CreateUserSchema>
328
+ ```
329
+
330
+ See [react-integration.md](references/react-integration.md) and [nestjs-integration.md](references/nestjs-integration.md) for detailed patterns.
331
+
332
+ ## Validation with Zod
333
+
334
+ ```typescript
335
+ import { z } from 'zod'
336
+
337
+ // Define schema
338
+ const UserSchema = z.object({
339
+ id: z.string().uuid(),
340
+ name: z.string().min(1).max(100),
341
+ email: z.string().email(),
342
+ role: z.enum(['user', 'admin', 'moderator']),
343
+ createdAt: z.coerce.date(),
344
+ })
345
+
346
+ // Infer TypeScript type from schema
347
+ type User = z.infer<typeof UserSchema>
348
+
349
+ // Validate at runtime
350
+ function parseUser(data: unknown): User {
351
+ return UserSchema.parse(data) // Throws ZodError if invalid
352
+ }
353
+
354
+ // Safe parsing (returns result object)
355
+ const result = UserSchema.safeParse(data)
356
+ if (result.success) {
357
+ console.log(result.data) // Typed as User
358
+ } else {
359
+ console.error(result.error.issues)
360
+ }
361
+ ```
362
+
363
+ ## Modern Toolchain (2025)
364
+
365
+ | Tool | Version | Purpose |
366
+ | ---------- | ------- | ----------------------------- |
367
+ | TypeScript | 6.0+ | Type checking and compilation |
368
+ | Node.js | 25.3+ | Runtime environment |
369
+ | Vite | 7.x | Build tool and dev server |
370
+ | pnpm | 9.x | Package manager |
371
+ | ESLint | 9.x | Linting with flat config |
372
+ | Vitest | 3.x | Testing framework |
373
+ | Prettier | 3.x | Code formatting |
374
+
375
+ ### ESLint Flat Config (ESLint 9+)
376
+
377
+ ```javascript
378
+ // eslint.config.js
379
+ import eslint from '@eslint/js'
380
+ import tseslint from 'typescript-eslint'
381
+
382
+ export default tseslint.config(eslint.configs.recommended, ...tseslint.configs.strictTypeChecked, {
383
+ languageOptions: {
384
+ parserOptions: {
385
+ projectService: true,
386
+ tsconfigRootDir: import.meta.dirname,
387
+ },
388
+ },
389
+ })
390
+ ```
391
+
392
+ ## Migration Strategies
393
+
394
+ ### Incremental Migration
395
+
396
+ 1. Add `allowJs: true` and `checkJs: false` to tsconfig.json
397
+ 2. Rename files from `.js` to `.ts` one at a time
398
+ 3. Add type annotations gradually
399
+ 4. Enable stricter options incrementally
400
+
401
+ ### JSDoc for Gradual Typing
402
+
403
+ ```javascript
404
+ // Before full migration, use JSDoc
405
+ /**
406
+ * @param {string} name
407
+ * @param {number} age
408
+ * @returns {User}
409
+ */
410
+ function createUser(name, age) {
411
+ return { name, age }
412
+ }
413
+ ```
414
+
415
+ See [enterprise-patterns.md](references/enterprise-patterns.md) for comprehensive migration guides.
416
+
417
+ ## Common Mistakes
418
+
419
+ | Mistake | Problem | Fix |
420
+ | ----------------------- | -------------------------- | -------------------------- |
421
+ | Using `any` liberally | Defeats type safety | Use `unknown` and narrow |
422
+ | Ignoring strict mode | Misses null/undefined bugs | Enable all strict options |
423
+ | Type assertions (`as`) | Can hide type errors | Use `satisfies` or guards |
424
+ | Enum for simple unions | Generates runtime code | Use literal unions instead |
425
+ | Not validating API data | Runtime type mismatches | Use Zod at boundaries |
426
+
427
+ ## Cross-Language Comparison
428
+
429
+ | Feature | TypeScript | Java | Python |
430
+ | ----------- | ---------------------- | ----------------------- | --------------------- |
431
+ | Type System | Structural | Nominal | Gradual (duck typing) |
432
+ | Nullability | Explicit (`T \| null`) | `@Nullable` annotations | Optional via typing |
433
+ | Generics | Type-level, erased | Type-level, erased | Runtime via typing |
434
+ | Interfaces | Structural matching | Must implement | Protocol (3.8+) |
435
+ | Enums | Avoid (use unions) | First-class | Enum class |
436
+
437
+ ## Reference Files
438
+
439
+ - [type-system.md](references/type-system.md) — Complete type system guide
440
+ - [generics.md](references/generics.md) — Advanced generics patterns
441
+ - [enterprise-patterns.md](references/enterprise-patterns.md) — Error handling, validation, architecture
442
+ - [react-integration.md](references/react-integration.md) — React + TypeScript patterns
443
+ - [nestjs-integration.md](references/nestjs-integration.md) — NestJS API development
444
+ - [toolchain.md](references/toolchain.md) — Modern build tools configuration
445
+
446
+ ## Assets
447
+
448
+ - [tsconfig-template.json](assets/tsconfig-template.json) — Strict enterprise config
449
+ - [eslint-template.js](assets/eslint-template.js) — ESLint 9 flat config
450
+
451
+ ## Scripts
452
+
453
+ - [validate-setup.sh](scripts/validate-setup.sh) — Verify TypeScript environment
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: vercel-ai-sdk
3
+ description: |
4
+ Vercel AI SDK best practices and patterns. Use when building AI applications with React/Next.js and `@ai-sdk/react`, `@ai-sdk/core`, or `@ai-sdk/ui`. Covers `useChat`, `streamText`, `generateObject`, tool calling, and streaming architectures. SECURITY: Never pass raw user inputs to executable tools without strict Zod schema validation.
5
+ ---
6
+
7
+ # Vercel AI SDK Guidelines
8
+
9
+ The Vercel AI SDK is the de facto standard for building streaming AI applications in TypeScript and React.
10
+
11
+ ## 1. Core API (`@ai-sdk/core`)
12
+
13
+ - **Text Generation**: Use `streamText` for any user-facing chat or text response to minimize perceived latency. Only use `generateText` for background tasks where the user is not waiting for a real-time response.
14
+ - **Structured Outputs**: Use `streamObject` or `generateObject` paired with Zod schemas to guarantee type-safe JSON outputs. Never prompt the model manually to "return JSON".
15
+ - **Tool Calling**: Define tools using the `tool()` helper with strict Zod schemas.
16
+
17
+ ```typescript
18
+ import { streamText, tool } from 'ai'
19
+ import { z } from 'zod'
20
+
21
+ const result = streamText({
22
+ model: myModel,
23
+ messages,
24
+ tools: {
25
+ weather: tool({
26
+ description: 'Get the weather in a location',
27
+ parameters: z.object({ location: z.string() }),
28
+ execute: async ({ location }) => fetchWeather(location),
29
+ }),
30
+ },
31
+ })
32
+ ```
33
+
34
+ ## 2. UI Hooks (`@ai-sdk/react`)
35
+
36
+ - **`useChat`**: The primary hook for conversational interfaces. It automatically manages message history, streaming state, and tool invocations.
37
+ - **Error Handling**: Implement the `onError` callback in `useChat` to gracefully handle API rate limits or network failures.
38
+ - **Data Streaming**: Use the `data` property exported from `useChat` to stream auxiliary data (like tool execution metadata or citations) alongside the main text stream.
39
+
40
+ ## 3. Server Actions & Next.js Integration
41
+
42
+ - **App Router**: When using Next.js App Router, implement Route Handlers (`app/api/chat/route.ts`) that return `result.toDataStreamResponse()` for seamless streaming to `useChat`.
43
+ - **RSC (React Server Components)**: For generative UI, use the `ai/rsc` module to stream React components directly from the server to the client.
44
+
45
+ ## 4. Security & Safety
46
+
47
+ - **Rate Limiting**: Always apply rate limiting to your chat endpoints, as LLM APIs are expensive and vulnerable to abuse.
48
+ - **Provider API Keys**: Ensure `OPENAI_API_KEY` (or equivalent) is strictly kept server-side. Never expose these keys to the client.
@@ -3,8 +3,9 @@ name: vitest-standard
3
3
  description: |
4
4
  Comprehensive unit testing expertise covering Vitest, test-driven
5
5
  development (TDD), mocking strategies, and production-grade best practices.
6
- Activates for unit testing, Vitest, TDD, Red-Green-Refactor, mocking,
7
- stubbing, spying, test coverage, and test architecture in TypeScript/Node projects.
6
+ Activates ONLY for unit testing scope (unit tests, integration tests, Vitest, TDD, Red-Green-Refactor, mocking,
7
+ stubbing, spying, test coverage, and test architecture in TypeScript/Node projects). NOT for E2E testing (use Playwright).
8
+ If the user asks to "write tests" without specifying the type, you MUST ask "Unit, E2E, or both?" before proceeding.
8
9
  ---
9
10
 
10
11
  # Vitest Standard
@@ -23,6 +24,7 @@ This skill provides opinionated, production-tested guidance for high-integrity u
23
24
  8. **Meaningful Names** — Use `it('should [action] when [condition]')` or Given-When-Then.
24
25
  9. **Mock at Boundaries** — Mock external APIs, databases, and third-party SDKs; test your own logic.
25
26
  10. **Red-Green-Refactor** — Prefer writing tests before code to drive API design.
27
+ 11. **Security** — Use fake/mock credentials in all tests — never real API keys, tokens, or passwords. Load sensitive test config from `.env.test.local` (gitignored).
26
28
 
27
29
  ## Core Patterns
28
30
 
@@ -56,15 +58,7 @@ it('mocks dependencies', () => {
56
58
 
57
59
  ## Quick Reference: Assertions
58
60
 
59
- | Assertion | Purpose |
60
- | :----------------------- | :----------------------------- |
61
- | `toBe(val)` | Strict equality (`===`) |
62
- | `toEqual(val)` | Deep equality (objects/arrays) |
63
- | `toMatchObject(obj)` | Partial match on an object |
64
- | `toThrow(error?)` | Validates a thrown error |
65
- | `toHaveBeenCalledWith()` | Verifies mock call arguments |
66
- | `resolves.toEqual()` | Validates a fulfilled promise |
67
- | `rejects.toThrow()` | Validates a rejected promise |
61
+ See **[assertions.md](references/assertions.md)** for a full list of Vitest assertions (`toBe`, `toEqual`, `toThrow`, etc.). This reference is auto-loaded only when writing test assertions.
68
62
 
69
63
  ---
70
64
 
@@ -0,0 +1,11 @@
1
+ # Vitest Assertions Quick Reference
2
+
3
+ | Assertion | Purpose |
4
+ | :----------------------- | :----------------------------- |
5
+ | `toBe(val)` | Strict equality (`===`) |
6
+ | `toEqual(val)` | Deep equality (objects/arrays) |
7
+ | `toMatchObject(obj)` | Partial match on an object |
8
+ | `toThrow(error?)` | Validates a thrown error |
9
+ | `toHaveBeenCalledWith()` | Verifies mock call arguments |
10
+ | `resolves.toEqual()` | Validates a fulfilled promise |
11
+ | `rejects.toThrow()` | Validates a rejected promise |