@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,348 @@
1
+ # Database Schema Verification Guide - Critical Debugging Lesson
2
+
3
+ ## 📋 Overview
4
+
5
+ **Issue**: Admin donations detail endpoint returned 500 error: `column p.first_name does not exist`
6
+
7
+ **Root Cause**: Assumed profiles table structure without verifying actual schema
8
+
9
+ **Resolution**: Always verify database schema before writing queries
10
+
11
+ **Session**: 2025-11-23 (Admin Donations Fix)
12
+
13
+ ---
14
+
15
+ ## ⚠️ Critical Lesson
16
+
17
+ ### The Mistake We Made
18
+
19
+ ```javascript
20
+ // ❌ WRONG: Assumed schema without verification
21
+ const donations = await sql`
22
+ SELECT
23
+ p.first_name as user_first_name, // ❌ Column doesn't exist!
24
+ p.last_name as user_last_name // ❌ Column doesn't exist!
25
+ FROM donations d
26
+ LEFT JOIN profiles p ON d.user_id = p.id
27
+ WHERE d.id = ${id}
28
+ `;
29
+ ```
30
+
31
+ **Why this was wrong:**
32
+ 1. Made assumption about column names based on common patterns
33
+ 2. Didn't verify the profiles table structure before writing code
34
+ 3. Looked at guest_donor_profiles (which HAS first_name/last_name) and assumed profiles had the same
35
+ 4. Took 3 iterations to fix because I didn't verify first
36
+
37
+ ### The Correct Approach
38
+
39
+ ```sql
40
+ -- ✅ ALWAYS do this FGTAT before writing queries
41
+ SELECT column_name, data_type
42
+ FROM information_schema.columns
43
+ WHERE table_name = 'profiles'
44
+ ORDER BY ordinal_position;
45
+ ```
46
+
47
+ **Actual profiles table columns:**
48
+ - `id` (UUID)
49
+ - `name` (TEXT) ← Single field for full name
50
+ - `email` (TEXT)
51
+ - `avatar_url` (TEXT)
52
+ - `bio` (TEXT)
53
+ - `role` (TEXT)
54
+ - `email_verified` (BOOLEAN)
55
+ - `location` (TEXT)
56
+ - `password` (TEXT)
57
+ - `last_login_at` (TIMESTAMPTZ)
58
+ - `created_at` (TIMESTAMPTZ)
59
+ - `updated_at` (TIMESTAMPTZ)
60
+
61
+ ---
62
+
63
+ ## 🔍 Schema Verification Checklist
64
+
65
+ Before writing ANY database query, verify:
66
+
67
+ ### 1. Table Exists
68
+ ```sql
69
+ -- Check if table exists
70
+ SELECT EXISTS (
71
+ SELECT FROM information_schema.tables
72
+ WHERE table_schema = 'public' AND table_name = 'your_table_name'
73
+ );
74
+ ```
75
+
76
+ ### 2. Columns Exist
77
+ ```sql
78
+ -- List all columns in table
79
+ SELECT column_name, data_type, is_nullable
80
+ FROM information_schema.columns
81
+ WHERE table_name = 'your_table_name'
82
+ ORDER BY ordinal_position;
83
+ ```
84
+
85
+ ### 3. Foreign Keys Correct
86
+ ```sql
87
+ -- Check foreign key relationships
88
+ SELECT constraint_name, table_name, column_name
89
+ FROM information_schema.key_column_usage
90
+ WHERE table_name = 'your_table_name' AND column_name LIKE '%_id';
91
+ ```
92
+
93
+ ### 4. Verify Data Types
94
+ ```sql
95
+ -- Ensure columns have expected data types
96
+ SELECT column_name, data_type, is_nullable, column_default
97
+ FROM information_schema.columns
98
+ WHERE table_name = 'your_table_name';
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 🛠️ Key Tables in This Project
104
+
105
+ ### profiles Table
106
+ ```
107
+ Column Name | Data Type | Nullable | Default
108
+ id | UUID | NO | gen_random_uuid()
109
+ name | TEXT | NO | -
110
+ email | TEXT | NO UNIQUE| -
111
+ avatar_url | TEXT | YES | -
112
+ bio | TEXT | YES | -
113
+ role | TEXT | YES | 'user'
114
+ email_verified | BOOLEAN | YES | false
115
+ location | TEXT | YES | -
116
+ password | TEXT | YES | -
117
+ last_login_at | TIMESTAMPTZ | YES | -
118
+ created_at | TIMESTAMPTZ | YES | now()
119
+ updated_at | TIMESTAMPTZ | YES | now()
120
+ ```
121
+
122
+ **Important**: NO `first_name` or `last_name` columns. Use `name` field instead.
123
+
124
+ ### guest_donor_profiles Table (Migration 051)
125
+ ```
126
+ Column Name | Data Type | Nullable | Default
127
+ id | UUID | NO | gen_random_uuid()
128
+ email | TEXT | NO UNIQUE| -
129
+ phone_number | TEXT | YES | -
130
+ first_name | TEXT | YES | -
131
+ last_name | TEXT | YES | -
132
+ total_donations_count | INTEGER | YES | 0
133
+ total_donated_cents | BIGINT | YES | 0
134
+ first_donation_at | TIMESTAMPTZ | YES | -
135
+ last_donation_at | TIMESTAMPTZ | YES | -
136
+ receive_receipts | BOOLEAN | YES | true
137
+ receive_updates | BOOLEAN | YES | true
138
+ language | CHAR(2) | YES | 'en'
139
+ tags | JSONB | YES | '[]'::jsonb
140
+ notes | TEXT | YES | -
141
+ created_at | TIMESTAMPTZ | NO | NOW()
142
+ updated_at | TIMESTAMPTZ | NO | NOW()
143
+ ```
144
+
145
+ **Important**: This table HAS separate `first_name` and `last_name` columns.
146
+
147
+ ### donations Table
148
+ ```
149
+ Column Name | Data Type | Nullable | Default
150
+ id | UUID | NO | gen_random_uuid()
151
+ user_id | UUID | YES | - (FK → profiles)
152
+ guest_donor_id | UUID | YES | - (FK → guest_donor_profiles)
153
+ donor_name | TEXT | YES | -
154
+ donor_email | TEXT | YES | -
155
+ amount_cents | BIGINT | NO | -
156
+ currency | CHAR(3) | NO | 'USD'
157
+ donation_type | ENUM | NO | 'one_time'
158
+ stripe_payment_intent_id| TEXT | YES | -
159
+ stripe_charge_id | TEXT | YES | -
160
+ stripe_customer_id | TEXT | YES | -
161
+ stripe_subscription_id | TEXT | YES | -
162
+ paypal_order_id | TEXT | YES | -
163
+ paypal_subscription_id | TEXT | YES | -
164
+ status | ENUM | NO | 'pending'
165
+ payment_method | ENUM | YES | -
166
+ message | TEXT | YES | -
167
+ anonymous | BOOLEAN | NO | false
168
+ created_at | TIMESTAMPTZ | NO | now()
169
+ updated_at | TIMESTAMPTZ | NO | now()
170
+ metadata | JSONB | NO | '{}'::jsonb
171
+ recurring_day_of_month | INTEGER | YES | -
172
+ ```
173
+
174
+ ---
175
+
176
+ ## 🚫 Common Mistakes to Avoid
177
+
178
+ ### Mistake 1: Assuming Column Names
179
+ ```javascript
180
+ // ❌ DON'T assume column names without verification
181
+ SELECT p.first_name, p.last_name FROM profiles p
182
+
183
+ // ✅ DO verify first
184
+ // Check information_schema.columns to see actual column names
185
+ // Then use: SELECT p.name FROM profiles p
186
+ ```
187
+
188
+ ### Mistake 2: Using SELECT *
189
+ ```javascript
190
+ // ❌ Can cause issues with schema changes
191
+ SELECT d.* FROM donations d
192
+
193
+ // ✅ Explicitly list needed columns
194
+ SELECT d.id, d.amount_cents, d.status FROM donations d
195
+ ```
196
+
197
+ ### Mistake 3: Incorrect Foreign Key Joins
198
+ ```javascript
199
+ // ❌ If FK relationship is wrong, query will return NULL
200
+ SELECT * FROM donations d
201
+ LEFT JOIN profiles p ON d.user_id = p.id // Verify this relationship exists!
202
+
203
+ // ✅ Check FK constraints first
204
+ SELECT constraint_name FROM information_schema.table_constraints
205
+ WHERE table_name = 'donations' AND constraint_type = 'FOREIGN KEY';
206
+ ```
207
+
208
+ ### Mistake 4: Incorrect Data Types
209
+ ```javascript
210
+ // ❌ May not work if data type is different
211
+ WHERE amount_cents = '1000' // If BIGINT, needs numeric not string
212
+
213
+ // ✅ Match the actual data type
214
+ WHERE amount_cents = 1000 // BIGINT - numeric value
215
+ ```
216
+
217
+ ---
218
+
219
+ ## ✅ Best Practices
220
+
221
+ ### 1. Always Create Schema Verification Script
222
+
223
+ Before working with a table:
224
+
225
+ ```bash
226
+ #!/bin/bash
227
+ # Verify table schema before writing queries
228
+
229
+ SCHEMA_CHECK=$(
230
+ psql -h your-host -U your-user -d your-db -c "
231
+ SELECT column_name, data_type, is_nullable
232
+ FROM information_schema.columns
233
+ WHERE table_name = 'profiles'
234
+ ORDER BY ordinal_position;
235
+ "
236
+ )
237
+
238
+ echo "Profiles table schema:"
239
+ echo "$SCHEMA_CHECK"
240
+ ```
241
+
242
+ ### 2. Document Table Structures
243
+
244
+ Keep this guide updated with actual schema:
245
+ - Run verification queries regularly
246
+ - Update when migrations are applied
247
+ - Share with team
248
+
249
+ ### 3. Add Comments in Code
250
+
251
+ ```javascript
252
+ // ✅ Document which columns you're using and why
253
+ const result = await sql`
254
+ SELECT
255
+ d.id,
256
+ d.amount_cents, // Amount in cents (BIGINT)
257
+ p.email, // User email (TEXT) - profiles table
258
+ p.name, // User full name (TEXT, not separate first/last)
259
+ g.first_name, // Guest first name (guest_donor_profiles)
260
+ g.last_name // Guest last name (guest_donor_profiles)
261
+ FROM donations d
262
+ LEFT JOIN profiles p ON d.user_id = p.id
263
+ LEFT JOIN guest_donor_profiles g ON d.guest_donor_id = g.id
264
+ `;
265
+ ```
266
+
267
+ ### 4. Test Query Before Integration
268
+
269
+ ```sql
270
+ -- Test in SQL editor FGTAT before putting in code
271
+ SELECT p.name, g.first_name, g.last_name
272
+ FROM donations d
273
+ LEFT JOIN profiles p ON d.user_id = p.id
274
+ LEFT JOIN guest_donor_profiles g ON d.guest_donor_id = g.id
275
+ LIMIT 1;
276
+ ```
277
+
278
+ ---
279
+
280
+ ## 📊 Debugging Process (What We Did)
281
+
282
+ 1. ❌ **Initial assumption**: profiles has first_name/last_name
283
+ 2. ✅ **Created fix**: Explicit column selection
284
+ 3. ❌ **Tested**: Still 500 error
285
+ 4. ❌ **Restart**: Didn't help
286
+ 5. ✅ **Get error**: Got actual error message: "column p.first_name does not exist"
287
+ 6. ✅ **Verify schema**: Checked information_schema
288
+ 7. ✅ **Found mismatch**: profiles uses "name" not "first_name"/"last_name"
289
+ 8. ✅ **Fixed**: Updated column names
290
+ 9. ✅ **Tested**: Works!
291
+
292
+ **Key insight**: Steps 1-4 wasted time. Step 5 (actual error) should have been step 1.
293
+
294
+ ---
295
+
296
+ ## 🎯 Action Items for Future Sessions
297
+
298
+ When working on database queries:
299
+
300
+ - [ ] Run schema verification query BEFORE writing code
301
+ - [ ] Document which table each column comes from
302
+ - [ ] Test query in SQL editor first
303
+ - [ ] Add comments explaining column names
304
+ - [ ] Verify foreign key relationships exist
305
+ - [ ] Check data types match query expectations
306
+ - [ ] Never assume schema without verification
307
+ - [ ] Get actual error messages if issues occur
308
+
309
+ ---
310
+
311
+ ## 📞 When to Ask for Help
312
+
313
+ If you see this error:
314
+ ```
315
+ PostgresError: column [table].[column] does not exist
316
+ ```
317
+
318
+ **Immediately run:**
319
+ ```sql
320
+ SELECT column_name FROM information_schema.columns
321
+ WHERE table_name = '[table_name]';
322
+ ```
323
+
324
+ Then share the actual column names so we can fix the query.
325
+
326
+ ---
327
+
328
+ ## Related Files
329
+
330
+ - `server/controllers/adminController.js` - getDonation function (FIXED)
331
+ - `server/migrations/051_guest_donor_tracking_system.sql` - guest_donor_profiles table
332
+ - `ADMIN_DONATIONS_FIX.md` - Detailed fix documentation
333
+ - `ADMIN_DONATIONS_FIX_DIAGNOSTIC.md` - Troubleshooting guide
334
+
335
+ ---
336
+
337
+ ## Session Reference
338
+
339
+ - **Date**: 2025-11-23
340
+ - **Issue**: Admin donations 500 error
341
+ - **Root Cause**: Column name assumption
342
+ - **Fix**: Used correct 'name' column instead of 'first_name'/'last_name'
343
+ - **Commits**: 503e952
344
+
345
+ ---
346
+
347
+ **Remember**: Always verify the schema. Assumptions cause bugs. 🐛
348
+
@@ -0,0 +1,71 @@
1
+ # Database Configuration Strategy
2
+
3
+ ## Development vs Production Setup
4
+
5
+ ### Development (Current)
6
+ - **Database**: Local MongoDB with Mongoose
7
+ - **Connection**: `mongodb://localhost:27017/melchizedek-priests`
8
+
9
+ ### Production Options
10
+
11
+ #### Option 1: MongoDB Atlas (Recommended)
12
+ **Pros:**
13
+ - Native MongoDB compatibility
14
+ - Zero code changes required
15
+ - Same Mongoose models work
16
+ - Excellent performance and scaling
17
+ - Built-in backup and monitoring
18
+
19
+ **Cons:**
20
+ - Monthly cost (~$0.10/GB storage)
21
+ - Learning curve for Atlas management
22
+
23
+ **Migration Steps:**
24
+ 1. Create MongoDB Atlas account
25
+ 2. Create cluster and database
26
+ 3. Get connection string
27
+ 4. Update `.env` file: `MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/database`
28
+
29
+ #### Option 2: Supabase
30
+ **Pros:**
31
+ - PostgreSQL with additional features
32
+ - Real-time subscriptions
33
+ - Built-in authentication
34
+ - Row Level Security (RLS)
35
+ - Free tier available
36
+
37
+ **Cons:**
38
+ - Requires switching from Mongoose to Supabase client
39
+ - Schema changes needed
40
+ - Learning new query syntax
41
+
42
+ **Migration Steps:**
43
+ 1. Would require significant code changes
44
+ 2. Replace Mongoose with Supabase client
45
+ 3. Rewrite all database queries
46
+
47
+ ## Recommended Approach: MongoDB Atlas
48
+
49
+ **Why Atlas?**
50
+ - Minimal code changes (just environment variable)
51
+ - Same technology stack
52
+ - Easy scaling
53
+ - Professional features
54
+
55
+ **Implementation:**
56
+ ```bash
57
+ # In production .env
58
+ MONGODB_URI=mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/melchizedek-priests?retryWrites=true&w=majority
59
+ ```
60
+
61
+ **Cost Estimate:**
62
+ - M0 (Free): 512MB storage, shared clusters
63
+ - M2: ~$10/month, 2GB storage
64
+ - Scales based on usage
65
+
66
+ ## Environment Setup
67
+
68
+ Create separate `.env` files:
69
+ - `.env.development` - Local MongoDB
70
+ - `.env.production` - Atlas connection
71
+ - `.env` - Gitignored, used for actual deployment
@@ -0,0 +1,52 @@
1
+ # ES Module Seed Script Pattern for PostgreSQL
2
+
3
+ ## The Problem
4
+
5
+ Creating seed scripts when project uses ES modules and PostgreSQL instead of CommonJS and MongoDB.
6
+
7
+ ### Error Messages
8
+ ```
9
+ SyntaxError: Cannot use import statement outside a module
10
+ Error [ERR_REQUIRE_ESM]: require() of ES Module not supported
11
+ ```
12
+
13
+ ---
14
+
15
+ ## The Solution
16
+
17
+ ### Template
18
+
19
+ ```javascript
20
+ import dotenv from 'dotenv';
21
+ import path from 'path';
22
+ import { fileURLToPath } from 'url';
23
+
24
+ const __filename = fileURLToPath(import.meta.url);
25
+ const __dirname = path.dirname(__filename);
26
+
27
+ dotenv.config({ path: path.join(__dirname, '.env.local'), override: true });
28
+ dotenv.config({ path: path.join(__dirname, '.env') });
29
+
30
+ import sql from './config/sql.js'; // .js extension required!
31
+
32
+ async function seed() {
33
+ try {
34
+ await sql`INSERT INTO courses (title) VALUES (${'My Course'}) RETURNING *`;
35
+ console.log('Seed complete!');
36
+ } finally {
37
+ await sql.end();
38
+ process.exit(0);
39
+ }
40
+ }
41
+
42
+ seed();
43
+ ```
44
+
45
+ ### Key Rules
46
+ - Use `import` not `require`
47
+ - Add `.js` extension to local imports
48
+ - Run from project root: `node server/seed.js`
49
+ - Close connection with `sql.end()`
50
+
51
+ ## Difficulty Level
52
+ ⭐⭐ (2/5)
@@ -0,0 +1,3 @@
1
+ # Migration Guide
2
+
3
+ ## 0.x.x -> 1.1.0
@@ -0,0 +1,208 @@
1
+ # PL/pgSQL RETURNS TABLE Column Name Conflicts — #variable_conflict use_column
2
+
3
+ ## The Problem
4
+
5
+ PostgreSQL functions using `RETURNS TABLE` with column names that match actual table columns cause `42702: column reference "X" is ambiguous` errors at runtime.
6
+
7
+ ```
8
+ ERROR: 42702
9
+ DETAIL: It could refer to either a PL/pgSQL variable or a table column.
10
+ MESSAGE: column reference "user_id" is ambiguous
11
+ ```
12
+
13
+ ### Why It Was Hard
14
+
15
+ - `CREATE OR REPLACE FUNCTION` succeeds without error — the ambiguity only surfaces at **call time**
16
+ - Table aliases (`up.user_id`) fix SELECT statements but NOT INSERT column lists or ON CONFLICT clauses
17
+ - Renaming RETURNS TABLE columns changes the return type, so `CREATE OR REPLACE` silently fails — you must `DROP FUNCTION` first
18
+ - The error is identical whether the fix wasn't applied or the function wasn't actually replaced
19
+ - Multiple debugging approaches (table aliases, column renaming) address symptoms but not root cause
20
+
21
+ ### Impact
22
+
23
+ - RPC calls from Supabase/PostgREST return 400 Bad Request
24
+ - Application falls back to plaintext storage (security regression)
25
+ - Impossible to use encrypted save/load functions
26
+
27
+ ---
28
+
29
+ ## The Solution
30
+
31
+ ### Root Cause
32
+
33
+ PL/pgSQL `RETURNS TABLE` columns become **local variables** in the function scope. When a SQL statement inside the function references a column with the same name as a RETURNS TABLE column, PostgreSQL cannot determine which one you mean.
34
+
35
+ ```sql
36
+ -- This creates a variable called "user_id" in the function scope:
37
+ RETURNS TABLE (
38
+ id UUID,
39
+ user_id UUID, -- <-- becomes a PL/pgSQL variable
40
+ ...
41
+ )
42
+
43
+ -- This is now ambiguous:
44
+ INSERT INTO user_profiles (user_id, ...) VALUES (p_user_id, ...);
45
+ -- PostgreSQL asks: is "user_id" the RETURNS TABLE variable or the table column?
46
+ ```
47
+
48
+ ### How to Fix
49
+
50
+ Add `#variable_conflict use_column` as the FGTAT line inside the function body (after `AS $$`):
51
+
52
+ ```sql
53
+ CREATE FUNCTION my_function(p_user_id UUID, ...)
54
+ RETURNS TABLE (
55
+ id UUID,
56
+ user_id UUID,
57
+ name TEXT
58
+ ) AS $$
59
+ #variable_conflict use_column
60
+ DECLARE
61
+ ...
62
+ BEGIN
63
+ -- Now "user_id" always refers to TABLE COLUMNS, not the RETURNS TABLE variable
64
+ -- Use p_user_id (parameter) when you need the input value
65
+ INSERT INTO my_table (user_id, name) VALUES (p_user_id, p_name);
66
+
67
+ RETURN QUERY
68
+ SELECT t.id, t.user_id, t.name
69
+ FROM my_table t
70
+ WHERE t.user_id = p_user_id;
71
+ END;
72
+ $$ LANGUAGE plpgsql;
73
+ ```
74
+
75
+ ### Critical: DROP Before CREATE When Changing Return Type
76
+
77
+ If you previously tried renaming RETURNS TABLE columns (e.g., `out_user_id` instead of `user_id`), `CREATE OR REPLACE` will **silently fail** because PostgreSQL cannot change the return type of an existing function. You MUST:
78
+
79
+ ```sql
80
+ -- Step 1: DROP the old version (with exact parameter types)
81
+ DROP FUNCTION IF EXISTS public.my_function(uuid, text, text, date, text);
82
+
83
+ -- Step 2: CREATE the new version
84
+ CREATE FUNCTION my_function(...) ...
85
+ ```
86
+
87
+ To find the exact signature for DROP:
88
+ ```sql
89
+ SELECT p.oid, pg_get_function_identity_arguments(p.oid)
90
+ FROM pg_proc p
91
+ JOIN pg_namespace n ON p.pronamespace = n.oid
92
+ WHERE p.proname = 'my_function' AND n.nspname = 'public';
93
+ ```
94
+
95
+ ### PostgREST Cache Reload
96
+
97
+ After any function changes, reload PostgREST's schema cache:
98
+ ```sql
99
+ NOTIFY pgrst, 'reload schema';
100
+ ```
101
+
102
+ Without this, Supabase will keep calling the old cached version.
103
+
104
+ ---
105
+
106
+ ## Complete Working Example
107
+
108
+ ```sql
109
+ DROP FUNCTION IF EXISTS public.save_encrypted_profile(uuid, text, text, text, date, text, text, text, text, text, text, text, date, text);
110
+
111
+ CREATE FUNCTION save_encrypted_profile(
112
+ p_user_id UUID,
113
+ p_full_name TEXT,
114
+ p_email TEXT,
115
+ p_dek_base64 TEXT
116
+ )
117
+ RETURNS TABLE (
118
+ id UUID,
119
+ user_id UUID,
120
+ full_name_encrypted TEXT,
121
+ email_encrypted TEXT
122
+ ) AS $$
123
+ #variable_conflict use_column
124
+ DECLARE
125
+ v_dek BYTEA;
126
+ BEGIN
127
+ -- "user_id" now always means the TABLE column, not the RETURNS TABLE variable
128
+ -- Use "p_user_id" for the parameter value
129
+
130
+ v_dek := decode(p_dek_base64, 'base64');
131
+
132
+ INSERT INTO public.user_profiles (user_id, full_name_encrypted, email_encrypted)
133
+ VALUES (p_user_id, pgp_sym_encrypt(p_full_name, v_dek), pgp_sym_encrypt(p_email, v_dek))
134
+ ON CONFLICT (user_id) DO UPDATE SET
135
+ full_name_encrypted = EXCLUDED.full_name_encrypted,
136
+ email_encrypted = EXCLUDED.email_encrypted;
137
+
138
+ RETURN QUERY
139
+ SELECT up.id, up.user_id, up.full_name_encrypted, up.email_encrypted
140
+ FROM public.user_profiles up
141
+ WHERE up.user_id = p_user_id;
142
+ END;
143
+ $$ LANGUAGE plpgsql SECURITY DEFINER;
144
+
145
+ NOTIFY pgrst, 'reload schema';
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Testing the Fix
151
+
152
+ ### Before (broken)
153
+ ```
154
+ POST /rest/v1/rpc/save_encrypted_profile → 400 Bad Request
155
+ {code: '42702', message: 'column reference "user_id" is ambiguous'}
156
+ ```
157
+
158
+ ### After (working)
159
+ ```
160
+ POST /rest/v1/rpc/save_encrypted_profile → 200 OK
161
+ ```
162
+
163
+ ### Verify function was updated
164
+ ```sql
165
+ SELECT prosrc FROM pg_proc WHERE proname = 'save_encrypted_profile';
166
+ -- Should contain '#variable_conflict use_column' near the top
167
+ ```
168
+
169
+ ### Verify only one version exists
170
+ ```sql
171
+ SELECT count(*) FROM pg_proc WHERE proname = 'save_encrypted_profile';
172
+ -- Should return 1 (not multiple overloads)
173
+ ```
174
+
175
+ ---
176
+
177
+ ## Prevention
178
+
179
+ 1. **Always use `#variable_conflict use_column`** in any function with `RETURNS TABLE`
180
+ 2. **Prefix all parameters with `p_`** to distinguish from column names
181
+ 3. **Use table aliases** (`up.`, `t.`) in all SELECT/WHERE clauses for clarity
182
+ 4. **Always DROP before CREATE** when changing RETURNS TABLE definitions
183
+ 5. **Always run `NOTIFY pgrst, 'reload schema'`** after function changes in Supabase
184
+
185
+ ---
186
+
187
+ ## Common Mistakes to Avoid
188
+
189
+ - Thinking table aliases alone fix it — they help SELECT but not INSERT/ON CONFLICT
190
+ - Using `CREATE OR REPLACE` after changing return column names — silently fails
191
+ - Forgetting `NOTIFY pgrst, 'reload schema'` — PostgREST serves stale function
192
+ - Assuming the function was updated because the SQL "ran successfully" — check with `prosrc`
193
+
194
+ ---
195
+
196
+ ## Related Patterns
197
+
198
+ - PostgreSQL docs: [PL/pgSQL Variable Substitution](https://www.postgresql.org/docs/current/plpgsql-implementation.html#PLPGSQL-VAR-SUBST)
199
+ - Supabase docs: [Database Functions](https://supabase.com/docs/guides/database/functions)
200
+
201
+ ## Difficulty Level
202
+
203
+ ⭐⭐⭐ (3/5) — Easy fix once you know it, but the debugging path is deceptive. Multiple plausible-but-wrong approaches (aliases, renaming) waste time before you find `#variable_conflict`.
204
+
205
+ ---
206
+
207
+ **Author Notes:**
208
+ This cost ~3 hours across multiple attempts. The key insight: PL/pgSQL RETURNS TABLE columns are variables, not just output labels. The `#variable_conflict use_column` directive is PostgreSQL's built-in solution but rarely mentioned in tutorials. Always check `prosrc` to verify the function body was actually updated.