@thierrynakoa/fire-flow 12.2.2 → 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 (501) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -690
  4. package/TROUBLESHOOTING.md +264 -367
  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-verify-uat.md +9 -177
  52. package/commands/fire-vuln-scan.md +492 -493
  53. package/hooks/run-hook.sh +8 -8
  54. package/hooks/run-session-end.sh +7 -7
  55. package/hooks/session-end.sh +90 -90
  56. package/hooks/session-start.sh +1 -1
  57. package/package.json +4 -25
  58. package/plugin.json +7 -7
  59. package/references/autonomy-levels.md +235 -0
  60. package/references/behavioral-directives.md +95 -3
  61. package/references/blocker-tracking.md +1 -1
  62. package/references/circuit-breaker.md +93 -2
  63. package/references/context-engineering.md +227 -9
  64. package/references/honesty-protocols.md +70 -1
  65. package/references/issue-to-pr-pipeline.md +149 -150
  66. package/references/metrics-and-trends.md +1 -2
  67. package/references/research-improvements.md +4 -108
  68. package/references/sdlc-mapping.md +73 -0
  69. package/references/state-machine.md +151 -0
  70. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  71. package/skills-library/SKILLS-INDEX.md +57 -558
  72. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  73. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  74. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  75. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  76. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  77. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  78. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  79. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  80. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  81. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  82. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  83. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  84. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  85. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  86. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  87. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  88. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  89. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  90. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  91. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  92. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  93. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  94. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  95. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  96. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  97. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  98. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  99. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  100. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  101. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  102. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  103. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  104. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  105. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  106. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  107. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  108. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  109. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  110. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  111. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  112. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  113. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  114. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  115. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  116. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  117. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  118. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  119. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  120. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  121. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  122. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  123. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  124. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  125. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  126. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  127. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  128. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  129. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  130. package/skills-library/_quarantine/README.md +30 -0
  131. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  132. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  133. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  134. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  135. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  136. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  137. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  138. package/skills-library/appointment-scheduler-design.md +423 -0
  139. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  140. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  141. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  142. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  143. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  144. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  145. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  146. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  151. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  152. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  153. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  154. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  155. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  156. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  157. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  158. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  159. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  160. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  161. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  162. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  163. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  164. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  165. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  166. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  167. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  168. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  169. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  170. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  171. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  172. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  173. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  174. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  175. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  176. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  177. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  178. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  179. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  180. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  182. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  183. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  184. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  185. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  186. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  187. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  188. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  189. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  190. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  191. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  192. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  193. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  194. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  195. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  196. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  197. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  198. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  199. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  200. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  201. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  202. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  203. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  204. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  205. package/skills-library/database-solutions/normalization-validator.md +778 -0
  206. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  207. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  208. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  209. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  210. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  211. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  212. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  213. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  215. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  216. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  217. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  218. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  219. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  220. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  221. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  222. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  223. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  224. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  225. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  226. package/skills-library/deployment-security/SECURITY.md +41 -0
  227. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  228. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  229. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  230. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  231. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  232. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  233. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  234. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  235. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  236. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  237. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  238. package/skills-library/deployment-security/vps-deployment.md +135 -0
  239. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  240. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  241. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  242. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  243. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  244. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  245. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  246. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  247. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  248. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  249. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  250. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  251. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  252. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  253. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  254. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  255. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  256. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  257. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  258. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  259. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  260. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  261. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  262. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  263. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  264. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  265. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  266. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  267. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  268. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  272. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  273. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  274. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  275. package/skills-library/excalidraw-diagrams/README.md +178 -0
  276. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  277. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  278. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  279. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  280. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  281. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  282. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  283. package/skills-library/infrastructure/observability-designer.md +264 -0
  284. package/skills-library/infrastructure/performance-profiler.md +621 -0
  285. package/skills-library/installer-wizard-patterns.md +249 -0
  286. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  287. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  288. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  289. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  290. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  291. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  293. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  294. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  295. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  297. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  299. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  300. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  301. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  302. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  303. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  304. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  305. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  306. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  307. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  308. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  313. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  314. package/skills-library/marketing/campaign-analytics.md +97 -0
  315. package/skills-library/marketing/content-creator.md +105 -0
  316. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  317. package/skills-library/marketing/social-media-analyzer.md +81 -0
  318. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  319. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  320. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  321. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  322. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  323. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  324. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  325. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  326. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  327. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  328. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  329. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  330. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  331. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  332. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  333. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  334. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  335. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  336. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  337. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  338. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  339. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  340. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  341. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  342. package/skills-library/parallel-debug/SKILL.md +60 -0
  343. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  344. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  345. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  346. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  347. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  348. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  349. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  350. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  351. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  352. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  353. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  354. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  355. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  356. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  357. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  358. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  359. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  360. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  361. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  362. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  363. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  364. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  365. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  366. package/skills-library/security/admin-deletion-safety.md +396 -0
  367. package/skills-library/security/application-vuln-patterns.md +477 -0
  368. package/skills-library/security/env-secrets-manager.md +686 -0
  369. package/skills-library/security/secure-ai-application-templates.md +347 -0
  370. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  371. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  372. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  373. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  374. package/skills-library/system-context/SKILL.md +40 -0
  375. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  376. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  377. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  378. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  379. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  380. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  381. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  382. package/skills-library/toolbox/SKILL.md +84 -0
  383. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  384. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  385. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  386. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  387. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  388. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  389. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  390. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  391. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  392. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  393. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  406. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  407. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  408. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  409. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  410. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  411. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  412. package/skills-library/wordpress-style-theme-components.md +1526 -0
  413. package/templates/ASSUMPTIONS.md +1 -1
  414. package/templates/DECISION_LOG.md +0 -1
  415. package/templates/phase-prompt.md +1 -1
  416. package/templates/phoenix-comparison.md +6 -6
  417. package/templates/skill-api-integration.md +106 -0
  418. package/templates/skill-architecture-pattern.md +92 -0
  419. package/templates/skill-debug-pattern.md +98 -0
  420. package/templates/skill-devops-recipe.md +107 -0
  421. package/templates/skill-general.md +65 -0
  422. package/templates/skill-ui-component.md +113 -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/browser-use-expert.md +0 -210
  484. package/skills-library/specialists/quality/code-documenter.md +0 -51
  485. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  486. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  487. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  488. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  489. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  490. package/skills-library/specialists/quality/spec-miner.md +0 -56
  491. package/skills-library/specialists/quality/test-master.md +0 -65
  492. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  493. package/skills-library/specialists/security/security-reviewer.md +0 -53
  494. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  495. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  496. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  497. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  498. package/skills-library/specialists/workflow/the-fool.md +0 -62
  499. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  501. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,558 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ # Allow manual trigger
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ # Job 1: Run Python unit tests
13
+ unit-tests:
14
+ name: Unit Tests (Python ${{ matrix.python-version }})
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ python-version: ['3.9', '3.10', '3.11', '3.12']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ - name: Run unit tests
29
+ run: |
30
+ python tests/test_generator.py
31
+ python tests/test_diagram_types.py
32
+ python tests/test_prompt_generation.py
33
+ python tests/test_line_routing_validator.py
34
+
35
+ - name: Test example diagram generation
36
+ run: |
37
+ python -c "
38
+ import sys
39
+ sys.path.insert(0, 'scripts')
40
+ from excalidraw_generator import (
41
+ Diagram, Flowchart, ArchitectureDiagram,
42
+ DiagramStyle, FlowchartStyle, ArchitectureStyle
43
+ )
44
+
45
+ # Test basic diagram with style
46
+ d = Diagram(diagram_style=DiagramStyle(roughness=0, color_scheme='corporate'))
47
+ d.box(100, 100, 'Test', color='blue')
48
+ d.save('test_output.excalidraw')
49
+ print('✓ Basic diagram with DiagramStyle')
50
+
51
+ # Test flowchart with FlowchartStyle
52
+ fc = Flowchart(flowchart_style=FlowchartStyle(decision_color='orange'))
53
+ fc.start('Start')
54
+ fc.process('p1', 'Process')
55
+ fc.decision('d1', 'OK?')
56
+ fc.end('End')
57
+ fc.connect('__start__', 'p1')
58
+ fc.connect('p1', 'd1')
59
+ fc.connect('d1', '__end__', label='Yes')
60
+ fc.save('test_flowchart.excalidraw')
61
+ print('✓ Flowchart with FlowchartStyle')
62
+
63
+ # Test architecture diagram with ArchitectureStyle
64
+ arch = ArchitectureDiagram(architecture_style=ArchitectureStyle(service_color='cyan'))
65
+ arch.user('user', 'User', x=50, y=100)
66
+ arch.component('api', 'API Gateway', x=200, y=100)
67
+ arch.service('svc', 'Auth Service', x=350, y=100)
68
+ arch.database('db', 'Database', x=500, y=100)
69
+ arch.connect('user', 'api')
70
+ arch.connect('api', 'svc')
71
+ arch.connect('svc', 'db')
72
+ arch.save('test_arch.excalidraw')
73
+ print('✓ Architecture diagram with ArchitectureStyle')
74
+
75
+ # Test Class Diagram
76
+ d = Diagram()
77
+ parent = d.box(200, 50, 'Animal\\n---------\\n+ speak()', color='blue')
78
+ child = d.box(200, 200, 'Dog\\n---------\\n+ bark()', color='blue')
79
+ d.arrow_between(child, parent)
80
+ d.save('test_class.excalidraw')
81
+ print('✓ Class diagram')
82
+
83
+ # Test Use Case Diagram
84
+ d = Diagram()
85
+ actor = d.box(50, 100, 'Customer', shape='ellipse', color='gray')
86
+ usecase = d.box(200, 100, 'Place Order', shape='ellipse', color='blue')
87
+ d.line_between(actor, usecase)
88
+ d.save('test_usecase.excalidraw')
89
+ print('✓ Use Case diagram')
90
+
91
+ # Test State Machine
92
+ fc = Flowchart()
93
+ fc.start('●')
94
+ fc.process('idle', 'Idle')
95
+ fc.process('active', 'Active')
96
+ fc.end('◉')
97
+ fc.connect('__start__', 'idle')
98
+ fc.connect('idle', 'active', label='start')
99
+ fc.connect('active', '__end__', label='done')
100
+ fc.save('test_state.excalidraw')
101
+ print('✓ State Machine diagram')
102
+
103
+ print('\\nAll example diagrams generated successfully!')
104
+ "
105
+
106
+ - name: Validate generated files are valid JSON
107
+ run: |
108
+ for f in *.excalidraw; do
109
+ echo "Validating $f..."
110
+ python -c "import json; json.load(open('$f'))"
111
+ done
112
+
113
+ # Job 2: Generate diagram gallery with PNG previews
114
+ diagram-gallery:
115
+ name: Diagram Gallery
116
+ runs-on: ubuntu-latest
117
+ permissions:
118
+ contents: write # Needed for gh-pages deployment
119
+
120
+ steps:
121
+ - uses: actions/checkout@v4
122
+
123
+ - name: Set up Python
124
+ uses: actions/setup-python@v5
125
+ with:
126
+ python-version: '3.11'
127
+
128
+ - name: Set up Node.js
129
+ uses: actions/setup-node@v4
130
+ with:
131
+ node-version: '20'
132
+
133
+ - name: Install Python dependencies
134
+ run: pip install grandalf
135
+
136
+ - name: Install npm dependencies and Playwright
137
+ run: |
138
+ cd scripts
139
+ npm install
140
+ npx playwright install chromium
141
+
142
+ - name: Generate example diagrams
143
+ run: |
144
+ mkdir -p diagrams
145
+ python3 << 'EOF'
146
+ import sys
147
+ sys.path.insert(0, 'scripts')
148
+ from excalidraw_generator import (
149
+ Diagram, Flowchart, ArchitectureDiagram, AutoLayoutFlowchart,
150
+ DiagramStyle, FlowchartStyle, ArchitectureStyle, LayoutConfig
151
+ )
152
+
153
+ # 1. Architecture Diagram
154
+ arch = ArchitectureDiagram(
155
+ architecture_style=ArchitectureStyle(service_color='violet')
156
+ )
157
+ arch.user('user', 'User', x=50, y=150)
158
+ arch.component('web', 'Web App', x=200, y=130, color='blue')
159
+ arch.service('api', 'API Gateway', x=400, y=130, color='violet')
160
+ arch.service('auth', 'Auth Service', x=600, y=80, color='cyan')
161
+ arch.database('db', 'PostgreSQL', x=600, y=200, color='green')
162
+ arch.connect('user', 'web', 'HTTPS')
163
+ arch.connect('web', 'api', 'REST')
164
+ arch.connect('api', 'auth', 'JWT')
165
+ arch.connect('api', 'db', 'SQL')
166
+ arch.save('diagrams/01_architecture.excalidraw')
167
+ print('✓ Architecture diagram')
168
+
169
+ # 2. Flowchart with decisions - using two-column branch layout
170
+ fc = Flowchart(
171
+ direction='vertical',
172
+ spacing=80,
173
+ flowchart_style=FlowchartStyle(decision_color='orange')
174
+ )
175
+ # Main column - center
176
+ fc.position_at(200, 50)
177
+ fc.start('Start')
178
+ fc.process('input', 'Get Input')
179
+ fc.decision('valid', 'Valid?')
180
+
181
+ # Yes branch (right column)
182
+ fc.position_at(350, 380)
183
+ fc.process('proc', 'Process Data')
184
+ fc.end('End')
185
+
186
+ # No branch (left column) - for loop back
187
+ fc.position_at(50, 380)
188
+ fc.process('error', 'Show Error')
189
+
190
+ # Connections
191
+ fc.connect('__start__', 'input')
192
+ fc.connect('input', 'valid')
193
+ fc.connect('valid', 'proc', 'Yes')
194
+ fc.connect('valid', 'error', 'No')
195
+ fc.connect('proc', '__end__')
196
+ # Loop back: exit left, enter left to route around other boxes
197
+ fc.connect('error', 'input', from_side='left', to_side='left')
198
+ fc.save('diagrams/02_flowchart.excalidraw')
199
+ print('✓ Flowchart diagram')
200
+
201
+ # 3. Auto-layout flowchart
202
+ auto = AutoLayoutFlowchart(
203
+ layout_config=LayoutConfig(vertical_spacing=80, horizontal_spacing=200),
204
+ diagram_style=DiagramStyle(roughness=0, color_scheme='corporate')
205
+ )
206
+ auto.add_node('start', 'Start', shape='ellipse', color='green', node_type='terminal')
207
+ auto.add_node('fetch', 'Fetch Data', color='blue', node_type='process')
208
+ auto.add_node('check', 'Cache Hit?', shape='diamond', color='yellow', node_type='decision')
209
+ auto.add_node('cache', 'Return Cache', color='cyan', node_type='process')
210
+ auto.add_node('api', 'Call API', color='blue', node_type='process')
211
+ auto.add_node('store', 'Update Cache', color='violet', node_type='process')
212
+ auto.add_node('end', 'Return', shape='ellipse', color='red', node_type='terminal')
213
+ auto.add_edge('start', 'fetch')
214
+ auto.add_edge('fetch', 'check')
215
+ auto.add_edge('check', 'cache', 'Yes')
216
+ auto.add_edge('check', 'api', 'No')
217
+ auto.add_edge('cache', 'end')
218
+ auto.add_edge('api', 'store')
219
+ auto.add_edge('store', 'end')
220
+ auto.compute_layout() # Required to position nodes
221
+ auto.save('diagrams/03_auto_flowchart.excalidraw')
222
+ print('✓ Auto-layout flowchart')
223
+
224
+ # 4. Class diagram (UML)
225
+ d = Diagram(diagram_style=DiagramStyle(roughness=0))
226
+ animal = d.box(200, 50, 'Animal\n─────────\n+ name: str\n─────────\n+ speak()', color='blue')
227
+ dog = d.box(100, 220, 'Dog\n─────────\n+ breed: str\n─────────\n+ bark()', color='blue')
228
+ cat = d.box(300, 220, 'Cat\n─────────\n+ indoor: bool\n─────────\n+ meow()', color='blue')
229
+ d.arrow_between(dog, animal)
230
+ d.arrow_between(cat, animal)
231
+ d.save('diagrams/04_class_diagram.excalidraw')
232
+ print('✓ Class diagram')
233
+
234
+ # 5. State machine
235
+ fc = Flowchart(direction='horizontal', spacing=150)
236
+ fc.start('●')
237
+ fc.process('idle', 'Idle')
238
+ fc.process('loading', 'Loading')
239
+ fc.process('ready', 'Ready')
240
+ fc.process('error', 'Error')
241
+ fc.end('◉')
242
+ fc.connect('__start__', 'idle')
243
+ fc.connect('idle', 'loading', 'fetch')
244
+ fc.connect('loading', 'ready', 'success')
245
+ fc.connect('loading', 'error', 'fail')
246
+ fc.connect('error', 'idle', 'retry')
247
+ fc.connect('ready', '__end__', 'done')
248
+ fc.save('diagrams/05_state_machine.excalidraw')
249
+ print('✓ State machine diagram')
250
+
251
+ # 6. Sketchy style diagram
252
+ d = Diagram(diagram_style=DiagramStyle(roughness=2, color_scheme='vibrant'))
253
+ idea = d.box(100, 100, 'Idea', color='violet')
254
+ design = d.box(300, 100, 'Design', color='blue')
255
+ build = d.box(500, 100, 'Build', color='green')
256
+ ship = d.box(700, 100, 'Ship!', color='orange')
257
+ d.arrow_between(idea, design)
258
+ d.arrow_between(design, build)
259
+ d.arrow_between(build, ship)
260
+ d.save('diagrams/06_sketchy_style.excalidraw')
261
+ print('✓ Sketchy style diagram')
262
+
263
+ print('\nAll diagrams generated!')
264
+ EOF
265
+
266
+ - name: Convert diagrams to PNG with Playwright
267
+ run: |
268
+ for f in diagrams/*.excalidraw; do
269
+ name=$(basename "$f" .excalidraw)
270
+ echo "Converting $name..."
271
+ node scripts/export_playwright.js "$f" "diagrams/${name}.png"
272
+ done
273
+ ls -la diagrams/
274
+
275
+ - name: Upload diagram artifacts
276
+ uses: actions/upload-artifact@v4
277
+ with:
278
+ name: diagram-gallery
279
+ path: diagrams/
280
+
281
+ - name: Generate gallery HTML
282
+ if: github.ref == 'refs/heads/main'
283
+ run: |
284
+ python3 << 'EOF'
285
+ import os
286
+ from datetime import datetime
287
+ from pathlib import Path
288
+
289
+ descriptions = {
290
+ "01_architecture": "Microservices architecture with user, API, and database",
291
+ "02_flowchart": "Decision flowchart with validation loop",
292
+ "03_auto_flowchart": "Auto-layout caching logic flowchart",
293
+ "04_class_diagram": "UML class inheritance (Animal/Dog/Cat)",
294
+ "05_state_machine": "State machine with transitions",
295
+ "06_sketchy_style": "Hand-drawn style process flow",
296
+ }
297
+
298
+ pngs = sorted(Path("diagrams").glob("*.png"))
299
+ cards = []
300
+ for png in pngs:
301
+ name = png.stem
302
+ desc = descriptions.get(name, "Generated diagram")
303
+ cards.append(f'''<div class="card">
304
+ <a href="gallery/{name}.png"><img src="gallery/{name}.png" alt="{name}"></a>
305
+ <h3>{name}</h3>
306
+ <p>{desc}</p>
307
+ </div>''')
308
+
309
+ html = f'''<!DOCTYPE html>
310
+ <html>
311
+ <head>
312
+ <title>Excalidraw Diagram Gallery</title>
313
+ <style>
314
+ body {{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 1200px; margin: 0 auto; padding: 20px; background: #f5f5f5; }}
315
+ h1 {{ color: #333; }}
316
+ .gallery {{ display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 20px; }}
317
+ .card {{ background: white; border-radius: 8px; padding: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }}
318
+ .card img {{ width: 100%; border-radius: 4px; }}
319
+ .card h3 {{ margin: 12px 0 8px 0; color: #1a73e8; }}
320
+ .card p {{ color: #666; margin: 0; font-size: 14px; }}
321
+ </style>
322
+ </head>
323
+ <body>
324
+ <h1>Excalidraw Diagram Gallery</h1>
325
+ <p>Generated diagrams from CI test suite. Click images to view full size.</p>
326
+ <div class="gallery">
327
+ {"".join(cards)}
328
+ </div>
329
+ <p style="margin-top: 20px; color: #999; font-size: 12px;">Generated by CI on {datetime.utcnow().strftime("%Y-%m-%d %H:%M UTC")}</p>
330
+ </body>
331
+ </html>'''
332
+
333
+ Path("/tmp/gallery_index.html").write_text(html)
334
+ print("Generated gallery HTML")
335
+ EOF
336
+
337
+ - name: Deploy to GitHub Pages
338
+ if: github.ref == 'refs/heads/main'
339
+ run: |
340
+ # Save files to temp location before switching branches
341
+ mkdir -p /tmp/gh-pages/gallery
342
+ cp diagrams/*.png /tmp/gh-pages/gallery/
343
+ cp /tmp/gallery_index.html /tmp/gh-pages/index.html
344
+
345
+ # Configure git
346
+ git config user.name "github-actions[bot]"
347
+ git config user.email "github-actions[bot]@users.noreply.github.com"
348
+
349
+ # Clean untracked files before switching branches
350
+ git clean -fd
351
+
352
+ # Fetch gh-pages if it exists, otherwise create orphan
353
+ if git fetch origin gh-pages:gh-pages 2>/dev/null; then
354
+ git checkout gh-pages
355
+ else
356
+ git checkout --orphan gh-pages
357
+ git rm -rf . 2>/dev/null || true
358
+ fi
359
+
360
+ # Clear existing content and copy new files
361
+ rm -rf gallery index.html 2>/dev/null || true
362
+ cp -r /tmp/gh-pages/* .
363
+
364
+ # Commit and push
365
+ git add .
366
+ git commit -m "Update diagram gallery from CI run ${{ github.run_number }}" || echo "No changes to commit"
367
+ git push origin gh-pages --force
368
+
369
+ - name: Create diagram gallery in step summary
370
+ run: |
371
+ # Determine the base URL for images
372
+ REPO_OWNER="${{ github.repository_owner }}"
373
+ REPO_NAME="${{ github.event.repository.name }}"
374
+ BASE_URL="https://${REPO_OWNER}.github.io/${REPO_NAME}/gallery"
375
+
376
+ echo "## 📊 Diagram Gallery" >> $GITHUB_STEP_SUMMARY
377
+ echo "" >> $GITHUB_STEP_SUMMARY
378
+ echo "Generated diagrams from the test suite. View the [full gallery](https://${REPO_OWNER}.github.io/${REPO_NAME}/) or download artifacts to edit in [Excalidraw](https://excalidraw.com)." >> $GITHUB_STEP_SUMMARY
379
+ echo "" >> $GITHUB_STEP_SUMMARY
380
+
381
+ for f in diagrams/*.excalidraw; do
382
+ name=$(basename "$f" .excalidraw)
383
+ elements=$(python3 -c "import json; d=json.load(open('$f')); print(len(d.get('elements', [])))")
384
+
385
+ case "$name" in
386
+ 01_architecture) desc="Microservices architecture with user, API, and database" ;;
387
+ 02_flowchart) desc="Decision flowchart with validation loop" ;;
388
+ 03_auto_flowchart) desc="Auto-layout caching logic flowchart" ;;
389
+ 04_class_diagram) desc="UML class inheritance (Animal/Dog/Cat)" ;;
390
+ 05_state_machine) desc="State machine with transitions" ;;
391
+ 06_sketchy_style) desc="Hand-drawn style process flow" ;;
392
+ *) desc="Generated diagram" ;;
393
+ esac
394
+
395
+ echo "### $name" >> $GITHUB_STEP_SUMMARY
396
+ echo "$desc ($elements elements)" >> $GITHUB_STEP_SUMMARY
397
+ echo "" >> $GITHUB_STEP_SUMMARY
398
+ # Only embed images if on main branch (gh-pages deployed)
399
+ if [ "${{ github.ref }}" == "refs/heads/main" ]; then
400
+ echo "![${name}](${BASE_URL}/${name}.png)" >> $GITHUB_STEP_SUMMARY
401
+ else
402
+ echo "_Image preview available after merge to main_" >> $GITHUB_STEP_SUMMARY
403
+ fi
404
+ echo "" >> $GITHUB_STEP_SUMMARY
405
+ done
406
+
407
+ echo "---" >> $GITHUB_STEP_SUMMARY
408
+ echo "📥 Download the **diagram-gallery** artifact for editable .excalidraw files" >> $GITHUB_STEP_SUMMARY
409
+
410
+ # Job 3: Validate SKILL.md format
411
+ validate-skill:
412
+ name: Validate Skill Format
413
+ runs-on: ubuntu-latest
414
+
415
+ steps:
416
+ - uses: actions/checkout@v4
417
+
418
+ - name: Check SKILL.md exists
419
+ run: test -f SKILL.md
420
+
421
+ - name: Validate SKILL.md frontmatter
422
+ run: |
423
+ python3 << 'EOF'
424
+ import re
425
+
426
+ with open('SKILL.md') as f:
427
+ content = f.read()
428
+
429
+ # Check frontmatter exists
430
+ if not content.startswith('---'):
431
+ print("ERROR: SKILL.md must start with YAML frontmatter (---)")
432
+ exit(1)
433
+
434
+ # Extract frontmatter
435
+ match = re.match(r'^---\n(.*?)\n---', content, re.DOTALL)
436
+ if not match:
437
+ print("ERROR: Invalid frontmatter format")
438
+ exit(1)
439
+
440
+ frontmatter = match.group(1)
441
+
442
+ # Check required fields
443
+ if 'name:' not in frontmatter:
444
+ print("ERROR: SKILL.md frontmatter must contain 'name' field")
445
+ exit(1)
446
+
447
+ if 'description:' not in frontmatter:
448
+ print("ERROR: SKILL.md frontmatter must contain 'description' field")
449
+ exit(1)
450
+
451
+ # Validate name format (lowercase, hyphens only)
452
+ name_match = re.search(r'name:\s*(\S+)', frontmatter)
453
+ if name_match:
454
+ name = name_match.group(1)
455
+ if not re.match(r'^[a-z0-9-]+$', name):
456
+ print(f"WARNING: Skill name '{name}' should be lowercase with hyphens only")
457
+
458
+ print("SKILL.md validation passed!")
459
+ EOF
460
+
461
+ # Job 4: Integration test with Claude Code (requires API key)
462
+ integration-test:
463
+ name: Integration Test with Claude Code
464
+ runs-on: ubuntu-latest
465
+ # Only run if ANTHROPIC_API_KEY is available (not on forks)
466
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
467
+ permissions:
468
+ contents: read
469
+ id-token: write
470
+
471
+ steps:
472
+ - uses: actions/checkout@v4
473
+
474
+ - name: Set up Python
475
+ uses: actions/setup-python@v5
476
+ with:
477
+ python-version: '3.11'
478
+
479
+ - name: Install skill to test location
480
+ run: |
481
+ mkdir -p ~/.claude/skills
482
+ cp -r . ~/.claude/skills/excalidraw-diagrams
483
+
484
+ - name: Test skill with Claude Code
485
+ uses: robtaylor/claude-code-action@main
486
+ with:
487
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
488
+ github_token: ${{ secrets.GITHUB_TOKEN }}
489
+ claude_args: "--allowedTools Write,Read,Bash,Glob,Grep,Skill"
490
+ prompt: |
491
+ I want to verify the excalidraw-diagrams skill is working correctly.
492
+
493
+ Please do the following:
494
+ 1. Create a simple architecture diagram showing: User -> API -> Database
495
+ 2. Save it as 'ci_test_diagram.excalidraw' in the current directory
496
+ 3. Verify the file was created and contains valid Excalidraw JSON
497
+
498
+ Use the excalidraw-diagrams skill to generate this diagram.
499
+ Report success or failure.
500
+ env:
501
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
502
+
503
+ - name: Verify output file exists
504
+ run: |
505
+ if [ -f ci_test_diagram.excalidraw ]; then
506
+ echo "Success: Diagram file was created"
507
+ python -c "import json; d=json.load(open('ci_test_diagram.excalidraw')); print(f'Elements: {len(d.get(\"elements\", []))}')"
508
+ else
509
+ echo "Warning: Expected diagram file not found (skill may not have been triggered)"
510
+ # List what files were created
511
+ ls -la ./*.excalidraw 2>/dev/null || echo "No .excalidraw files found"
512
+ fi
513
+
514
+ - name: Convert diagram to PNG with Playwright
515
+ if: always()
516
+ run: |
517
+ if [ -f ci_test_diagram.excalidraw ]; then
518
+ cd ~/.claude/skills/excalidraw-diagrams/scripts
519
+ npm install
520
+ npx playwright install chromium
521
+ node export_playwright.js "$GITHUB_WORKSPACE/ci_test_diagram.excalidraw" "$GITHUB_WORKSPACE/ci_test_diagram.png"
522
+ echo "PNG conversion complete"
523
+ ls -la "$GITHUB_WORKSPACE"/*.png 2>/dev/null || echo "No PNG files created"
524
+ fi
525
+
526
+ - name: Upload diagram artifacts
527
+ if: always()
528
+ uses: actions/upload-artifact@v4
529
+ with:
530
+ name: excalidraw-diagram
531
+ path: |
532
+ ci_test_diagram.excalidraw
533
+ ci_test_diagram.png
534
+ if-no-files-found: ignore
535
+
536
+ - name: Add diagram to step summary
537
+ if: always()
538
+ run: |
539
+ echo "## 📊 Generated Excalidraw Diagram" >> $GITHUB_STEP_SUMMARY
540
+ echo "" >> $GITHUB_STEP_SUMMARY
541
+
542
+ if [ -f ci_test_diagram.excalidraw ]; then
543
+ ELEMENTS=$(python -c "import json; d=json.load(open('ci_test_diagram.excalidraw')); print(len(d.get('elements', [])))")
544
+ echo "✅ **Diagram created successfully** with $ELEMENTS elements" >> $GITHUB_STEP_SUMMARY
545
+ echo "" >> $GITHUB_STEP_SUMMARY
546
+
547
+ if [ -f ci_test_diagram.png ]; then
548
+ echo "📸 PNG preview available in **excalidraw-diagram** artifact" >> $GITHUB_STEP_SUMMARY
549
+ echo "" >> $GITHUB_STEP_SUMMARY
550
+ fi
551
+
552
+ echo "### Downloads" >> $GITHUB_STEP_SUMMARY
553
+ echo "- Download the **excalidraw-diagram** artifact to view/edit in [Excalidraw](https://excalidraw.com)" >> $GITHUB_STEP_SUMMARY
554
+ else
555
+ echo "⚠️ **No diagram was generated**" >> $GITHUB_STEP_SUMMARY
556
+ echo "" >> $GITHUB_STEP_SUMMARY
557
+ echo "The skill may not have been triggered or an error occurred." >> $GITHUB_STEP_SUMMARY
558
+ fi