@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,284 @@
1
+ # Node 18 Dependency Compatibility - CRITICAL Deployment Safety Rules
2
+
3
+ ## The Problem
4
+
5
+ Production server crashed with `ReferenceError: File is not defined` after deploying code that included `open-graph-scraper@6.11.0`. The package pulled in `undici@7.20.0` which uses the `File` global — only available in Node 20+. Server runs Node 18.20.8 on shared hosting (cPanel + PM2).
6
+
7
+ ### The Crash Chain
8
+ ```
9
+ open-graph-scraper@6.11.0
10
+ └── cheerio@1.2.0
11
+ └── undici@7.20.0 ← Requires Node 20+
12
+ └── Uses `File` global (Node 20+ only)
13
+ ```
14
+
15
+ ### Error Message
16
+ ```
17
+ ReferenceError: File is not defined
18
+ at node_modules/.pnpm/undici@7.20.0/node_modules/undici/lib/web/webidl/index.js:534
19
+ at node_modules/.pnpm/undici@7.20.0/node_modules/undici/lib/web/fetch/util.js:12
20
+ ```
21
+
22
+ ### Why It Was Hard
23
+
24
+ 1. **Silent installation** — `npm install` only WARNS about engine mismatches, it doesn't block
25
+ 2. **Transitive dependency** — The breaking package (`undici`) was 3 levels deep, not directly installed
26
+ 3. **Worked locally** — Development machine runs Node 20+, so it worked fine
27
+ 4. **Ghost in package-lock.json** — Even after removing the package from `package.json`, `package-lock.json` retained the dependency tree
28
+ 5. **Branch divergence** — The package was removed from `postgresql-dev` but `student-beautification` still had it because the deletion was never committed as a discrete change to that branch
29
+ 6. **Orphaned import files** — `linkPreviewService.js` still imported `open-graph-scraper` even after the package was "removed", causing `ERR_MODULE_NOT_FOUND`
30
+
31
+ ### Impact
32
+
33
+ - **Production site completely down** — all API calls failed
34
+ - **PM2 crash loop** — server process kept restarting and failing
35
+ - **Required emergency SSH intervention** — delete node_modules, package-lock.json, clean install
36
+ - **~30 minutes of downtime** for a live educational platform
37
+
38
+ ---
39
+
40
+ ## DO's and DON'T's
41
+
42
+ ### DO
43
+
44
+ 1. **Always check Node engine requirements BEFORE installing any package**
45
+ ```bash
46
+ npm info <package-name> engines
47
+ # or check the package's package.json on npm/GitHub
48
+ ```
49
+
50
+ 2. **Check the FULL dependency tree for Node version requirements**
51
+ ```bash
52
+ npm ls --all | grep -i "engine"
53
+ # or check transitive deps manually
54
+ npm info <package> dependencies
55
+ ```
56
+
57
+ 3. **Delete BOTH `package-lock.json` AND `node_modules/` when debugging dependency issues**
58
+ ```bash
59
+ rm -f package-lock.json
60
+ rm -rf node_modules
61
+ npm install --omit=dev # Clean install, production only
62
+ ```
63
+
64
+ 4. **Ensure file deletions are committed and merged across ALL branches**
65
+ ```bash
66
+ # After removing a file on branch A:
67
+ git checkout branch-B
68
+ git merge branch-A # Ensure deletions propagate
69
+ # OR cherry-pick the deletion commit specifically
70
+ ```
71
+
72
+ 5. **Remove ALL references when uninstalling a package** — not just `package.json`:
73
+ - Import statements in `.js` files
74
+ - Route registrations in `server.js`
75
+ - Controller files
76
+ - Service files
77
+ - Test files
78
+
79
+ 6. **Test deployment in a staging environment first** when adding new dependencies
80
+
81
+ 7. **Pin major versions** for critical dependencies to prevent surprise breaking changes:
82
+ ```json
83
+ "open-graph-scraper": "6.8.0" // exact version, not ^6.8.0
84
+ ```
85
+
86
+ 8. **Use `npm install --omit=dev`** on production servers (not `npm install`)
87
+
88
+ ### DON'T
89
+
90
+ 1. **DON'T install packages requiring Node 20+ on Node 18 servers**
91
+ - npm only warns, it does NOT prevent installation
92
+ - The app will crash at runtime, not at install time
93
+
94
+ 2. **DON'T trust `npm install` to respect engine requirements**
95
+ ```
96
+ npm warn EBADENGINE Unsupported engine
97
+ npm warn EBADENGINE required: { node: '>=20' }
98
+ npm warn EBADENGINE current: { node: 'v18.20.8' }
99
+ ```
100
+ These are WARNINGS, not ERRORS. Installation proceeds anyway.
101
+
102
+ 3. **DON'T assume branch merges include file deletions from other branches**
103
+ - If you deleted files on `branch-A` but never merged that commit to `branch-B`, `branch-B` still has those files
104
+ - Merging unrelated commits does NOT retroactively include deletions
105
+
106
+ 4. **DON'T just remove a package from `package.json` and assume it's gone**
107
+ - `package-lock.json` still references it
108
+ - `node_modules/` still contains it
109
+ - Import statements still reference it
110
+
111
+ 5. **DON'T deploy without checking server Node version first**
112
+ ```bash
113
+ # On server:
114
+ node -v # Know your version!
115
+ ```
116
+
117
+ 6. **DON'T add packages to the project without verifying they work on the PRODUCTION Node version**
118
+ - Dev machine may run Node 20+
119
+ - CI may run Node 20+
120
+ - Production shared hosting may be locked to Node 18
121
+
122
+ ---
123
+
124
+ ## The Solution
125
+
126
+ ### Root Cause
127
+
128
+ `open-graph-scraper@6.11.0` was in `server/package.json` on the `student-beautification` production branch. It was previously removed from `postgresql-dev` (development branch), but the removal never propagated to the production branch. During deployment, `npm install` pulled in `undici@7.20.0` as a transitive dependency, which crashed on Node 18.
129
+
130
+ ### How to Fix (Emergency Recovery)
131
+
132
+ ```bash
133
+ # SSH into server
134
+ ssh user@server
135
+
136
+ # 1. Remove the offending package from package.json
137
+ # (edit manually or use sed)
138
+
139
+ # 2. Remove ALL files that import the package
140
+ git rm server/services/linkPreviewService.js
141
+ git rm server/routes/linkPreviewRoutes.js
142
+ git rm server/controllers/linkPreviewController.js
143
+
144
+ # 3. Remove import/use from server.js
145
+ # Edit server.js to remove import and app.use() lines
146
+
147
+ # 4. Nuclear clean install
148
+ rm -f package-lock.json
149
+ rm -rf node_modules
150
+ npm install --omit=dev
151
+
152
+ # 5. Restart PM2
153
+ pm2 restart LMS-SERVER --update-env
154
+
155
+ # 6. Verify
156
+ pm2 logs LMS-SERVER --lines 20
157
+ curl -s http://localhost:5000/api/health
158
+ ```
159
+
160
+ ### Prevention: Pre-Deploy Dependency Check
161
+
162
+ Add this to your deployment script:
163
+ ```bash
164
+ # Check for Node 20+ only packages before deploying
165
+ echo "Checking dependency compatibility with Node 18..."
166
+ npm ls --all 2>&1 | grep -i "EBADENGINE" && {
167
+ echo "ERROR: Found packages incompatible with production Node version!"
168
+ echo "Fix dependency issues before deploying."
169
+ exit 1
170
+ }
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Testing the Fix
176
+
177
+ ### Before (Broken)
178
+ ```
179
+ pm2 logs:
180
+ ReferenceError: File is not defined
181
+ at undici/lib/web/webidl/index.js:534
182
+ Process restarting... (crash loop)
183
+ ```
184
+
185
+ ### After (Fixed)
186
+ ```
187
+ pm2 logs:
188
+ API available at: http://localhost:5000/api
189
+ DATABASE Connection successful!
190
+ All scheduled jobs started
191
+ ```
192
+
193
+ ### Verification Steps
194
+ ```bash
195
+ # 1. Check no undici warnings
196
+ npm ls 2>&1 | grep undici # Should return nothing
197
+
198
+ # 2. Check server starts
199
+ pm2 restart LMS-SERVER
200
+ pm2 logs LMS-SERVER --lines 10 # Should show "DATABASE Connection successful!"
201
+
202
+ # 3. Check API responds
203
+ curl http://localhost:5000/api/health
204
+
205
+ # 4. Check site loads
206
+ curl -s https://yoursite.com | head -20
207
+ ```
208
+
209
+ ---
210
+
211
+ ## Known Node 18 Incompatible Packages (2025-2026)
212
+
213
+ | Package | Version | Reason | Alternative |
214
+ |---------|---------|--------|-------------|
215
+ | `undici` | >= 7.0.0 | Uses `File` global (Node 20+) | Use `undici@6.x` or `node-fetch` |
216
+ | `open-graph-scraper` | >= 6.10.0 | Pulls `undici@7` via `cheerio` | Pin to `6.8.0` or remove |
217
+ | `cheerio` | >= 1.1.0 | Pulls `undici@7` | Pin to `1.0.x` |
218
+
219
+ Add to this list as you discover more.
220
+
221
+ ---
222
+
223
+ ## Prevention
224
+
225
+ 1. **Add `engines` field to your `package.json`:**
226
+ ```json
227
+ {
228
+ "engines": {
229
+ "node": ">=18.0.0 <20.0.0"
230
+ }
231
+ }
232
+ ```
233
+
234
+ 2. **Set `.npmrc` to enforce engine checks:**
235
+ ```ini
236
+ engine-strict=true
237
+ ```
238
+ This makes `npm install` FAIL instead of warn when engine requirements don't match.
239
+
240
+ 3. **Document server Node version in README/CLAUDE.md**
241
+
242
+ 4. **Check dependencies before every deploy** (see script above)
243
+
244
+ ---
245
+
246
+ ## Related Patterns
247
+
248
+ - [PM2_ENVIRONMENT_VARIABLE_CACHING.md](./PM2_ENVIRONMENT_VARIABLE_CACHING.md) - PM2 restart gotchas
249
+ - [deployment-changes-not-applying.md](./deployment-changes-not-applying.md) - Stale deployment debugging
250
+ - [env-file-management-production-local.md](./env-file-management-production-local.md) - Environment management
251
+
252
+ ---
253
+
254
+ ## Common Mistakes to Avoid
255
+
256
+ - Assuming `npm install` will prevent incompatible packages (it won't)
257
+ - Only removing the package from `package.json` without cleaning `node_modules` and `package-lock.json`
258
+ - Forgetting to remove import statements and route registrations for deleted packages
259
+ - Not checking that file deletions propagated across git branches
260
+ - Testing only on dev machine (Node 20+) and assuming production (Node 18) will work
261
+ - Running `npm install` instead of `npm install --omit=dev` on production
262
+
263
+ ---
264
+
265
+ ## Resources
266
+
267
+ - [Node.js Releases](https://nodejs.org/en/about/releases/) - EOL dates and version info
268
+ - [npm engine-strict](https://docs.npmjs.com/cli/v10/using-npm/config#engine-strict) - Enforce engine checks
269
+ - [undici breaking changes](https://github.com/nodejs/undici/releases) - Version requirements
270
+
271
+ ---
272
+
273
+ ## Difficulty Level
274
+
275
+ Diagnosing: ⭐⭐⭐⭐ (4/5) - Transitive dependency 3 levels deep, silent installation, works locally
276
+ Fixing: ⭐⭐ (2/5) - Once identified, nuclear clean install resolves it
277
+ Preventing: ⭐ (1/5) - Add `.npmrc` with `engine-strict=true`
278
+
279
+ ---
280
+
281
+ **Author Notes:**
282
+ This crashed a live educational platform (schooloftheprophets.club) on February 2, 2026. The package had been "removed" from the development branch weeks earlier but the deletion never made it to the production branch. The deploy script ran `npm install` which happily installed the incompatible dependency. PM2 went into a crash loop. ~30 minutes of downtime.
283
+
284
+ The key lesson: **npm is not your safety net on Node version compatibility. YOU are.**
@@ -0,0 +1,315 @@
1
+ # PHP Installer Wizard for Node.js Applications
2
+
3
+ ## Overview
4
+ A WordPress-style PHP installer wizard that allows non-technical users to deploy Node.js applications on shared cPanel hosting. The installer handles database configuration, admin account creation, .env file generation, and initial setup.
5
+
6
+ ## Architecture
7
+
8
+ ### Directory Structure
9
+ ```
10
+ install/
11
+ ├── index.php # Main entry with AJAX handlers
12
+ ├── includes/
13
+ │ ├── requirements.php # System requirements checker
14
+ │ └── functions.php # Helper functions (DB test, .env gen)
15
+ ├── steps/
16
+ │ ├── step1.php # Welcome screen
17
+ │ ├── step2.php # Requirements check
18
+ │ ├── step3.php # License key (optional)
19
+ │ ├── step4.php # Database configuration
20
+ │ ├── step5.php # Admin account creation
21
+ │ ├── step6.php # Run installation
22
+ │ └── step7.php # Completion screen
23
+ └── assets/
24
+ ├── installer.css # Responsive styles
25
+ └── installer.js # AJAX validation
26
+ ```
27
+
28
+ ### Key Features
29
+ 1. **Requirements Checking** - PHP version, Node.js, extensions, disk space
30
+ 2. **Database Support** - MySQL and PostgreSQL with toggle selection
31
+ 3. **Connection Testing** - Real-time database connection validation
32
+ 4. **Admin Account** - Secure password with strength indicator
33
+ 5. **Progress Tracking** - Visual progress bar during installation
34
+ 6. **Error Handling** - Clear error messages for troubleshooting
35
+
36
+ ## Implementation
37
+
38
+ ### Main Entry Point (index.php)
39
+ ```php
40
+ <?php
41
+ session_start();
42
+ error_reporting(0);
43
+ ini_set('display_errors', '0');
44
+
45
+ // AJAX request handler
46
+ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
47
+ header('Content-Type: application/json');
48
+
49
+ switch ($_POST['action']) {
50
+ case 'test_database':
51
+ // Test database connection
52
+ $result = testDatabaseConnection($_POST);
53
+ echo json_encode($result);
54
+ exit;
55
+
56
+ case 'save_step':
57
+ // Save step data to session
58
+ $_SESSION['install_config'][$_POST['step']] = $_POST['data'];
59
+ echo json_encode(['success' => true]);
60
+ exit;
61
+
62
+ case 'run_install':
63
+ // Execute installation
64
+ $result = runInstallation($_SESSION['install_config']);
65
+ echo json_encode($result);
66
+ exit;
67
+ }
68
+ }
69
+
70
+ // Step routing
71
+ $step = isset($_GET['step']) ? (int)$_GET['step'] : 1;
72
+ $step = max(1, min(7, $step));
73
+ ?>
74
+ ```
75
+
76
+ ### Requirements Checker
77
+ ```php
78
+ function checkRequirements() {
79
+ $requirements = [];
80
+
81
+ // PHP Version
82
+ $requirements['php_version'] = [
83
+ 'name' => 'PHP Version',
84
+ 'required' => '7.4+',
85
+ 'current' => phpversion(),
86
+ 'passed' => version_compare(phpversion(), '7.4.0', '>=')
87
+ ];
88
+
89
+ // Node.js Check
90
+ $nodeVersion = shell_exec('node --version 2>&1');
91
+ $requirements['nodejs'] = [
92
+ 'name' => 'Node.js',
93
+ 'required' => '18.0+',
94
+ 'current' => $nodeVersion ? trim($nodeVersion) : 'Not found',
95
+ 'passed' => $nodeVersion && version_compare(trim($nodeVersion, 'v'), '18.0.0', '>=')
96
+ ];
97
+
98
+ // PHP Extensions
99
+ $extensions = ['pdo', 'pdo_mysql', 'json', 'mbstring'];
100
+ foreach ($extensions as $ext) {
101
+ $requirements["ext_$ext"] = [
102
+ 'name' => "PHP Extension: $ext",
103
+ 'required' => 'Installed',
104
+ 'current' => extension_loaded($ext) ? 'Installed' : 'Missing',
105
+ 'passed' => extension_loaded($ext)
106
+ ];
107
+ }
108
+
109
+ // Disk Space
110
+ $freeSpace = disk_free_space('.');
111
+ $requirements['disk_space'] = [
112
+ 'name' => 'Disk Space',
113
+ 'required' => '100MB',
114
+ 'current' => formatBytes($freeSpace),
115
+ 'passed' => $freeSpace >= 100 * 1024 * 1024
116
+ ];
117
+
118
+ return $requirements;
119
+ }
120
+ ```
121
+
122
+ ### Database Connection Test
123
+ ```php
124
+ function testDatabaseConnection($config) {
125
+ try {
126
+ $dbType = $config['db_type'] ?? 'mysql';
127
+ $host = $config['db_host'] ?? 'localhost';
128
+ $port = $config['db_port'] ?? ($dbType === 'mysql' ? 3306 : 5432);
129
+ $name = $config['db_name'];
130
+ $user = $config['db_user'];
131
+ $pass = $config['db_pass'];
132
+
133
+ if ($dbType === 'mysql') {
134
+ $dsn = "mysql:host=$host;port=$port;dbname=$name;charset=utf8mb4";
135
+ } else {
136
+ $dsn = "pgsql:host=$host;port=$port;dbname=$name";
137
+ }
138
+
139
+ $pdo = new PDO($dsn, $user, $pass, [
140
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
141
+ PDO::ATTR_TIMEOUT => 5
142
+ ]);
143
+
144
+ return ['success' => true, 'message' => 'Connection successful!'];
145
+ } catch (PDOException $e) {
146
+ return ['success' => false, 'message' => $e->getMessage()];
147
+ }
148
+ }
149
+ ```
150
+
151
+ ### .env File Generator
152
+ ```php
153
+ function generateEnvFile($config) {
154
+ $dbType = $config['database']['db_type'] ?? 'mysql';
155
+ $port = $config['database']['db_port'] ?? ($dbType === 'mysql' ? 3306 : 5432);
156
+
157
+ $envContent = "# Database Configuration\n";
158
+ $envContent .= "DB_TYPE=" . $dbType . "\n";
159
+ $envContent .= "DB_HOST=" . ($config['database']['db_host'] ?? 'localhost') . "\n";
160
+ $envContent .= "DB_PORT=" . $port . "\n";
161
+ $envContent .= "DB_NAME=" . ($config['database']['db_name'] ?? '') . "\n";
162
+ $envContent .= "DB_USER=" . ($config['database']['db_user'] ?? '') . "\n";
163
+ $envContent .= "DB_PASS=" . ($config['database']['db_pass'] ?? '') . "\n\n";
164
+
165
+ $envContent .= "# Application Settings\n";
166
+ $envContent .= "SITE_NAME=\"" . ($config['database']['site_name'] ?? 'My LMS') . "\"\n";
167
+ $envContent .= "NODE_ENV=production\n";
168
+ $envContent .= "PORT=5000\n\n";
169
+
170
+ $envContent .= "# Security\n";
171
+ $envContent .= "JWT_SECRET=" . bin2hex(random_bytes(32)) . "\n";
172
+ $envContent .= "SESSION_SECRET=" . bin2hex(random_bytes(32)) . "\n";
173
+
174
+ return $envContent;
175
+ }
176
+ ```
177
+
178
+ ## CSS Styling (Mobile-First)
179
+ ```css
180
+ :root {
181
+ --primary: #6366f1;
182
+ --primary-dark: #4f46e5;
183
+ --success: #10b981;
184
+ --warning: #f59e0b;
185
+ --danger: #ef4444;
186
+ --background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
187
+ }
188
+
189
+ .installer-container {
190
+ min-height: 100vh;
191
+ background: var(--background);
192
+ padding: 2rem 1rem;
193
+ }
194
+
195
+ .installer-card {
196
+ max-width: 600px;
197
+ margin: 0 auto;
198
+ background: white;
199
+ border-radius: 1rem;
200
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
201
+ padding: 2rem;
202
+ }
203
+
204
+ .step-indicator {
205
+ display: flex;
206
+ justify-content: space-between;
207
+ margin-bottom: 2rem;
208
+ }
209
+
210
+ .step-item {
211
+ display: flex;
212
+ flex-direction: column;
213
+ align-items: center;
214
+ gap: 0.5rem;
215
+ }
216
+
217
+ .step-item.active .step-icon {
218
+ background: var(--primary);
219
+ color: white;
220
+ }
221
+
222
+ .step-item.completed .step-icon {
223
+ background: var(--success);
224
+ color: white;
225
+ }
226
+ ```
227
+
228
+ ## JavaScript (AJAX Handling)
229
+ ```javascript
230
+ // Database connection test
231
+ async function testDatabaseConnection() {
232
+ const form = document.getElementById('db-form');
233
+ const formData = new FormData(form);
234
+ formData.append('action', 'test_database');
235
+
236
+ const statusEl = document.getElementById('connection-status');
237
+ statusEl.innerHTML = '<div class="alert alert-info">Testing connection...</div>';
238
+
239
+ try {
240
+ const response = await fetch('', {
241
+ method: 'POST',
242
+ body: formData
243
+ });
244
+ const result = await response.json();
245
+
246
+ if (result.success) {
247
+ statusEl.innerHTML = `<div class="alert alert-success">
248
+ ✅ ${result.message}
249
+ </div>`;
250
+ } else {
251
+ statusEl.innerHTML = `<div class="alert alert-danger">
252
+ ❌ ${result.message}
253
+ </div>`;
254
+ }
255
+ } catch (error) {
256
+ statusEl.innerHTML = `<div class="alert alert-danger">
257
+ ❌ Connection test failed: ${error.message}
258
+ </div>`;
259
+ }
260
+ }
261
+
262
+ // Run installation with progress
263
+ async function runInstallation() {
264
+ const progressFill = document.querySelector('.progress-fill');
265
+ const logEl = document.getElementById('install-log');
266
+
267
+ const steps = [
268
+ { action: 'create_env', label: 'Creating configuration...' },
269
+ { action: 'install_deps', label: 'Installing dependencies...' },
270
+ { action: 'run_migrations', label: 'Setting up database...' },
271
+ { action: 'create_admin', label: 'Creating admin account...' },
272
+ { action: 'finalize', label: 'Finalizing installation...' }
273
+ ];
274
+
275
+ for (let i = 0; i < steps.length; i++) {
276
+ const step = steps[i];
277
+ const progress = ((i + 1) / steps.length) * 100;
278
+
279
+ logEl.innerHTML += `<div class="log-item">${step.label}</div>`;
280
+ progressFill.style.width = `${progress}%`;
281
+
282
+ // Execute step via AJAX
283
+ await executeInstallStep(step.action);
284
+ }
285
+
286
+ // Redirect to completion
287
+ window.location.href = '?step=7';
288
+ }
289
+ ```
290
+
291
+ ## Best Practices
292
+
293
+ ### Security
294
+ 1. **Session-based storage** - Never store passwords in files
295
+ 2. **CSRF protection** - Add tokens to forms
296
+ 3. **Input validation** - Sanitize all user inputs
297
+ 4. **Error suppression** - Hide PHP errors in production
298
+ 5. **Delete after install** - Remind users to remove /install folder
299
+
300
+ ### User Experience
301
+ 1. **Progress feedback** - Show clear progress indicators
302
+ 2. **Error messages** - Provide actionable error descriptions
303
+ 3. **Mobile responsive** - Works on tablets and phones
304
+ 4. **Back navigation** - Allow users to go back and change settings
305
+
306
+ ### Compatibility
307
+ 1. **Multiple DB support** - MySQL, PostgreSQL
308
+ 2. **PHP 7.4+** - Broad hosting compatibility
309
+ 3. **No composer** - Self-contained PHP files
310
+ 4. **AJAX fallback** - Works without JavaScript (basic mode)
311
+
312
+ ## Related Resources
313
+ - `docs/installer/IMPLEMENTATION_VISION.md` - Full implementation plan
314
+ - `docs/installer/DATABASE_ABSTRACTION.md` - Knex.js layer
315
+ - `server/database/README.md` - Node.js database abstraction