@thierrynakoa/fire-flow 12.2.1 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -455
  4. package/TROUBLESHOOTING.md +264 -264
  5. package/agents/fire-debugger.md +54 -0
  6. package/agents/fire-executor.md +1610 -1033
  7. package/agents/fire-fact-checker.md +1 -1
  8. package/agents/fire-planner.md +85 -17
  9. package/agents/fire-project-researcher.md +1 -1
  10. package/agents/fire-researcher.md +4 -22
  11. package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
  12. package/agents/fire-reviewer.md +552 -499
  13. package/agents/fire-verifier.md +114 -19
  14. package/bin/cli.js +18 -101
  15. package/commands/fire-0-orient.md +2 -2
  16. package/commands/fire-1a-new.md +50 -15
  17. package/commands/fire-1c-setup.md +33 -5
  18. package/commands/fire-1d-discuss.md +87 -1
  19. package/commands/fire-2-plan.md +556 -527
  20. package/commands/fire-3-execute.md +2046 -1356
  21. package/commands/fire-4-verify.md +975 -906
  22. package/commands/fire-5-handoff.md +46 -5
  23. package/commands/fire-6-resume.md +2 -31
  24. package/commands/fire-add-new-skill.md +138 -19
  25. package/commands/fire-autonomous.md +14 -2
  26. package/commands/fire-complete-milestone.md +1 -1
  27. package/commands/fire-cost.md +179 -183
  28. package/commands/fire-debug.md +1 -6
  29. package/commands/fire-loop-resume.md +2 -2
  30. package/commands/fire-loop-stop.md +1 -1
  31. package/commands/fire-loop.md +2 -15
  32. package/commands/fire-map-codebase.md +1 -1
  33. package/commands/fire-migrate-database.md +548 -0
  34. package/commands/fire-new-milestone.md +1 -1
  35. package/commands/fire-reflect.md +1 -2
  36. package/commands/fire-research.md +142 -21
  37. package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
  38. package/commands/fire-scaffold.md +297 -0
  39. package/commands/fire-search.md +1 -2
  40. package/commands/fire-security-scan.md +483 -484
  41. package/commands/fire-setup.md +359 -0
  42. package/commands/fire-skill.md +770 -0
  43. package/commands/fire-skills-diff.md +506 -506
  44. package/commands/fire-skills-history.md +388 -388
  45. package/commands/fire-skills-rollback.md +7 -7
  46. package/commands/fire-skills-sync.md +470 -470
  47. package/commands/fire-test.md +5 -5
  48. package/commands/fire-todos.md +1 -1
  49. package/commands/fire-update.md +5 -5
  50. package/commands/fire-validate-skills.md +282 -0
  51. package/commands/fire-vuln-scan.md +492 -493
  52. package/hooks/run-hook.sh +8 -8
  53. package/hooks/run-session-end.sh +7 -7
  54. package/hooks/session-end.sh +90 -90
  55. package/hooks/session-start.sh +1 -1
  56. package/package.json +4 -24
  57. package/plugin.json +7 -7
  58. package/references/autonomy-levels.md +235 -0
  59. package/references/behavioral-directives.md +95 -3
  60. package/references/blocker-tracking.md +1 -1
  61. package/references/circuit-breaker.md +93 -2
  62. package/references/context-engineering.md +227 -9
  63. package/references/honesty-protocols.md +70 -1
  64. package/references/issue-to-pr-pipeline.md +149 -150
  65. package/references/metrics-and-trends.md +1 -2
  66. package/references/research-improvements.md +4 -108
  67. package/references/sdlc-mapping.md +73 -0
  68. package/references/state-machine.md +151 -0
  69. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  70. package/skills-library/SKILLS-INDEX.md +57 -558
  71. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  72. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  73. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  74. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  75. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  76. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  77. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  78. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  79. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  80. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  81. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  82. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  83. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  84. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  85. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  86. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  87. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  88. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  89. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  90. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  91. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  92. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  93. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  94. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  95. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  96. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  97. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  98. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  99. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  100. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  101. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  102. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  103. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  104. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  105. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  106. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  107. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  108. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  109. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  110. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  111. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  112. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  113. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  114. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  115. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  116. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  117. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  118. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  119. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  120. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  121. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  122. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  123. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  124. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  125. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  126. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  127. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  128. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  129. package/skills-library/_quarantine/README.md +30 -0
  130. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  131. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  132. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  133. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  134. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  135. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  136. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  137. package/skills-library/appointment-scheduler-design.md +423 -0
  138. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  139. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  140. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  141. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  142. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  143. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  144. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  145. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  146. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  151. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  152. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  153. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  154. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  155. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  156. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  157. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  158. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  159. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  160. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  161. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  162. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  163. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  164. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  165. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  166. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  167. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  168. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  169. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  170. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  171. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  172. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  173. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  174. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  175. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  176. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  177. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  178. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  179. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  180. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  182. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  183. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  184. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  185. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  186. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  187. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  188. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  189. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  190. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  191. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  192. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  193. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  194. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  195. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  196. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  197. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  198. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  199. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  200. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  201. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  202. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  203. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  204. package/skills-library/database-solutions/normalization-validator.md +778 -0
  205. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  206. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  207. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  208. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  209. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  210. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  211. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  212. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  213. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  215. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  216. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  217. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  218. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  219. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  220. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  221. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  222. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  223. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  224. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  225. package/skills-library/deployment-security/SECURITY.md +41 -0
  226. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  227. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  228. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  229. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  230. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  231. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  232. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  233. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  234. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  235. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  236. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  237. package/skills-library/deployment-security/vps-deployment.md +135 -0
  238. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  239. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  240. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  241. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  242. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  243. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  244. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  245. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  246. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  247. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  248. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  249. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  250. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  251. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  252. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  253. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  254. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  255. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  256. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  257. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  258. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  259. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  260. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  261. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  262. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  263. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  264. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  265. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  266. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  267. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  268. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  272. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  273. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  274. package/skills-library/excalidraw-diagrams/README.md +178 -0
  275. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  276. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  277. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  278. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  279. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  280. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  281. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  282. package/skills-library/infrastructure/observability-designer.md +264 -0
  283. package/skills-library/infrastructure/performance-profiler.md +621 -0
  284. package/skills-library/installer-wizard-patterns.md +249 -0
  285. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  286. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  287. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  288. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  289. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  290. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  291. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  293. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  294. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  295. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  297. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  299. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  300. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  301. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  302. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  303. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  304. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  305. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  306. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  307. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  308. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  313. package/skills-library/marketing/campaign-analytics.md +97 -0
  314. package/skills-library/marketing/content-creator.md +105 -0
  315. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  316. package/skills-library/marketing/social-media-analyzer.md +81 -0
  317. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  318. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  319. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  320. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  321. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  322. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  323. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  324. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  325. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  326. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  327. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  328. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  329. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  330. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  331. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  332. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  333. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  334. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  335. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  336. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  337. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  338. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  339. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  340. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  341. package/skills-library/parallel-debug/SKILL.md +60 -0
  342. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  343. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  344. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  345. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  346. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  347. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  348. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  349. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  350. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  351. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  352. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  353. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  354. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  355. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  356. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  357. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  358. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  359. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  360. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  361. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  362. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  363. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  364. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  365. package/skills-library/security/admin-deletion-safety.md +396 -0
  366. package/skills-library/security/application-vuln-patterns.md +477 -0
  367. package/skills-library/security/env-secrets-manager.md +686 -0
  368. package/skills-library/security/secure-ai-application-templates.md +347 -0
  369. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  370. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  371. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  372. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  373. package/skills-library/system-context/SKILL.md +40 -0
  374. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  375. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  376. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  377. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  378. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  379. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  380. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  381. package/skills-library/toolbox/SKILL.md +84 -0
  382. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  383. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  384. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  385. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  386. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  387. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  388. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  389. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  390. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  391. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  392. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  393. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  406. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  407. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  408. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  409. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  410. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  411. package/skills-library/wordpress-style-theme-components.md +1526 -0
  412. package/templates/ASSUMPTIONS.md +1 -1
  413. package/templates/DECISION_LOG.md +0 -1
  414. package/templates/phase-prompt.md +1 -1
  415. package/templates/phoenix-comparison.md +6 -6
  416. package/templates/skill-api-integration.md +106 -0
  417. package/templates/skill-architecture-pattern.md +92 -0
  418. package/templates/skill-debug-pattern.md +98 -0
  419. package/templates/skill-devops-recipe.md +107 -0
  420. package/templates/skill-general.md +65 -0
  421. package/templates/skill-ui-component.md +113 -0
  422. package/tools/uat-runner.py +179 -0
  423. package/version.json +7 -3
  424. package/workflows/handoff-session.md +2 -2
  425. package/workflows/new-project.md +2 -2
  426. package/workflows/plan-phase.md +1 -1
  427. package/.claude-plugin/plugin.json +0 -64
  428. package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
  429. package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
  430. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
  431. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
  432. package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
  433. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
  434. package/skills-library/specialists/api-architecture/api-designer.md +0 -49
  435. package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
  436. package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
  437. package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
  438. package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
  439. package/skills-library/specialists/backend/django-expert.md +0 -52
  440. package/skills-library/specialists/backend/fastapi-expert.md +0 -52
  441. package/skills-library/specialists/backend/laravel-specialist.md +0 -52
  442. package/skills-library/specialists/backend/nestjs-expert.md +0 -51
  443. package/skills-library/specialists/backend/rails-expert.md +0 -53
  444. package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
  445. package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
  446. package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
  447. package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
  448. package/skills-library/specialists/data-ml/rag-architect.md +0 -51
  449. package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
  450. package/skills-library/specialists/frontend/angular-architect.md +0 -52
  451. package/skills-library/specialists/frontend/flutter-expert.md +0 -51
  452. package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
  453. package/skills-library/specialists/frontend/react-native-expert.md +0 -50
  454. package/skills-library/specialists/frontend/vue-expert.md +0 -51
  455. package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
  456. package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
  457. package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
  458. package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
  459. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
  460. package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
  461. package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
  462. package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
  463. package/skills-library/specialists/languages/cpp-pro.md +0 -74
  464. package/skills-library/specialists/languages/csharp-developer.md +0 -69
  465. package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
  466. package/skills-library/specialists/languages/golang-pro.md +0 -51
  467. package/skills-library/specialists/languages/java-architect.md +0 -49
  468. package/skills-library/specialists/languages/javascript-pro.md +0 -68
  469. package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
  470. package/skills-library/specialists/languages/php-pro.md +0 -49
  471. package/skills-library/specialists/languages/python-pro.md +0 -52
  472. package/skills-library/specialists/languages/react-expert.md +0 -51
  473. package/skills-library/specialists/languages/rust-engineer.md +0 -50
  474. package/skills-library/specialists/languages/sql-pro.md +0 -56
  475. package/skills-library/specialists/languages/swift-expert.md +0 -69
  476. package/skills-library/specialists/languages/typescript-pro.md +0 -51
  477. package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
  478. package/skills-library/specialists/platform/embedded-systems.md +0 -53
  479. package/skills-library/specialists/platform/game-developer.md +0 -53
  480. package/skills-library/specialists/platform/salesforce-developer.md +0 -53
  481. package/skills-library/specialists/platform/shopify-expert.md +0 -49
  482. package/skills-library/specialists/platform/wordpress-pro.md +0 -49
  483. package/skills-library/specialists/quality/code-documenter.md +0 -51
  484. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  485. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  486. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  487. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  488. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  489. package/skills-library/specialists/quality/spec-miner.md +0 -56
  490. package/skills-library/specialists/quality/test-master.md +0 -65
  491. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  492. package/skills-library/specialists/security/security-reviewer.md +0 -53
  493. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  494. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  495. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  496. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  497. package/skills-library/specialists/workflow/the-fool.md +0 -62
  498. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  499. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: socket-io-broadcast-all-vs-room
3
+ category: integrations
4
+ version: 1.0.0
5
+ contributed: 2026-02-21
6
+ contributor: my-other-project
7
+ last_updated: 2026-02-21
8
+ tags: [socket.io, websocket, real-time, broadcast, emit, rooms]
9
+ difficulty: easy
10
+ usage_count: 1
11
+ success_rate: 100
12
+ ---
13
+
14
+ # Socket.IO: Broadcast to All Users vs. Room/Namespace
15
+
16
+ ## Problem
17
+
18
+ In Socket.IO, there are several different `emit()` patterns that look similar but have very different scopes. Choosing the wrong one results in messages going to only admins, only one user, only users in a specific room, or being silently dropped.
19
+
20
+ Common confusion: a codebase already has `io.to('admins').emit()` and you need to send to **all** connected users.
21
+
22
+ ## Solution Pattern
23
+
24
+ Use `io.emit()` (global emit on the io instance) to broadcast to every connected socket. This is different from `socket.emit()` (one socket) or `io.to('room').emit()` (room members only).
25
+
26
+ ## Code Example
27
+
28
+ ```js
29
+ // ❌ Wrong: emits to only one specific client
30
+ socket.emit('broadcast_announcement', data);
31
+
32
+ // ❌ Wrong: emits only to users in the 'admins' room
33
+ this.io.to('admins').emit('broadcast_announcement', data);
34
+
35
+ // ❌ Wrong: emits to everyone EXCEPT the sender socket
36
+ socket.broadcast.emit('broadcast_announcement', data);
37
+
38
+ // ✅ Correct: emits to ALL connected sockets (true broadcast)
39
+ this.io.emit('broadcast_announcement', data);
40
+ ```
41
+
42
+ ### Extending a SocketService class:
43
+
44
+ ```js
45
+ class SocketService {
46
+ // Existing method — only reaches admin room
47
+ broadcastToAdmins(event, data) {
48
+ if (!this.io) return;
49
+ this.io.to('admins').emit(event, data);
50
+ }
51
+
52
+ // New method — reaches ALL connected users
53
+ broadcastAnnouncement(announcement) {
54
+ if (!this.io) return;
55
+ this.io.emit('broadcast_announcement', {
56
+ id: announcement.id,
57
+ title: announcement.title,
58
+ message: announcement.message,
59
+ image_url: announcement.image_url,
60
+ cta_label: announcement.cta_label,
61
+ cta_url: announcement.cta_url,
62
+ created_at: announcement.created_at
63
+ });
64
+ }
65
+ }
66
+ ```
67
+
68
+ ### Client listener (React):
69
+
70
+ ```js
71
+ // In a top-level layout component that stays mounted when user is logged in
72
+ useEffect(() => {
73
+ if (!socket) return;
74
+
75
+ const handleAnnouncement = (announcement) => {
76
+ toast.custom((t) => (
77
+ <div
78
+ className={`${t.visible ? 'opacity-100' : 'opacity-0'} bg-white shadow-lg rounded-lg p-4 border-l-4 border-blue-500 cursor-pointer`}
79
+ onClick={() => {
80
+ toast.dismiss(t.id);
81
+ if (announcement.cta_url) window.open(announcement.cta_url, '_blank');
82
+ else window.location.href = '/dashboard/announcements';
83
+ }}
84
+ >
85
+ <p className="font-semibold text-sm">📢 {announcement.title}</p>
86
+ <p className="text-xs text-gray-500 line-clamp-2">{announcement.message}</p>
87
+ </div>
88
+ ), { duration: 8000 });
89
+ };
90
+
91
+ socket.on('broadcast_announcement', handleAnnouncement);
92
+ return () => socket.off('broadcast_announcement', handleAnnouncement);
93
+ }, [socket]);
94
+ ```
95
+
96
+ ## Socket.IO Emit Reference
97
+
98
+ | Pattern | Reaches |
99
+ |---------|---------|
100
+ | `socket.emit(event, data)` | Only the one connected socket |
101
+ | `socket.broadcast.emit(event, data)` | All sockets EXCEPT the sender |
102
+ | `io.emit(event, data)` | ALL connected sockets (true broadcast) |
103
+ | `io.to('room').emit(event, data)` | All sockets in a specific room |
104
+ | `io.to('room1').to('room2').emit()` | All sockets in either room |
105
+ | `io.except('room').emit()` | All sockets NOT in the room |
106
+
107
+ ## Implementation Steps
108
+
109
+ 1. Add the broadcast method to your SocketService class using `this.io.emit()` (not `this.io.to('room').emit()`)
110
+ 2. Guard against `!this.io` (io may not be initialized when called at startup)
111
+ 3. Only emit safe/public fields — don't emit internal DB fields like `created_by` or `updated_at`
112
+ 4. On the client, listen for the event in the highest always-mounted component (e.g., App.jsx or a layout wrapper) so it fires regardless of which page the user is on
113
+ 5. Always clean up with `socket.off()` in the useEffect cleanup to prevent listener accumulation
114
+
115
+ ## When to Use
116
+
117
+ - Admin-to-all-users announcement/notification systems
118
+ - Platform-wide alerts (maintenance windows, new feature announcements)
119
+ - Live events (countdown endings, contest results)
120
+ - Any case where ALL currently-online users should receive a message simultaneously
121
+
122
+ ## When NOT to Use
123
+
124
+ - User-to-user direct messages (use rooms/namespaces)
125
+ - Notifications for specific users only (use `io.to(userSocketId).emit()` or a user-specific room)
126
+ - Admin-only updates (use `io.to('admins').emit()`)
127
+
128
+ ## Common Mistakes
129
+
130
+ - **Using `socket.emit()` from the server** — this only goes to the socket that sent the triggering request, not all users
131
+ - **Listening in a component that unmounts** — if the listener is in a page component, navigating away stops receiving toasts. Always put broadcast listeners in the top-level layout.
132
+ - **Accumulating listeners** — always return a cleanup function: `return () => socket.off('event', handler)`
133
+
134
+ ## Related Skills
135
+
136
+ - [BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md](../api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md)
137
+
138
+ ## References
139
+
140
+ - Socket.IO docs: https://socket.io/docs/v4/broadcasting-events/
141
+ - Contributed from: my-other-project, Phase 15 Broadcast Announcements (2026-02-21)
@@ -0,0 +1,374 @@
1
+ # Virtual Meeting Integration Implementation
2
+
3
+ **Date:** October 27, 2025
4
+ **Status:** ✅ Complete and Ready for Testing
5
+
6
+ ---
7
+
8
+ ## Overview
9
+
10
+ Implemented comprehensive virtual meeting integration for online events and sales. Admins and shop managers can now:
11
+
12
+ 1. **Create Virtual Products** with Zoom, Google Meet, Microsoft Teams, or other platform links
13
+ 2. **Manage Meeting URLs** directly in the product creation form
14
+ 3. **Display Meeting Links** on product detail pages with "Join Meeting" button
15
+ 4. **Support Multiple Platforms** (Zoom, Google Meet, Microsoft Teams, Other)
16
+
17
+ ---
18
+
19
+ ## Features Implemented
20
+
21
+ ### 1. **Admin Product Form Enhancement**
22
+
23
+ **Location:** `client/src/pages/admin/Products.jsx`
24
+
25
+ Added conditional fields for virtual meeting products:
26
+
27
+ ```javascript
28
+ // Form state updated to include:
29
+ {
30
+ meeting_url: '', // URL for the meeting link
31
+ meeting_platform: 'zoom' // Platform type (zoom, google_meet, microsoft_teams, other)
32
+ }
33
+ ```
34
+
35
+ **Features:**
36
+ - ✅ Meeting URL field (required for virtual_meeting products)
37
+ - ✅ Platform selector dropdown
38
+ - ✅ Only displays when `product_type === 'virtual_meeting'`
39
+ - ✅ URL validation (requires valid URL format)
40
+ - ✅ Helper text explaining accepted platforms
41
+ - ✅ Persists data when editing existing products
42
+
43
+ **UI:** Styled section with border separator, appears only for virtual meeting products
44
+
45
+ ---
46
+
47
+ ### 2. **Database Schema Update**
48
+
49
+ **Migration File:** `server/migrations/038_add_virtual_meeting_fields.sql`
50
+
51
+ Added columns to the `products` table:
52
+
53
+ ```sql
54
+ -- Meeting URL column
55
+ ALTER TABLE products ADD COLUMN IF NOT EXISTS meeting_url VARCHAR(500);
56
+
57
+ -- Meeting platform enum type
58
+ CREATE TYPE meeting_platform_enum AS ENUM (
59
+ 'zoom',
60
+ 'google_meet',
61
+ 'microsoft_teams',
62
+ 'other'
63
+ );
64
+
65
+ ALTER TABLE products ADD COLUMN IF NOT EXISTS meeting_platform meeting_platform_enum DEFAULT 'zoom';
66
+ ```
67
+
68
+ **Indexes Added:**
69
+ - `idx_products_meeting_url` - Find virtual meeting products with URLs
70
+ - `idx_products_meeting_platform` - Query by platform type
71
+
72
+ **Database Structure:**
73
+ ```sql
74
+ products table:
75
+ ├── meeting_url VARCHAR(500) - NULL if no URL provided
76
+ └── meeting_platform meeting_platform_enum - Defaults to 'zoom'
77
+ ```
78
+
79
+ ---
80
+
81
+ ### 3. **Backend API Updates**
82
+
83
+ #### A. **Create Product Controller**
84
+ **File:** `server/controllers/productsController.js` (lines 199-268)
85
+
86
+ **Changes:**
87
+ - ✅ Added `meeting_url` and `meeting_platform` to request destructuring
88
+ - ✅ Included both fields in INSERT statement
89
+ - ✅ Validated meeting_url is provided for virtual products (if needed)
90
+ - ✅ Returns complete product data including meeting details
91
+
92
+ **Example Request:**
93
+ ```json
94
+ {
95
+ "name": "Daily Prayer Session",
96
+ "description": "Join us for a live prayer meeting",
97
+ "product_type": "virtual_meeting",
98
+ "price": 0,
99
+ "meeting_url": "https://zoom.us/j/123456789",
100
+ "meeting_platform": "zoom"
101
+ }
102
+ ```
103
+
104
+ #### B. **Update Product Controller**
105
+ **File:** `server/controllers/productsController.js` (lines 310-396)
106
+
107
+ **Changes:**
108
+ - ✅ Added `meeting_url` and `meeting_platform` to request destructuring
109
+ - ✅ Added update conditions for both fields
110
+ - ✅ Allows partial updates (only update meeting fields if provided)
111
+ - ✅ Handles null values (clearing meeting URL)
112
+
113
+ **Example Request:**
114
+ ```json
115
+ {
116
+ "meeting_url": "https://meet.google.com/abc-defg-hij",
117
+ "meeting_platform": "google_meet"
118
+ }
119
+ ```
120
+
121
+ **API Endpoints:**
122
+ - `POST /api/products` - Create virtual product with meeting URL
123
+ - `PUT /api/products/:id` - Update product's meeting details
124
+
125
+ ---
126
+
127
+ ### 4. **Frontend Product Detail Display**
128
+
129
+ **File:** `client/src/pages/ProductDetail.jsx` (lines 255-301)
130
+
131
+ **Features:**
132
+ - ✅ Conditional rendering for virtual_meeting products
133
+ - ✅ Displays meeting platform (formatted from database enum)
134
+ - ✅ Shows "Join Meeting" button linking to the URL
135
+ - ✅ Opens meeting link in new tab/window
136
+ - ✅ Integrated with existing meeting details (date, duration, participants)
137
+ - ✅ Styled with blue theme matching product detail page
138
+
139
+ **Display Structure:**
140
+ ```
141
+ Meeting/Event Details Box (blue background)
142
+ ├── Calendar: [Meeting Date]
143
+ ├── Duration: [Minutes]
144
+ ├── Max Participants: [Number]
145
+ └── Platform & Join Button:
146
+ └── Platform: [ZOOM / GOOGLE MEET / MICROSOFT TEAMS / OTHER]
147
+ └── [Join Meeting Button]
148
+ ```
149
+
150
+ **Example UI:**
151
+ ```
152
+ ┌─────────────────────────────────────┐
153
+ │ Meeting/Event Details │
154
+ │ │
155
+ │ 📅 10/27/2025 │
156
+ │ 🕐 60 minutes │
157
+ │ 👥 Max 100 participants │
158
+ │ │
159
+ │ Platform: ZOOM │
160
+ │ [Join Meeting Button] → │
161
+ └─────────────────────────────────────┘
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Form Fields Reference
167
+
168
+ ### Products Admin Form - Virtual Meeting Section
169
+
170
+ When `product_type === "virtual_meeting"`:
171
+
172
+ | Field | Type | Required | Placeholder | Validation |
173
+ |-------|------|----------|-------------|-----------|
174
+ | Meeting Platform | Select Dropdown | No | - | zoom, google_meet, microsoft_teams, other |
175
+ | Meeting Link/URL | Text (URL) | **Yes** | https://zoom.us/j/... | Valid URL format |
176
+
177
+ ---
178
+
179
+ ## API Response Examples
180
+
181
+ ### Create Virtual Product Response
182
+
183
+ ```json
184
+ {
185
+ "success": true,
186
+ "message": "Product created successfully",
187
+ "data": {
188
+ "id": "uuid-1234",
189
+ "name": "Daily Prayer Session",
190
+ "product_type": "virtual_meeting",
191
+ "price": 0,
192
+ "meeting_url": "https://zoom.us/j/123456789",
193
+ "meeting_platform": "zoom",
194
+ "status": "active",
195
+ "created_at": "2025-10-27T19:30:00Z"
196
+ }
197
+ }
198
+ ```
199
+
200
+ ### Get Product Details Response
201
+
202
+ ```json
203
+ {
204
+ "success": true,
205
+ "data": {
206
+ "id": "uuid-1234",
207
+ "name": "Daily Prayer Session",
208
+ "product_type": "virtual_meeting",
209
+ "meeting_url": "https://zoom.us/j/123456789",
210
+ "meeting_platform": "zoom",
211
+ "meeting_datetime": "2025-10-28T10:00:00Z",
212
+ "details": {
213
+ "duration": 60,
214
+ "max_participants": 100
215
+ }
216
+ }
217
+ }
218
+ ```
219
+
220
+ ---
221
+
222
+ ## Admin Workflow
223
+
224
+ ### Step 1: Create Virtual Product
225
+ 1. Go to Admin → Products
226
+ 2. Click "Add Product"
227
+ 3. Fill in basic details (name, description, price)
228
+ 4. Select "Virtual Meeting" from Product Type dropdown
229
+ 5. **New:** Meeting Settings section appears
230
+ 6. Select Platform (Zoom, Google Meet, etc.)
231
+ 7. Paste meeting URL
232
+ 8. Click "Create Product"
233
+
234
+ ### Step 2: Edit Meeting Link
235
+ 1. Go to Admin → Products
236
+ 2. Click "Edit" on virtual meeting product
237
+ 3. Modify meeting URL or platform
238
+ 4. Click "Update Product"
239
+
240
+ ### Step 3: Customer Sees Meeting Link
241
+ 1. Customer browses to product detail page
242
+ 2. For virtual_meeting products, they see the "Join Meeting" button
243
+ 3. Click button to open meeting in new window
244
+
245
+ ---
246
+
247
+ ## Supported Platforms
248
+
249
+ ```
250
+ Platform Format Example Enum Value
251
+ ────────────────────────────────────────────────────────────────────
252
+ Zoom https://zoom.us/j/123456789 zoom
253
+ Google Meet https://meet.google.com/abc-defg-hij google_meet
254
+ Microsoft Teams https://teams.microsoft.com/l/meetup-join/... microsoft_teams
255
+ Other Any custom URL other
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Database Migration Steps
261
+
262
+ **To apply the migration:**
263
+
264
+ ```bash
265
+ # If using runMigration.js:
266
+ node runMigration.js 038_add_virtual_meeting_fields
267
+
268
+ # Or manually in Supabase:
269
+ # 1. Go to Supabase Dashboard
270
+ # 2. SQL Editor
271
+ # 3. Copy contents of 038_add_virtual_meeting_fields.sql
272
+ # 4. Execute query
273
+ ```
274
+
275
+ **Verify migration:**
276
+ ```sql
277
+ -- Check columns added:
278
+ SELECT column_name, data_type
279
+ FROM information_schema.columns
280
+ WHERE table_name = 'products'
281
+ AND column_name IN ('meeting_url', 'meeting_platform');
282
+ ```
283
+
284
+ ---
285
+
286
+ ## Testing Checklist
287
+
288
+ ### Backend Tests
289
+ - [ ] Create virtual_meeting product with meeting_url
290
+ - [ ] Update product to change meeting_url
291
+ - [ ] Update product to change meeting_platform
292
+ - [ ] Get product details includes meeting fields
293
+ - [ ] Non-virtual products don't show meeting fields
294
+ - [ ] Meeting URL can be NULL/empty
295
+
296
+ ### Frontend Tests
297
+ - [ ] Admin form shows meeting fields for virtual_meeting type only
298
+ - [ ] Admin form hides meeting fields for other product types
299
+ - [ ] Can save virtual product with meeting URL
300
+ - [ ] Can edit meeting URL on existing product
301
+ - [ ] Product detail page shows "Join Meeting" button for virtual products
302
+ - [ ] Join button links to correct URL
303
+ - [ ] Join button opens in new tab
304
+
305
+ ### Integration Tests
306
+ - [ ] Create product → See meeting link on detail page
307
+ - [ ] Edit product meeting URL → Detail page updates
308
+ - [ ] Delete product → Meeting reference removed
309
+
310
+ ---
311
+
312
+ ## Future Enhancements
313
+
314
+ ### Phase 2: Zoom API Integration
315
+ - [ ] Auto-create Zoom meetings when product created
316
+ - [ ] Auto-update meeting links if duration changes
317
+ - [ ] Fetch real Zoom meeting details for display
318
+ - [ ] Attendance tracking integration
319
+
320
+ ### Phase 3: Advanced Features
321
+ - [ ] Google Calendar integration for meeting dates
322
+ - [ ] Automatic email reminders before meetings
323
+ - [ ] Meeting recording storage and access
324
+ - [ ] Attendee list management
325
+ - [ ] Q&A and chat feature integration
326
+
327
+ ### Phase 4: Performance
328
+ - [ ] Cache meeting URLs in Redis
329
+ - [ ] Queue async Zoom API calls
330
+ - [ ] Add pagination for large meeting lists
331
+
332
+ ---
333
+
334
+ ## File Changes Summary
335
+
336
+ ### Modified Files
337
+ 1. **`client/src/pages/admin/Products.jsx`** - Added meeting URL form fields
338
+ 2. **`client/src/pages/ProductDetail.jsx`** - Added meeting link display
339
+ 3. **`server/controllers/productsController.js`** - Added meeting field handling
340
+
341
+ ### New Files
342
+ 1. **`server/migrations/038_add_virtual_meeting_fields.sql`** - Database schema update
343
+
344
+ ---
345
+
346
+ ## Related Documentation
347
+
348
+ - **Image Upload Features:** See [IMAGE_UPLOAD_FIX.md](./IMAGE_UPLOAD_FIX.md)
349
+ - **E-Commerce Complete:** See [ECOMMERCE_COMPLETE_HANDOFF.md](./ECOMMERCE_COMPLETE_HANDOFF.md)
350
+ - **Product Analytics:** See [Product Analytics in productsController.js](./server/controllers/productsController.js)
351
+
352
+ ---
353
+
354
+ ## Support & Questions
355
+
356
+ For issues or questions:
357
+ 1. Check the test checklist above
358
+ 2. Verify database migration was applied
359
+ 3. Check browser console for form validation errors
360
+ 4. Verify API responses in Network tab
361
+
362
+ ---
363
+
364
+ ## Deployment Notes
365
+
366
+ 1. **Apply migration before deploying backend changes**
367
+ 2. Frontend changes are backward compatible
368
+ 3. Existing products without meeting_url will work fine
369
+ 4. No data migration needed (new columns default to NULL)
370
+ 5. No breaking API changes - all additions are optional
371
+
372
+ ---
373
+
374
+ **Status:** Ready for production deployment ✅
@@ -0,0 +1,53 @@
1
+ # WordPress LMS Course Data Recovery - Extraction & Migration
2
+
3
+ ## The Problem
4
+
5
+ You have WordPress LMS course data exported as JSON files, and need to extract course structure, find embedded media URLs, and recreate the course in a new LMS system.
6
+
7
+ ### Why It Was Hard
8
+
9
+ - LMS exports are spread across multiple JSON files (courses, lessons, topics)
10
+ - Media URLs are embedded in HTML content fields
11
+ - Course iterations create duplicate entries with slug suffixes like `-2-2-2-3`
12
+
13
+ ---
14
+
15
+ ## The Solution
16
+
17
+ ### LMS Export Structure
18
+
19
+ | File | Post Type | Contains |
20
+ |------|-----------|----------|
21
+ | `wordpress-courses.json` | `sfwd-courses` | Course metadata |
22
+ | `wordpress-lessons.json` | `sfwd-lessons` | Lesson titles, ordering |
23
+ | `wordpress-topics.json` | `sfwd-topic` | Sub-lessons with actual content/media |
24
+
25
+ ### Extract Media URLs
26
+
27
+ ```bash
28
+ # Find all Castos audio URLs
29
+ grep -oE "https://[^\"']*castos[^\"']*\.mp3" wordpress-topics.json | sort -u
30
+ ```
31
+
32
+ ### Generate Embed HTML
33
+
34
+ ```html
35
+ <audio controls style="width:100%">
36
+ <source src="https://episodes.castos.com/.../file.mp3" type="audio/mpeg">
37
+ </audio>
38
+ ```
39
+
40
+ ---
41
+
42
+ ## Key Insight
43
+
44
+ LMS spreads content across three post types. Lessons often just have titles - the actual content with media is in **Topics**. Always search all three JSON files.
45
+
46
+ ## Difficulty Level
47
+
48
+ ⭐⭐⭐ (3/5)
49
+
50
+ ---
51
+
52
+ **Author Notes:**
53
+ "Activation completed during a live session" means no audio exists - it was conducted live.
@@ -0,0 +1,141 @@
1
+ # YouTube API Setup Guide
2
+
3
+ This guide will help you set up the YouTube Data API v3 for importing YouTube playlists into your LMS.
4
+
5
+ ## Prerequisites
6
+
7
+ - Google Account
8
+ - Google Cloud Platform (GCP) access
9
+
10
+ ## Step-by-Step Setup
11
+
12
+ ### 1. Create a Google Cloud Project
13
+
14
+ 1. Go to [Google Cloud Console](https://console.cloud.google.com/)
15
+ 2. Click on the project dropdown at the top
16
+ 3. Click "New Project"
17
+ 4. Enter project name (e.g., "MERN-LMS")
18
+ 5. Click "Create"
19
+
20
+ ### 2. Enable YouTube Data API v3
21
+
22
+ 1. In the Google Cloud Console, make sure your project is selected
23
+ 2. Go to **APIs & Services** > **Library**
24
+ 3. Search for "YouTube Data API v3"
25
+ 4. Click on it
26
+ 5. Click **Enable**
27
+
28
+ ### 3. Create API Credentials
29
+
30
+ 1. Go to **APIs & Services** > **Credentials**
31
+ 2. Click **Create Credentials** > **API Key**
32
+ 3. Your API key will be created and displayed
33
+ 4. **Important**: Click **Restrict Key** to secure it
34
+
35
+ ### 4. Restrict the API Key (Recommended)
36
+
37
+ #### Application Restrictions:
38
+ - **None** (or HTTP referrers if you want to restrict to your domain)
39
+
40
+ #### API Restrictions:
41
+ - Select "Restrict key"
42
+ - Check only "YouTube Data API v3"
43
+ - Click "Save"
44
+
45
+ ### 5. Add API Key to Your Environment
46
+
47
+ 1. Copy the API key
48
+ 2. Open `server/.env` file
49
+ 3. Add or update the following line:
50
+ ```
51
+ YOUTUBE_API_KEY=YOUR_API_KEY_HERE
52
+ ```
53
+
54
+ ### 6. Test the API
55
+
56
+ Run the test script to verify everything works:
57
+
58
+ ```bash
59
+ cd server
60
+ node test-youtube-api.js
61
+ ```
62
+
63
+ You should see:
64
+ ```
65
+ ✅ All tests passed!
66
+ ```
67
+
68
+ ## Usage Limits
69
+
70
+ ### Free Tier Quota:
71
+ - **10,000 units per day** (quota resets at midnight Pacific Time)
72
+
73
+ ### Cost Per Operation:
74
+ - List playlist items: **1 unit per request** (50 videos)
75
+ - Get playlist metadata: **1 unit per request**
76
+
77
+ ### Example:
78
+ - Importing a 50-video playlist = **2 units**
79
+ - Importing a 200-video playlist = **6 units** (4 paginated requests + 1 metadata)
80
+
81
+ **You can import approximately 2,500 playlists per day within the free tier.**
82
+
83
+ ## Troubleshooting
84
+
85
+ ### Error: "API key not valid"
86
+ **Solution:**
87
+ 1. Make sure YouTube Data API v3 is enabled
88
+ 2. Check that the API key is copied correctly
89
+ 3. Wait a few minutes after creating the key (can take time to activate)
90
+ 4. Verify API restrictions don't block your requests
91
+
92
+ ### Error: "The request cannot be completed because you have exceeded your quota"
93
+ **Solution:**
94
+ 1. Wait 24 hours for quota reset
95
+ 2. Request a quota increase in Google Cloud Console:
96
+ - Go to **APIs & Services** > **Quotas**
97
+ - Find "YouTube Data API v3"
98
+ - Click "Edit Quotas"
99
+ - Submit quota increase request
100
+
101
+ ### Error: "Playlist not found or is private"
102
+ **Solution:**
103
+ - Make sure the playlist is public or unlisted
104
+ - Private playlists cannot be imported
105
+
106
+ ### Error: "Access Not Configured"
107
+ **Solution:**
108
+ - Ensure YouTube Data API v3 is enabled in your project
109
+ - Try disabling and re-enabling the API
110
+
111
+ ## Security Best Practices
112
+
113
+ 1. **Never commit API keys to version control**
114
+ - Add `.env` to `.gitignore`
115
+ - Use environment variables in production
116
+
117
+ 2. **Restrict API key usage**
118
+ - Set application restrictions (HTTP referrers, IP addresses)
119
+ - Limit to YouTube Data API v3 only
120
+ - Rotate keys periodically
121
+
122
+ 3. **Monitor usage**
123
+ - Check quota usage in Google Cloud Console
124
+ - Set up billing alerts if using paid quota
125
+
126
+ ## Alternative: Vimeo Showcase Import
127
+
128
+ If you prefer not to use YouTube or need an alternative, the LMS also supports Vimeo showcases:
129
+
130
+ 1. Get a Vimeo access token from [Vimeo Developer](https://developer.vimeo.com/apps)
131
+ 2. Add to `.env`:
132
+ ```
133
+ VIMEO_ACCESS_TOKEN=YOUR_TOKEN_HERE
134
+ ```
135
+
136
+ ## Support
137
+
138
+ For more help:
139
+ - [YouTube Data API Documentation](https://developers.google.com/youtube/v3)
140
+ - [Google Cloud Console](https://console.cloud.google.com/)
141
+ - [API Key Best Practices](https://cloud.google.com/docs/authentication/api-keys)