@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,258 @@
1
+ # Dark Mode Modal Visibility - CSS Variables vs Explicit Colors
2
+
3
+ ## The Problem
4
+
5
+ Modal dialogs become unreadable in dark mode when using CSS custom properties (CSS variables) for both background and text colors. The modal content becomes dark-on-dark or invisible.
6
+
7
+ ### Error Symptoms
8
+
9
+ - Modal appears but content is invisible or barely visible
10
+ - Users can't read confirmation messages
11
+ - Buttons are hard to see or click
12
+ - No console errors - just visual failure
13
+
14
+ ### Why It Was Hard
15
+
16
+ - The modal "works" - it opens and closes correctly
17
+ - No JavaScript errors to debug
18
+ - Easy to miss during development if you only test in light mode
19
+ - CSS variables silently resolve to values that don't provide contrast
20
+ - The fix seems counterintuitive (use explicit colors instead of theme-aware variables)
21
+
22
+ ### Impact
23
+
24
+ - Users cannot complete critical actions (like confirming unenrollment)
25
+ - UX frustration and confusion
26
+ - Potential data integrity issues if users click blindly
27
+
28
+ ---
29
+
30
+ ## The Solution
31
+
32
+ ### Root Cause
33
+
34
+ When a modal uses CSS variables like `--color-surface` and `--color-text`, both resolve to dark values in dark mode:
35
+
36
+ ```jsx
37
+ // BAD - Both resolve to dark colors in dark mode
38
+ <div style={{ backgroundColor: 'var(--color-surface, #ffffff)' }}>
39
+ <p style={{ color: 'var(--color-text-secondary, #6b7280)' }}>
40
+ Confirm action?
41
+ </p>
42
+ </div>
43
+ ```
44
+
45
+ In dark mode:
46
+ - `--color-surface` might be `#1f2937` (dark gray)
47
+ - `--color-text-secondary` might be `#9ca3af` (light gray)
48
+
49
+ But if the modal doesn't properly inherit theme context, or CSS variables cascade incorrectly, you get dark-on-dark.
50
+
51
+ ### How to Fix
52
+
53
+ **Use explicit Tailwind classes** for critical modals instead of CSS variables:
54
+
55
+ ```jsx
56
+ // GOOD - Explicit white background, explicit dark text
57
+ <div className="relative inline-block w-full max-w-md p-6 my-8 overflow-hidden text-left align-middle transition-all transform bg-white rounded-lg shadow-xl">
58
+ <h3 className="text-lg font-semibold mb-2 text-red-600">
59
+ Confirm Unenrollment
60
+ </h3>
61
+ <p className="mb-4 text-gray-700">
62
+ Are you sure you want to unenroll{' '}
63
+ <strong className="text-gray-900">{userName}</strong>{' '}
64
+ from <strong className="text-gray-900">{courseTitle}</strong>?
65
+ </p>
66
+ <p className="text-sm mb-6 text-red-600">
67
+ This will also delete their course progress.
68
+ </p>
69
+
70
+ <div className="flex justify-end gap-3">
71
+ <button className="px-4 py-2 rounded-lg text-sm font-medium bg-gray-100 text-gray-700 hover:bg-gray-200">
72
+ Cancel
73
+ </button>
74
+ <button className="px-4 py-2 rounded-lg text-sm font-medium text-white bg-red-600 hover:bg-red-700 disabled:opacity-50">
75
+ Confirm
76
+ </button>
77
+ </div>
78
+ </div>
79
+ ```
80
+
81
+ ### Key Changes
82
+
83
+ | Element | Bad (CSS Variables) | Good (Explicit) |
84
+ |---------|---------------------|-----------------|
85
+ | Modal background | `style={{ backgroundColor: 'var(--color-surface)' }}` | `className="bg-white"` |
86
+ | Primary text | `style={{ color: 'var(--color-text)' }}` | `className="text-gray-900"` |
87
+ | Secondary text | `style={{ color: 'var(--color-text-secondary)' }}` | `className="text-gray-700"` |
88
+ | Danger text | `style={{ color: '#dc2626' }}` | `className="text-red-600"` |
89
+ | Cancel button | `style={{ backgroundColor: 'var(--color-surface-secondary)' }}` | `className="bg-gray-100 text-gray-700"` |
90
+ | Danger button | `style={{ backgroundColor: '#dc2626' }}` | `className="bg-red-600 text-white"` |
91
+
92
+ ### Backdrop Fix
93
+
94
+ Also use explicit classes for the modal backdrop:
95
+
96
+ ```jsx
97
+ // BAD
98
+ <div
99
+ className="fixed inset-0 transition-opacity"
100
+ style={{ backgroundColor: 'rgba(0, 0, 0, 0.5)' }}
101
+ />
102
+
103
+ // GOOD
104
+ <div className="fixed inset-0 transition-opacity bg-black bg-opacity-50" />
105
+ ```
106
+
107
+ ---
108
+
109
+ ## When to Use Explicit Colors
110
+
111
+ Use explicit Tailwind classes for:
112
+
113
+ 1. **Confirmation modals** - Critical user decisions
114
+ 2. **Error dialogs** - Must be readable
115
+ 3. **Overlays and popups** - Need guaranteed contrast
116
+ 4. **Toast notifications** - Brief, need immediate visibility
117
+
118
+ Keep CSS variables for:
119
+
120
+ 1. **Main page layouts** - Should respect theme
121
+ 2. **Navigation** - Part of the theme experience
122
+ 3. **Card backgrounds** - Follow user preference
123
+ 4. **Form inputs** - Theme-aware is appropriate
124
+
125
+ ---
126
+
127
+ ## Testing the Fix
128
+
129
+ ### Before (Dark Mode)
130
+ - Modal appears with dark background
131
+ - Text is barely visible or invisible
132
+ - User cannot read confirmation message
133
+
134
+ ### After (Dark Mode)
135
+ - Modal has white background
136
+ - Text is clearly visible (gray/black)
137
+ - Danger messages in red are prominent
138
+ - Buttons have clear hover states
139
+
140
+ ### Test Cases
141
+
142
+ 1. Open modal in light mode - verify readable
143
+ 2. Open modal in dark mode - verify readable
144
+ 3. Toggle theme while modal is open - should remain readable
145
+ 4. Test on different screen brightnesses
146
+
147
+ ---
148
+
149
+ ## Prevention
150
+
151
+ ### Code Review Checklist
152
+
153
+ - [ ] Modal backgrounds use explicit `bg-white` or `bg-gray-900`
154
+ - [ ] Text colors use explicit Tailwind classes
155
+ - [ ] Buttons have visible text in both modes
156
+ - [ ] Backdrop uses `bg-black bg-opacity-50`
157
+
158
+ ### Pattern to Follow
159
+
160
+ ```jsx
161
+ // Standard modal pattern for guaranteed visibility
162
+ const ConfirmationModal = ({ isOpen, onClose, onConfirm, title, message, confirmText }) => {
163
+ if (!isOpen) return null;
164
+
165
+ return (
166
+ <div className="fixed inset-0 z-50 overflow-y-auto">
167
+ <div className="flex items-center justify-center min-h-screen px-4 text-center">
168
+ {/* Backdrop */}
169
+ <div
170
+ className="fixed inset-0 bg-black bg-opacity-50 transition-opacity"
171
+ onClick={onClose}
172
+ />
173
+
174
+ {/* Modal */}
175
+ <div className="relative bg-white rounded-lg shadow-xl max-w-md w-full p-6 text-left">
176
+ <h3 className="text-lg font-semibold text-gray-900 mb-4">
177
+ {title}
178
+ </h3>
179
+ <p className="text-gray-700 mb-6">
180
+ {message}
181
+ </p>
182
+ <div className="flex justify-end gap-3">
183
+ <button
184
+ onClick={onClose}
185
+ className="px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200"
186
+ >
187
+ Cancel
188
+ </button>
189
+ <button
190
+ onClick={onConfirm}
191
+ className="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700"
192
+ >
193
+ {confirmText}
194
+ </button>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ );
200
+ };
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Related Patterns
206
+
207
+ - Theme Context Implementation
208
+ - CSS Variables for Theming
209
+ - Tailwind Dark Mode Configuration
210
+ - Accessible Color Contrast
211
+
212
+ ---
213
+
214
+ ## Common Mistakes to Avoid
215
+
216
+ - ❌ **Using CSS variables in modals** - They can resolve unexpectedly in dark mode
217
+ - ❌ **Mixing inline styles and Tailwind** - Hard to debug theme issues
218
+ - ❌ **Testing only in light mode** - Always test both modes
219
+ - ❌ **Forgetting backdrop contrast** - Dark backdrop on dark page = invisible modal
220
+
221
+ ---
222
+
223
+ ## Resources
224
+
225
+ - [Tailwind CSS Colors](https://tailwindcss.com/docs/customizing-colors)
226
+ - [WCAG Color Contrast Guidelines](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)
227
+ - [Accessible Modal Patterns](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/)
228
+
229
+ ---
230
+
231
+ ## Time to Implement
232
+
233
+ **5-10 minutes** - Simple find and replace of style props with Tailwind classes
234
+
235
+ ## Difficulty Level
236
+
237
+ ⭐⭐ (2/5) - Easy fix once you understand the pattern, but hard to diagnose initially
238
+
239
+ ---
240
+
241
+ **Author Notes:**
242
+
243
+ This issue appeared in an admin enrollment management page where the unenroll confirmation modal was unreadable in dark mode. The user could see the modal backdrop but couldn't read the confirmation message or identify the buttons.
244
+
245
+ The key insight: **modals are often displayed outside the normal theme context**, so relying on CSS variables can break. Explicit colors guarantee visibility regardless of theme state.
246
+
247
+ For dark-mode-aware modals that match the theme, use `dark:` variant classes:
248
+ ```jsx
249
+ className="bg-white dark:bg-gray-800 text-gray-900 dark:text-white"
250
+ ```
251
+
252
+ But for critical confirmation dialogs, explicit light colors are often preferred for their "alert" feel.
253
+
254
+ ---
255
+
256
+ **Created:** 2026-01-26
257
+ **Context:** MERN Community LMS - Admin Enrollment Management
258
+ **Files Changed:** `client/src/pages/admin/Enrollments.jsx`
@@ -0,0 +1,375 @@
1
+ # ERROR RESILIENCE IMPLEMENTATION - FINAL PRODUCTION ENHANCEMENT
2
+
3
+ **Date:** October 20, 2025
4
+ **Status:** ✅ PRODUCTION READY WITH ERROR RESILIENCE
5
+ **File:** `CREATE_VIDEO_PROGRESS_TABLES.sql` (Final Enterprise-Grade Version)
6
+
7
+ ---
8
+
9
+ ## 🛡️ ERROR RESILIENCE PATTERN IMPLEMENTED
10
+
11
+ ### Problem This Solves
12
+
13
+ **Scenario:** During peak usage, `lesson_progress` table experiences intermittent write delays or locks
14
+ - ❌ Without error handling: Student's video_progress write FAILS, progress lost
15
+ - ✅ With error handling: Student's video_progress SUCCEEDS, error logged silently
16
+
17
+ **User Impact Without Error Resilience:**
18
+ ```
19
+ Video playback paused... ERROR saving progress
20
+ [Progress Lost] 45 seconds of watch time gone
21
+ User loses motivation ❌
22
+ ```
23
+
24
+ **User Impact With Error Resilience:**
25
+ ```
26
+ Video playback continues smoothly ✅
27
+ Progress saved (45 seconds recorded)
28
+ Admin finds and fixes issue later (error logged)
29
+ User experience seamless ✅
30
+ ```
31
+
32
+ ---
33
+
34
+ ## 🏗️ IMPLEMENTATION DETAILS
35
+
36
+ ### 1. Created trigger_error_log Table
37
+
38
+ **Purpose:** Capture trigger errors without aborting the write
39
+
40
+ **Schema:**
41
+ ```sql
42
+ CREATE TABLE IF NOT EXISTS trigger_error_log (
43
+ id uuid NOT NULL DEFAULT gen_random_uuid(),
44
+ trigger_name text NOT NULL, -- Which trigger failed
45
+ error_message text, -- PostgreSQL error message
46
+ error_context jsonb, -- Contextual data (user_id, lesson_id, etc.)
47
+ logged_at timestamptz DEFAULT NOW(), -- When error occurred
48
+ CONSTRAINT trigger_error_log_pkey PRIMARY KEY (id)
49
+ );
50
+ ```
51
+
52
+ **Index for Performance:**
53
+ ```sql
54
+ CREATE INDEX IF NOT EXISTS idx_trigger_error_log_recent
55
+ ON trigger_error_log(logged_at DESC);
56
+ ```
57
+
58
+ **Key Features:**
59
+ - Lightweight (minimal storage footprint)
60
+ - JSONB context for debugging
61
+ - Indexed by timestamp (find recent errors quickly)
62
+ - No query impact (separate table)
63
+
64
+ ---
65
+
66
+ ### 2. Enhanced Trigger Function with Exception Handling
67
+
68
+ **Before (No Error Handling):**
69
+ ```plpgsql
70
+ IF v_is_completed AND NOT v_was_completed THEN
71
+ INSERT INTO lesson_progress (...)
72
+ VALUES (...)
73
+ ON CONFLICT ... DO UPDATE SET ...;
74
+ END IF;
75
+ ```
76
+
77
+ **After (With Error Resilience):**
78
+ ```plpgsql
79
+ IF v_is_completed AND NOT v_was_completed THEN
80
+ BEGIN
81
+ INSERT INTO lesson_progress (...)
82
+ VALUES (...)
83
+ ON CONFLICT ... DO UPDATE SET ...;
84
+ EXCEPTION WHEN OTHERS THEN
85
+ -- Capture error without aborting
86
+ v_error_msg := SQLERRM;
87
+ v_error_context := jsonb_build_object(
88
+ 'user_id', NEW.user_id::text,
89
+ 'lesson_id', NEW.lesson_id::text,
90
+ 'course_id', NEW.course_id::text,
91
+ 'completion_percentage', new_completion_percentage,
92
+ 'sqlstate', SQLSTATE
93
+ );
94
+
95
+ -- Log non-fatally
96
+ INSERT INTO trigger_error_log (...)
97
+ VALUES (...);
98
+ END;
99
+ END IF;
100
+ ```
101
+
102
+ **Key Improvements:**
103
+ - ✅ Wraps lesson_progress upsert in BEGIN...EXCEPTION
104
+ - ✅ Captures `SQLERRM` (error message)
105
+ - ✅ Captures `SQLSTATE` (error code)
106
+ - ✅ Stores context (user_id, lesson_id, completion %)
107
+ - ✅ Logs to error table (non-fatal)
108
+ - ✅ Video_progress write continues successfully
109
+
110
+ ---
111
+
112
+ ## 📊 BEHAVIOR COMPARISON
113
+
114
+ ### Without Error Handling
115
+
116
+ ```
117
+ UPDATE video_progress SET total_watch_time_ms = 45000
118
+
119
+ Trigger executes:
120
+ ✅ Calculate completion percentage: 45%
121
+ ✅ Set is_completed = false
122
+ ❌ INSERT INTO lesson_progress FAILS (table locked)
123
+ ❌ ENTIRE TRIGGER FAILS
124
+ ❌ VIDEO_PROGRESS UPDATE ROLLED BACK
125
+ ❌ STUDENT PROGRESS LOST
126
+
127
+ Result: Student sees error, progress gone ❌
128
+ ```
129
+
130
+ ### With Error Handling
131
+
132
+ ```
133
+ UPDATE video_progress SET total_watch_time_ms = 45000
134
+
135
+ Trigger executes:
136
+ ✅ Calculate completion percentage: 45%
137
+ ✅ Set is_completed = false
138
+ ❌ INSERT INTO lesson_progress FAILS (table locked)
139
+ ✅ EXCEPTION CAUGHT
140
+ ✅ Error logged to trigger_error_log
141
+ ✅ VIDEO_PROGRESS UPDATE SUCCEEDS
142
+ ✅ STUDENT PROGRESS SAVED
143
+
144
+ Result: Progress saved, admin notified via error log ✅
145
+ ```
146
+
147
+ ---
148
+
149
+ ## 🔍 DEBUGGING & MONITORING
150
+
151
+ ### Query Recent Errors
152
+
153
+ ```sql
154
+ -- Check if trigger had recent failures
155
+ SELECT
156
+ trigger_name,
157
+ COUNT(*) as error_count,
158
+ MAX(logged_at) as last_error,
159
+ error_context->>'user_id' as affected_user
160
+ FROM trigger_error_log
161
+ WHERE logged_at > NOW() - INTERVAL '1 hour'
162
+ GROUP BY trigger_name, error_context->>'user_id'
163
+ ORDER BY last_error DESC;
164
+ ```
165
+
166
+ ### View Error Details
167
+
168
+ ```sql
169
+ -- See exactly what failed and why
170
+ SELECT
171
+ logged_at,
172
+ error_message,
173
+ error_context->>'user_id' as user_id,
174
+ error_context->>'lesson_id' as lesson_id,
175
+ error_context->>'completion_percentage' as completion_pct,
176
+ error_context->>'sqlstate' as error_code
177
+ FROM trigger_error_log
178
+ WHERE logged_at > NOW() - INTERVAL '24 hours'
179
+ ORDER BY logged_at DESC;
180
+ ```
181
+
182
+ ### Monitor Error Frequency
183
+
184
+ ```sql
185
+ -- Track error patterns over time
186
+ SELECT
187
+ DATE_TRUNC('minute', logged_at) as minute,
188
+ COUNT(*) as errors_in_minute
189
+ FROM trigger_error_log
190
+ WHERE logged_at > NOW() - INTERVAL '1 day'
191
+ GROUP BY DATE_TRUNC('minute', logged_at)
192
+ ORDER BY minute DESC;
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 🚨 WHEN TO INVESTIGATE
198
+
199
+ ### Action Needed If:
200
+ - **Error spike:** > 10 errors in 1 hour
201
+ - **Specific user:** Same user seeing repeated failures
202
+ - **Specific lesson:** High error rate for one lesson
203
+ - **Specific error code:** Pattern of same SQL error
204
+
205
+ ### Example Investigation
206
+
207
+ ```
208
+ ERROR LOG ALERT:
209
+ - 50 errors in last 5 minutes
210
+ - All from same lesson_id
211
+ - All with SQLSTATE = '40P01' (serialization failure)
212
+
213
+ ACTION:
214
+ 1. Check lesson_progress table for locks
215
+ 2. Review transactions in that time window
216
+ 3. Possibly increase max_connections or tune application retry logic
217
+ 4. Monitor for recurrence
218
+ ```
219
+
220
+ ---
221
+
222
+ ## 💾 DATA RETENTION POLICY
223
+
224
+ ### Keep Error Logs For:
225
+ - ✅ 7 days: Real-time debugging (find active issues)
226
+ - ✅ 30 days: Pattern analysis (weekly reports)
227
+ - ✅ 90 days: Historical trends (long-term insights)
228
+
229
+ ### Archive Older Logs
230
+
231
+ ```sql
232
+ -- Monthly cleanup (run via cron or scheduler)
233
+ DELETE FROM trigger_error_log
234
+ WHERE logged_at < NOW() - INTERVAL '90 days';
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 🎯 RESILIENCE GUARANTEES
240
+
241
+ ### What This Guarantees
242
+
243
+ | Guarantee | Before | After |
244
+ |-----------|--------|-------|
245
+ | **Video progress saved** | ❌ No (if lesson_progress fails) | ✅ Yes (always) |
246
+ | **Error visibility** | ❌ No (silent failure) | ✅ Yes (logged) |
247
+ | **User experience** | ❌ Error shown to user | ✅ Seamless, silent handling |
248
+ | **Data recovery** | ❌ Progress lost | ✅ Can investigate & fix |
249
+ | **Admin debugging** | ❌ No info | ✅ Full error context |
250
+
251
+ ### What This Does NOT Guarantee
252
+
253
+ - ❌ Does NOT guarantee lesson_progress is always updated
254
+ - ❌ Does NOT hide the underlying issue (must be fixed)
255
+ - ❌ Does NOT prevent the error (must monitor and investigate)
256
+ - ⚠️ Requires active monitoring to detect issues
257
+
258
+ ---
259
+
260
+ ## 🔧 DEPLOYMENT NOTES
261
+
262
+ ### Safe to Deploy
263
+ - ✅ Fully backward compatible
264
+ - ✅ No migration needed
265
+ - ✅ Error log table is optional (self-contained)
266
+ - ✅ Can be deployed any time
267
+
268
+ ### Performance Impact
269
+ - ✅ Negligible when no errors (one extra IF condition)
270
+ - ✅ Minimal when errors occur (log insert is fast)
271
+ - ✅ No impact on normal video progress tracking
272
+
273
+ ### Assumptions
274
+ - ✅ Assumes `lesson_progress` table exists
275
+ - ✅ Assumes `trigger_error_log` can be created
276
+ - ✅ Assumes sufficient privileges to create table
277
+
278
+ ---
279
+
280
+ ## 📈 SCALABILITY NOTES
281
+
282
+ ### When lesson_progress Becomes a Bottleneck
283
+
284
+ **Current Approach (Synchronous):**
285
+ ```
286
+ Video progress write → Trigger → lesson_progress update (sync) → Done
287
+ Performance: ~1-5ms
288
+ ```
289
+
290
+ **Future Approach (Asynchronous):**
291
+ ```
292
+ Video progress write → Trigger → events table (fast) → Done
293
+ Background job → lesson_progress updates (async)
294
+ Performance: ~1-2ms (write), +100ms (async processing)
295
+ ```
296
+
297
+ **When to Switch:**
298
+ - ✅ Current approach fine for < 100 concurrent users
299
+ - ⚠️ Monitor if > 500 concurrent users
300
+ - ❌ Switch to async if > 1000 concurrent users OR avg write time > 10ms
301
+
302
+ ---
303
+
304
+ ## ✅ FINAL CHECKLIST: PRODUCTION READY
305
+
306
+ - ✅ Error tracking table created
307
+ - ✅ Error index for performance
308
+ - ✅ Trigger wrapped in exception handler
309
+ - ✅ Error context captured (user_id, lesson_id, completion %)
310
+ - ✅ SQLERRM and SQLSTATE captured
311
+ - ✅ Video progress write never aborted
312
+ - ✅ Deterministic timestamps (v_now)
313
+ - ✅ NULL-safe completion logic
314
+ - ✅ ON CONFLICT with indexed lookup
315
+ - ✅ RLS policies idempotent
316
+ - ✅ Comprehensive comments
317
+ - ✅ Debugging queries documented
318
+ - ✅ Data retention policy documented
319
+ - ✅ Scalability guidance included
320
+
321
+ ---
322
+
323
+ ## 🚀 DEPLOYMENT CHECKLIST
324
+
325
+ Before executing in Supabase:
326
+
327
+ - [ ] Review the complete CREATE_VIDEO_PROGRESS_TABLES.sql script
328
+ - [ ] Verify all table names match your schema (video_progress, lesson_progress)
329
+ - [ ] Confirm you have privileges to create tables and indexes
330
+ - [ ] Backup existing data (if any)
331
+ - [ ] Plan monitoring for trigger_error_log
332
+ - [ ] Communicate to team about new error tracking
333
+
334
+ **Execution Steps:**
335
+ 1. Copy entire `CREATE_VIDEO_PROGRESS_TABLES.sql`
336
+ 2. Open Supabase SQL Editor
337
+ 3. Paste and click Run
338
+ 4. Verify: "Query executed successfully"
339
+ 5. Run verification queries from VERIFY_VIDEO_PROGRESS_DATABASE.sql
340
+
341
+ ---
342
+
343
+ ## 📝 MONITORING AFTER DEPLOYMENT
344
+
345
+ ### Week 1: Baseline Monitoring
346
+ ```sql
347
+ -- Daily check: Are errors occurring?
348
+ SELECT COUNT(*) as total_errors FROM trigger_error_log;
349
+ SELECT COUNT(*) as errors_today
350
+ FROM trigger_error_log
351
+ WHERE logged_at > NOW() - INTERVAL '1 day';
352
+ ```
353
+
354
+ ### Week 2-4: Pattern Analysis
355
+ ```sql
356
+ -- Identify any recurring issues
357
+ SELECT error_message, COUNT(*) as occurrences
358
+ FROM trigger_error_log
359
+ WHERE logged_at > NOW() - INTERVAL '7 days'
360
+ GROUP BY error_message
361
+ ORDER BY occurrences DESC;
362
+ ```
363
+
364
+ ### Ongoing: Production Monitoring
365
+ - Monitor error rate (alert if > 5/min)
366
+ - Track affected users
367
+ - Monitor trigger execution time
368
+ - Plan scale upgrades if needed
369
+
370
+ ---
371
+
372
+ **Status:** ✅ ENTERPRISE PRODUCTION READY
373
+ **Quality:** Maximum resilience while maintaining performance
374
+ **Ready to Deploy:** YES 🚀
375
+