@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,256 @@
1
+ # PM2 Environment Variable Caching - Root Cause & Solution
2
+
3
+ ## The Problem
4
+
5
+ Environment variables in `.env` files are not being reloaded when you restart a PM2 process.
6
+ After editing `.env` on the server and running `pm2 restart`, the application still uses the OLD values.
7
+
8
+ ### Common Error Messages
9
+
10
+ ```
11
+ Error: Stripe is not configured. Please set STRIPE_SECRET_KEY environment variable.
12
+ ```
13
+
14
+ ```
15
+ Error: DATABASE_URL not set
16
+ ```
17
+
18
+ ```
19
+ Error: JWT_SECRET missing
20
+ ```
21
+
22
+ ### Why It Was Hard
23
+
24
+ - **Silent failure** - No errors during restart, app runs but uses wrong values
25
+ - **Intermittent appearance** - Works after fresh `pm2 start`, breaks after `pm2 restart`
26
+ - **Misleading debugging** - You check `.env`, see correct values, but app doesn't use them
27
+ - **Confidence trap** - "I definitely set that env var" but PM2 ignores it
28
+
29
+ ### Impact
30
+
31
+ - Production services fail silently
32
+ - Payment processing stops (Stripe)
33
+ - Auth fails (JWT_SECRET)
34
+ - Database connections fail
35
+ - Hours wasted re-editing `.env` files that aren't actually the problem
36
+
37
+ ---
38
+
39
+ ## The Solution
40
+
41
+ ### Root Cause
42
+
43
+ **PM2 caches environment variables when a process is first started.**
44
+
45
+ When you run `pm2 restart`:
46
+ 1. PM2 stops the process
47
+ 2. PM2 starts a NEW process
48
+ 3. PM2 uses the **CACHED** environment from the original `pm2 start`
49
+ 4. Your `.env` file changes are **IGNORED**
50
+
51
+ This is by design for performance, but causes this exact issue.
52
+
53
+ ### How to Fix
54
+
55
+ **Always use `--update-env` flag when restarting:**
56
+
57
+ ```bash
58
+ # WRONG - does NOT reload .env
59
+ pm2 restart app-name
60
+
61
+ # CORRECT - reloads .env file
62
+ pm2 restart app-name --update-env
63
+ ```
64
+
65
+ ### Alternative: Full Stop/Start Cycle
66
+
67
+ If `--update-env` doesn't work (rare edge cases):
68
+
69
+ ```bash
70
+ # Nuclear option - delete and restart fresh
71
+ pm2 delete app-name
72
+ cd /path/to/app
73
+ pm2 start server.js --name app-name
74
+ pm2 save
75
+ ```
76
+
77
+ ### Code Example: Deploy Script Fix
78
+
79
+ **Before (broken):**
80
+ ```bash
81
+ # Restart PM2 processes
82
+ echo "Restarting PM2..."
83
+ pm2 restart LMS-SERVER
84
+ ```
85
+
86
+ **After (working):**
87
+ ```bash
88
+ # Restart PM2 processes with --update-env to reload .env file
89
+ # IMPORTANT: Without --update-env, PM2 uses cached environment variables!
90
+ echo "Restarting PM2 with updated environment..."
91
+ pm2 restart LMS-SERVER --update-env
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Testing the Fix
97
+
98
+ ### Verify Environment is Loaded
99
+
100
+ ```bash
101
+ # Check what env vars PM2 process is actually using
102
+ pm2 env <app-id>
103
+
104
+ # Or check logs for initialization messages
105
+ pm2 logs app-name --lines 30 | grep -E "(Loaded|initialized|configured)"
106
+ ```
107
+
108
+ ### Test Procedure
109
+
110
+ 1. SSH to server
111
+ 2. Edit `.env` file - change a visible value (like `NODE_ENV=test`)
112
+ 3. Run `pm2 restart app-name --update-env`
113
+ 4. Check logs to verify new value is used
114
+ 5. Restore original value and restart again with `--update-env`
115
+
116
+ ### Expected Output
117
+
118
+ ```
119
+ [Server] Loaded environment from: .env
120
+ ✅ Stripe initialized successfully
121
+ ✅ Database connected
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Prevention
127
+
128
+ ### 1. Update All Deploy Scripts
129
+
130
+ Find and replace all `pm2 restart` commands:
131
+
132
+ ```bash
133
+ # Find all occurrences
134
+ grep -r "pm2 restart" scripts/
135
+
136
+ # Replace with --update-env version
137
+ sed -i 's/pm2 restart all/pm2 restart all --update-env/g' scripts/*.sh
138
+ ```
139
+
140
+ ### 2. Use Ecosystem File
141
+
142
+ Create `ecosystem.config.js` with explicit env vars:
143
+
144
+ ```javascript
145
+ module.exports = {
146
+ apps: [{
147
+ name: 'LMS-SERVER',
148
+ script: 'server.js',
149
+ env_file: '.env', // Some PM2 versions support this
150
+ watch: false,
151
+ instances: 1,
152
+ autorestart: true,
153
+ }]
154
+ };
155
+ ```
156
+
157
+ Then restart with:
158
+ ```bash
159
+ pm2 restart ecosystem.config.js --update-env
160
+ ```
161
+
162
+ ### 3. Document in Project README
163
+
164
+ Add this to your deployment docs:
165
+
166
+ ```markdown
167
+ ## PM2 Restart Commands
168
+
169
+ ⚠️ **CRITICAL:** Always use `--update-env` when restarting PM2!
170
+
171
+ ```bash
172
+ # Correct way to restart (reloads .env)
173
+ pm2 restart LMS-SERVER --update-env
174
+
175
+ # WRONG - does NOT reload .env
176
+ pm2 restart LMS-SERVER
177
+ ```
178
+ ```
179
+
180
+ ### 4. Add to CLAUDE.md
181
+
182
+ Ensure AI agents know about this:
183
+
184
+ ```markdown
185
+ ### PM2 Commands (on server)
186
+ ```bash
187
+ pm2 restart LMS-SERVER --update-env # USE THIS!
188
+ # ⚠️ Plain 'pm2 restart' does NOT reload .env!
189
+ ```
190
+ ```
191
+
192
+ ---
193
+
194
+ ## Related Patterns
195
+
196
+ - [Node.js dotenv Configuration](../patterns-standards/DOTENV_BEST_PRACTICES.md)
197
+ - [Production Deployment Checklist](./PRODUCTION_DEPLOYMENT_CHECKLIST.md)
198
+ - [Environment Variable Security](./ENV_VAR_SECURITY.md)
199
+
200
+ ---
201
+
202
+ ## Common Mistakes to Avoid
203
+
204
+ - ❌ **Using `pm2 restart` without `--update-env`** - The #1 cause of this issue
205
+ - ❌ **Assuming `.env` changes take effect immediately** - They don't with PM2
206
+ - ❌ **Re-editing `.env` when it's already correct** - Check PM2's cached env instead
207
+ - ❌ **Blaming dotenv package** - The package works fine, PM2 caches the result
208
+ - ❌ **Using `pm2 reload`** - This also doesn't reload env vars
209
+
210
+ ---
211
+
212
+ ## PM2 Commands Reference
213
+
214
+ | Command | Reloads .env? | Use Case |
215
+ |---------|--------------|----------|
216
+ | `pm2 restart app` | ❌ No | Quick restart, no env changes |
217
+ | `pm2 restart app --update-env` | ✅ Yes | After editing .env file |
218
+ | `pm2 reload app` | ❌ No | Zero-downtime restart |
219
+ | `pm2 reload app --update-env` | ✅ Yes | Zero-downtime + env reload |
220
+ | `pm2 delete app && pm2 start` | ✅ Yes | Nuclear option, always fresh |
221
+
222
+ ---
223
+
224
+ ## Resources
225
+
226
+ - [PM2 Documentation: Environment Variables](https://pm2.keymetrics.io/docs/usage/environment/)
227
+ - [PM2 GitHub Issue: env vars not updating](https://github.com/Unitech/pm2/issues/2252)
228
+ - [Node.js dotenv Documentation](https://www.npmjs.com/package/dotenv)
229
+
230
+ ---
231
+
232
+ ## Time to Implement
233
+
234
+ **5 minutes** - Just add `--update-env` to your restart commands
235
+
236
+ ## Difficulty Level
237
+
238
+ ⭐ (1/5) - Trivial fix once you know about it, but VERY hard to diagnose
239
+
240
+ ---
241
+
242
+ **Author Notes:**
243
+
244
+ This issue cost hours of debugging before discovering the root cause. The symptoms are extremely misleading - you see correct values in `.env`, you restart PM2, and it still doesn't work. Natural instinct is to check the `.env` file again, or suspect the application code.
245
+
246
+ The key insight: **PM2 is a process manager that caches state.** Once you understand that, the fix is obvious.
247
+
248
+ Every deployment script, every runbook, every piece of documentation that mentions `pm2 restart` should include `--update-env`. Make it muscle memory.
249
+
250
+ **Discovery date:** January 2026
251
+ **Project:** MERN Community LMS
252
+ **Symptom:** "Stripe is not configured" error persisting after fixing .env
253
+
254
+ ---
255
+
256
+ *When in doubt: `pm2 restart --update-env`*
@@ -0,0 +1,370 @@
1
+ # PM2 Memory Exhaustion - Node.js Heap Size Fix for Production
2
+
3
+ ## The Problem
4
+
5
+ Production server experiencing **constant restarts** (4-5 per hour) with email alerts showing brief downtimes of a few seconds. Server appears to crash and auto-restart continuously.
6
+
7
+ ### Symptoms
8
+ ```
9
+ PM2 Status:
10
+ - Restarts: 53 in 12 hours
11
+ - Uptime: Resets every hour
12
+ - Heap Usage: 94.54% (137 MB / 145 MB)
13
+ - HTTP P95 Latency: 25 seconds (should be <1s)
14
+ - Status: Online but unstable
15
+ ```
16
+
17
+ ### Why It Was Hard
18
+
19
+ - **Silent failure** - No crash stack traces, only brief downtime alerts
20
+ - **Auto-restart masks problem** - PM2 keeps restarting so users don't notice long outages
21
+ - **Looks like code errors** - Initial assumption was application bugs causing crashes
22
+ - **Memory limit not obvious** - Node.js default heap size (~145MB) is invisible in PM2 status
23
+ - **Normal errors in logs** - 404s, CORS, auth failures distract from real issue
24
+
25
+ ### Impact
26
+
27
+ - **User experience** - Intermittent errors during restart windows
28
+ - **Operations cost** - Constant email alerts (dozens per day)
29
+ - **Reliability perception** - "Is the site down?" questions from users
30
+ - **Debugging time wasted** - Investigating wrong problems (code errors vs infrastructure)
31
+
32
+ ---
33
+
34
+ ## The Solution
35
+
36
+ **Root Cause:** Node.js default heap size (~145 MB) is too small for the application's memory footprint under production load.
37
+
38
+ ### Diagnosis Commands
39
+
40
+ ```bash
41
+ # Check PM2 status and restart count
42
+ ssh user@server "pm2 info APP_NAME | grep -E '(restarts|heap|memory)'"
43
+
44
+ # Check heap usage
45
+ ssh user@server "pm2 info APP_NAME"
46
+ # Look for:
47
+ # - Heap Usage > 90% = CRITICAL
48
+ # - Restarts > 10/day = PROBLEM
49
+ # - Used Heap Size approaching limit
50
+
51
+ # Check Node.js heap limit (if configured)
52
+ ssh user@server "ps aux | grep node"
53
+ # Look for --max-old-space-size flag
54
+ ```
55
+
56
+ ### The Fix: Create PM2 Ecosystem Config
57
+
58
+ Create `ecosystem.config.js` in project root:
59
+
60
+ ```javascript
61
+ module.exports = {
62
+ apps: [{
63
+ name: 'LMS-SERVER',
64
+ script: './server/server.js',
65
+ cwd: '/home/user/app-directory',
66
+ instances: 1,
67
+ exec_mode: 'fork',
68
+
69
+ // CRITICAL: Memory management
70
+ max_memory_restart: '450M', // Restart before OOM (before 512M limit)
71
+ node_args: '--max-old-space-size=512', // 512MB heap (vs default ~145MB)
72
+
73
+ // Restart policy
74
+ autorestart: true,
75
+ max_restarts: 10,
76
+ min_uptime: '10s',
77
+
78
+ // Logging
79
+ error_file: '/home/user/.pm2/logs/APP-error.log',
80
+ out_file: '/home/user/.pm2/logs/APP-out.log',
81
+ log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
82
+
83
+ // Environment
84
+ env: {
85
+ NODE_ENV: 'production',
86
+ PORT: 3000
87
+ }
88
+ }]
89
+ };
90
+ ```
91
+
92
+ ### Apply the Configuration
93
+
94
+ ```bash
95
+ # SSH into server
96
+ ssh user@server
97
+
98
+ # Navigate to app directory
99
+ cd ~/app-directory
100
+
101
+ # Stop current PM2 process
102
+ pm2 delete APP_NAME
103
+
104
+ # Start with new configuration
105
+ pm2 start ecosystem.config.js
106
+
107
+ # Save PM2 configuration (persist across reboots)
108
+ pm2 save
109
+
110
+ # Verify new heap size
111
+ pm2 info APP_NAME | grep "interpreter args"
112
+ # Should show: --max-old-space-size=512
113
+ ```
114
+
115
+ ### Memory Sizing Guidelines
116
+
117
+ | Server RAM | Recommended Heap Size | Notes |
118
+ |------------|----------------------|-------|
119
+ | 512 MB | 256 MB | Minimal setup |
120
+ | 1 GB | 512 MB | Small to medium apps |
121
+ | 2 GB | 1 GB | Medium apps |
122
+ | 4+ GB | 1.5-2 GB | Large apps |
123
+
124
+ **Rule of Thumb:** Set heap to **40-50% of available server RAM** if running single process.
125
+
126
+ ### Choosing max_memory_restart Value
127
+
128
+ Set `max_memory_restart` to **~90% of heap size**:
129
+ - Heap 512 MB → restart at 450 MB
130
+ - Heap 1 GB → restart at 900 MB
131
+ - Heap 2 GB → restart at 1800 MB
132
+
133
+ This allows graceful restart before OOM crash.
134
+
135
+ ---
136
+
137
+ ## Testing the Fix
138
+
139
+ ### Before
140
+ ```bash
141
+ pm2 info LMS-SERVER
142
+ # Heap Usage: 94.54%
143
+ # Restarts: 53 (in 12 hours)
144
+ # HTTP P95 Latency: 25000 ms
145
+ ```
146
+
147
+ ### After
148
+ ```bash
149
+ pm2 info LMS-SERVER
150
+ # Heap Usage: 42% (218 MB / 512 MB)
151
+ # Restarts: 0
152
+ # HTTP P95 Latency: <100 ms
153
+ ```
154
+
155
+ ### Monitor Over 24 Hours
156
+
157
+ ```bash
158
+ # Check restart count
159
+ ssh user@server "pm2 info APP_NAME | grep restarts"
160
+
161
+ # Monitor memory usage live
162
+ ssh user@server "pm2 monit"
163
+
164
+ # Check logs for OOM errors
165
+ ssh user@server "pm2 logs APP_NAME --err --lines 100 | grep -i 'memory\|heap\|allocation'"
166
+ ```
167
+
168
+ **Success Criteria:**
169
+ - Restart count stays at 0 or low (<5 per day)
170
+ - Heap usage stays below 80%
171
+ - No email alerts for downtime
172
+ - Response times improve
173
+
174
+ ---
175
+
176
+ ## Prevention
177
+
178
+ ### 1. Always Configure PM2 with Ecosystem File
179
+
180
+ **Never run PM2 without heap size configuration in production.**
181
+
182
+ ```bash
183
+ # ❌ WRONG - Uses Node.js defaults
184
+ pm2 start server.js --name APP_NAME
185
+
186
+ # ✅ CORRECT - Uses explicit heap size
187
+ pm2 start ecosystem.config.js
188
+ ```
189
+
190
+ ### 2. Monitor Memory in Staging
191
+
192
+ Test memory usage in staging before production:
193
+
194
+ ```bash
195
+ # Load test in staging
196
+ npm install -g artillery
197
+ artillery quick --count 100 --num 10 https://staging.example.com
198
+
199
+ # Watch memory during load test
200
+ pm2 monit
201
+ ```
202
+
203
+ ### 3. Set Up Alerts
204
+
205
+ Configure PM2 to alert BEFORE memory exhaustion:
206
+
207
+ ```javascript
208
+ // In ecosystem.config.js
209
+ max_memory_restart: '450M', // Restart at 450MB
210
+ // Also set up external monitoring (New Relic, Datadog, etc.)
211
+ ```
212
+
213
+ ### 4. Check for Memory Leaks
214
+
215
+ If memory grows over time even with larger heap:
216
+
217
+ ```bash
218
+ # Take heap snapshot
219
+ pm2 trigger APP_NAME km:heapdump
220
+
221
+ # Analyze in Chrome DevTools
222
+ # Look for: setInterval not cleared, event listeners accumulating, large caches
223
+ ```
224
+
225
+ ### 5. Deployment Checklist
226
+
227
+ Before deploying new code:
228
+
229
+ - [ ] Check for `setInterval`/`setTimeout` without cleanup
230
+ - [ ] Verify event listeners are removed
231
+ - [ ] Check for unbounded caches (Map, Set without size limits)
232
+ - [ ] Test memory usage in staging under load
233
+ - [ ] Verify `ecosystem.config.js` is committed and deployed
234
+
235
+ ---
236
+
237
+ ## Common Mistakes to Avoid
238
+
239
+ - ❌ **Ignoring heap usage %** - "94% is fine, right?" NO - that's critical
240
+ - ❌ **Assuming code is crashing** - No stack trace = likely memory issue
241
+ - ❌ **Setting heap too low** - "256MB should be enough" - test under load first
242
+ - ❌ **Not using ecosystem config** - PM2 CLI flags don't persist across restarts
243
+ - ❌ **Ignoring restart count** - "PM2 handles it" - but investigate WHY
244
+ - ❌ **Setting heap = total RAM** - Leave room for OS and other processes
245
+
246
+ ---
247
+
248
+ ## Related Patterns
249
+
250
+ - [Node.js Memory Management Best Practices](../patterns-standards/NODEJS_MEMORY_MANAGEMENT.md)
251
+ - [PM2 Production Configuration Guide](../deployment-security/PM2_PRODUCTION_CONFIG.md)
252
+ - [Memory Leak Detection and Prevention](../patterns-standards/MEMORY_LEAK_DETECTION.md)
253
+
254
+ ---
255
+
256
+ ## Resources
257
+
258
+ - [Node.js Memory Management](https://nodejs.org/en/docs/guides/simple-profiling/)
259
+ - [PM2 Ecosystem File Reference](https://pm2.keymetrics.io/docs/usage/application-declaration/)
260
+ - [V8 Heap Size Configuration](https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes)
261
+ - [PM2 Memory Restart](https://pm2.keymetrics.io/docs/usage/process-management/#max-memory-restart)
262
+
263
+ ---
264
+
265
+ ## Time to Implement
266
+
267
+ **15 minutes** - Create config, restart PM2, verify
268
+
269
+ ## Difficulty Level
270
+
271
+ ⭐⭐ (2/5) - Simple fix once you know the root cause, but diagnosis can be tricky
272
+
273
+ ---
274
+
275
+ ## Real-World Example: MERN Community LMS
276
+
277
+ **Date:** February 5, 2026
278
+ **Server:** schooloftheprophets.club (cPanel shared hosting)
279
+ **Problem:** 53 restarts in 12 hours, 94.54% heap usage
280
+
281
+ **Solution Applied:**
282
+ ```javascript
283
+ // ecosystem.config.js
284
+ node_args: '--max-old-space-size=512' // 512MB heap
285
+ max_memory_restart: '450M'
286
+ ```
287
+
288
+ **Results:**
289
+ - Restarts dropped to 0
290
+ - Heap usage: 42% (healthy)
291
+ - Email alerts stopped
292
+ - Site stability restored
293
+
294
+ **Server specs:**
295
+ - Total RAM: 11 GB
296
+ - Node.js: 18.20.8
297
+ - Previous heap: ~145 MB (default)
298
+ - New heap: 512 MB (3.5x increase)
299
+
300
+ ---
301
+
302
+ ## When This Fix Isn't Enough
303
+
304
+ If you still see memory growth after increasing heap size, you likely have a **memory leak**:
305
+
306
+ ### Investigation Steps
307
+
308
+ 1. **Identify leak sources:**
309
+ ```bash
310
+ # Check for unclosed intervals
311
+ grep -r 'setInterval' --include='*.js' | grep -v 'clearInterval'
312
+
313
+ # Check for event listeners
314
+ grep -r '\.on(' --include='*.js' | grep -v '\.off('
315
+ ```
316
+
317
+ 2. **Take heap snapshots:**
318
+ ```bash
319
+ pm2 trigger APP_NAME km:heapdump
320
+ # Analyze in Chrome DevTools Memory Profiler
321
+ ```
322
+
323
+ 3. **Common leak sources:**
324
+ - WebSocket connections not closed
325
+ - Database connections not released
326
+ - File streams not closed
327
+ - Event listeners accumulating
328
+ - Caches growing unbounded
329
+ - Timers (setInterval) not cleared
330
+
331
+ 4. **Fix patterns:**
332
+ ```javascript
333
+ // ❌ Memory leak
334
+ setInterval(() => { /* ... */ }, 1000);
335
+
336
+ // ✅ Proper cleanup
337
+ const interval = setInterval(() => { /* ... */ }, 1000);
338
+ process.on('SIGTERM', () => clearInterval(interval));
339
+
340
+ // ❌ Memory leak
341
+ const cache = new Map();
342
+ cache.set(key, value); // Grows forever
343
+
344
+ // ✅ Size-limited cache
345
+ const cache = new Map();
346
+ if (cache.size > 1000) {
347
+ const firstKey = cache.keys().next().value;
348
+ cache.delete(firstKey);
349
+ }
350
+ cache.set(key, value);
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Author Notes
356
+
357
+ This took 30 minutes to diagnose after receiving email alerts about constant restarts. The key insight was recognizing that:
358
+
359
+ 1. **No stack traces = not a code crash** - Memory exhaustion
360
+ 2. **High heap % + restarts = undersized heap** - Not a leak
361
+ 3. **PM2 auto-restart = masks the problem** - Seems "fine" but isn't
362
+
363
+ The fix was trivial (add ecosystem config), but diagnosis required understanding Node.js memory management and PM2 behavior.
364
+
365
+ **Critical lesson:** Always check heap usage % FGTAT when investigating production instability. It's often the simplest explanation.
366
+
367
+ ---
368
+
369
+ **Last Updated:** February 5, 2026
370
+ **Tested On:** Node.js 18.20.8, PM2 5.x, cPanel shared hosting