zilmate 1.7.8 → 1.8.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 (446) hide show
  1. package/.agents/skills/agent-browser/SKILL.md +55 -0
  2. package/.agents/skills/agentmail/SKILL.md +282 -0
  3. package/.agents/skills/agentmail/references/webhooks.md +220 -0
  4. package/.agents/skills/agentmail/references/websockets.md +263 -0
  5. package/.agents/skills/ai-elements/SKILL.md +160 -0
  6. package/.agents/skills/ai-elements/references/agent.md +134 -0
  7. package/.agents/skills/ai-elements/references/artifact.md +84 -0
  8. package/.agents/skills/ai-elements/references/attachments.md +190 -0
  9. package/.agents/skills/ai-elements/references/audio-player.md +134 -0
  10. package/.agents/skills/ai-elements/references/canvas.md +34 -0
  11. package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
  12. package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
  13. package/.agents/skills/ai-elements/references/code-block.md +170 -0
  14. package/.agents/skills/ai-elements/references/commit.md +177 -0
  15. package/.agents/skills/ai-elements/references/confirmation.md +262 -0
  16. package/.agents/skills/ai-elements/references/connection.md +34 -0
  17. package/.agents/skills/ai-elements/references/context.md +126 -0
  18. package/.agents/skills/ai-elements/references/controls.md +32 -0
  19. package/.agents/skills/ai-elements/references/conversation.md +224 -0
  20. package/.agents/skills/ai-elements/references/edge.md +52 -0
  21. package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
  22. package/.agents/skills/ai-elements/references/file-tree.md +72 -0
  23. package/.agents/skills/ai-elements/references/image.md +146 -0
  24. package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
  25. package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
  26. package/.agents/skills/ai-elements/references/message.md +237 -0
  27. package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
  28. package/.agents/skills/ai-elements/references/model-selector.md +112 -0
  29. package/.agents/skills/ai-elements/references/node.md +73 -0
  30. package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
  31. package/.agents/skills/ai-elements/references/package-info.md +95 -0
  32. package/.agents/skills/ai-elements/references/panel.md +33 -0
  33. package/.agents/skills/ai-elements/references/persona.md +166 -0
  34. package/.agents/skills/ai-elements/references/plan.md +79 -0
  35. package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
  36. package/.agents/skills/ai-elements/references/queue.md +172 -0
  37. package/.agents/skills/ai-elements/references/reasoning.md +238 -0
  38. package/.agents/skills/ai-elements/references/sandbox.md +129 -0
  39. package/.agents/skills/ai-elements/references/schema-display.md +102 -0
  40. package/.agents/skills/ai-elements/references/shimmer.md +48 -0
  41. package/.agents/skills/ai-elements/references/snippet.md +64 -0
  42. package/.agents/skills/ai-elements/references/sources.md +209 -0
  43. package/.agents/skills/ai-elements/references/speech-input.md +163 -0
  44. package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
  45. package/.agents/skills/ai-elements/references/suggestion.md +124 -0
  46. package/.agents/skills/ai-elements/references/task.md +222 -0
  47. package/.agents/skills/ai-elements/references/terminal.md +103 -0
  48. package/.agents/skills/ai-elements/references/test-results.md +157 -0
  49. package/.agents/skills/ai-elements/references/tool.md +285 -0
  50. package/.agents/skills/ai-elements/references/toolbar.md +32 -0
  51. package/.agents/skills/ai-elements/references/transcription.md +120 -0
  52. package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
  53. package/.agents/skills/ai-elements/references/web-preview.md +200 -0
  54. package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
  55. package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
  56. package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
  57. package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
  58. package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
  59. package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
  60. package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
  61. package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
  62. package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
  63. package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
  64. package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
  65. package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
  66. package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
  67. package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
  68. package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
  69. package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
  70. package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
  71. package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
  72. package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
  73. package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
  74. package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
  75. package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
  76. package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
  77. package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
  78. package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
  79. package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
  80. package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
  81. package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
  82. package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
  83. package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
  84. package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
  85. package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
  86. package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
  87. package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
  88. package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
  89. package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
  90. package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
  91. package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
  92. package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
  93. package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
  94. package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
  95. package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
  96. package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
  97. package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
  98. package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
  99. package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
  100. package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
  101. package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
  102. package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
  103. package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
  104. package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
  105. package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
  106. package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
  107. package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
  108. package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
  109. package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
  110. package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
  111. package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
  112. package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  113. package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  114. package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
  115. package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
  116. package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
  117. package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
  118. package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
  119. package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
  120. package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
  121. package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
  122. package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
  123. package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
  124. package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
  125. package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
  126. package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
  127. package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  128. package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
  129. package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
  130. package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
  131. package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
  132. package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
  133. package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
  134. package/.agents/skills/ai-sdk/SKILL.md +78 -0
  135. package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
  136. package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
  137. package/.agents/skills/ai-sdk/references/devtools.md +52 -0
  138. package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
  139. package/.agents/skills/chat-sdk/SKILL.md +240 -0
  140. package/.agents/skills/composio/AGENTS.md +404 -0
  141. package/.agents/skills/composio/SKILL.md +55 -0
  142. package/.agents/skills/composio/rules/_template.md +38 -0
  143. package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
  144. package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
  145. package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
  146. package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
  147. package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
  148. package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
  149. package/.agents/skills/composio/rules/app-modifiers.md +148 -0
  150. package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
  151. package/.agents/skills/composio/rules/app-toolkits.md +184 -0
  152. package/.agents/skills/composio/rules/app-user-context.md +222 -0
  153. package/.agents/skills/composio/rules/building-with-composio.md +134 -0
  154. package/.agents/skills/composio/rules/composio-cli.md +223 -0
  155. package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
  156. package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
  157. package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
  158. package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
  159. package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
  160. package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
  161. package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
  162. package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
  163. package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
  164. package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
  165. package/.agents/skills/composio/rules/tr-session-config.md +172 -0
  166. package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
  167. package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
  168. package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
  169. package/.agents/skills/composio/rules/triggers-create.md +246 -0
  170. package/.agents/skills/composio/rules/triggers-manage.md +275 -0
  171. package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
  172. package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
  173. package/.agents/skills/create-auth-skill/SKILL.md +321 -0
  174. package/.agents/skills/design-md/README.md +34 -0
  175. package/.agents/skills/design-md/SKILL.md +172 -0
  176. package/.agents/skills/design-md/examples/DESIGN.md +154 -0
  177. package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
  178. package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
  179. package/.agents/skills/find-skills/SKILL.md +142 -0
  180. package/.agents/skills/firecrawl/SKILL.md +321 -0
  181. package/.agents/skills/firecrawl/rules/install.md +85 -0
  182. package/.agents/skills/firecrawl/rules/security.md +26 -0
  183. package/.agents/skills/frontend-design/LICENSE.txt +177 -0
  184. package/.agents/skills/frontend-design/SKILL.md +55 -0
  185. package/.agents/skills/linkup-search/SKILL.md +298 -0
  186. package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
  187. package/.agents/skills/mcp-builder/SKILL.md +236 -0
  188. package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
  189. package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  190. package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  191. package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  192. package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
  193. package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
  194. package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  195. package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
  196. package/.agents/skills/mobile-android-design/SKILL.md +101 -0
  197. package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
  198. package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
  199. package/.agents/skills/mobile-android-design/references/details.md +337 -0
  200. package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
  201. package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
  202. package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
  203. package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
  204. package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
  205. package/.agents/skills/neon-drizzle/SKILL.md +81 -0
  206. package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
  207. package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
  208. package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
  209. package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
  210. package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
  211. package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
  212. package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
  213. package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
  214. package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
  215. package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
  216. package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
  217. package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
  218. package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
  219. package/.agents/skills/neon-postgres/SKILL.md +376 -0
  220. package/.agents/skills/next-best-practices/SKILL.md +152 -0
  221. package/.agents/skills/next-best-practices/async-patterns.md +87 -0
  222. package/.agents/skills/next-best-practices/bundling.md +180 -0
  223. package/.agents/skills/next-best-practices/data-patterns.md +297 -0
  224. package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  225. package/.agents/skills/next-best-practices/directives.md +73 -0
  226. package/.agents/skills/next-best-practices/error-handling.md +227 -0
  227. package/.agents/skills/next-best-practices/file-conventions.md +140 -0
  228. package/.agents/skills/next-best-practices/font.md +245 -0
  229. package/.agents/skills/next-best-practices/functions.md +108 -0
  230. package/.agents/skills/next-best-practices/hydration-error.md +91 -0
  231. package/.agents/skills/next-best-practices/image.md +173 -0
  232. package/.agents/skills/next-best-practices/metadata.md +301 -0
  233. package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  234. package/.agents/skills/next-best-practices/route-handlers.md +146 -0
  235. package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  236. package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  237. package/.agents/skills/next-best-practices/scripts.md +141 -0
  238. package/.agents/skills/next-best-practices/self-hosting.md +371 -0
  239. package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  240. package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
  241. package/.agents/skills/playwright-cli/SKILL.md +404 -0
  242. package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
  243. package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
  244. package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
  245. package/.agents/skills/playwright-cli/references/running-code.md +241 -0
  246. package/.agents/skills/playwright-cli/references/session-management.md +225 -0
  247. package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
  248. package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
  249. package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
  250. package/.agents/skills/playwright-cli/references/tracing.md +139 -0
  251. package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
  252. package/.agents/skills/prisma-client-api/SKILL.md +216 -0
  253. package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
  254. package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
  255. package/.agents/skills/prisma-client-api/references/filters.md +256 -0
  256. package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
  257. package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
  258. package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
  259. package/.agents/skills/prisma-client-api/references/relations.md +308 -0
  260. package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
  261. package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
  262. package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
  263. package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
  264. package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
  265. package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
  266. package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
  267. package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
  268. package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
  269. package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
  270. package/.agents/skills/prisma-postgres/SKILL.md +127 -0
  271. package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
  272. package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
  273. package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
  274. package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
  275. package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
  276. package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
  277. package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  278. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  279. package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  280. package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  281. package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
  282. package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
  283. package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
  284. package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
  285. package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
  286. package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  287. package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  288. package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  289. package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
  290. package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
  291. package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
  292. package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
  293. package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  294. package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  295. package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
  296. package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
  297. package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
  298. package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  299. package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  300. package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
  301. package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
  302. package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
  303. package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
  304. package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
  305. package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
  306. package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
  307. package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
  308. package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  309. package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
  310. package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  311. package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
  312. package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
  313. package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
  314. package/.agents/skills/remotion-render/SKILL.md +212 -0
  315. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  316. package/.agents/skills/skill-creator/SKILL.md +485 -0
  317. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  318. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  319. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  320. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  321. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  322. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  323. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  324. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  325. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  326. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  327. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  328. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  329. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  330. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  331. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  332. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  333. package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
  334. package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
  335. package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
  336. package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
  337. package/.agents/skills/stripe-best-practices/references/security.md +109 -0
  338. package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
  339. package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
  340. package/.agents/skills/stripe-projects/SKILL.md +132 -0
  341. package/.agents/skills/supabase/CHANGELOG.md +35 -0
  342. package/.agents/skills/supabase/SKILL.md +135 -0
  343. package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
  344. package/.agents/skills/supabase/references/skill-feedback.md +17 -0
  345. package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
  346. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  347. package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  348. package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  349. package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  350. package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  351. package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  352. package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  353. package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  354. package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  355. package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  356. package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  357. package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  358. package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  359. package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  360. package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  361. package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  362. package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  363. package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  364. package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  365. package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  366. package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  367. package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  368. package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  369. package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  370. package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  371. package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  372. package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  373. package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  374. package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  375. package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  376. package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  377. package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  378. package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  379. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  380. package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  381. package/.agents/skills/supermemory/LICENSE +201 -0
  382. package/.agents/skills/supermemory/README.md +221 -0
  383. package/.agents/skills/supermemory/SKILL.md +172 -0
  384. package/.agents/skills/supermemory/references/api-reference.md +591 -0
  385. package/.agents/skills/supermemory/references/architecture.md +557 -0
  386. package/.agents/skills/supermemory/references/quickstart.md +293 -0
  387. package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
  388. package/.agents/skills/supermemory/references/use-cases.md +1033 -0
  389. package/.agents/skills/supermemory-cli/SKILL.md +490 -0
  390. package/.agents/skills/tdd/SKILL.md +108 -0
  391. package/.agents/skills/tdd/mocking.md +59 -0
  392. package/.agents/skills/tdd/refactoring.md +10 -0
  393. package/.agents/skills/tdd/tests.md +61 -0
  394. package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
  395. package/.agents/skills/ui-ux-pro-max/data +1 -0
  396. package/.agents/skills/ui-ux-pro-max/scripts +1 -0
  397. package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
  398. package/.agents/skills/vercel-react-native-skills/README.md +165 -0
  399. package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
  400. package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
  401. package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
  402. package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
  403. package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
  404. package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
  405. package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
  406. package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
  407. package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
  408. package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
  409. package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
  410. package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
  411. package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
  412. package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
  413. package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
  414. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
  415. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
  416. package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
  417. package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
  418. package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
  419. package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
  420. package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
  421. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
  422. package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
  423. package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
  424. package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
  425. package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
  426. package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
  427. package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
  428. package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
  429. package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
  430. package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
  431. package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
  432. package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
  433. package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
  434. package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
  435. package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
  436. package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
  437. package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
  438. package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
  439. package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  440. package/dist/cli/update.d.ts.map +1 -1
  441. package/dist/cli/update.js +19 -4
  442. package/dist/cli/update.js.map +1 -1
  443. package/dist/index.js +1 -1
  444. package/dist/tools/daytona-browser.tool.js +1 -1
  445. package/dist/tools/daytona-browser.tool.js.map +1 -1
  446. package/package.json +3 -2
@@ -0,0 +1,652 @@
1
+ # Migration Reference Guide
2
+
3
+ Complete guide for database migrations with Drizzle and Neon.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Migration Lifecycle](#migration-lifecycle)
8
+ - [Environment Loading Deep-Dive](#environment-loading-deep-dive)
9
+ - [Migration Patterns](#migration-patterns)
10
+ - [Advanced Patterns](#advanced-patterns)
11
+ - [Migration in CI/CD](#migration-in-cicd)
12
+ - [Common Migration Errors](#common-migration-errors)
13
+ - [Best Practices](#best-practices)
14
+ - [Related Resources](#related-resources)
15
+
16
+ ---
17
+
18
+ ## Migration Lifecycle
19
+
20
+ ### 1. Schema Change
21
+
22
+ Update your schema file:
23
+ ```typescript
24
+ // src/db/schema.ts
25
+ export const users = pgTable('users', {
26
+ id: serial('id').primaryKey(),
27
+ email: varchar('email', { length: 255 }).notNull(),
28
+ phoneNumber: varchar('phone_number', { length: 20 }), // NEW
29
+ });
30
+ ```
31
+
32
+ ### 2. Generate Migration
33
+
34
+ Run drizzle-kit to generate SQL:
35
+ ```bash
36
+ npm run drizzle-kit generate
37
+ ```
38
+
39
+ **What this does:**
40
+ - Compares schema.ts with database
41
+ - Generates SQL in migrations folder
42
+ - Creates migration metadata
43
+
44
+ **Output:**
45
+ ```
46
+ src/db/migrations/
47
+ ├── 0000_initial.sql
48
+ ├── 0001_add_phone_number.sql
49
+ └── meta/
50
+ ├── _journal.json
51
+ └── 0001_snapshot.json
52
+ ```
53
+
54
+ ### 3. Review Migration
55
+
56
+ **Always review** generated SQL before applying:
57
+ ```sql
58
+ -- 0001_add_phone_number.sql
59
+ ALTER TABLE users ADD COLUMN phone_number VARCHAR(20);
60
+ ```
61
+
62
+ ### 4. Apply Migration
63
+
64
+ Execute migration against database:
65
+ ```bash
66
+ npm run drizzle-kit migrate
67
+ ```
68
+
69
+ **Or with explicit env loading:**
70
+ ```bash
71
+ export DATABASE_URL="$(grep DATABASE_URL .env.local | cut -d '=' -f2)" && \
72
+ npm run drizzle-kit migrate
73
+ ```
74
+
75
+ ## Environment Loading Deep-Dive
76
+
77
+ ### Why Environment Loading Matters
78
+
79
+ **Problem:** drizzle-kit runs as separate process, may not inherit env vars.
80
+
81
+ **Symptom:**
82
+ ```
83
+ Error: url is undefined in dbCredentials
84
+ ```
85
+
86
+ ### Solution 1: Config File Loading (Recommended)
87
+
88
+ **drizzle.config.ts:**
89
+ ```typescript
90
+ import { defineConfig } from 'drizzle-kit';
91
+ import { config } from 'dotenv';
92
+
93
+ config({ path: '.env.local' });
94
+
95
+ export default defineConfig({
96
+ schema: './src/db/schema.ts',
97
+ out: './src/db/migrations',
98
+ dialect: 'postgresql',
99
+ dbCredentials: {
100
+ url: process.env.DATABASE_URL!,
101
+ },
102
+ });
103
+ ```
104
+
105
+ **Key:** `config({ path: '.env.local' })` loads before exporting config.
106
+
107
+ ### Solution 2: Shell Export
108
+
109
+ **Bash/Zsh:**
110
+ ```bash
111
+ export DATABASE_URL="$(grep DATABASE_URL .env.local | cut -d '=' -f2)" && \
112
+ npm run drizzle-kit migrate
113
+ ```
114
+
115
+ **Fish:**
116
+ ```fish
117
+ set -x DATABASE_URL (grep DATABASE_URL .env.local | cut -d '=' -f2)
118
+ npm run drizzle-kit migrate
119
+ ```
120
+
121
+ **PowerShell:**
122
+ ```powershell
123
+ $env:DATABASE_URL = (Select-String -Path .env.local -Pattern "DATABASE_URL").Line.Split("=")[1]
124
+ npm run drizzle-kit migrate
125
+ ```
126
+
127
+ ### Solution 3: NPM Scripts
128
+
129
+ **package.json:**
130
+ ```json
131
+ {
132
+ "scripts": {
133
+ "db:generate": "drizzle-kit generate",
134
+ "db:migrate": "dotenv -e .env.local -- drizzle-kit migrate",
135
+ "db:push": "dotenv -e .env.local -- drizzle-kit push"
136
+ }
137
+ }
138
+ ```
139
+
140
+ **Install dotenv-cli:**
141
+ ```bash
142
+ npm add -D dotenv-cli
143
+ ```
144
+
145
+ ### Solution 4: Programmatic Migration
146
+
147
+ **scripts/migrate.ts:**
148
+ ```typescript
149
+ import { drizzle } from 'drizzle-orm/neon-http';
150
+ import { neon } from '@neondatabase/serverless';
151
+ import { migrate } from 'drizzle-orm/neon-http/migrator';
152
+ import { config } from 'dotenv';
153
+
154
+ config({ path: '.env.local' });
155
+
156
+ const sql = neon(process.env.DATABASE_URL!);
157
+ const db = drizzle(sql);
158
+
159
+ await migrate(db, { migrationsFolder: './src/db/migrations' });
160
+ console.log('Migrations complete');
161
+ ```
162
+
163
+ **Run:**
164
+ ```bash
165
+ tsx scripts/migrate.ts
166
+ ```
167
+
168
+ ## Migration Patterns
169
+
170
+ ### Initial Setup
171
+
172
+ **First migration creates all tables:**
173
+ ```sql
174
+ -- 0000_initial.sql
175
+ CREATE TABLE users (
176
+ id SERIAL PRIMARY KEY,
177
+ email VARCHAR(255) NOT NULL UNIQUE,
178
+ name VARCHAR(255) NOT NULL,
179
+ created_at TIMESTAMP DEFAULT NOW()
180
+ );
181
+
182
+ CREATE TABLE posts (
183
+ id SERIAL PRIMARY KEY,
184
+ user_id INTEGER NOT NULL REFERENCES users(id),
185
+ title TEXT NOT NULL,
186
+ content TEXT NOT NULL,
187
+ created_at TIMESTAMP DEFAULT NOW()
188
+ );
189
+
190
+ CREATE INDEX posts_user_id_idx ON posts(user_id);
191
+ ```
192
+
193
+ ### Adding Columns
194
+
195
+ **Schema:**
196
+ ```typescript
197
+ export const users = pgTable('users', {
198
+ id: serial('id').primaryKey(),
199
+ email: varchar('email', { length: 255 }).notNull(),
200
+ phoneNumber: varchar('phone_number', { length: 20 }), // NEW
201
+ });
202
+ ```
203
+
204
+ **Generated:**
205
+ ```sql
206
+ ALTER TABLE users ADD COLUMN phone_number VARCHAR(20);
207
+ ```
208
+
209
+ ### Dropping Columns
210
+
211
+ **Schema:**
212
+ ```typescript
213
+ export const users = pgTable('users', {
214
+ id: serial('id').primaryKey(),
215
+ email: varchar('email', { length: 255 }).notNull(),
216
+ // removed: phoneNumber
217
+ });
218
+ ```
219
+
220
+ **Generated:**
221
+ ```sql
222
+ ALTER TABLE users DROP COLUMN phone_number;
223
+ ```
224
+
225
+ **Warning:** Data loss! Back up first.
226
+
227
+ ### Renaming Columns
228
+
229
+ **Problem:** Drizzle sees rename as drop + add (data loss).
230
+
231
+ **Schema:**
232
+ ```typescript
233
+ export const users = pgTable('users', {
234
+ id: serial('id').primaryKey(),
235
+ fullName: varchar('full_name', { length: 255 }), // was 'name'
236
+ });
237
+ ```
238
+
239
+ **Generated (WRONG):**
240
+ ```sql
241
+ ALTER TABLE users DROP COLUMN name;
242
+ ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
243
+ ```
244
+
245
+ **Solution:** Manually edit migration:
246
+ ```sql
247
+ -- Change to:
248
+ ALTER TABLE users RENAME COLUMN name TO full_name;
249
+ ```
250
+
251
+ ### Changing Column Types
252
+
253
+ **Schema:**
254
+ ```typescript
255
+ export const posts = pgTable('posts', {
256
+ id: serial('id').primaryKey(),
257
+ views: bigint('views', { mode: 'number' }), // was integer
258
+ });
259
+ ```
260
+
261
+ **Generated:**
262
+ ```sql
263
+ ALTER TABLE posts ALTER COLUMN views TYPE BIGINT;
264
+ ```
265
+
266
+ **Caution:** May require data migration if types incompatible.
267
+
268
+ ### Adding Indexes
269
+
270
+ **Schema:**
271
+ ```typescript
272
+ export const posts = pgTable('posts', {
273
+ id: serial('id').primaryKey(),
274
+ title: text('title').notNull(),
275
+ }, (table) => ({
276
+ titleIdx: index('posts_title_idx').on(table.title), // NEW
277
+ }));
278
+ ```
279
+
280
+ **Generated:**
281
+ ```sql
282
+ CREATE INDEX posts_title_idx ON posts(title);
283
+ ```
284
+
285
+ ### Adding Foreign Keys
286
+
287
+ **Schema:**
288
+ ```typescript
289
+ export const comments = pgTable('comments', {
290
+ id: serial('id').primaryKey(),
291
+ postId: serial('post_id')
292
+ .notNull()
293
+ .references(() => posts.id), // NEW
294
+ content: text('content').notNull(),
295
+ });
296
+ ```
297
+
298
+ **Generated:**
299
+ ```sql
300
+ ALTER TABLE comments
301
+ ADD CONSTRAINT comments_post_id_fkey
302
+ FOREIGN KEY (post_id) REFERENCES posts(id);
303
+ ```
304
+
305
+ ### Adding Constraints
306
+
307
+ **Unique:**
308
+ ```typescript
309
+ export const users = pgTable('users', {
310
+ id: serial('id').primaryKey(),
311
+ email: varchar('email', { length: 255 }).notNull().unique(),
312
+ });
313
+ ```
314
+
315
+ **Generated:**
316
+ ```sql
317
+ ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE (email);
318
+ ```
319
+
320
+ **Check:**
321
+ ```typescript
322
+ export const products = pgTable('products', {
323
+ id: serial('id').primaryKey(),
324
+ price: integer('price').notNull(),
325
+ }, (table) => ({
326
+ priceCheck: check('price_check', 'price >= 0'),
327
+ }));
328
+ ```
329
+
330
+ **Generated:**
331
+ ```sql
332
+ ALTER TABLE products ADD CONSTRAINT price_check CHECK (price >= 0);
333
+ ```
334
+
335
+ ## Advanced Patterns
336
+
337
+ ### Data Migrations
338
+
339
+ **Scenario:** Add column with computed value from existing data.
340
+
341
+ **Step 1:** Generate migration:
342
+ ```bash
343
+ npm run drizzle-kit generate
344
+ ```
345
+
346
+ **Step 2:** Edit migration to add data transformation:
347
+ ```sql
348
+ -- Add column
349
+ ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
350
+
351
+ -- Populate with data
352
+ UPDATE users SET full_name = first_name || ' ' || last_name;
353
+
354
+ -- Make not null after population
355
+ ALTER TABLE users ALTER COLUMN full_name SET NOT NULL;
356
+ ```
357
+
358
+ ### Conditional Migrations
359
+
360
+ **Add IF NOT EXISTS for idempotency:**
361
+ ```sql
362
+ ALTER TABLE users
363
+ ADD COLUMN IF NOT EXISTS phone_number VARCHAR(20);
364
+
365
+ CREATE INDEX IF NOT EXISTS posts_title_idx ON posts(title);
366
+ ```
367
+
368
+ **Useful for:**
369
+ - Re-running migrations
370
+ - Partial deployments
371
+ - Development environments
372
+
373
+ ### Multi-Step Migrations
374
+
375
+ **Scenario:** Rename with zero downtime.
376
+
377
+ **Migration 1 (Deploy this first):**
378
+ ```sql
379
+ -- Add new column
380
+ ALTER TABLE users ADD COLUMN full_name VARCHAR(255);
381
+
382
+ -- Copy data
383
+ UPDATE users SET full_name = name;
384
+ ```
385
+
386
+ **Application update:** Write to both `name` and `full_name`.
387
+
388
+ **Migration 2 (Deploy after apps updated):**
389
+ ```sql
390
+ -- Make new column not null
391
+ ALTER TABLE users ALTER COLUMN full_name SET NOT NULL;
392
+
393
+ -- Drop old column
394
+ ALTER TABLE users DROP COLUMN name;
395
+ ```
396
+
397
+ ### Rollback Strategies
398
+
399
+ **Option 1: Down migrations (manual)**
400
+
401
+ Create reverse migration:
402
+ ```sql
403
+ -- up.sql
404
+ ALTER TABLE users ADD COLUMN phone_number VARCHAR(20);
405
+
406
+ -- down.sql (create manually)
407
+ ALTER TABLE users DROP COLUMN phone_number;
408
+ ```
409
+
410
+ **Option 2: Snapshot and restore**
411
+
412
+ **Before migration:**
413
+ ```bash
414
+ pg_dump $DATABASE_URL > backup.sql
415
+ ```
416
+
417
+ **If problems:**
418
+ ```bash
419
+ psql $DATABASE_URL < backup.sql
420
+ ```
421
+
422
+ **Option 3: Drizzle push (dev only)**
423
+
424
+ Reset to schema state:
425
+ ```bash
426
+ npm run drizzle-kit push --force
427
+ ```
428
+
429
+ **Warning:** Data loss in dev!
430
+
431
+ ## Migration in CI/CD
432
+
433
+ ### GitHub Actions Example
434
+
435
+ ```yaml
436
+ name: Deploy
437
+
438
+ on:
439
+ push:
440
+ branches: [main]
441
+
442
+ jobs:
443
+ deploy:
444
+ runs-on: ubuntu-latest
445
+ steps:
446
+ - uses: actions/checkout@v3
447
+
448
+ - name: Install dependencies
449
+ run: npm ci
450
+
451
+ - name: Run migrations
452
+ env:
453
+ DATABASE_URL: ${{ secrets.DATABASE_URL }}
454
+ run: npm run db:migrate
455
+
456
+ - name: Deploy application
457
+ run: npm run deploy
458
+ ```
459
+
460
+ ### Vercel Example
461
+
462
+ **vercel.json:**
463
+ ```json
464
+ {
465
+ "buildCommand": "npm run build && npm run db:migrate",
466
+ "env": {
467
+ "DATABASE_URL": "@database_url"
468
+ }
469
+ }
470
+ ```
471
+
472
+ **package.json:**
473
+ ```json
474
+ {
475
+ "scripts": {
476
+ "build": "next build",
477
+ "db:migrate": "drizzle-kit migrate"
478
+ }
479
+ }
480
+ ```
481
+
482
+ ### Safety Checks
483
+
484
+ **Pre-migration script:**
485
+ ```typescript
486
+ // scripts/pre-migrate.ts
487
+ import { drizzle } from 'drizzle-orm/neon-http';
488
+ import { neon } from '@neondatabase/serverless';
489
+
490
+ const sql = neon(process.env.DATABASE_URL!);
491
+ const db = drizzle(sql);
492
+
493
+ async function preMigrationChecks() {
494
+ try {
495
+ await sql`SELECT 1`;
496
+ console.log('✅ Database connection successful');
497
+
498
+ const tables = await sql`
499
+ SELECT tablename FROM pg_tables
500
+ WHERE schemaname = 'public'
501
+ `;
502
+ console.log(`✅ Found ${tables.length} tables`);
503
+
504
+ return true;
505
+ } catch (err) {
506
+ console.error('❌ Pre-migration check failed:', err);
507
+ process.exit(1);
508
+ }
509
+ }
510
+
511
+ preMigrationChecks();
512
+ ```
513
+
514
+ ## Common Migration Errors
515
+
516
+ ### Error: "migration already applied"
517
+
518
+ **Cause:** Journal shows migration as applied.
519
+
520
+ **Solution:**
521
+ ```bash
522
+ # Check journal
523
+ cat src/db/migrations/meta/_journal.json
524
+
525
+ # Remove entry if needed (dev only!)
526
+ # Or regenerate migrations
527
+ rm -rf src/db/migrations/*
528
+ npm run drizzle-kit generate
529
+ ```
530
+
531
+ ### Error: "column already exists"
532
+
533
+ **Cause:** Schema out of sync with database.
534
+
535
+ **Solutions:**
536
+
537
+ **Option 1:** Edit migration to use IF NOT EXISTS:
538
+ ```sql
539
+ ALTER TABLE users
540
+ ADD COLUMN IF NOT EXISTS phone_number VARCHAR(20);
541
+ ```
542
+
543
+ **Option 2:** Reset migrations (dev only):
544
+ ```bash
545
+ npm run drizzle-kit drop # Drops all tables!
546
+ npm run drizzle-kit migrate
547
+ ```
548
+
549
+ ### Error: "violates foreign key constraint"
550
+
551
+ **Cause:** Trying to drop table referenced by foreign keys.
552
+
553
+ **Solution:** Drop in reverse dependency order:
554
+ ```sql
555
+ DROP TABLE comments; -- First (depends on posts)
556
+ DROP TABLE posts; -- Then (depends on users)
557
+ DROP TABLE users; -- Finally
558
+ ```
559
+
560
+ Or use CASCADE (data loss!):
561
+ ```sql
562
+ DROP TABLE users CASCADE;
563
+ ```
564
+
565
+ ### Error: "cannot drop column"
566
+
567
+ **Cause:** Column referenced by views, functions, or constraints.
568
+
569
+ **Solution:**
570
+ ```sql
571
+ -- Find dependencies
572
+ SELECT * FROM information_schema.view_column_usage
573
+ WHERE column_name = 'your_column';
574
+
575
+ -- Drop views first
576
+ DROP VIEW view_name;
577
+
578
+ -- Then drop column
579
+ ALTER TABLE users DROP COLUMN your_column;
580
+ ```
581
+
582
+ ## Best Practices
583
+
584
+ ### 1. Always Review Generated SQL
585
+
586
+ Don't blindly apply migrations:
587
+ ```bash
588
+ # Generate
589
+ npm run drizzle-kit generate
590
+
591
+ # Review
592
+ cat src/db/migrations/0001_*.sql
593
+
594
+ # Apply only after review
595
+ npm run drizzle-kit migrate
596
+ ```
597
+
598
+ ### 2. Test Migrations in Development
599
+
600
+ **Before production:**
601
+ ```bash
602
+ # On dev database
603
+ export DATABASE_URL=$DEV_DATABASE_URL
604
+ npm run db:migrate
605
+
606
+ # Test application
607
+ npm run test
608
+
609
+ # Only then deploy to production
610
+ ```
611
+
612
+ ### 3. Back Up Before Major Migrations
613
+
614
+ ```bash
615
+ pg_dump $DATABASE_URL > backup_$(date +%Y%m%d).sql
616
+ ```
617
+
618
+ ### 4. Use Transactions (when possible)
619
+
620
+ Wrap multiple operations:
621
+ ```sql
622
+ BEGIN;
623
+
624
+ ALTER TABLE users ADD COLUMN phone_number VARCHAR(20);
625
+ UPDATE users SET phone_number = '000-000-0000' WHERE phone_number IS NULL;
626
+ ALTER TABLE users ALTER COLUMN phone_number SET NOT NULL;
627
+
628
+ COMMIT;
629
+ ```
630
+
631
+ ### 5. Document Breaking Changes
632
+
633
+ Add comments in migration files:
634
+ ```sql
635
+ -- Breaking change: Removing deprecated 'username' column
636
+ -- Applications must use 'email' instead
637
+ -- Migration date: 2024-01-15
638
+ ALTER TABLE users DROP COLUMN username;
639
+ ```
640
+
641
+ ### 6. Keep Migrations Small
642
+
643
+ One logical change per migration:
644
+ - ✅ Good: "Add phone number column"
645
+ - ❌ Bad: "Add phone number, refactor users table, update indexes"
646
+
647
+ ## Related Resources
648
+
649
+ - `guides/troubleshooting.md` - Migration error solutions
650
+ - `guides/schema-only.md` - Schema change patterns
651
+ - `references/adapters.md` - Connection configuration
652
+ - Scripts: `scripts/run-migration.ts`