@thierrynakoa/fire-flow 12.2.1 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -455
  4. package/TROUBLESHOOTING.md +264 -264
  5. package/agents/fire-debugger.md +54 -0
  6. package/agents/fire-executor.md +1610 -1033
  7. package/agents/fire-fact-checker.md +1 -1
  8. package/agents/fire-planner.md +85 -17
  9. package/agents/fire-project-researcher.md +1 -1
  10. package/agents/fire-researcher.md +4 -22
  11. package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
  12. package/agents/fire-reviewer.md +552 -499
  13. package/agents/fire-verifier.md +114 -19
  14. package/bin/cli.js +18 -101
  15. package/commands/fire-0-orient.md +2 -2
  16. package/commands/fire-1a-new.md +50 -15
  17. package/commands/fire-1c-setup.md +33 -5
  18. package/commands/fire-1d-discuss.md +87 -1
  19. package/commands/fire-2-plan.md +556 -527
  20. package/commands/fire-3-execute.md +2046 -1356
  21. package/commands/fire-4-verify.md +975 -906
  22. package/commands/fire-5-handoff.md +46 -5
  23. package/commands/fire-6-resume.md +2 -31
  24. package/commands/fire-add-new-skill.md +138 -19
  25. package/commands/fire-autonomous.md +14 -2
  26. package/commands/fire-complete-milestone.md +1 -1
  27. package/commands/fire-cost.md +179 -183
  28. package/commands/fire-debug.md +1 -6
  29. package/commands/fire-loop-resume.md +2 -2
  30. package/commands/fire-loop-stop.md +1 -1
  31. package/commands/fire-loop.md +2 -15
  32. package/commands/fire-map-codebase.md +1 -1
  33. package/commands/fire-migrate-database.md +548 -0
  34. package/commands/fire-new-milestone.md +1 -1
  35. package/commands/fire-reflect.md +1 -2
  36. package/commands/fire-research.md +142 -21
  37. package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
  38. package/commands/fire-scaffold.md +297 -0
  39. package/commands/fire-search.md +1 -2
  40. package/commands/fire-security-scan.md +483 -484
  41. package/commands/fire-setup.md +359 -0
  42. package/commands/fire-skill.md +770 -0
  43. package/commands/fire-skills-diff.md +506 -506
  44. package/commands/fire-skills-history.md +388 -388
  45. package/commands/fire-skills-rollback.md +7 -7
  46. package/commands/fire-skills-sync.md +470 -470
  47. package/commands/fire-test.md +5 -5
  48. package/commands/fire-todos.md +1 -1
  49. package/commands/fire-update.md +5 -5
  50. package/commands/fire-validate-skills.md +282 -0
  51. package/commands/fire-vuln-scan.md +492 -493
  52. package/hooks/run-hook.sh +8 -8
  53. package/hooks/run-session-end.sh +7 -7
  54. package/hooks/session-end.sh +90 -90
  55. package/hooks/session-start.sh +1 -1
  56. package/package.json +4 -24
  57. package/plugin.json +7 -7
  58. package/references/autonomy-levels.md +235 -0
  59. package/references/behavioral-directives.md +95 -3
  60. package/references/blocker-tracking.md +1 -1
  61. package/references/circuit-breaker.md +93 -2
  62. package/references/context-engineering.md +227 -9
  63. package/references/honesty-protocols.md +70 -1
  64. package/references/issue-to-pr-pipeline.md +149 -150
  65. package/references/metrics-and-trends.md +1 -2
  66. package/references/research-improvements.md +4 -108
  67. package/references/sdlc-mapping.md +73 -0
  68. package/references/state-machine.md +151 -0
  69. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  70. package/skills-library/SKILLS-INDEX.md +57 -558
  71. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  72. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  73. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  74. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  75. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  76. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  77. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  78. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  79. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  80. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  81. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  82. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  83. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  84. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  85. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  86. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  87. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  88. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  89. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  90. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  91. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  92. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  93. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  94. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  95. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  96. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  97. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  98. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  99. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  100. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  101. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  102. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  103. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  104. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  105. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  106. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  107. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  108. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  109. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  110. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  111. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  112. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  113. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  114. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  115. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  116. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  117. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  118. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  119. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  120. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  121. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  122. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  123. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  124. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  125. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  126. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  127. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  128. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  129. package/skills-library/_quarantine/README.md +30 -0
  130. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  131. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  132. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  133. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  134. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  135. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  136. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  137. package/skills-library/appointment-scheduler-design.md +423 -0
  138. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  139. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  140. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  141. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  142. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  143. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  144. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  145. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  146. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  151. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  152. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  153. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  154. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  155. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  156. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  157. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  158. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  159. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  160. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  161. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  162. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  163. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  164. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  165. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  166. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  167. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  168. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  169. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  170. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  171. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  172. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  173. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  174. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  175. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  176. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  177. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  178. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  179. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  180. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  182. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  183. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  184. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  185. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  186. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  187. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  188. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  189. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  190. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  191. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  192. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  193. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  194. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  195. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  196. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  197. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  198. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  199. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  200. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  201. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  202. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  203. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  204. package/skills-library/database-solutions/normalization-validator.md +778 -0
  205. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  206. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  207. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  208. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  209. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  210. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  211. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  212. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  213. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  215. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  216. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  217. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  218. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  219. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  220. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  221. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  222. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  223. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  224. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  225. package/skills-library/deployment-security/SECURITY.md +41 -0
  226. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  227. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  228. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  229. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  230. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  231. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  232. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  233. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  234. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  235. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  236. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  237. package/skills-library/deployment-security/vps-deployment.md +135 -0
  238. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  239. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  240. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  241. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  242. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  243. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  244. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  245. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  246. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  247. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  248. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  249. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  250. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  251. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  252. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  253. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  254. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  255. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  256. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  257. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  258. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  259. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  260. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  261. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  262. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  263. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  264. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  265. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  266. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  267. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  268. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  272. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  273. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  274. package/skills-library/excalidraw-diagrams/README.md +178 -0
  275. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  276. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  277. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  278. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  279. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  280. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  281. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  282. package/skills-library/infrastructure/observability-designer.md +264 -0
  283. package/skills-library/infrastructure/performance-profiler.md +621 -0
  284. package/skills-library/installer-wizard-patterns.md +249 -0
  285. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  286. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  287. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  288. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  289. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  290. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  291. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  293. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  294. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  295. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  297. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  299. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  300. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  301. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  302. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  303. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  304. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  305. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  306. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  307. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  308. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  313. package/skills-library/marketing/campaign-analytics.md +97 -0
  314. package/skills-library/marketing/content-creator.md +105 -0
  315. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  316. package/skills-library/marketing/social-media-analyzer.md +81 -0
  317. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  318. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  319. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  320. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  321. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  322. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  323. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  324. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  325. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  326. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  327. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  328. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  329. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  330. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  331. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  332. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  333. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  334. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  335. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  336. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  337. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  338. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  339. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  340. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  341. package/skills-library/parallel-debug/SKILL.md +60 -0
  342. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  343. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  344. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  345. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  346. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  347. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  348. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  349. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  350. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  351. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  352. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  353. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  354. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  355. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  356. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  357. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  358. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  359. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  360. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  361. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  362. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  363. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  364. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  365. package/skills-library/security/admin-deletion-safety.md +396 -0
  366. package/skills-library/security/application-vuln-patterns.md +477 -0
  367. package/skills-library/security/env-secrets-manager.md +686 -0
  368. package/skills-library/security/secure-ai-application-templates.md +347 -0
  369. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  370. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  371. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  372. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  373. package/skills-library/system-context/SKILL.md +40 -0
  374. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  375. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  376. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  377. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  378. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  379. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  380. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  381. package/skills-library/toolbox/SKILL.md +84 -0
  382. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  383. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  384. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  385. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  386. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  387. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  388. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  389. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  390. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  391. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  392. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  393. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  406. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  407. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  408. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  409. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  410. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  411. package/skills-library/wordpress-style-theme-components.md +1526 -0
  412. package/templates/ASSUMPTIONS.md +1 -1
  413. package/templates/DECISION_LOG.md +0 -1
  414. package/templates/phase-prompt.md +1 -1
  415. package/templates/phoenix-comparison.md +6 -6
  416. package/templates/skill-api-integration.md +106 -0
  417. package/templates/skill-architecture-pattern.md +92 -0
  418. package/templates/skill-debug-pattern.md +98 -0
  419. package/templates/skill-devops-recipe.md +107 -0
  420. package/templates/skill-general.md +65 -0
  421. package/templates/skill-ui-component.md +113 -0
  422. package/tools/uat-runner.py +179 -0
  423. package/version.json +7 -3
  424. package/workflows/handoff-session.md +2 -2
  425. package/workflows/new-project.md +2 -2
  426. package/workflows/plan-phase.md +1 -1
  427. package/.claude-plugin/plugin.json +0 -64
  428. package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
  429. package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
  430. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
  431. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
  432. package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
  433. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
  434. package/skills-library/specialists/api-architecture/api-designer.md +0 -49
  435. package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
  436. package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
  437. package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
  438. package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
  439. package/skills-library/specialists/backend/django-expert.md +0 -52
  440. package/skills-library/specialists/backend/fastapi-expert.md +0 -52
  441. package/skills-library/specialists/backend/laravel-specialist.md +0 -52
  442. package/skills-library/specialists/backend/nestjs-expert.md +0 -51
  443. package/skills-library/specialists/backend/rails-expert.md +0 -53
  444. package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
  445. package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
  446. package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
  447. package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
  448. package/skills-library/specialists/data-ml/rag-architect.md +0 -51
  449. package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
  450. package/skills-library/specialists/frontend/angular-architect.md +0 -52
  451. package/skills-library/specialists/frontend/flutter-expert.md +0 -51
  452. package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
  453. package/skills-library/specialists/frontend/react-native-expert.md +0 -50
  454. package/skills-library/specialists/frontend/vue-expert.md +0 -51
  455. package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
  456. package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
  457. package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
  458. package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
  459. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
  460. package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
  461. package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
  462. package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
  463. package/skills-library/specialists/languages/cpp-pro.md +0 -74
  464. package/skills-library/specialists/languages/csharp-developer.md +0 -69
  465. package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
  466. package/skills-library/specialists/languages/golang-pro.md +0 -51
  467. package/skills-library/specialists/languages/java-architect.md +0 -49
  468. package/skills-library/specialists/languages/javascript-pro.md +0 -68
  469. package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
  470. package/skills-library/specialists/languages/php-pro.md +0 -49
  471. package/skills-library/specialists/languages/python-pro.md +0 -52
  472. package/skills-library/specialists/languages/react-expert.md +0 -51
  473. package/skills-library/specialists/languages/rust-engineer.md +0 -50
  474. package/skills-library/specialists/languages/sql-pro.md +0 -56
  475. package/skills-library/specialists/languages/swift-expert.md +0 -69
  476. package/skills-library/specialists/languages/typescript-pro.md +0 -51
  477. package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
  478. package/skills-library/specialists/platform/embedded-systems.md +0 -53
  479. package/skills-library/specialists/platform/game-developer.md +0 -53
  480. package/skills-library/specialists/platform/salesforce-developer.md +0 -53
  481. package/skills-library/specialists/platform/shopify-expert.md +0 -49
  482. package/skills-library/specialists/platform/wordpress-pro.md +0 -49
  483. package/skills-library/specialists/quality/code-documenter.md +0 -51
  484. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  485. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  486. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  487. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  488. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  489. package/skills-library/specialists/quality/spec-miner.md +0 -56
  490. package/skills-library/specialists/quality/test-master.md +0 -65
  491. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  492. package/skills-library/specialists/security/security-reviewer.md +0 -53
  493. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  494. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  495. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  496. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  497. package/skills-library/specialists/workflow/the-fool.md +0 -62
  498. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  499. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: pg-to-mysql-schema-migration-methodology
3
+ category: database-solutions
4
+ version: 1.0.0
5
+ contributed: 2026-03-06
6
+ contributor: ministry-lms
7
+ last_updated: 2026-03-06
8
+ contributors:
9
+ - ministry-lms
10
+ tags: [postgresql, mysql, mariadb, migration, schema, uuid, returning, xampp]
11
+ difficulty: medium
12
+ usage_count: 0
13
+ success_rate: 100
14
+ ---
15
+
16
+ # PG to MySQL Schema Migration Methodology
17
+
18
+ ## Problem
19
+
20
+ When porting a PostgreSQL application to MySQL, the runtime SQL translation layer (sql-compat.js) handles syntax differences. But tables and columns still need to exist in MySQL. PG migrations use PG-specific DDL (UUID, BOOLEAN, TEXT[], JSONB, TIMESTAMP WITH TIME ZONE, partial indexes) that MySQL doesn't support. The result: 500 errors at runtime when controllers reference tables or columns that were never created in MySQL.
21
+
22
+ **Symptoms:**
23
+ - 500 Internal Server Error on specific endpoints
24
+ - `Table 'db.tablename' doesn't exist` in server logs
25
+ - `Unknown column 'col' in 'field list'` errors
26
+ - RETURNING * emulation returns empty/wrong rows (Strategy 3 returns 0 for UUID tables)
27
+
28
+ ## Solution Pattern
29
+
30
+ Systematic 4-step process per feature area:
31
+
32
+ ### Step 1: Identify the 500
33
+
34
+ Trace the error: endpoint URL -> route file -> controller -> model/query -> table name + columns.
35
+
36
+ ### Step 2: Check Table/Column Existence
37
+
38
+ ```javascript
39
+ // Quick check script
40
+ import sql from './config/sql.js';
41
+ try {
42
+ const cols = await sql.unsafe('DESCRIBE tablename');
43
+ console.log(cols.map(c => c.Field));
44
+ } catch(e) {
45
+ console.log('TABLE MISSING:', e.message);
46
+ }
47
+ ```
48
+
49
+ ### Step 3: Create MySQL Migration Script
50
+
51
+ Convert PG DDL to MySQL DDL with these type mappings:
52
+
53
+ | PostgreSQL | MySQL |
54
+ |------------|-------|
55
+ | `UUID PRIMARY KEY DEFAULT gen_random_uuid()` | `CHAR(36) PRIMARY KEY DEFAULT (UUID())` |
56
+ | `BOOLEAN DEFAULT true` | `TINYINT(1) DEFAULT 1` |
57
+ | `TIMESTAMP WITH TIME ZONE` | `DATETIME` |
58
+ | `TEXT[]` (array) | `JSON DEFAULT NULL` |
59
+ | `JSONB` | `JSON` |
60
+ | `INTEGER[]` | `JSON DEFAULT NULL` |
61
+ | `SERIAL` | `INT AUTO_INCREMENT` |
62
+ | `DECIMAL(10,2)` | `DECIMAL(10,2)` (same) |
63
+ | `VARCHAR(255)` | `VARCHAR(255)` (same) |
64
+ | `REFERENCES table(id) ON DELETE CASCADE` | Omit FK constraints (simpler with UUID tables) |
65
+ | Partial index `WHERE condition` | Regular index (MySQL doesn't support partial) |
66
+ | `CREATE TYPE ... AS ENUM` | `VARCHAR(50)` with application validation |
67
+ | `NOW()` | `CURRENT_TIMESTAMP` (in DEFAULT) or `NOW()` (in queries) |
68
+
69
+ ### Step 4: Fix RETURNING * for UUID Tables
70
+
71
+ When a table uses `CHAR(36) DEFAULT (UUID())` as primary key:
72
+ - `LAST_INSERT_ID()` returns 0 (only works for AUTO_INCREMENT)
73
+ - The RETURNING emulation Strategy 1 needs `id` in the INSERT column list
74
+ - **Fix:** Generate UUID in JavaScript and include it explicitly
75
+
76
+ ```javascript
77
+ import { v4 as uuidv4 } from 'uuid';
78
+
79
+ // Before (broken — RETURNING can't find the row)
80
+ const result = await sql`
81
+ INSERT INTO courses (title, description)
82
+ VALUES (${title}, ${desc})
83
+ RETURNING *
84
+ `;
85
+
86
+ // After (works — Strategy 1 finds row by id)
87
+ const id = uuidv4();
88
+ const result = await sql`
89
+ INSERT INTO courses (id, title, description)
90
+ VALUES (${id}, ${title}, ${desc})
91
+ RETURNING *
92
+ `;
93
+ ```
94
+
95
+ ## Migration Script Template
96
+
97
+ Use idempotent JS migrations with existence checks:
98
+
99
+ ```javascript
100
+ /**
101
+ * MySQL Migration: {description}
102
+ * Run with: node --env-file=.env.local migrations/{number}_{name}.js
103
+ */
104
+ import sql from '../config/sql.js';
105
+
106
+ async function addColumnIfMissing(table, column, definition) {
107
+ const cols = await sql.unsafe(`DESCRIBE ${table}`);
108
+ const colNames = cols.map(c => c.Field);
109
+ if (!colNames.includes(column)) {
110
+ await sql.unsafe(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
111
+ console.log(` Added ${table}.${column}`);
112
+ return true;
113
+ }
114
+ console.log(` ${table}.${column} already exists`);
115
+ return false;
116
+ }
117
+
118
+ async function migrate() {
119
+ try {
120
+ // CREATE TABLE IF NOT EXISTS for new tables
121
+ await sql.unsafe(`
122
+ CREATE TABLE IF NOT EXISTS tablename (
123
+ id CHAR(36) PRIMARY KEY DEFAULT (UUID()),
124
+ -- columns here
125
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
126
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
127
+ INDEX idx_name (column)
128
+ )
129
+ `);
130
+
131
+ // ALTER TABLE for missing columns on existing tables
132
+ await addColumnIfMissing('existing_table', 'new_col', 'VARCHAR(255) DEFAULT NULL');
133
+
134
+ console.log('Migration complete!');
135
+ } catch (error) {
136
+ console.error('Migration error:', error.message);
137
+ } finally {
138
+ await sql.end();
139
+ }
140
+ }
141
+
142
+ migrate();
143
+ ```
144
+
145
+ ## Diagnostic Cheat Sheet
146
+
147
+ | HTTP Status | Likely Cause | Check |
148
+ |-------------|-------------|-------|
149
+ | 500 on GET | Missing table or column | `DESCRIBE tablename` |
150
+ | 500 on POST | Missing column in INSERT | Compare INSERT columns vs DESCRIBE |
151
+ | 401 instead of 500 | Table exists, auth works | Fixed! |
152
+ | Empty response on POST | RETURNING emulation failed | Check if `id` is in INSERT columns |
153
+ | Wrong row returned | Strategy 4 race condition | Add explicit UUID to INSERT |
154
+
155
+ ## When to Use
156
+
157
+ - Porting a PostgreSQL app to MySQL/MariaDB/XAMPP
158
+ - When you see 500 errors on endpoints that work in PG
159
+ - When the sql-compat runtime layer handles syntax but tables are missing
160
+ - When RETURNING * returns empty or wrong rows on UUID tables
161
+ - When multiple PG migrations need to be consolidated into MySQL equivalents
162
+
163
+ ## When NOT to Use
164
+
165
+ - For SQL syntax translation at runtime (use postgresql-to-mysql-runtime-translation)
166
+ - When the app uses an ORM that handles schema (Prisma, Sequelize)
167
+ - For new applications (design for MySQL from the start)
168
+ - When PG-specific features have no MySQL equivalent (PostGIS, row-level security)
169
+
170
+ ## Common Mistakes
171
+
172
+ - Forgetting `ON UPDATE CURRENT_TIMESTAMP` for `updated_at` columns (PG uses triggers)
173
+ - Using `LAST_INSERT_ID()` with UUID tables (returns 0)
174
+ - Not making migrations idempotent (crashes on re-run if table/column exists)
175
+ - Copying PG foreign key constraints (keep it simple — omit FKs for UUID tables)
176
+ - Not restarting the server after migration (Node.js caches modules)
177
+ - Using `BOOLEAN` in MySQL DDL without realizing it becomes `TINYINT(1)` (functional, but explicit is clearer)
178
+
179
+ ## Related Skills
180
+
181
+ - [postgresql-to-mysql-runtime-translation](../database-solutions/postgresql-to-mysql-runtime-translation.md) - Runtime SQL translation layer
182
+ - [reserved-word-context-aware-quoting](../database-solutions/reserved-word-context-aware-quoting.md) - Quoting reserved words
183
+ - [regex-alternation-ordering-sql-types](../database-solutions/regex-alternation-ordering-sql-types.md) - Type cast regex ordering
184
+
185
+ ## References
186
+
187
+ - MySQL 8.0 CREATE TABLE: https://dev.mysql.com/doc/refman/8.0/en/create-table.html
188
+ - MySQL UUID(): https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_uuid
189
+ - Discovered during: MINISTRY-LMS migration (15+ tables ported in 3 sessions)
190
+ - Contributed from: ministry-lms
@@ -0,0 +1,306 @@
1
+ ---
2
+ name: sql-dialect-compatibility-matrix
3
+ category: database-solutions
4
+ version: 1.0.0
5
+ contributed: 2026-03-10
6
+ contributor: MINISTRY-LMS, research
7
+ last_updated: 2026-03-10
8
+ tags: [postgresql, mysql, sqlite, sql-server, mariadb, migration, dialect, translation]
9
+ difficulty: hard
10
+ ---
11
+
12
+ # SQL Dialect Compatibility Matrix
13
+
14
+ ## Problem
15
+
16
+ When migrating between databases or building cross-database applications, developers hit dialect differences that cause silent data corruption, runtime errors, or lost functionality. No single reference covers the practical translation rules needed for AI-assisted migration.
17
+ ## Solution Pattern
18
+
19
+ Use this matrix as a lookup table during migration planning and execution. Each section is organized by **task** ("what do you want to do?") rather than by database, following the Wikibooks SQL Dialects Reference structure.
20
+
21
+ **Critical principle:** Always verify translations by running against the target database. Rules handle the deterministic 80%; the remaining 20% requires human judgment or LLM-assisted review with verification.
22
+
23
+ ## SQL Syntax Translation Rules
24
+
25
+ ### Auto-Increment / Sequential IDs
26
+
27
+ | PostgreSQL | MySQL/MariaDB | SQLite | SQL Server |
28
+ |---|---|---|---|
29
+ | `SERIAL` | `INT AUTO_INCREMENT` | `INTEGER PRIMARY KEY` (implicit ROWID) | `INT IDENTITY(1,1)` |
30
+ | `BIGSERIAL` | `BIGINT AUTO_INCREMENT` | same (64-bit ROWID) | `BIGINT IDENTITY(1,1)` |
31
+ | `GENERATED ALWAYS AS IDENTITY` | N/A | N/A | `IDENTITY(start, increment)` |
32
+
33
+ **Gotcha:** MySQL `LAST_INSERT_ID()` returns 0 for UUID primary key tables (`CHAR(36) DEFAULT (UUID())`). Generate UUID in application code and include `id` in INSERT.
34
+
35
+ ### Boolean
36
+
37
+ | PostgreSQL | MySQL/MariaDB | SQLite | SQL Server |
38
+ |---|---|---|---|
39
+ | `BOOLEAN` (native) | `TINYINT(1)` / `BOOL` alias | `INTEGER` (0/1) | `BIT` |
40
+
41
+ **Gotcha:** MySQL `BOOL` is literally `TINYINT(1)` — stores 0-127, not just 0/1. Validate value ranges when migrating to PG.
42
+
43
+ ### Text / String Types
44
+
45
+ | PostgreSQL | MySQL | SQLite | SQL Server |
46
+ |---|---|---|---|
47
+ | `VARCHAR(n)` up to 10M | `VARCHAR(n)` up to 65K | `TEXT` (all strings) | `VARCHAR(n)` up to 8K; `VARCHAR(MAX)` |
48
+ | `TEXT` (unlimited) | `TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT` | `TEXT` | `TEXT`/`NTEXT` |
49
+
50
+ **Gotcha:** MySQL silently truncates in some SQL modes; PG raises error. pgloader maps all MySQL TEXT variants to PG `TEXT`.
51
+
52
+ ### Date / Time Types
53
+
54
+ | PostgreSQL | MySQL | SQLite | SQL Server |
55
+ |---|---|---|---|
56
+ | `TIMESTAMP` | `DATETIME` | `TEXT` (ISO 8601) | `DATETIME2(p)` |
57
+ | `TIMESTAMPTZ` | `TIMESTAMP` (auto UTC) | `TEXT` | `DATETIMEOFFSET(p)` |
58
+ | `INTERVAL` | N/A | N/A | N/A |
59
+
60
+ **Gotcha:** MySQL allows `0000-00-00` dates; PG rejects them. pgloader converts to NULL. **HIGH data loss risk** for timezone conversions.
61
+
62
+ ### UUID
63
+
64
+ | PostgreSQL | MySQL/MariaDB | SQLite | SQL Server |
65
+ |---|---|---|---|
66
+ | `UUID` (native) | `CHAR(36)` / `VARCHAR(36)` | `TEXT` | `UNIQUEIDENTIFIER` |
67
+ | `gen_random_uuid()` | `UUID()` | N/A (app-side) | `NEWID()` |
68
+
69
+ ### JSON
70
+
71
+ | PostgreSQL | MySQL | SQLite | SQL Server | MariaDB |
72
+ |---|---|---|---|---|
73
+ | `JSONB` (binary, indexable) | `JSON` (validated) | `JSON` (3.45+ JSONB) | `NVARCHAR(MAX)` | `JSON` (alias for `LONGTEXT`) |
74
+ | `col->>'key'` | `JSON_UNQUOTE(JSON_EXTRACT(col, '$.key'))` | `json_extract(col, '$.key')` | `JSON_VALUE(col, '$.key')` | same as MySQL |
75
+ | `col->'key'` | `JSON_EXTRACT(col, '$.key')` | `json_extract(col, '$.key')` | `JSON_QUERY(col, '$.key')` | same as MySQL |
76
+ | `col @> '{"k":"v"}'` | N/A | N/A | N/A | N/A |
77
+ | GIN index on JSONB | Generated column + B-tree | N/A | Computed column + index | N/A |
78
+
79
+ **Gotcha:** PG `->` uses plain key names; MySQL uses JSONPath (`$.key`). Completely different path syntax.
80
+
81
+ ### Arrays
82
+
83
+ | PostgreSQL | MySQL | SQLite | SQL Server | MariaDB |
84
+ |---|---|---|---|---|
85
+ | `TEXT[]`, `INT[]` (native) | N/A (use JSON) | N/A | N/A | N/A |
86
+
87
+ **PG-only.** Must denormalize to JSON array or junction table for other databases.
88
+
89
+ ### Enums
90
+
91
+ | PostgreSQL | MySQL/MariaDB | SQLite | SQL Server |
92
+ |---|---|---|---|
93
+ | `CREATE TYPE status AS ENUM(...)` (type-level) | `ENUM(...)` (column-level inline) | N/A (use CHECK) | N/A (use CHECK) |
94
+
95
+ **Gotcha:** pgloader creates separate `CREATE TYPE` for each MySQL inline ENUM.
96
+
97
+ ## SQL Syntax Differences
98
+
99
+ ### RETURNING Clause
100
+
101
+ | Database | Support | Syntax |
102
+ |---|---|---|
103
+ | PostgreSQL | Full (INSERT/UPDATE/DELETE) | `INSERT ... RETURNING *` |
104
+ | MySQL | **None** | Use `LAST_INSERT_ID()` or re-SELECT |
105
+ | SQLite | Full (3.35+) | `INSERT ... RETURNING *` |
106
+ | SQL Server | Full | `OUTPUT inserted.*` / `OUTPUT deleted.*` |
107
+ | MariaDB | Partial (INSERT/DELETE only) | `INSERT ... RETURNING *` |
108
+
109
+ **MINISTRY-LMS pattern:** 4-strategy fallback chain:
110
+ 1. UUID lookup (best for UUID PKs)
111
+ 2. Unique column lookup (for upserts)
112
+ 3. `LAST_INSERT_ID()` (auto-increment only — returns 0 for UUID!)
113
+ 4. Most recent row by `created_at` (race condition risk)
114
+
115
+ ### UPSERT / Merge
116
+
117
+ | Database | Syntax |
118
+ |---|---|
119
+ | PostgreSQL | `INSERT ... ON CONFLICT (col) DO UPDATE SET ...` |
120
+ | MySQL/MariaDB | `INSERT ... ON DUPLICATE KEY UPDATE ...` |
121
+ | SQLite | `INSERT ... ON CONFLICT (col) DO UPDATE SET ...` (same as PG) |
122
+ | SQL Server | `MERGE INTO ... USING ... WHEN MATCHED THEN UPDATE ...` |
123
+
124
+ **Translation:** `ON CONFLICT ... DO UPDATE` → `ON DUPLICATE KEY UPDATE`, `EXCLUDED.col` → `VALUES(col)`, `DO NOTHING` → `INSERT IGNORE INTO`.
125
+
126
+ ### LIMIT / OFFSET
127
+
128
+ | Database | Syntax |
129
+ |---|---|
130
+ | PostgreSQL | `LIMIT n OFFSET k` |
131
+ | MySQL/MariaDB | `LIMIT n OFFSET k` or `LIMIT k, n` |
132
+ | SQLite | `LIMIT n OFFSET k` |
133
+ | SQL Server | `OFFSET k ROWS FETCH NEXT n ROWS ONLY` (requires ORDER BY) |
134
+
135
+ **Gotcha:** MySQL rejects `LIMIT '20'` (string); PG silently casts. Always `parseInt()` LIMIT/OFFSET from Express `req.query`.
136
+
137
+ ### String Concatenation
138
+
139
+ | Database | Syntax |
140
+ |---|---|
141
+ | PostgreSQL | `'a' \|\| 'b'` |
142
+ | MySQL | `CONCAT('a', 'b')` (`\|\|` means OR by default) |
143
+ | SQLite | `'a' \|\| 'b'` |
144
+ | SQL Server | `'a' + 'b'` |
145
+
146
+ ### Identifier Quoting
147
+
148
+ | Database | Quote Character |
149
+ |---|---|
150
+ | PostgreSQL | `"double quotes"` (case-preserving) |
151
+ | MySQL/MariaDB | `` `backticks` `` |
152
+ | SQLite | `"double quotes"` or `` `backticks` `` |
153
+ | SQL Server | `[brackets]` or `"double quotes"` |
154
+
155
+ ### NULL Sort Order
156
+
157
+ | Database | Default ASC | Default DESC |
158
+ |---|---|---|
159
+ | PostgreSQL | NULLs LAST | NULLs FIRST |
160
+ | MySQL | NULLs FIRST | NULLs LAST |
161
+ | SQLite | NULLs FIRST | NULLs LAST |
162
+ | SQL Server | NULLs FIRST | NULLs LAST |
163
+
164
+ **Translation:** PG `NULLS LAST` → MySQL `ORDER BY col IS NULL, col DESC`. PG `NULLS FIRST` → MySQL `ORDER BY col IS NOT NULL, col ASC`.
165
+
166
+ ### Type Casting
167
+
168
+ | Database | Shorthand | Standard |
169
+ |---|---|---|
170
+ | PostgreSQL | `x::type` | `CAST(x AS type)` |
171
+ | MySQL | N/A | `CAST(x AS type)` / `CONVERT(x, type)` |
172
+ | SQLite | N/A | `CAST(x AS type)` |
173
+ | SQL Server | N/A | `CAST(x AS type)` / `CONVERT(type, x)` |
174
+
175
+ **Translation:** Strip all PG `::type` patterns for MySQL/SQLite. Use `CAST()` for portability.
176
+
177
+ ## Function Translation
178
+
179
+ ### Date Functions
180
+
181
+ | Operation | PostgreSQL | MySQL | SQLite | SQL Server |
182
+ |---|---|---|---|---|
183
+ | Current time | `NOW()` | `NOW()` | `datetime('now')` | `GETDATE()` |
184
+ | Extract part | `EXTRACT(YEAR FROM d)` | `YEAR(d)` | `strftime('%Y', d)` | `DATEPART(year, d)` |
185
+ | Date add | `d + INTERVAL '1 day'` | `DATE_ADD(d, INTERVAL 1 DAY)` | `datetime(d, '+1 day')` | `DATEADD(day, 1, d)` |
186
+ | Date diff | `d1 - d2` (interval) | `DATEDIFF(d1, d2)` (days) | `julianday(d1) - julianday(d2)` | `DATEDIFF(day, d1, d2)` |
187
+ | Format | `TO_CHAR(d, 'YYYY-MM-DD')` | `DATE_FORMAT(d, '%Y-%m-%d')` | `strftime('%Y-%m-%d', d)` | `FORMAT(d, 'yyyy-MM-dd')` |
188
+ | Truncate | `DATE_TRUNC('month', d)` | `DATE_FORMAT(d, '%Y-%m-01')` | `strftime('%Y-%m-01', d)` | `DATETRUNC(month, d)` |
189
+
190
+ **Format token mapping (PG → MySQL):** `YYYY→%Y`, `MM→%m`, `DD→%d`, `HH24→%H`, `MI→%i`, `SS→%s`.
191
+
192
+ ### String Functions
193
+
194
+ | Operation | PostgreSQL | MySQL | SQLite | SQL Server |
195
+ |---|---|---|---|---|
196
+ | Length | `LENGTH(s)` | `LENGTH(s)` | `LENGTH(s)` | `LEN(s)` |
197
+ | Position | `POSITION(sub IN s)` | `LOCATE(sub, s)` | `INSTR(s, sub)` | `CHARINDEX(sub, s)` |
198
+ | Regex match | `~ 'pattern'` | `REGEXP 'pattern'` | N/A | N/A |
199
+ | Case-insensitive LIKE | `ILIKE` | `LIKE` (CI by default) | `LIKE` (CI for ASCII) | `LIKE` (collation) |
200
+ | String split | `split_part(s, ',', 2)` | `SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)` | N/A | N/A |
201
+
202
+ ### Aggregate Functions
203
+
204
+ | Operation | PostgreSQL | MySQL | SQLite | SQL Server |
205
+ |---|---|---|---|---|
206
+ | String agg | `STRING_AGG(col, ',')` | `GROUP_CONCAT(col SEPARATOR ',')` | `GROUP_CONCAT(col, ',')` | `STRING_AGG(col, ',')` (2017+) |
207
+ | JSON agg | `json_agg(col)` | `CONCAT('[', GROUP_CONCAT(col), ']')` | `json_group_array(col)` | N/A |
208
+ | Filtered agg | `COUNT(*) FILTER (WHERE x)` | `SUM(CASE WHEN x THEN 1 ELSE 0 END)` | N/A | N/A |
209
+ | JSON object | `jsonb_build_object('k', v)` | `JSON_OBJECT('k', v)` | `json_object('k', v)` | N/A |
210
+
211
+ ## Constraints & Indexing
212
+
213
+ ### Constraint Support
214
+
215
+ | Feature | PostgreSQL | MySQL (InnoDB) | SQLite | SQL Server |
216
+ |---|---|---|---|---|
217
+ | CHECK constraints | Full | Enforced 8.0.16+ (ignored before!) | Full | Full |
218
+ | Deferred constraints | `DEFERRABLE INITIALLY DEFERRED` | **Not supported** | Supported | **Not supported** |
219
+ | EXCLUDE constraints | Full (GiST) | **Not supported** | **Not supported** | **Not supported** |
220
+ | Multiple cascade paths | Allowed | Allowed | Allowed | **Not allowed** |
221
+
222
+ **Gotcha:** MySQL CHECK constraints were silently ignored for years. Data may violate constraints after PG migration.
223
+
224
+ ### Index Types
225
+
226
+ | Feature | PostgreSQL | MySQL | SQLite | SQL Server |
227
+ |---|---|---|---|---|
228
+ | Partial index | `WHERE condition` | **No** | Yes (3.8+) | Yes (filtered) |
229
+ | Expression index | `ON (lower(col))` | **No** (use generated column) | Yes (3.9+) | Computed column |
230
+ | GIN (inverted) | Yes | **No** | **No** | **No** |
231
+ | Covering (INCLUDE) | Yes (11+) | **No** | **No** | Yes |
232
+ | Concurrent creation | `CONCURRENTLY` | `ALGORITHM=INPLACE` | **No** | `ONLINE = ON` |
233
+
234
+ ## Automatable vs Human Judgment
235
+
236
+ ### Fully Automatable (lookup table)
237
+ - Basic type mappings (INT, VARCHAR, TEXT, DATE)
238
+ - Auto-increment syntax
239
+ - LIMIT/OFFSET syntax
240
+ - String concatenation
241
+ - Identifier quoting
242
+ - UPSERT templates
243
+ - RETURNING clause templates
244
+ - Type cast stripping (`::type`)
245
+ - ILIKE → LIKE
246
+ - Interval syntax (`INTERVAL '30 days'` → `INTERVAL 30 DAY`)
247
+
248
+ ### Partially Automatable (rules + validation)
249
+ - Unsigned integer upsizing (MySQL UNSIGNED INT → PG BIGINT)
250
+ - BOOLEAN conversion (validate TINYINT(1) value ranges)
251
+ - Zero-date handling (`0000-00-00` → NULL)
252
+ - ENUM extraction (inline → CREATE TYPE)
253
+ - Text encoding conversion (detect charset first)
254
+
255
+ ### Requires Human Judgment
256
+ - ARRAY type decomposition (JSON vs junction table — depends on access patterns)
257
+ - Timezone semantics (TIMESTAMP vs TIMESTAMPTZ behavior)
258
+ - DECIMAL precision alignment for financial data
259
+ - Index strategy redesign (GIN/GiST have no equivalents)
260
+ - Stored procedure rewriting (procedural syntax differs fundamentally)
261
+ - Collation and case-sensitivity behavior
262
+ - Constraint validation (lax MySQL CHECK → strict PG)
263
+
264
+ ## Tools Reference
265
+
266
+ | Tool | Direction | Type | Best For |
267
+ |------|-----------|------|----------|
268
+ | **SQLGlot** | 31+ dialects | Deterministic (Python) | Automated SQL transpiling |
269
+ | **pgloader** | MySQL/SQLite → PG | Declarative config | One-shot migration with type mapping |
270
+ | **SQLines** | 10+ dialects | Rule-based | DDL + DML + stored procedures |
271
+ | **AWS SCT** | Any → AWS DB | Assessment + conversion | Migration complexity scoring |
272
+ | **sql-compat.js** (MINISTRY-LMS) | PG → MySQL | Runtime layer | Live bilingual applications |
273
+
274
+ ## When to Use
275
+
276
+ - Planning a database migration (any direction)
277
+ - Building cross-database applications
278
+ - Writing the DATABASE phase of `/fire-resurrect`
279
+ - Reviewing ORM migration portability
280
+ - Auditing SQL for dialect-specific constructs before migration
281
+
282
+ ## When NOT to Use
283
+
284
+ - Single-database projects with no migration plans
285
+ - NoSQL databases (MongoDB, Redis, DynamoDB)
286
+ - Data warehouse migrations (Snowflake, BigQuery — different paradigm)
287
+
288
+ ## Related Skills
289
+
290
+ - [pg-to-mysql-schema-migration-methodology](pg-to-mysql-schema-migration-methodology.md)
291
+ - [mysql-limit-offset-string-coercion](mysql-limit-offset-string-coercion.md)
292
+ - [mysql-to-pg-migration](mysql-to-pg-migration.md)
293
+ - [sqlite-to-pg-migration](sqlite-to-pg-migration.md)
294
+ - [orm-schema-portability](orm-schema-portability.md)
295
+ - [data-type-mapping-reference](data-type-mapping-reference.md)
296
+
297
+ ## References
298
+
299
+ - PARROT Benchmark (NeurIPS 2025) — SQL translation accuracy evaluation
300
+ - CrackSQL (SIGMOD 2025) — Hybrid rule+LLM dialect translation
301
+ - RISE (arXiv 2601.05579, 2026) — Rule-driven SQL dialect translation
302
+ - SQLGlot (github.com/tobymao/sqlglot) — Python SQL transpiler, 31+ dialects
303
+ - pgloader (pgloader.readthedocs.io) — MySQL/SQLite to PostgreSQL migration
304
+ - Troels Arvin — SQL implementation comparison (troels.arvin.dk/db/rdbms/)
305
+ - Wikibooks SQL Dialects Reference
306
+ - MINISTRY-LMS sql-compat.js — 27 production-proven translation rules