@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,649 @@
1
+ # MDX Component Content
2
+
3
+ > Embed interactive React components (quizzes, video players, code playgrounds) directly inside lesson Markdown text
4
+ ---
5
+
6
+ ## Overview
7
+
8
+ MDX = Markdown + JSX. It lets you write regular Markdown (headings, paragraphs, lists) and embed React components inline. A lesson can have text, then a quiz, then more text, then a video player — all in one content file.
9
+
10
+ **What this looks like for a teacher:**
11
+
12
+ ```mdx
13
+ # The Lord's Prayer
14
+
15
+ In Matthew 6:9-13, Jesus taught his disciples how to pray.
16
+
17
+ <BibleVerse reference="Matthew 6:9-13" />
18
+
19
+ ## Understanding Each Line
20
+
21
+ Let's break down the prayer line by line.
22
+
23
+ <VideoPlayer url="https://youtube.com/watch?v=..." />
24
+
25
+ ### "Our Father in heaven"
26
+
27
+ This opening acknowledges God as both personal ("our") and sovereign ("in heaven").
28
+
29
+ <Quiz
30
+ question="What does 'Our Father' tell us about our relationship with God?"
31
+ options={[
32
+ "God is distant and unapproachable",
33
+ "God is a personal, loving parent",
34
+ "God only cares about certain people"
35
+ ]}
36
+ correct={1}
37
+ explanation="By calling God 'Our Father,' Jesus shows that God is personal and relational."
38
+ />
39
+
40
+ ## Reflection
41
+
42
+ <JournalPrompt prompt="Write a short prayer using the pattern Jesus taught." />
43
+ ```
44
+
45
+ **What the student sees:** A beautifully rendered lesson with interactive components inline.
46
+
47
+ ---
48
+
49
+ ## Architecture
50
+
51
+ ```
52
+ ┌──────────────────────────────────────────┐
53
+ │ MDX Content (stored in DB as text) │
54
+ │ │
55
+ │ # Title │
56
+ │ Regular markdown text... │
57
+ │ <Quiz question="..." /> │
58
+ │ More text... │
59
+ │ <VideoPlayer url="..." /> │
60
+ └─────────────────┬────────────────────────┘
61
+
62
+ ┌─────────▼─────────┐
63
+ │ MDX Compiler │
64
+ │ (mdx-js/mdx) │
65
+ │ │
66
+ │ Markdown → React │
67
+ └─────────┬─────────┘
68
+
69
+ ┌─────────▼─────────┐
70
+ │ Component Map │
71
+ │ │
72
+ │ Quiz → <Quiz/> │
73
+ │ Video → <Video/> │
74
+ │ Bible → <Bible/> │
75
+ └─────────┬─────────┘
76
+
77
+ ┌─────────▼─────────┐
78
+ │ Rendered Page │
79
+ │ │
80
+ │ Text + interactive│
81
+ │ components mixed │
82
+ └───────────────────┘
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Setup: Install MDX Dependencies
88
+
89
+ ```bash
90
+ npm install @mdx-js/mdx @mdx-js/react
91
+ # or
92
+ bun add @mdx-js/mdx @mdx-js/react
93
+ ```
94
+
95
+ ---
96
+
97
+ ## MDX Renderer Component
98
+
99
+ ```jsx
100
+ // components/cms/MDXRenderer.jsx
101
+ import { useState, useEffect, useMemo } from 'react';
102
+ import * as runtime from 'react/jsx-runtime';
103
+ import { evaluate } from '@mdx-js/mdx';
104
+ import { MDXProvider } from '@mdx-js/react';
105
+ import { mdxComponents } from './mdx-components';
106
+
107
+ /**
108
+ * Renders MDX content string as React components.
109
+ *
110
+ * Props:
111
+ * content — MDX string (Markdown + JSX)
112
+ * components — optional additional components to make available
113
+ */
114
+ export default function MDXRenderer({ content, components = {} }) {
115
+ const [MDXContent, setMDXContent] = useState(null);
116
+ const [error, setError] = useState(null);
117
+
118
+ const allComponents = useMemo(
119
+ () => ({ ...mdxComponents, ...components }),
120
+ [components]
121
+ );
122
+
123
+ useEffect(() => {
124
+ if (!content) return;
125
+
126
+ const compile = async () => {
127
+ try {
128
+ const { default: Content } = await evaluate(content, {
129
+ ...runtime,
130
+ useMDXComponents: () => allComponents,
131
+ });
132
+ setMDXContent(() => Content);
133
+ setError(null);
134
+ } catch (err) {
135
+ console.error('MDX compilation error:', err);
136
+ setError(err.message);
137
+ }
138
+ };
139
+
140
+ compile();
141
+ }, [content, allComponents]);
142
+
143
+ if (error) {
144
+ return (
145
+ <div style={{
146
+ background: '#fef2f2', border: '1px solid #fecaca',
147
+ padding: '12px', borderRadius: '8px', color: '#991b1b',
148
+ }}>
149
+ <strong>Content rendering error:</strong>
150
+ <pre style={{ fontSize: '13px', marginTop: '8px' }}>{error}</pre>
151
+ </div>
152
+ );
153
+ }
154
+
155
+ if (!MDXContent) return <div>Loading content...</div>;
156
+
157
+ return (
158
+ <MDXProvider components={allComponents}>
159
+ <div className="mdx-content">
160
+ <MDXContent />
161
+ </div>
162
+ </MDXProvider>
163
+ );
164
+ }
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Component Registry
170
+
171
+ ```jsx
172
+ // components/cms/mdx-components.jsx
173
+ // Register all components available in MDX content
174
+
175
+ import Quiz from '../interactive/Quiz';
176
+ import VideoPlayer from '../interactive/VideoPlayer';
177
+ import BibleVerse from '../interactive/BibleVerse';
178
+ import JournalPrompt from '../interactive/JournalPrompt';
179
+ import Callout from '../interactive/Callout';
180
+ import Tabs from '../interactive/Tabs';
181
+ import Accordion from '../interactive/Accordion';
182
+ import CodeBlock from '../interactive/CodeBlock';
183
+ import ImageGallery from '../interactive/ImageGallery';
184
+ import PrayerTimer from '../interactive/PrayerTimer';
185
+
186
+ /**
187
+ * Component registry — maps component names to React components.
188
+ * These names are what teachers use in their MDX content:
189
+ * <Quiz ... />
190
+ * <VideoPlayer ... />
191
+ * <BibleVerse ... />
192
+ *
193
+ * To add a new component:
194
+ * 1. Create it in components/interactive/
195
+ * 2. Import it here
196
+ * 3. Add to this map
197
+ * That's it — teachers can immediately use it in lessons.
198
+ */
199
+ export const mdxComponents = {
200
+ // Interactive learning
201
+ Quiz,
202
+ VideoPlayer,
203
+ CodeBlock,
204
+
205
+ // Ministry-specific
206
+ BibleVerse,
207
+ JournalPrompt,
208
+ PrayerTimer,
209
+
210
+ // Layout helpers
211
+ Callout,
212
+ Tabs,
213
+ Accordion,
214
+ ImageGallery,
215
+
216
+ // Override default HTML elements for consistent styling
217
+ h1: (props) => <h1 style={{ fontSize: '2rem', marginTop: '2rem', color: '#1e293b' }} {...props} />,
218
+ h2: (props) => <h2 style={{ fontSize: '1.5rem', marginTop: '1.5rem', color: '#334155' }} {...props} />,
219
+ h3: (props) => <h3 style={{ fontSize: '1.25rem', marginTop: '1.25rem', color: '#475569' }} {...props} />,
220
+ p: (props) => <p style={{ lineHeight: '1.75', marginBottom: '1rem' }} {...props} />,
221
+ blockquote: (props) => (
222
+ <blockquote
223
+ style={{
224
+ borderLeft: '4px solid #6366f1',
225
+ paddingLeft: '16px',
226
+ margin: '1.5rem 0',
227
+ color: '#4b5563',
228
+ fontStyle: 'italic',
229
+ }}
230
+ {...props}
231
+ />
232
+ ),
233
+ img: (props) => (
234
+ <img
235
+ style={{ maxWidth: '100%', borderRadius: '8px', margin: '1rem 0' }}
236
+ loading="lazy"
237
+ {...props}
238
+ />
239
+ ),
240
+ };
241
+ ```
242
+
243
+ ---
244
+
245
+ ## Example Interactive Components
246
+
247
+ ### Quiz Component
248
+
249
+ ```jsx
250
+ // components/interactive/Quiz.jsx
251
+ import { useState } from 'react';
252
+
253
+ export default function Quiz({ question, options, correct, explanation }) {
254
+ const [selected, setSelected] = useState(null);
255
+ const [revealed, setRevealed] = useState(false);
256
+
257
+ const handleSelect = (index) => {
258
+ setSelected(index);
259
+ setRevealed(true);
260
+ };
261
+
262
+ return (
263
+ <div style={{
264
+ background: '#f8fafc', border: '1px solid #e2e8f0',
265
+ borderRadius: '12px', padding: '20px', margin: '24px 0',
266
+ }}>
267
+ <div style={{ fontWeight: '600', fontSize: '16px', marginBottom: '12px' }}>
268
+ {question}
269
+ </div>
270
+
271
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>
272
+ {options.map((opt, i) => {
273
+ let bg = 'white';
274
+ let border = '1px solid #d1d5db';
275
+ if (revealed && i === correct) { bg = '#dcfce7'; border = '1px solid #22c55e'; }
276
+ else if (revealed && i === selected && i !== correct) { bg = '#fef2f2'; border = '1px solid #ef4444'; }
277
+
278
+ return (
279
+ <button
280
+ key={i}
281
+ onClick={() => !revealed && handleSelect(i)}
282
+ disabled={revealed}
283
+ style={{
284
+ padding: '12px 16px', background: bg, border,
285
+ borderRadius: '8px', textAlign: 'left',
286
+ cursor: revealed ? 'default' : 'pointer',
287
+ fontSize: '14px', transition: 'all 0.2s',
288
+ }}
289
+ >
290
+ {opt}
291
+ </button>
292
+ );
293
+ })}
294
+ </div>
295
+
296
+ {revealed && explanation && (
297
+ <div style={{
298
+ marginTop: '12px', padding: '12px', background: '#eff6ff',
299
+ borderRadius: '8px', fontSize: '14px', color: '#1e40af',
300
+ }}>
301
+ {explanation}
302
+ </div>
303
+ )}
304
+ </div>
305
+ );
306
+ }
307
+ ```
308
+
309
+ ### Video Player Component
310
+
311
+ ```jsx
312
+ // components/interactive/VideoPlayer.jsx
313
+ export default function VideoPlayer({ url, title = 'Video' }) {
314
+ // Extract YouTube video ID
315
+ const getYouTubeId = (url) => {
316
+ const match = url.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9_-]+)/);
317
+ return match ? match[1] : null;
318
+ };
319
+
320
+ const youtubeId = getYouTubeId(url);
321
+
322
+ if (youtubeId) {
323
+ return (
324
+ <div style={{ margin: '24px 0', borderRadius: '12px', overflow: 'hidden' }}>
325
+ <div style={{ position: 'relative', paddingBottom: '56.25%', height: 0 }}>
326
+ <iframe
327
+ src={`https://www.youtube-nocookie.com/embed/${youtubeId}`}
328
+ title={title}
329
+ style={{
330
+ position: 'absolute', top: 0, left: 0,
331
+ width: '100%', height: '100%', border: 'none',
332
+ }}
333
+ allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
334
+ allowFullScreen
335
+ />
336
+ </div>
337
+ </div>
338
+ );
339
+ }
340
+
341
+ // Fallback: HTML5 video
342
+ return (
343
+ <div style={{ margin: '24px 0' }}>
344
+ <video
345
+ src={url}
346
+ controls
347
+ style={{ width: '100%', borderRadius: '12px' }}
348
+ >
349
+ Your browser does not support video playback.
350
+ </video>
351
+ </div>
352
+ );
353
+ }
354
+ ```
355
+
356
+ ### Bible Verse Component
357
+
358
+ ```jsx
359
+ // components/interactive/BibleVerse.jsx
360
+ import { useState, useEffect } from 'react';
361
+
362
+ export default function BibleVerse({ reference, version = 'KJV' }) {
363
+ const [text, setText] = useState(null);
364
+ const [loading, setLoading] = useState(true);
365
+
366
+ useEffect(() => {
367
+ // Fetch from your own API or a public Bible API
368
+ fetch(`/api/bible/verse?ref=${encodeURIComponent(reference)}&version=${version}`)
369
+ .then((r) => r.json())
370
+ .then((data) => setText(data.text))
371
+ .catch(() => setText(`[${reference} — ${version}]`))
372
+ .finally(() => setLoading(false));
373
+ }, [reference, version]);
374
+
375
+ return (
376
+ <blockquote style={{
377
+ background: '#fefce8', borderLeft: '4px solid #eab308',
378
+ padding: '16px 20px', margin: '24px 0', borderRadius: '0 8px 8px 0',
379
+ }}>
380
+ {loading ? (
381
+ <em>Loading verse...</em>
382
+ ) : (
383
+ <>
384
+ <p style={{ fontStyle: 'italic', lineHeight: '1.8', margin: '0 0 8px' }}>
385
+ {text}
386
+ </p>
387
+ <cite style={{ color: '#92400e', fontSize: '14px', fontWeight: '600' }}>
388
+ — {reference} ({version})
389
+ </cite>
390
+ </>
391
+ )}
392
+ </blockquote>
393
+ );
394
+ }
395
+ ```
396
+
397
+ ### Journal Prompt Component
398
+
399
+ ```jsx
400
+ // components/interactive/JournalPrompt.jsx
401
+ import { useState } from 'react';
402
+
403
+ export default function JournalPrompt({ prompt }) {
404
+ const [response, setResponse] = useState('');
405
+ const [saved, setSaved] = useState(false);
406
+
407
+ const handleSave = async () => {
408
+ try {
409
+ await fetch('/api/journal', {
410
+ method: 'POST',
411
+ headers: { 'Content-Type': 'application/json' },
412
+ body: JSON.stringify({ prompt, response }),
413
+ });
414
+ setSaved(true);
415
+ setTimeout(() => setSaved(false), 3000);
416
+ } catch (err) {
417
+ console.error('Failed to save journal entry:', err);
418
+ }
419
+ };
420
+
421
+ return (
422
+ <div style={{
423
+ background: '#faf5ff', border: '1px solid #d8b4fe',
424
+ borderRadius: '12px', padding: '20px', margin: '24px 0',
425
+ }}>
426
+ <div style={{ fontWeight: '600', color: '#7c3aed', marginBottom: '8px' }}>
427
+ Journal Prompt
428
+ </div>
429
+ <p style={{ marginBottom: '12px' }}>{prompt}</p>
430
+ <textarea
431
+ value={response}
432
+ onChange={(e) => setResponse(e.target.value)}
433
+ rows={4}
434
+ placeholder="Write your reflection here..."
435
+ style={{
436
+ width: '100%', padding: '12px', border: '1px solid #d8b4fe',
437
+ borderRadius: '8px', resize: 'vertical', fontFamily: 'inherit',
438
+ fontSize: '14px', boxSizing: 'border-box',
439
+ }}
440
+ />
441
+ <div style={{ display: 'flex', gap: '8px', marginTop: '8px', alignItems: 'center' }}>
442
+ <button
443
+ onClick={handleSave}
444
+ disabled={!response.trim()}
445
+ style={{
446
+ background: '#7c3aed', color: 'white', border: 'none',
447
+ padding: '8px 20px', borderRadius: '6px', cursor: 'pointer',
448
+ }}
449
+ >
450
+ Save to Journal
451
+ </button>
452
+ {saved && <span style={{ color: '#22c55e', fontSize: '14px' }}>Saved!</span>}
453
+ </div>
454
+ </div>
455
+ );
456
+ }
457
+ ```
458
+
459
+ ### Callout Component
460
+
461
+ ```jsx
462
+ // components/interactive/Callout.jsx
463
+ export default function Callout({ type = 'info', title, children }) {
464
+ const styles = {
465
+ info: { bg: '#eff6ff', border: '#3b82f6', icon: 'i', titleColor: '#1e40af' },
466
+ warning: { bg: '#fffbeb', border: '#f59e0b', icon: '!', titleColor: '#92400e' },
467
+ success: { bg: '#f0fdf4', border: '#22c55e', icon: '✓', titleColor: '#166534' },
468
+ tip: { bg: '#f5f3ff', border: '#8b5cf6', icon: '★', titleColor: '#5b21b6' },
469
+ };
470
+
471
+ const s = styles[type] || styles.info;
472
+
473
+ return (
474
+ <div style={{
475
+ background: s.bg, borderLeft: `4px solid ${s.border}`,
476
+ padding: '16px 20px', margin: '24px 0', borderRadius: '0 8px 8px 0',
477
+ }}>
478
+ {title && (
479
+ <div style={{ fontWeight: '700', color: s.titleColor, marginBottom: '4px' }}>
480
+ {s.icon} {title}
481
+ </div>
482
+ )}
483
+ <div style={{ lineHeight: '1.6' }}>{children}</div>
484
+ </div>
485
+ );
486
+ }
487
+ ```
488
+
489
+ ---
490
+
491
+ ## Using MDX in a Lesson Page
492
+
493
+ ```jsx
494
+ // pages/LessonView.jsx
495
+ import MDXRenderer from '../components/cms/MDXRenderer';
496
+ import { useParams } from 'react-router-dom';
497
+ import { useState, useEffect } from 'react';
498
+
499
+ export default function LessonView() {
500
+ const { id } = useParams();
501
+ const [lesson, setLesson] = useState(null);
502
+
503
+ useEffect(() => {
504
+ fetch(`/api/lessons/${id}`)
505
+ .then((r) => r.json())
506
+ .then(setLesson);
507
+ }, [id]);
508
+
509
+ if (!lesson) return <div>Loading...</div>;
510
+
511
+ return (
512
+ <article style={{ maxWidth: '800px', margin: '40px auto', padding: '0 20px' }}>
513
+ <h1>{lesson.title}</h1>
514
+ {lesson.cover_image && (
515
+ <img
516
+ src={lesson.cover_image}
517
+ alt={lesson.title}
518
+ style={{ width: '100%', borderRadius: '12px', marginBottom: '24px' }}
519
+ />
520
+ )}
521
+
522
+ {/* Render the lesson body as MDX */}
523
+ <MDXRenderer content={lesson.body} />
524
+ </article>
525
+ );
526
+ }
527
+ ```
528
+
529
+ ---
530
+
531
+ ## Teacher: MDX Content Guide
532
+
533
+ Provide this reference to teachers who create lessons:
534
+
535
+ ```
536
+ AVAILABLE COMPONENTS
537
+ ====================
538
+
539
+ <Quiz question="..." options={["A", "B", "C"]} correct={0} explanation="..." />
540
+ → Interactive multiple-choice quiz
541
+
542
+ <VideoPlayer url="https://youtube.com/watch?v=..." />
543
+ → Embedded video player (YouTube or direct URL)
544
+
545
+ <BibleVerse reference="John 3:16" version="KJV" />
546
+ → Auto-loaded Bible verse with citation
547
+
548
+ <JournalPrompt prompt="What did you learn today?" />
549
+ → Text area that saves to student's journal
550
+
551
+ <Callout type="info" title="Did you know?">
552
+ Content here...
553
+ </Callout>
554
+ → Highlighted callout box (info, warning, success, tip)
555
+
556
+ <Tabs labels={["Tab 1", "Tab 2"]}>
557
+ Content for tab 1
558
+
559
+ ---
560
+
561
+ Content for tab 2
562
+ </Tabs>
563
+ → Tabbed content sections
564
+
565
+ <PrayerTimer minutes={5} />
566
+ → Countdown timer for prayer/meditation exercises
567
+
568
+ <ImageGallery images={["/img/1.jpg", "/img/2.jpg"]} />
569
+ → Scrollable image gallery
570
+ WRITING TIPS
571
+ ============
572
+
573
+ - Regular text uses Markdown: **bold**, *italic*, [links](url)
574
+ - Headers: # H1, ## H2, ### H3
575
+ - Lists: - bullet or 1. numbered
576
+ - Components go on their own line with a blank line before and after
577
+ - Everything between <Component> and </Component> is content (for Callout, Tabs, etc.)
578
+ ```
579
+
580
+ ---
581
+
582
+ ## Server-Side MDX Validation (Optional)
583
+
584
+ Validate MDX content before saving to catch syntax errors early:
585
+
586
+ ```js
587
+ // server/middleware/validateMDX.js
588
+ const { compile } = require('@mdx-js/mdx');
589
+
590
+ async function validateMDX(req, res, next) {
591
+ if (req.body.body && req.body.content_type === 'mdx') {
592
+ try {
593
+ await compile(req.body.body, { outputFormat: 'function-body' });
594
+ next();
595
+ } catch (err) {
596
+ return res.status(400).json({
597
+ error: 'Invalid MDX content',
598
+ details: err.message,
599
+ line: err.line,
600
+ column: err.column,
601
+ });
602
+ }
603
+ } else {
604
+ next();
605
+ }
606
+ }
607
+
608
+ module.exports = validateMDX;
609
+ ```
610
+
611
+ ---
612
+
613
+ ## Integration With Existing Skills
614
+
615
+ | Skill | How It Connects |
616
+ |-------|----------------|
617
+ | `inline-visual-editing.md` | MDX body becomes the richtext editable region |
618
+ | `schema-driven-form-generator.md` | Add `mdx` as a field type in the schema |
619
+ | `tiptap-minimal-setup.md` | Use TipTap for the editing experience, MDX for the rendering |
620
+ | `content-branch-preview.md` | Preview drafted MDX content before publishing |
621
+ | `media-manager-abstraction.md` | Images referenced in MDX are managed by the media service |
622
+ | `transcription-pipeline-selector.md` | Generate lesson text from audio, then enhance with MDX components |
623
+
624
+ ---
625
+
626
+ ## Adding New Components
627
+
628
+ To make a new component available in lessons:
629
+
630
+ 1. Create the component in `components/interactive/`
631
+ 2. Import and add to `mdx-components.jsx` registry
632
+ 3. Add to the Teacher Guide reference
633
+ 4. Done — teachers can immediately use `<NewComponent />` in any lesson
634
+
635
+ No database changes. No API changes. No deployment needed beyond the code update.
636
+
637
+ ---
638
+
639
+ ## When to Use MDX vs. Plain HTML
640
+
641
+ **Use MDX when:**
642
+ - Content needs interactive elements (quizzes, timers, video)
643
+ - Teachers create lessons with structured learning components
644
+ - Content is educational/instructional
645
+
646
+ **Use plain HTML/rich text when:**
647
+ - Content is simple text + images (announcements, blog posts)
648
+ - No interactive elements needed
649
+ - Content creators are less technical