@thierrynakoa/fire-flow 12.2.2 → 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 (501) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -690
  4. package/TROUBLESHOOTING.md +264 -367
  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-verify-uat.md +9 -177
  52. package/commands/fire-vuln-scan.md +492 -493
  53. package/hooks/run-hook.sh +8 -8
  54. package/hooks/run-session-end.sh +7 -7
  55. package/hooks/session-end.sh +90 -90
  56. package/hooks/session-start.sh +1 -1
  57. package/package.json +4 -25
  58. package/plugin.json +7 -7
  59. package/references/autonomy-levels.md +235 -0
  60. package/references/behavioral-directives.md +95 -3
  61. package/references/blocker-tracking.md +1 -1
  62. package/references/circuit-breaker.md +93 -2
  63. package/references/context-engineering.md +227 -9
  64. package/references/honesty-protocols.md +70 -1
  65. package/references/issue-to-pr-pipeline.md +149 -150
  66. package/references/metrics-and-trends.md +1 -2
  67. package/references/research-improvements.md +4 -108
  68. package/references/sdlc-mapping.md +73 -0
  69. package/references/state-machine.md +151 -0
  70. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  71. package/skills-library/SKILLS-INDEX.md +57 -558
  72. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  73. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  74. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  75. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  76. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  77. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  78. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  79. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  80. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  81. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  82. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  83. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  84. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  85. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  86. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  87. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  88. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  89. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  90. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  91. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  92. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  93. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  94. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  95. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  96. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  97. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  98. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  99. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  100. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  101. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  102. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  103. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  104. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  105. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  106. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  107. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  108. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  109. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  110. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  111. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  112. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  113. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  114. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  115. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  116. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  117. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  118. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  119. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  120. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  121. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  122. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  123. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  124. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  125. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  126. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  127. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  128. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  129. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  130. package/skills-library/_quarantine/README.md +30 -0
  131. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  132. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  133. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  134. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  135. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  136. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  137. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  138. package/skills-library/appointment-scheduler-design.md +423 -0
  139. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  140. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  141. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  142. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  143. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  144. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  145. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  146. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  151. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  152. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  153. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  154. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  155. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  156. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  157. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  158. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  159. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  160. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  161. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  162. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  163. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  164. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  165. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  166. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  167. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  168. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  169. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  170. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  171. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  172. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  173. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  174. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  175. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  176. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  177. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  178. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  179. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  180. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  182. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  183. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  184. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  185. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  186. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  187. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  188. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  189. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  190. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  191. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  192. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  193. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  194. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  195. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  196. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  197. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  198. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  199. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  200. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  201. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  202. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  203. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  204. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  205. package/skills-library/database-solutions/normalization-validator.md +778 -0
  206. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  207. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  208. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  209. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  210. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  211. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  212. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  213. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  215. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  216. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  217. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  218. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  219. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  220. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  221. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  222. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  223. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  224. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  225. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  226. package/skills-library/deployment-security/SECURITY.md +41 -0
  227. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  228. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  229. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  230. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  231. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  232. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  233. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  234. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  235. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  236. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  237. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  238. package/skills-library/deployment-security/vps-deployment.md +135 -0
  239. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  240. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  241. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  242. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  243. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  244. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  245. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  246. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  247. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  248. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  249. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  250. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  251. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  252. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  253. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  254. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  255. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  256. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  257. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  258. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  259. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  260. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  261. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  262. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  263. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  264. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  265. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  266. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  267. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  268. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  272. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  273. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  274. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  275. package/skills-library/excalidraw-diagrams/README.md +178 -0
  276. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  277. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  278. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  279. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  280. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  281. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  282. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  283. package/skills-library/infrastructure/observability-designer.md +264 -0
  284. package/skills-library/infrastructure/performance-profiler.md +621 -0
  285. package/skills-library/installer-wizard-patterns.md +249 -0
  286. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  287. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  288. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  289. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  290. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  291. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  293. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  294. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  295. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  297. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  299. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  300. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  301. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  302. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  303. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  304. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  305. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  306. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  307. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  308. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  313. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  314. package/skills-library/marketing/campaign-analytics.md +97 -0
  315. package/skills-library/marketing/content-creator.md +105 -0
  316. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  317. package/skills-library/marketing/social-media-analyzer.md +81 -0
  318. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  319. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  320. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  321. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  322. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  323. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  324. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  325. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  326. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  327. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  328. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  329. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  330. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  331. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  332. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  333. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  334. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  335. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  336. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  337. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  338. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  339. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  340. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  341. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  342. package/skills-library/parallel-debug/SKILL.md +60 -0
  343. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  344. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  345. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  346. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  347. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  348. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  349. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  350. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  351. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  352. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  353. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  354. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  355. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  356. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  357. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  358. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  359. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  360. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  361. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  362. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  363. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  364. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  365. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  366. package/skills-library/security/admin-deletion-safety.md +396 -0
  367. package/skills-library/security/application-vuln-patterns.md +477 -0
  368. package/skills-library/security/env-secrets-manager.md +686 -0
  369. package/skills-library/security/secure-ai-application-templates.md +347 -0
  370. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  371. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  372. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  373. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  374. package/skills-library/system-context/SKILL.md +40 -0
  375. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  376. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  377. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  378. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  379. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  380. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  381. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  382. package/skills-library/toolbox/SKILL.md +84 -0
  383. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  384. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  385. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  386. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  387. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  388. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  389. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  390. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  391. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  392. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  393. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  406. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  407. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  408. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  409. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  410. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  411. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  412. package/skills-library/wordpress-style-theme-components.md +1526 -0
  413. package/templates/ASSUMPTIONS.md +1 -1
  414. package/templates/DECISION_LOG.md +0 -1
  415. package/templates/phase-prompt.md +1 -1
  416. package/templates/phoenix-comparison.md +6 -6
  417. package/templates/skill-api-integration.md +106 -0
  418. package/templates/skill-architecture-pattern.md +92 -0
  419. package/templates/skill-debug-pattern.md +98 -0
  420. package/templates/skill-devops-recipe.md +107 -0
  421. package/templates/skill-general.md +65 -0
  422. package/templates/skill-ui-component.md +113 -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/browser-use-expert.md +0 -210
  484. package/skills-library/specialists/quality/code-documenter.md +0 -51
  485. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  486. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  487. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  488. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  489. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  490. package/skills-library/specialists/quality/spec-miner.md +0 -56
  491. package/skills-library/specialists/quality/test-master.md +0 -65
  492. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  493. package/skills-library/specialists/security/security-reviewer.md +0 -53
  494. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  495. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  496. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  497. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  498. package/skills-library/specialists/workflow/the-fool.md +0 -62
  499. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  501. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: sqlite-to-pg-migration
3
+ category: database-solutions
4
+ version: 1.0.0
5
+ contributed: 2026-03-10
6
+ contributor: research
7
+ last_updated: 2026-03-10
8
+ tags: [sqlite, postgresql, migration, prototype, production]
9
+ difficulty: medium
10
+ ---
11
+
12
+ # SQLite to PostgreSQL Migration
13
+
14
+ ## Problem
15
+
16
+ Applications that start on SQLite for simplicity need to graduate to PostgreSQL for concurrency, scale, and production features. This is the most common "prototype to production" migration path (n8n, many Next.js apps, self-hosted tools). The challenge: SQLite's dynamic typing, file-based storage, and limited ALTER TABLE make the migration non-trivial.
17
+ ## Solution Pattern
18
+
19
+ ### Step 0: Should You Even Migrate?
20
+
21
+ Before migrating, consider whether SQLite is actually insufficient:
22
+
23
+ | Stay on SQLite if... | Migrate to PG if... |
24
+ |---|---|
25
+ | Single-user or read-heavy workload | Multiple concurrent writers |
26
+ | < 1GB database | > 1GB or growing fast |
27
+ | Edge/embedded deployment | Centralized server |
28
+ | Litestream/LiteFS replication is sufficient | Need full ACID with concurrent transactions |
29
+ | Simple queries, no joins across large tables | Complex queries, full-text search, JSON indexing |
30
+
31
+ ### Step 1: Audit SQLite Schema
32
+
33
+ ```bash
34
+ # List all tables
35
+ sqlite3 mydb.db ".tables"
36
+
37
+ # Dump schema
38
+ sqlite3 mydb.db ".schema"
39
+
40
+ # Check for dynamic typing issues
41
+ sqlite3 mydb.db "SELECT typeof(col), COUNT(*) FROM mytable GROUP BY typeof(col);"
42
+ ```
43
+
44
+ **Dynamic typing audit:** SQLite allows any value in any column regardless of declared type. Before migration, verify actual stored types match intended types:
45
+
46
+ ```sql
47
+ -- Find columns with mixed types (SQLite-specific problem)
48
+ SELECT 'users' AS tbl, 'age' AS col,
49
+ SUM(CASE WHEN typeof(age) = 'integer' THEN 1 ELSE 0 END) AS int_count,
50
+ SUM(CASE WHEN typeof(age) = 'text' THEN 1 ELSE 0 END) AS text_count,
51
+ SUM(CASE WHEN typeof(age) = 'null' THEN 1 ELSE 0 END) AS null_count
52
+ FROM users;
53
+ ```
54
+
55
+ ### Step 2: Type Mapping
56
+
57
+ | SQLite | PostgreSQL | Notes |
58
+ |---|---|---|
59
+ | `INTEGER` (any size) | `INTEGER` or `BIGINT` | Check max values to choose |
60
+ | `INTEGER PRIMARY KEY` | `SERIAL PRIMARY KEY` | SQLite auto-increment via ROWID |
61
+ | `REAL` | `DOUBLE PRECISION` | |
62
+ | `TEXT` | `TEXT` or `VARCHAR(n)` | Add length constraints as needed |
63
+ | `BLOB` | `BYTEA` | |
64
+ | `TEXT` (storing dates) | `TIMESTAMPTZ` | Parse ISO 8601 strings |
65
+ | `INTEGER` (storing booleans 0/1) | `BOOLEAN` | Cast during migration |
66
+ | `TEXT` (storing JSON) | `JSONB` | Parse and validate during migration |
67
+ | `TEXT` (storing UUIDs) | `UUID` | Validate format during migration |
68
+
69
+ ### Step 3: Migration with pgloader
70
+
71
+ ```lisp
72
+ -- pgloader-sqlite.conf
73
+ LOAD DATABASE
74
+ FROM sqlite:///path/to/mydb.db
75
+ INTO postgresql://user:pass@localhost/mydb_pg
76
+
77
+ WITH
78
+ include drop,
79
+ create tables,
80
+ create indexes,
81
+ reset sequences
82
+
83
+ -- Override dynamic types
84
+ CAST
85
+ type string to text,
86
+ type integer to bigint when (> 2147483647 max-value)
87
+
88
+ AFTER LOAD DO
89
+ $$ VACUUM ANALYZE; $$
90
+ ;
91
+ ```
92
+
93
+ ```bash
94
+ pgloader pgloader-sqlite.conf
95
+ ```
96
+
97
+ ### Step 4: Manual Migration (Alternative)
98
+
99
+ If pgloader is unavailable or you need more control:
100
+
101
+ ```bash
102
+ # 1. Dump SQLite as SQL
103
+ sqlite3 mydb.db .dump > dump.sql
104
+
105
+ # 2. Clean up for PG compatibility
106
+ sed -i 's/INTEGER PRIMARY KEY AUTOINCREMENT/SERIAL PRIMARY KEY/g' dump.sql
107
+ sed -i 's/PRAGMA.*//g' dump.sql
108
+ sed -i 's/BEGIN TRANSACTION/BEGIN/g' dump.sql
109
+
110
+ # 3. Create PG database and import
111
+ createdb mydb_pg
112
+ psql -d mydb_pg -f dump.sql
113
+ ```
114
+
115
+ **Better approach — use Python for type-aware migration:**
116
+
117
+ ```python
118
+ import sqlite3
119
+ import psycopg2
120
+
121
+ # Connect to both
122
+ sqlite_conn = sqlite3.connect('mydb.db')
123
+ pg_conn = psycopg2.connect('postgresql://user:pass@localhost/mydb_pg')
124
+
125
+ # For each table: read from SQLite, insert into PG
126
+ cursor = sqlite_conn.execute("SELECT * FROM users")
127
+ columns = [d[0] for d in cursor.description]
128
+ placeholders = ','.join(['%s'] * len(columns))
129
+
130
+ pg_cur = pg_conn.cursor()
131
+ for row in cursor:
132
+ pg_cur.execute(f"INSERT INTO users ({','.join(columns)}) VALUES ({placeholders})", row)
133
+
134
+ pg_conn.commit()
135
+ ```
136
+
137
+ ### Step 5: Application Code Changes
138
+
139
+ 1. **Connection:** `better-sqlite3` / `sql.js` → `pg` / `postgres.js`
140
+ 2. **Parameters:** `?` → `$1, $2, $3`
141
+ 3. **Boolean values:** `0/1` → `true/false`
142
+ 4. **Date handling:** Parse TEXT dates into proper TIMESTAMP values
143
+ 5. **JSON columns:** TEXT → JSONB (add validation)
144
+ 6. **RETURNING:** Now available natively (SQLite 3.35+ also has it)
145
+ 7. **Concurrent access:** Remove `PRAGMA journal_mode=WAL` and similar
146
+
147
+ ### Step 6: Post-Migration Health Check
148
+
149
+ ```sql
150
+ -- Run ANALYZE on all tables
151
+ ANALYZE;
152
+
153
+ -- Verify row counts match
154
+ SELECT relname, n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC;
155
+
156
+ -- Check for NULL where not expected (dynamic typing cleanup)
157
+ SELECT COUNT(*) FROM users WHERE email IS NULL; -- should be 0 if required
158
+
159
+ -- Verify sequences
160
+ SELECT sequencename, last_value FROM pg_sequences;
161
+
162
+ -- Test indexes are working
163
+ EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';
164
+ ```
165
+
166
+ ### SQLite File Safety
167
+
168
+ When copying SQLite databases:
169
+
170
+ ```bash
171
+ # WRONG: copying while app is running risks corruption
172
+ cp mydb.db backup.db # ❌
173
+
174
+ # RIGHT: close all connections first, then copy ALL files
175
+ # SQLite may have -wal (write-ahead log) and -shm (shared memory) files
176
+ cp mydb.db mydb.db-wal mydb.db-shm /backup/ # ✅
177
+
178
+ # BEST: use sqlite3 backup command
179
+ sqlite3 mydb.db ".backup /backup/mydb.db" # ✅
180
+
181
+ # VERIFY backup integrity
182
+ sqlite3 /backup/mydb.db "PRAGMA integrity_check;" # Should return "ok"
183
+ ```
184
+
185
+ ## Common Pitfalls
186
+
187
+ 1. **Dynamic typing:** SQLite column "age" might contain strings, integers, and NULLs. PG will reject mixed types.
188
+ 2. **Missing constraints:** SQLite doesn't enforce CHECK constraints by default. Data may violate PG constraints.
189
+ 3. **Foreign keys off:** SQLite FKs are OFF by default (`PRAGMA foreign_keys = ON`). Data may have orphaned references.
190
+ 4. **Date strings:** SQLite stores dates as TEXT. Must parse and validate every date value during migration.
191
+ 5. **Boolean ambiguity:** SQLite has no BOOLEAN. Values could be 0/1, 'true'/'false', 'yes'/'no', or anything else.
192
+ 6. **AUTOINCREMENT behavior:** SQLite AUTOINCREMENT prevents reuse of deleted IDs. PG SERIAL allows reuse. If your app depends on never-reused IDs, use `GENERATED ALWAYS AS IDENTITY`.
193
+
194
+ ## When to Use
195
+
196
+ - Graduating a prototype from SQLite to PostgreSQL
197
+ - Migrating self-hosted tools (n8n, etc.) to managed databases
198
+ - Building the DATABASE phase of `/fire-resurrect` for SQLite sources
199
+
200
+ ## When NOT to Use
201
+
202
+ - Staying on SQLite (edge deployments, read-heavy, small data)
203
+ - Migrating between client-server databases (use mysql-to-pg-migration or pg-to-mysql)
204
+ - Migrating to MySQL (rare — use the compatibility matrix)
205
+
206
+ ## Related Skills
207
+
208
+ - [sql-dialect-compatibility-matrix](sql-dialect-compatibility-matrix.md)
209
+ - [data-type-mapping-reference](data-type-mapping-reference.md)
210
+ - [mysql-to-pg-migration](mysql-to-pg-migration.md)
211
+
212
+ ## References
213
+
214
+ - Render — "How to Migrate from SQLite to PostgreSQL" (2025)
215
+ - Bytebase — "Database Migration: SQLite to PostgreSQL" (2025)
216
+ - n8n Community — SQLite to PostgreSQL migration thread (2025)
217
+ - SitePoint — "Is SQLite on the Edge Production Ready?" (2026)
218
+ - pgloader SQLite source documentation
219
+ - sqlite3_rsync — SQLite safe remote copy tool
@@ -0,0 +1,270 @@
1
+ ---
2
+ name: canvas-bubble-animation-grouping
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-02-27
6
+ contributor: scribe-bible
7
+ last_updated: 2026-02-27
8
+ tags: [canvas, animation, framer-motion, bubble-chart, grouping, layout-algorithm, data-visualization, react, golden-spiral, rectangular-grid]
9
+ difficulty: medium
10
+ usage_count: 0
11
+ success_rate: 100
12
+ ---
13
+
14
+ # Canvas Bubble Animation & Grouping Patterns
15
+
16
+ ## Problem
17
+
18
+ You have a large collection of items (100-500+) that need to be visualized as bubbles on a canvas. Users switch between multiple view modes (e.g., "by category", "by author", "by feature"), and bubbles should smoothly animate to new positions in each mode. The modes require fundamentally different layouts:
19
+
20
+ - **Overview**: All items in a single cluster (spiral)
21
+ - **Grouped modes**: Items clustered into labeled groups (rectangular grids)
22
+ - **Filter modes**: Binary split — items with/without a feature (quadrants)
23
+
24
+ Flex-wrap layouts can't handle this — you need absolute positioning with computed coordinates, but the items must still animate smoothly between modes.
25
+
26
+ ## Solution Pattern
27
+
28
+ Use **Framer Motion absolute-positioned bubbles** with a **layout algorithm registry**. Each mode computes `(x, y, opacity, scale)` for every item. When the mode changes, React re-renders with new coordinates, and Framer Motion's `spring` transition animates each bubble to its new position.
29
+
30
+ Three layout algorithms cover all common data visualization needs:
31
+
32
+ 1. **Golden-angle spiral** — uniform radial distribution for "all items" overview
33
+ 2. **Rectangular grid packing** — items arranged in rows/columns within labeled group clusters
34
+ 3. **Binary filter quadrants** — items split into "has feature" / "doesn't have feature" regions
35
+
36
+ ### Architecture
37
+
38
+ ```
39
+ ViewMode → layout algorithm → Map<id, {x, y, opacity, scale}> + GroupLabel[]
40
+
41
+ Framer Motion spring transition animates delta
42
+ ```
43
+
44
+ - **Pure functions** compute positions from `(mode, items, canvasWidth, canvasHeight)` — no side effects
45
+ - **`useMemo`** recomputes only when mode, items, or container size changes
46
+ - **Dynamic canvas height** — grouped modes return `totalHeight` so the container expands to fit content
47
+ - **Bubble size by data** — each item's size is proportional to a data attribute (e.g., verse count), scaled down in grouped modes via `GROUPED_BUBBLE_SCALE`
48
+
49
+ ## Code Example
50
+
51
+ ### 1. Golden-Angle Spiral (Overview)
52
+
53
+ ```typescript
54
+ function packInCircle(count: number, cx: number, cy: number, maxRadius: number) {
55
+ if (count === 0) return [];
56
+ if (count === 1) return [{ x: cx, y: cy }];
57
+
58
+ const goldenAngle = Math.PI * (3 - Math.sqrt(5));
59
+ const positions: { x: number; y: number }[] = [];
60
+
61
+ for (let i = 0; i < count; i++) {
62
+ const r = maxRadius * Math.sqrt(i / count) * 0.9;
63
+ const theta = i * goldenAngle;
64
+ positions.push({
65
+ x: cx + r * Math.cos(theta),
66
+ y: cy + r * Math.sin(theta),
67
+ });
68
+ }
69
+ return positions;
70
+ }
71
+ ```
72
+
73
+ **When**: "Show all N items" mode. Distributes items uniformly in a circle with no gaps or clusters. The golden angle (137.5°) ensures even spacing at any count.
74
+
75
+ ### 2. Rectangular Grid Packing (Grouped Modes)
76
+
77
+ ```typescript
78
+ const GROUPED_BUBBLE_SCALE = 0.5;
79
+
80
+ function packInRect(
81
+ count: number, cx: number, cy: number, avgBubbleSize: number, gap: number,
82
+ ): { positions: { x: number; y: number }[]; gridW: number; gridH: number } {
83
+ if (count === 0) return { positions: [], gridW: 0, gridH: 0 };
84
+ if (count === 1) return { positions: [{ x: cx, y: cy }], gridW: avgBubbleSize, gridH: avgBubbleSize };
85
+
86
+ const step = avgBubbleSize + gap;
87
+ const cols = Math.ceil(Math.sqrt(count * 1.3)); // Slightly wider than tall
88
+ const rows = Math.ceil(count / cols);
89
+ const gridW = cols * step;
90
+ const gridH = rows * step;
91
+ const startX = cx - (gridW - step) / 2;
92
+ const startY = cy - (gridH - step) / 2;
93
+
94
+ const positions: { x: number; y: number }[] = [];
95
+ for (let i = 0; i < count; i++) {
96
+ positions.push({
97
+ x: startX + (i % cols) * step,
98
+ y: startY + Math.floor(i / cols) * step,
99
+ });
100
+ }
101
+ return { positions, gridW, gridH };
102
+ }
103
+ ```
104
+
105
+ **When**: Grouping by a categorical attribute (genre, author, category). Each group gets a labeled rectangular region with items laid out in a grid. The `1.3` aspect ratio factor creates rectangles that feel natural (slightly wider than tall).
106
+
107
+ ### 3. Dynamic Grouped Layout with Row-Based Height
108
+
109
+ ```typescript
110
+ function calculateGroupedCanvasPositions(
111
+ mode: ViewMode, nodes: Item[], canvasWidth: number,
112
+ ): { positions: Map<id, Pos>; labels: GroupLabel[]; totalHeight: number } {
113
+ const groups = groupItems(nodes, mode);
114
+ const positions = new Map();
115
+ const labels: GroupLabel[] = [];
116
+
117
+ // Pre-compute grid dimensions per group
118
+ const groupMeta = groups.map(([name, items]) => {
119
+ const avgSize = items.reduce((s, n) => s + getSize(n) * GROUPED_BUBBLE_SCALE, 0) / items.length;
120
+ const step = avgSize + gap;
121
+ const cols = Math.ceil(Math.sqrt(items.length * 1.3));
122
+ const rows = Math.ceil(items.length / cols);
123
+ return { name, items, avgSize, gridW: cols * step, gridH: rows * step };
124
+ });
125
+
126
+ // Adaptive column count based on group count
127
+ const maxCols = groups.length <= 4 ? 2 : groups.length <= 9 ? 3 : 4;
128
+ const layoutCols = Math.min(maxCols, groups.length);
129
+ const cellW = (canvasWidth - padX * 2) / layoutCols;
130
+
131
+ // Compute max height per layout row (for consistent row spacing)
132
+ const rowMaxGridH: number[] = Array(layoutRows).fill(0);
133
+ groupMeta.forEach((g, i) => {
134
+ const row = Math.floor(i / layoutCols);
135
+ rowMaxGridH[row] = Math.max(rowMaxGridH[row], g.gridH);
136
+ });
137
+
138
+ // Accumulate Y positions row by row
139
+ let yAccum = 25;
140
+ const rowCenterY: number[] = [];
141
+ for (let r = 0; r < layoutRows; r++) {
142
+ yAccum += labelHeight;
143
+ rowCenterY.push(yAccum + rowMaxGridH[r] / 2);
144
+ yAccum += rowMaxGridH[r] + rowGap;
145
+ }
146
+ const totalHeight = yAccum + 20;
147
+
148
+ // Place each group
149
+ groupMeta.forEach((g, i) => {
150
+ const col = i % layoutCols;
151
+ const row = Math.floor(i / layoutCols);
152
+ const cx = padX + cellW * (col + 0.5);
153
+ const cy = rowCenterY[row];
154
+
155
+ labels.push({ name: g.name, x: cx, y: cy - g.gridH / 2 - 14, color, count: g.items.length });
156
+
157
+ const grid = packInRect(g.items.length, cx, cy, g.avgSize, gap);
158
+ g.items.forEach((item, j) => {
159
+ positions.set(item.id, { ...grid.positions[j], opacity: 0.9, scale: 1 });
160
+ });
161
+ });
162
+
163
+ return { positions, labels, totalHeight };
164
+ }
165
+ ```
166
+
167
+ **Key technique**: The canvas height is **dynamic** — computed from the actual content. The container's `style.height` reads `totalHeight` so groups never overflow or leave empty space.
168
+
169
+ ### 4. Binary Filter Quadrants
170
+
171
+ ```typescript
172
+ function calculateFilterPositions(mode: string, nodes: Item[], w: number, h: number) {
173
+ const filter = FILTERS[mode]; // e.g., (item) => item.hasFeature
174
+ const members = nodes.filter(filter);
175
+ const nonMembers = nodes.filter(n => !filter(n));
176
+
177
+ const positions = new Map();
178
+
179
+ // Members: bright, full-size, in the feature's quadrant
180
+ const memberPositions = packInCircle(members.length, quadrant.cx, quadrant.cy, quadrant.radius);
181
+ members.forEach((node, i) => {
182
+ positions.set(node.id, { ...memberPositions[i], opacity: 1, scale: 1 });
183
+ });
184
+
185
+ // Non-members: faded, small, pushed to opposite corner
186
+ const nonMemberPositions = packInCircle(nonMembers.length, fadedCx, fadedCy, fadedRadius);
187
+ nonMembers.forEach((node, i) => {
188
+ positions.set(node.id, { ...nonMemberPositions[i], opacity: 0.12, scale: 0.5 });
189
+ });
190
+
191
+ return positions;
192
+ }
193
+ ```
194
+
195
+ **When**: Showing which items have/don't have a boolean attribute. Members glow in a labeled quadrant; non-members fade to near-invisible in the opposite corner.
196
+
197
+ ### 5. Bubble Component with Spring Animation
198
+
199
+ ```tsx
200
+ <motion.button
201
+ style={{
202
+ position: 'absolute',
203
+ left: x,
204
+ top: y,
205
+ width: size,
206
+ height: size,
207
+ borderRadius: '50%',
208
+ backgroundColor: color,
209
+ transform: 'translate(-50%, -50%)',
210
+ }}
211
+ animate={{ left: x, top: y, opacity, scale }}
212
+ transition={{
213
+ type: 'spring',
214
+ stiffness: 300,
215
+ damping: 25,
216
+ delay: index * 0.006, // Staggered animation
217
+ }}
218
+ whileHover={{ scale: 1.3, zIndex: 50 }}
219
+ whileTap={{ scale: 0.9 }}
220
+ />
221
+ ```
222
+
223
+ **Stagger delay**: `index * 0.006` creates a wave effect (0.9s total for 150 items) where bubbles fly to their positions in sequence rather than all at once.
224
+
225
+ ## Implementation Steps
226
+
227
+ 1. **Define view modes** as a union type with three categories: overview, grouped (genre/author/category), and filter (has/doesn't have feature)
228
+ 2. **Create pure layout functions** — each takes `(mode, items, width, height)` and returns `Map<id, {x, y, opacity, scale}>` plus optional labels
229
+ 3. **Wrap in `useMemo`** keyed on `[viewMode, items, containerSize]`
230
+ 4. **Use `ResizeObserver`** on the canvas container to get responsive dimensions
231
+ 5. **Render absolute-positioned Framer Motion elements** with `animate` set to computed coordinates
232
+ 6. **Compute dynamic canvas height** for grouped modes — return `totalHeight` from the layout function
233
+ 7. **Scale bubbles** in grouped modes (`GROUPED_BUBBLE_SCALE = 0.5`) to prevent overcrowding
234
+ 8. **Add group labels** as absolute-positioned divs above each cluster
235
+
236
+ ## When to Use
237
+
238
+ - Data exploration dashboards with 50-500+ items and multiple grouping modes
239
+ - Bubble charts where items have categorical attributes AND a size metric
240
+ - Any visualization where items must animate between fundamentally different spatial arrangements
241
+ - When you need three+ distinct layout strategies in one component
242
+
243
+ ## When NOT to Use
244
+
245
+ - Small item counts (<20) — a simple flex-wrap with `layoutId` is simpler (see `framer-motion-layoutid-grouping`)
246
+ - Items that only need to sort within the same grid — CSS `order` + `transition` suffices
247
+ - Graph/network visualizations — use React Flow or D3 force layouts instead
248
+ - Mobile-only UIs — canvas layouts need 700px+ width to be useful
249
+
250
+ ## Common Mistakes
251
+
252
+ - **Using full emotional tone strings as group keys** — multi-word comma-separated strings create 100+ unique groups. Extract the **primary word** (`tone.split(',')[0].trim()`) to get ~10 meaningful groups.
253
+ - **Circle packing for large groups** — `packInCircle` makes dense groups (70+ items) into an indistinguishable blob. Use `packInRect` for grouped modes where individual items must be selectable.
254
+ - **Fixed canvas height** — a 700px fixed height works for overview/filter but overflows for grouped modes with 10+ groups. Always compute `totalHeight` from content and set `height: Math.max(totalHeight, minHeight)`.
255
+ - **Uniform bubble size in groups** — loses the data dimension. Keep `getSize(item) * GROUPED_BUBBLE_SCALE` so the largest items are still visually prominent within their grid cells.
256
+ - **Forgetting `translate(-50%, -50%)`** — bubble positions are computed as center points. Without centering the transform, bubbles offset by half their diameter.
257
+ - **Too many grid columns** — with 3 groups, use 2 columns (not 3) for breathing room. Adaptive: `groups.length <= 4 ? 2 : groups.length <= 9 ? 3 : 4`.
258
+
259
+ ## Related Skills
260
+
261
+ - [framer-motion-layoutid-grouping](framer-motion-layoutid-grouping.md) — Flex-wrap approach for smaller collections (<100 items)
262
+ - [domain-specific-layout-algorithms](../patterns-standards/domain-specific-layout-algorithms.md) — Pure-function layout registry pattern
263
+ - [svg-sparkline-no-charting-library](svg-sparkline-no-charting-library.md) — Lightweight data visualization with zero dependencies
264
+
265
+ ## References
266
+
267
+ - Golden angle distribution: https://en.wikipedia.org/wiki/Golden_angle
268
+ - Framer Motion spring physics: https://www.framer.com/motion/transition/#spring
269
+ - Discovered in: scribe-bible PsalmOverview (150 psalms, 9 view modes, 3 layout algorithms)
270
+ - Evolved through 3 iterations: circle packing → content-derived radius → rectangular grid
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: color-token-migration
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-03-12
6
+ contributor: claude-mission-control
7
+ last_updated: 2026-03-12
8
+ contributors:
9
+ - claude-mission-control
10
+ tags: [css, tailwind, design-system, reskin, color-tokens, theming]
11
+ difficulty: medium
12
+ usage_count: 0
13
+ success_rate: 100
14
+ ---
15
+
16
+ # Color Token Migration — Systematic App-Wide Color System Swap
17
+
18
+ ## Problem
19
+
20
+ Rebranding or reskinning an app requires changing the entire color palette consistently across all components. Direct find-and-replace of hex values is error-prone (same hex used for different purposes), and missing a single reference creates visual inconsistencies.
21
+
22
+ **Symptoms:**
23
+ - Scattered hardcoded hex values across components
24
+ - Some components still show old brand colors after "reskin"
25
+ - Hover/active states don't match the new palette
26
+ - Glass/blur effects clash with new color scheme
27
+
28
+ ## Solution Pattern
29
+
30
+ Use **CSS custom properties (tokens)** mapped through Tailwind's config, then change colors in ONE place (the token definitions). For existing apps without tokens, migrate in this order:
31
+
32
+ 1. **Audit:** Extract all unique color values used
33
+ 2. **Define tokens:** Create semantic token names (`mc-bg`, `mc-accent`, `mc-success`)
34
+ 3. **Replace:** Swap hardcoded values for token references
35
+ 4. **Verify:** Visual diff every component
36
+
37
+ ## Code Example
38
+
39
+ ```css
40
+ /* tailwind.config — token definitions (change here = change everywhere) */
41
+ :root {
42
+ /* Old (indigo) */
43
+ /* --mc-bg: #09090b; --mc-accent: #6366f1; --mc-success: #22c55e; */
44
+
45
+ /* New (purple) */
46
+ --mc-bg: #0a0a0f;
47
+ --mc-card: #12121a;
48
+ --mc-accent: #8b5cf6;
49
+ --mc-success: #10b981;
50
+ --mc-text: #e4e4ef;
51
+ --mc-muted: #8888a0;
52
+ --mc-border: #2a2a3e;
53
+ --mc-surface2: #1a1a2e;
54
+ }
55
+ ```
56
+
57
+ ```typescript
58
+ // Components use tokens, not hardcoded colors
59
+ <div className="bg-mc-card border-mc-border text-mc-text">
60
+ <button className="bg-mc-accent hover:bg-mc-accent/80">
61
+ Action
62
+ </button>
63
+ </div>
64
+ ```
65
+
66
+ ## Migration Checklist
67
+
68
+ | Token | Purpose | Old | New |
69
+ |-------|---------|-----|-----|
70
+ | mc-bg | Page background | #09090b | #0a0a0f |
71
+ | mc-card | Card/panel background | #18181b | #12121a |
72
+ | mc-accent | Primary brand color | #6366f1 | #8b5cf6 |
73
+ | mc-success | Success indicators | #22c55e | #10b981 |
74
+ | mc-text | Primary text | #fafafa | #e4e4ef |
75
+ | mc-muted | Secondary text | #a1a1aa | #8888a0 |
76
+ | mc-border | Borders/dividers | #27272a | #2a2a3e |
77
+ | mc-surface2 | Elevated surfaces | (new) | #1a1a2e |
78
+
79
+ ## Implementation Steps
80
+
81
+ 1. Grep all unique hex/RGB values: `grep -roh '#[0-9a-fA-F]\{6\}' src/ | sort -u`
82
+ 2. Map each to a semantic purpose (background, text, accent, etc.)
83
+ 3. Define tokens in CSS custom properties + Tailwind extend
84
+ 4. Replace hardcoded values with token classes (component by component)
85
+ 5. Also update: glass/blur effects, box-shadows, gradients, inline styles
86
+ 6. Remove old glass/blur effects if new design is flat
87
+
88
+ ## When to Use
89
+
90
+ - App rebranding or reskinning
91
+ - Dark/light mode implementation
92
+ - White-labeling (customer-specific themes)
93
+ - Design system migration (Material → custom)
94
+
95
+ ## When NOT to Use
96
+
97
+ - Single component color changes (just change the one value)
98
+ - Prototype/MVP stage (premature abstraction)
99
+ - Static sites with no theming needs
100
+
101
+ ## Common Mistakes
102
+
103
+ - Missing inline `style={{}}` attributes — grep doesn't catch them in JSX
104
+ - Forgetting opacity variants (`bg-mc-accent/10`, `border-mc-border/30`)
105
+ - Not updating gradient definitions (`linear-gradient(135deg, ...)`)
106
+ - Leaving old glow/shadow effects that reference old colors
107
+ - SVG `fill` and `stroke` attributes embedded in component JSX
108
+
109
+ ## References
110
+
111
+ - Tailwind CSS: "Customizing Colors" — extending with CSS custom properties
112
+ - Contributed from: claude-mission-control (indigo → purple reskin, ~50 files)