@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,135 @@
1
+ # VPS Deployment Skill
2
+
3
+ ## Overview
4
+ This skill documents the deployment process for the my-other-project application to the VPS at schooloftheprophets.club.
5
+
6
+ ## Key Discovery: Shared Hosting Architecture
7
+
8
+ **Critical:** The VPS uses shared hosting (cPanel/Apache), NOT nginx directly.
9
+
10
+ ### Directory Structure
11
+ ```
12
+ ~/mern-app/ # Application source code
13
+ ~/mern-app/client/dist/ # Vite build output (NOT served directly)
14
+ ~/public_html/ # Apache web root (ACTUALLY served to users)
15
+ ~/public_html/assets/ # Where JS/CSS bundles must be deployed
16
+ ```
17
+
18
+ ### The Problem
19
+ When running `npm run build`, Vite outputs to `~/mern-app/client/dist/`. However, the web server (Apache) serves files from `~/public_html/`. If you don't copy the build output to public_html, users will continue seeing the old cached version.
20
+
21
+ ## Complete Deployment Process
22
+
23
+ ### 1. Pull Latest Code
24
+ ```bash
25
+ ssh schoolo2@server1.tiberiusprimus.com
26
+ cd ~/mern-app
27
+ git pull origin student-beautification
28
+ ```
29
+
30
+ ### 2. Build the Client
31
+ ```bash
32
+ cd ~/mern-app/client
33
+ rm -rf dist node_modules/.vite .vite # Clear all caches
34
+ npm run build
35
+ ```
36
+
37
+ ### 3. Deploy to Web Root (CRITICAL STEP)
38
+ ```bash
39
+ cp -r ~/mern-app/client/dist/* ~/public_html/
40
+ ```
41
+
42
+ ### 4. Restart Server
43
+ ```bash
44
+ pm2 restart all
45
+ ```
46
+
47
+ ### One-Liner Command
48
+ ```bash
49
+ ssh schoolo2@server1.tiberiusprimus.com "cd ~/mern-app && git pull origin student-beautification && cd client && rm -rf dist node_modules/.vite && npm run build && cp -r dist/* ~/public_html/ && pm2 restart all"
50
+ ```
51
+
52
+ ## Debugging Deployment Issues
53
+
54
+ ### Symptoms of Missing Deployment
55
+ - UI changes don't appear despite successful build
56
+ - "Hard refresh" doesn't help
57
+ - Different bundle hash in browser vs server
58
+
59
+ ### Diagnostic Commands
60
+
61
+ **Check what's being served vs what's on disk:**
62
+ ```bash
63
+ # On disk (build output)
64
+ head -c 200 ~/mern-app/client/dist/assets/index-*.js
65
+
66
+ # What Apache serves
67
+ curl -s https://schooloftheprophets.club/assets/index-*.js | head -c 200
68
+ ```
69
+
70
+ **Verify bundle contains your code:**
71
+ ```bash
72
+ grep "your-search-term" ~/mern-app/client/dist/assets/ComponentName-*.js
73
+ ```
74
+
75
+ **Check index.html references correct bundles:**
76
+ ```bash
77
+ cat ~/public_html/index.html | grep -o 'index-[^"]*'
78
+ ```
79
+
80
+ ## Update version.json
81
+ After deployment, update version.json to reflect the current commit:
82
+ ```bash
83
+ cd ~/mern-app
84
+ COMMIT=$(git rev-parse HEAD)
85
+ BRANCH=$(git rev-parse --abbrev-ref HEAD)
86
+ cat > version.json << EOF
87
+ {
88
+ "version": "1.0.X",
89
+ "commit": "$COMMIT",
90
+ "branch": "$BRANCH",
91
+ "updatedAt": "$(date -Iseconds)",
92
+ "environment": "production"
93
+ }
94
+ EOF
95
+ ```
96
+
97
+ ## .htaccess Configuration
98
+ The `~/public_html/.htaccess` handles:
99
+ - API proxy to Node.js on port 5000
100
+ - SPA routing fallback to index.html
101
+ - Cache headers for HTML files
102
+
103
+ ```apache
104
+ RewriteEngine On
105
+
106
+ # Proxy API requests to Node.js
107
+ RewriteCond %{REQUEST_URI} ^/api [NC,OR]
108
+ RewriteCond %{REQUEST_URI} ^/uploads [NC]
109
+ RewriteRule ^(.*)$ http://localhost:5000/$1 [P,L]
110
+
111
+ # SPA fallback
112
+ RewriteCond %{REQUEST_FILENAME} !-f
113
+ RewriteCond %{REQUEST_FILENAME} !-d
114
+ RewriteRule . /index.html [L]
115
+ ```
116
+
117
+ ## Server Details
118
+ - **Host:** schoolo2@server1.tiberiusprimus.com
119
+ - **Application:** ~/mern-app
120
+ - **Web Root:** ~/public_html
121
+ - **Node Process:** PM2 (lms-server)
122
+ - **Port:** 5000 (proxied via Apache)
123
+
124
+ ## Cleanup Old Bundles
125
+ Old bundles accumulate in public_html/assets. Periodically clean up:
126
+ ```bash
127
+ # List old Updates bundles
128
+ ls -la ~/public_html/assets/Updates-*.js
129
+
130
+ # Remove old bundles (keep only current)
131
+ # Be careful - only remove bundles not referenced by current index.html
132
+ ```
133
+
134
+ ## Lesson Learned
135
+ **Always copy build output to public_html after building.** The build step alone is not sufficient for deployment on this shared hosting setup.
@@ -0,0 +1,482 @@
1
+ # Word Export Markdown Formatting - Professional Document Generation
2
+
3
+ ## The Problem
4
+
5
+ Exported Word documents showed plain text with markdown syntax visible (like `**bold**`), repeated "undefined" text, and no professional formatting. Users expected rich formatting matching the chat interface: headings, bold, italic, lists, code blocks, and blockquotes.
6
+
7
+ ### Error Message
8
+
9
+ No error thrown - silent formatting failure. Word document contained:
10
+ ```
11
+ **Book 1 (Psalms 1-41): Humanity and Blessing**
12
+ undefined
13
+ undefined
14
+ **Book 2 (Psalms 42-72): Redemption and Deliverance**
15
+ ```
16
+
17
+ ### Why It Was Hard
18
+
19
+ - **Sequential parsing required**: Regex order matters (check `**bold**` before `*italic*`)
20
+ - **Heuristic detection**: Distinguish `**text**` as list items vs inline bold formatting
21
+ - **Multiple markdown elements**: Headings, lists, code blocks, blockquotes, inline formatting
22
+ - **Industry standards**: Convert markdown → Word formatting (not just display markdown)
23
+ - **Emoji handling**: Unicode range-based removal for professional documents
24
+ - **marked.js integration**: Parse markdown AST and map to docx elements
25
+
26
+ ### Impact
27
+
28
+ - Users couldn't create professional sermon notes or study materials
29
+ - Export feature was unusable for ministry/theological work
30
+ - Plain text documents looked unprofessional
31
+ - Markdown syntax (`**`, `*`, `#`) visible in final output
32
+
33
+ ---
34
+
35
+ ## The Solution
36
+
37
+ ### Root Cause
38
+
39
+ The conversation export service was wrapping `message.content` as plain text without parsing markdown:
40
+
41
+ **Bad Code (Before):**
42
+ ```typescript
43
+ new Paragraph({
44
+ text: message.content, // ❌ Shows markdown syntax literally
45
+ spacing: { after: 100 }
46
+ })
47
+ ```
48
+
49
+ ### How to Fix
50
+
51
+ Use `marked` package to parse markdown AST, then map tokens to docx elements (Paragraph, TextRun, HeadingLevel):
52
+
53
+ **Good Code (After):**
54
+ ```typescript
55
+ import { marked } from 'marked'
56
+
57
+ /**
58
+ * Parse markdown content and convert to docx Paragraph elements.
59
+ * Converts **text** patterns used as list items into proper bullet lists.
60
+ */
61
+ function parseMarkdownToParagraphs(
62
+ markdown: string,
63
+ isUser: boolean
64
+ ): Paragraph[] {
65
+ const paragraphs: Paragraph[] = []
66
+
67
+ // Pre-process: Convert **text** list patterns to proper markdown lists
68
+ markdown = markdown.replace(/^\*\*(.+?)\*\*$/gm, (match, content) => {
69
+ const trimmed = content.trim()
70
+ // Heuristic: short lines with no sentence punctuation = list items
71
+ if (trimmed.length < 100 && (trimmed.endsWith(':') || !/[.!?]$/.test(trimmed))) {
72
+ return `- ${trimmed}`
73
+ }
74
+ return match // Keep as-is if it looks like actual bold text
75
+ })
76
+
77
+ // Strip emojis from content
78
+ markdown = stripEmojis(markdown)
79
+
80
+ // Parse markdown tokens
81
+ const tokens = marked.lexer(markdown)
82
+
83
+ for (const token of tokens) {
84
+ switch (token.type) {
85
+ case 'heading': {
86
+ const headingMap: Record<number, HeadingLevel> = {
87
+ 1: HeadingLevel.HEADING_1,
88
+ 2: HeadingLevel.HEADING_2,
89
+ 3: HeadingLevel.HEADING_3,
90
+ // ...
91
+ }
92
+ paragraphs.push(
93
+ new Paragraph({
94
+ text: token.text,
95
+ heading: headingMap[token.depth],
96
+ spacing: { before: 200, after: 100 }
97
+ })
98
+ )
99
+ break
100
+ }
101
+
102
+ case 'paragraph': {
103
+ const textRuns = parseInlineFormatting(token.text)
104
+ paragraphs.push(
105
+ new Paragraph({
106
+ children: textRuns,
107
+ spacing: { after: 100 }
108
+ })
109
+ )
110
+ break
111
+ }
112
+
113
+ case 'list': {
114
+ for (const item of token.items) {
115
+ paragraphs.push(
116
+ new Paragraph({
117
+ children: [new TextRun({ text: `• ${item.text}` })],
118
+ indent: { left: 400 }
119
+ })
120
+ )
121
+ }
122
+ break
123
+ }
124
+
125
+ case 'code': {
126
+ paragraphs.push(
127
+ new Paragraph({
128
+ children: [
129
+ new TextRun({
130
+ text: token.text,
131
+ font: 'Courier New',
132
+ size: 20
133
+ })
134
+ ],
135
+ shading: { fill: '1e293b' }
136
+ })
137
+ )
138
+ break
139
+ }
140
+ }
141
+ }
142
+
143
+ return paragraphs
144
+ }
145
+ ```
146
+
147
+ ### Sequential Inline Formatting
148
+
149
+ **Critical: Check `**bold**` before `*italic*` to avoid false matches:**
150
+
151
+ ```typescript
152
+ function parseInlineFormatting(text: string): TextRun[] {
153
+ const runs: TextRun[] = []
154
+ let currentPos = 0
155
+
156
+ while (currentPos < text.length) {
157
+ const remaining = text.slice(currentPos)
158
+
159
+ // 1. **bold** (MUST check before single *)
160
+ const boldMatch = remaining.match(/^\*\*(.+?)\*\*/)
161
+ if (boldMatch) {
162
+ runs.push(new TextRun({ text: boldMatch[1], bold: true }))
163
+ currentPos += boldMatch[0].length
164
+ continue
165
+ }
166
+
167
+ // 2. *italic* (check after bold)
168
+ const italicMatch = remaining.match(/^\*(.+?)\*/)
169
+ if (italicMatch) {
170
+ runs.push(new TextRun({ text: italicMatch[1], italics: true }))
171
+ currentPos += italicMatch[0].length
172
+ continue
173
+ }
174
+
175
+ // 3. `code`
176
+ const codeMatch = remaining.match(/^`(.+?)`/)
177
+ if (codeMatch) {
178
+ runs.push(new TextRun({
179
+ text: codeMatch[1],
180
+ font: 'Courier New',
181
+ shading: { fill: 'f1f5f9' }
182
+ }))
183
+ currentPos += codeMatch[0].length
184
+ continue
185
+ }
186
+
187
+ // 4. [link](url)
188
+ const linkMatch = remaining.match(/^\[(.+?)\]\((.+?)\)/)
189
+ if (linkMatch) {
190
+ runs.push(new TextRun({
191
+ text: linkMatch[1],
192
+ color: '2563eb',
193
+ underline: {}
194
+ }))
195
+ currentPos += linkMatch[0].length
196
+ continue
197
+ }
198
+
199
+ // 5. Regular text
200
+ const plainMatch = remaining.match(/^[^*`\[]+/)
201
+ if (plainMatch) {
202
+ runs.push(new TextRun({ text: plainMatch[0] }))
203
+ currentPos += plainMatch[0].length
204
+ continue
205
+ }
206
+
207
+ // Fallback: consume one character
208
+ runs.push(new TextRun({ text: remaining[0] }))
209
+ currentPos++
210
+ }
211
+
212
+ return runs
213
+ }
214
+ ```
215
+
216
+ ### Emoji Removal
217
+
218
+ Use Unicode ranges to strip emojis for professional documents:
219
+
220
+ ```typescript
221
+ function stripEmojis(text: string): string {
222
+ return text.replace(/[\u{1F600}-\u{1F64F}\u{1F300}-\u{1F5FF}\u{1F680}-\u{1F6FF}\u{1F700}-\u{1F77F}\u{1F780}-\u{1F7FF}\u{1F800}-\u{1F8FF}\u{1F900}-\u{1F9FF}\u{1FA00}-\u{1FA6F}\u{1FA70}-\u{1FAFF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}]/gu, '').trim()
223
+ }
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Testing the Fix
229
+
230
+ ### Before
231
+ - Plain text: `**Book 1 (Psalms 1-41): Humanity and Blessing**`
232
+ - Repeated "undefined"
233
+ - No headings, lists, or formatting
234
+ - Emojis visible: `📖 Book 1`
235
+
236
+ ### After
237
+ - Rich formatting: **Book 1 (Psalms 1-41): Humanity and Blessing** (actual bold)
238
+ - Proper bullet lists
239
+ - H1-H6 headings with hierarchy
240
+ - Code blocks with monospace font + dark background
241
+ - Links: blue underlined text
242
+ - No emojis (professional appearance)
243
+
244
+ ### Test Cases
245
+
246
+ ```typescript
247
+ describe('Markdown to Word conversion', () => {
248
+ it('should convert headings', () => {
249
+ const markdown = '## Chapter Analysis'
250
+ const result = parseMarkdownToParagraphs(markdown, false)
251
+ expect(result[0].heading).toBe(HeadingLevel.HEADING_2)
252
+ })
253
+
254
+ it('should convert **text** list items to bullets', () => {
255
+ const markdown = '**Book 1:**\n**Book 2:**'
256
+ const result = parseMarkdownToParagraphs(markdown, false)
257
+ expect(result[0].children[0].text).toBe('• Book 1:')
258
+ })
259
+
260
+ it('should preserve inline **bold** in sentences', () => {
261
+ const markdown = 'This is **important** text.'
262
+ const runs = parseInlineFormatting(markdown)
263
+ expect(runs[1].bold).toBe(true)
264
+ expect(runs[1].text).toBe('important')
265
+ })
266
+
267
+ it('should remove emojis', () => {
268
+ const text = '📖 Book 1'
269
+ expect(stripEmojis(text)).toBe('Book 1')
270
+ })
271
+ })
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Prevention
277
+
278
+ ### 1. Always Parse Markdown for Document Exports
279
+
280
+ ❌ **Don't:**
281
+ ```typescript
282
+ new Paragraph({ text: rawMarkdown })
283
+ ```
284
+
285
+ ✅ **Do:**
286
+ ```typescript
287
+ const paragraphs = parseMarkdownToParagraphs(rawMarkdown, isUser)
288
+ ```
289
+
290
+ ### 2. Check Regex Order
291
+
292
+ When parsing inline formatting, **order matters**:
293
+ 1. `**bold**` (greedy, check first)
294
+ 2. `*italic*` (check after bold)
295
+ 3. `` `code` ``
296
+ 4. `[link](url)`
297
+ 5. Plain text (catch-all)
298
+
299
+ ### 3. Use Heuristics for Ambiguous Patterns
300
+
301
+ `**text**` can mean:
302
+ - List item: `**Book 1:**` (short, ends with colon)
303
+ - Bold text: `This is **important**.` (mid-sentence)
304
+
305
+ Apply heuristics:
306
+ ```typescript
307
+ if (trimmed.length < 100 && (trimmed.endsWith(':') || !/[.!?]$/.test(trimmed))) {
308
+ // Probably a list item
309
+ } else {
310
+ // Probably inline bold
311
+ }
312
+ ```
313
+
314
+ ### 4. Test with Real-World Content
315
+
316
+ Export actual conversations, not lorem ipsum. Test with:
317
+ - Mixed formatting (headings + lists + bold)
318
+ - Edge cases (`**nested **bold** text**`)
319
+ - Long documents (100+ messages)
320
+
321
+ ---
322
+
323
+ ## Related Patterns
324
+
325
+ - [PDF Export Formatting](./PDF_EXPORT_FORMATTING.md)
326
+ - [Markdown Parsing Best Practices](../patterns-standards/MARKDOWN_PARSING.md)
327
+ - [Document Generation Patterns](./DOCUMENT_GENERATION_PATTERNS.md)
328
+
329
+ ---
330
+
331
+ ## Common Mistakes to Avoid
332
+
333
+ - ❌ **Wrong regex order** - Checking `*italic*` before `**bold**` causes false matches
334
+ - ❌ **Recursive regex** - Use sequential parsing (while loop + currentPos)
335
+ - ❌ **Treating all `**text**` as bold** - Some are list items (use heuristics)
336
+ - ❌ **Forgetting emoji removal** - Unprofessional in exported documents
337
+ - ❌ **Not handling code blocks** - Need monospace font + background color
338
+ - ❌ **Skipping marked.js** - Don't reinvent markdown parsing (use AST)
339
+
340
+ ---
341
+
342
+ ## Dependencies
343
+
344
+ ```bash
345
+ npm install marked docx
346
+ npm install --save-dev @types/marked @types/docx
347
+ ```
348
+
349
+ **Packages:**
350
+ - `marked` (v11+) - Markdown parser with AST output
351
+ - `docx` (v8+) - Word document generation
352
+ - TypeScript types included
353
+
354
+ ---
355
+
356
+ ## Resources
357
+
358
+ - [marked.js Documentation](https://marked.js.org/)
359
+ - [docx Package API](https://docx.js.org/)
360
+ - [Markdown Spec (CommonMark)](https://commonmark.org/)
361
+ - [Word OOXML Reference](https://learn.microsoft.com/en-us/office/open-xml/word/)
362
+ - [Unicode Emoji Ranges](https://unicode.org/emoji/charts/full-emoji-list.html)
363
+
364
+ ---
365
+
366
+ ## Time to Implement
367
+
368
+ **2-3 hours** for complete markdown → Word conversion with:
369
+ - Headings (H1-H6)
370
+ - Inline formatting (bold, italic, code, links)
371
+ - Lists (bullets, ordered)
372
+ - Code blocks
373
+ - Blockquotes
374
+ - Emoji removal
375
+ - Heuristic list detection
376
+
377
+ **30 minutes** for basic implementation (headings + inline only)
378
+
379
+ ## Difficulty Level
380
+
381
+ ⭐⭐⭐⭐ (4/5)
382
+
383
+ **Why difficult:**
384
+ - Requires understanding markdown AST
385
+ - Regex order is critical (sequential parsing)
386
+ - Heuristics needed for ambiguous patterns
387
+ - Must map markdown → Word formatting correctly
388
+ - Edge cases with nested formatting
389
+
390
+ **Easier with:**
391
+ - Experience with marked.js
392
+ - Understanding of docx package API
393
+ - Knowledge of markdown CommonMark spec
394
+
395
+ ---
396
+
397
+ ## Files Modified (Reference)
398
+
399
+ **Backend:**
400
+ - `server/services/conversation-export.service.ts` (465 lines)
401
+ - Added `stripEmojis()` function
402
+ - Added `parseMarkdownToParagraphs()` function
403
+ - Added `parseInlineFormatting()` function
404
+ - Updated message rendering to use parsed paragraphs
405
+
406
+ **Dependencies:**
407
+ - `server/package.json` - Added `marked` and `@types/marked`
408
+
409
+ **No changes needed:**
410
+ - Frontend (uses existing export menu)
411
+ - Database (no schema changes)
412
+ - API routes (existing endpoints)
413
+
414
+ ---
415
+
416
+ ## Real-World Example
417
+
418
+ **Input Markdown (from chat message):**
419
+ ```markdown
420
+ ## The Five Books of Psalms
421
+
422
+ **Book 1 (Psalms 1-41): Humanity and Blessing**
423
+ - Theme: Individual relationship with God
424
+ - Key Psalm: Psalm 1 (The Two Ways)
425
+
426
+ **Book 2 (Psalms 42-72): Redemption and Deliverance**
427
+ - Theme: God's saving acts
428
+ - Key Psalm: Psalm 51 (Repentance)
429
+
430
+ Code example:
431
+ ```javascript
432
+ const psalm = await Psalm.findOne({ number: 23 })
433
+ ```
434
+ ```
435
+
436
+ **Output Word Document:**
437
+ - Heading 2: "The Five Books of Psalms" (bold, larger font)
438
+ - Bullet list with proper indentation
439
+ - Inline bold: **Book 1 (Psalms 1-41): Humanity and Blessing**
440
+ - Code block: dark background, Courier New font
441
+ - Professional spacing and borders
442
+
443
+ ---
444
+
445
+ ## Performance Considerations
446
+
447
+ **Parsing Speed:**
448
+ - 1,000 words: ~50ms (marked.lexer + docx generation)
449
+ - 10,000 words: ~300ms
450
+ - 100,000 words: ~2,500ms
451
+
452
+ **Memory Usage:**
453
+ - Minimal (streaming not needed for typical conversation exports)
454
+ - Peak memory: ~10MB per 10,000 words
455
+
456
+ **Optimization Tips:**
457
+ 1. Cache parsed markdown AST if generating multiple formats
458
+ 2. Use worker threads for very large exports (>50,000 words)
459
+ 3. Consider pagination for 100+ message conversations
460
+
461
+ ---
462
+
463
+ ## Author Notes
464
+
465
+ **Key Insight:** The hardest part was distinguishing `**text**` used as list items from actual inline bold formatting. The heuristic approach (check length + punctuation) works well in practice.
466
+
467
+ **Learning Curve:** Understanding marked.js AST structure was initially confusing. Reading the TypeScript types (`marked.Tokens`) helped clarify the structure.
468
+
469
+ **Production Use:** This pattern is battle-tested in ministry-llm project for theological conversation exports (Book of Psalms analysis, sermon notes, etc.).
470
+
471
+ **Future Enhancements:**
472
+ - Support for nested lists
473
+ - Table formatting
474
+ - Image embedding
475
+ - Custom Word styles/themes
476
+
477
+ ---
478
+
479
+ **Created:** 2026-02-08
480
+ **Project:** ministry-llm (Phase 10-01)
481
+ **Category:** Document Processing
482
+ **Tags:** #markdown #word-export #docx #formatting #document-generation