@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,150 @@
1
+ ---
2
+ name: framer-motion-layoutid-grouping
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-02-26
6
+ contributor: scribe-bible
7
+ last_updated: 2026-02-26
8
+ tags: [framer-motion, animation, FLIP, layout, grouping, sorting, react]
9
+ difficulty: medium
10
+ usage_count: 0
11
+ success_rate: 100
12
+ ---
13
+
14
+ # Framer Motion layoutId Bubble Grouping
15
+
16
+ ## Problem
17
+
18
+ You have a collection of items (cards, bubbles, tiles) that can be sorted/grouped by different criteria. When the user switches sort mode, items should smoothly animate to their new positions in the new groups — not just re-render instantly. Traditional approaches require manually calculating FLIP (First, Last, Invert, Play) coordinates. CSS Grid/Flexbox reflows don't animate.
19
+
20
+ ## Solution Pattern
21
+
22
+ Use Framer Motion's `layoutId` prop on `motion.div` or `motion.button` elements. When items move between groups (different parent containers), Framer Motion automatically calculates the FLIP animation — measuring the element's position before and after the React re-render, then animating the transform.
23
+
24
+ The key: each item needs a **stable, unique `layoutId`** that persists across re-renders. When React re-renders with new grouping, Framer Motion finds the same `layoutId` in a different position and animates the transition.
25
+
26
+ ## Code Example
27
+
28
+ ```tsx
29
+ import { motion, AnimatePresence } from 'framer-motion';
30
+
31
+ interface Item {
32
+ id: string;
33
+ name: string;
34
+ category: string;
35
+ author: string;
36
+ size: number;
37
+ }
38
+
39
+ type SortMode = 'category' | 'author' | 'size';
40
+
41
+ function GroupedBubbles({ items }: { items: Item[] }) {
42
+ const [sortMode, setSortMode] = useState<SortMode>('category');
43
+
44
+ // Regroup items whenever sort mode changes
45
+ const groups = useMemo(() => {
46
+ const map = new Map<string, Item[]>();
47
+ items.forEach(item => {
48
+ const key = sortMode === 'size'
49
+ ? (item.size > 100 ? 'Large' : 'Small')
50
+ : item[sortMode];
51
+ if (!map.has(key)) map.set(key, []);
52
+ map.get(key)!.push(item);
53
+ });
54
+ return map;
55
+ }, [items, sortMode]);
56
+
57
+ return (
58
+ <div>
59
+ {/* Sort mode buttons */}
60
+ <div className="flex gap-2 mb-4">
61
+ {(['category', 'author', 'size'] as SortMode[]).map(mode => (
62
+ <button
63
+ key={mode}
64
+ onClick={() => setSortMode(mode)}
65
+ className={sortMode === mode ? 'bg-blue-500 text-white' : 'bg-gray-200'}
66
+ >
67
+ By {mode}
68
+ </button>
69
+ ))}
70
+ </div>
71
+
72
+ {/* Grouped items */}
73
+ {Array.from(groups.entries()).map(([group, groupItems]) => (
74
+ <div key={group} className="mb-6">
75
+ <h3 className="text-lg font-bold">{group}</h3>
76
+ <div className="flex flex-wrap gap-2">
77
+ {groupItems.map(item => (
78
+ <motion.button
79
+ key={item.id}
80
+ layoutId={`item-${item.id}`} // STABLE ID — survives regrouping
81
+ layout="position" // Only animate position, not size
82
+ transition={{
83
+ type: 'spring',
84
+ stiffness: 400,
85
+ damping: 30,
86
+ }}
87
+ whileHover={{ scale: 1.15 }}
88
+ whileTap={{ scale: 0.95 }}
89
+ className="rounded-full bg-blue-500 text-white flex items-center justify-center"
90
+ style={{
91
+ width: `${Math.max(32, item.size * 0.4)}px`,
92
+ height: `${Math.max(32, item.size * 0.4)}px`,
93
+ }}
94
+ >
95
+ {item.name}
96
+ </motion.button>
97
+ ))}
98
+ </div>
99
+ </div>
100
+ ))}
101
+ </div>
102
+ );
103
+ }
104
+ ```
105
+
106
+ ## Implementation Steps
107
+
108
+ 1. Install Framer Motion: `npm install framer-motion`
109
+ 2. Wrap each item in a `motion.div` or `motion.button`
110
+ 3. Assign a **stable `layoutId`** based on the item's unique ID (not array index)
111
+ 4. Use `layout="position"` to animate only position (not size changes)
112
+ 5. Configure spring physics: `stiffness: 400, damping: 30` for snappy natural motion
113
+ 6. Memoize the grouping computation with `useMemo` to prevent unnecessary recalculations
114
+ 7. Add `whileHover` and `whileTap` for interactive feedback
115
+
116
+ ## When to Use
117
+
118
+ - Data explorers with multiple sort/group/filter modes
119
+ - Card grids that reorganize by category, date, status, etc.
120
+ - Tag clouds or bubble charts with dynamic grouping
121
+ - Dashboard widgets that can be rearranged
122
+ - Any collection where items move between visual groups
123
+
124
+ ## When NOT to Use
125
+
126
+ - React Flow graphs — use CSS transitions on `.react-flow__node` instead (Framer Motion conflicts with React Flow's transform management)
127
+ - Lists with 500+ items — FLIP calculations on many elements cause frame drops
128
+ - Simple show/hide — use `AnimatePresence` with `initial`/`animate`/`exit` instead
129
+ - Server-side rendered content — `layoutId` animations only work client-side
130
+
131
+ ## Common Mistakes
132
+
133
+ - Using array index as `layoutId` — items get wrong animations when array reorders
134
+ - Forgetting `layout="position"` — size changes also animate, causing distortion
135
+ - Setting `stiffness` too low (<200) — bubbles float sluggishly
136
+ - Setting `damping` too low (<15) — bubbles bounce excessively
137
+ - Not memoizing the grouping logic — React re-renders trigger redundant FLIP measurements
138
+ - Mixing `layoutId` with `AnimatePresence` incorrectly — use `layoutId` for movement, `AnimatePresence` for enter/exit
139
+
140
+ ## Related Skills
141
+
142
+ - [react-flow-animated-layout-switching](react-flow-animated-layout-switching.md) — For graph node animations
143
+ - [svg-sparkline-no-charting-library](svg-sparkline-no-charting-library.md) — Lightweight data visualization
144
+
145
+ ## References
146
+
147
+ - Framer Motion layout animations: https://www.framer.com/motion/layout-animations/
148
+ - FLIP technique (First, Last, Invert, Play): https://aerotwist.com/blog/flip-your-animations/
149
+ - Discovered in: scribe-bible PsalmsExplorer bubble graph (Phase 2)
150
+ - 150 psalm bubbles with 5 sort modes, spring physics, hover tooltips
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: pyqt6-settings-dialog
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-02-24
6
+ contributor: voice-bridge-v4
7
+ last_updated: 2026-02-24
8
+ contributors:
9
+ - voice-bridge-v4
10
+ tags: [pyqt6, python, desktop-app, settings, gui, yaml, config, dark-theme]
11
+ difficulty: medium
12
+ usage_count: 0
13
+ success_rate: 100
14
+ ---
15
+
16
+ # PyQt6 Settings Dialog (Replace Raw Config Editing)
17
+
18
+ ## Problem
19
+
20
+ Python desktop apps store configuration in YAML/JSON/TOML files. The typical "Settings" menu item calls `os.startfile(config_path)` which opens the raw file in Notepad. This creates multiple problems:
21
+
22
+ - Users must hand-edit YAML syntax (easy to break indentation)
23
+ - No discoverability — users can't see what options exist
24
+ - No validation — invalid values only crash at runtime
25
+ - No live reload — changes require full app restart
26
+ - No descriptions — feature names like `hallucination_filter` are cryptic
27
+
28
+ ## Solution Pattern
29
+
30
+ Build a PyQt6 QDialog that:
31
+
32
+ 1. **Reads config** using your existing `load_config()` function
33
+ 2. **Renders toggles/combos** programmatically from config keys
34
+ 3. **Saves on OK** using your existing `save_config()` function
35
+ 4. **Emits a signal** so the main app can hot-reload affected components
36
+ 5. **Matches app theme** using a stylesheet (dark theme shown below)
37
+
38
+ Key architecture decisions:
39
+ - Dialog is **modal** (blocks interaction with main window) — prevents race conditions
40
+ - Config paths stored as dotted strings (`"post_processing.hallucination_filter"`) for clean mapping
41
+ - `settings_changed` signal carries the full new config dict — caller decides what to hot-reload
42
+ - Fallback to raw file editor if dialog fails to import (graceful degradation)
43
+
44
+ ## Code Example
45
+
46
+ ```python
47
+ # Before (problematic) — opens raw YAML in Notepad
48
+ def _open_settings(self) -> None:
49
+ os.startfile(str(CONFIG_FILE))
50
+
51
+ # After (solution) — proper settings GUI with live reload
52
+ def _open_settings(self) -> None:
53
+ from .settings_dialog import SettingsDialog
54
+ dialog = SettingsDialog(parent=self.main_window)
55
+ dialog.settings_changed.connect(self._on_settings_changed)
56
+ dialog.exec()
57
+
58
+ def _on_settings_changed(self, new_config: dict) -> None:
59
+ # Hot-reload only the components that support it
60
+ self.text_processor = TextProcessor(new_config)
61
+ self.status_server.update(new_config)
62
+ ```
63
+
64
+ ### Settings Dialog Structure
65
+
66
+ ```python
67
+ from PyQt6.QtWidgets import QDialog, QCheckBox, QGroupBox, QComboBox, QDialogButtonBox
68
+ from PyQt6.QtCore import pyqtSignal
69
+ from .config import load_config, save_config
70
+
71
+ class SettingsDialog(QDialog):
72
+ settings_changed = pyqtSignal(dict) # Emitted on save
73
+
74
+ def __init__(self, parent=None):
75
+ super().__init__(parent)
76
+ self.config = load_config()
77
+ self._checkboxes = {} # path -> QCheckBox mapping
78
+ self._build_ui()
79
+
80
+ def _build_ui(self):
81
+ # Group features logically
82
+ features = [
83
+ ("post_processing.hallucination_filter", "Hallucination Filter",
84
+ "Reject garbage like 'thank you for watching'"),
85
+ ("post_processing.filler_removal", "Filler Removal",
86
+ "Strip um, uh, like, basically"),
87
+ # ... more features
88
+ ]
89
+
90
+ for path, label, description in features:
91
+ cb = QCheckBox(label)
92
+ # Navigate nested config: "post_processing.hallucination_filter"
93
+ parts = path.split(".")
94
+ value = self.config
95
+ for part in parts:
96
+ value = value.get(part, {})
97
+ cb.setChecked(value.get("enabled", False))
98
+ self._checkboxes[path] = cb
99
+
100
+ # Save/Cancel buttons
101
+ buttons = QDialogButtonBox(
102
+ QDialogButtonBox.StandardButton.Save |
103
+ QDialogButtonBox.StandardButton.Cancel
104
+ )
105
+ buttons.accepted.connect(self._save)
106
+ buttons.rejected.connect(self.reject)
107
+
108
+ def _save(self):
109
+ config = load_config() # Fresh read to avoid stale state
110
+ for path, cb in self._checkboxes.items():
111
+ parts = path.split(".")
112
+ target = config
113
+ for part in parts[:-1]:
114
+ target = target.setdefault(part, {})
115
+ last_key = parts[-1]
116
+ if isinstance(target.get(last_key), dict):
117
+ target[last_key]["enabled"] = cb.isChecked()
118
+ else:
119
+ target[last_key] = cb.isChecked()
120
+
121
+ save_config(config)
122
+ self.settings_changed.emit(config)
123
+ self.accept()
124
+ ```
125
+
126
+ ### Dark Theme Stylesheet
127
+
128
+ ```python
129
+ STYLESHEET = """
130
+ QDialog { background-color: #0f0f14; color: #f0f0f5; }
131
+ QGroupBox {
132
+ background-color: #1a1a24; border: 1px solid #2a2a3a;
133
+ border-radius: 8px; margin-top: 12px; padding: 16px;
134
+ }
135
+ QGroupBox::title { color: #6366f1; }
136
+ QCheckBox::indicator {
137
+ width: 20px; height: 20px;
138
+ border: 2px solid #2a2a3a; border-radius: 4px;
139
+ }
140
+ QCheckBox::indicator:checked {
141
+ background-color: #6366f1; border-color: #6366f1;
142
+ }
143
+ QDialogButtonBox QPushButton {
144
+ background-color: #6366f1; color: white;
145
+ border-radius: 6px; padding: 8px 24px;
146
+ }
147
+ """
148
+ ```
149
+
150
+ ## Implementation Steps
151
+
152
+ 1. Create `settings_dialog.py` alongside your main module
153
+ 2. Define feature list as `(config_path, label, description)` tuples
154
+ 3. Build UI with QGroupBox sections for logical grouping
155
+ 4. Map checkboxes to dotted config paths in `self._checkboxes`
156
+ 5. On save: navigate config dict, update values, call `save_config()`
157
+ 6. Emit `settings_changed` signal with full config
158
+ 7. In main app: connect signal to hot-reload handler
159
+ 8. Add fallback to `os.startfile()` if dialog import fails
160
+
161
+ ## When to Use
162
+
163
+ - Any Python desktop app with a YAML/JSON/TOML config file
164
+ - When "Settings" currently opens the raw config in a text editor
165
+ - When features are togglable and users shouldn't need to understand config syntax
166
+ - When you want live reload without full app restart
167
+
168
+ ## When NOT to Use
169
+
170
+ - Web apps (use a proper web settings page instead)
171
+ - CLI-only tools (use command-line flags or interactive prompts)
172
+ - When config has only 1-2 simple values (overkill — just use CLI args)
173
+ - When config changes ALWAYS require restart (signal adds unnecessary complexity)
174
+
175
+ ## Common Mistakes
176
+
177
+ - **Reading stale config in `_save()`** — Always `load_config()` fresh before applying checkbox states, because another process or the user might have edited the file
178
+ - **Not handling nested dicts** — Config like `{post_processing: {filter: {enabled: true}}}` needs the `isinstance(target.get(last_key), dict)` check to set `.enabled` inside the nested dict rather than replacing it
179
+ - **Opening dialog from wrong thread** — If called from a system tray callback (different thread), use Qt signals to marshal to the GUI thread
180
+ - **Not providing fallback** — Wrap dialog creation in try/except and fall back to `os.startfile()` for robustness
181
+
182
+ ## Related Skills
183
+
184
+ - [config-hot-reload](../patterns-standards/config-hot-reload.md) — General pattern for live config reload
185
+ - [dark-theme-qt](../frontend/dark-theme-qt.md) — Dark theme patterns for PyQt6
186
+
187
+ ## References
188
+
189
+ - Contributed from: voice-bridge-v4
190
+ - PyQt6 QDialog docs: https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QDialog.html
191
+ - Real implementation: `voice-bridge-v3/src/voice_bridge_v3/settings_dialog.py`
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: react-flow-animated-layout-switching
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-02-26
6
+ contributor: scribe-bible
7
+ last_updated: 2026-02-26
8
+ tags: [react-flow, xyflow, animation, css-transitions, layout, graph-visualization]
9
+ difficulty: medium
10
+ usage_count: 0
11
+ success_rate: 100
12
+ ---
13
+
14
+ # React Flow Animated Layout Switching
15
+
16
+ ## Problem
17
+
18
+ React Flow (`@xyflow/react`) nodes snap instantly to new positions when switching between layout algorithms (e.g., dagre → force → radial). This creates a jarring user experience — nodes teleport instead of smoothly transitioning. Framer Motion cannot animate React Flow node positions because React Flow manages the `transform` CSS property internally via its own state.
19
+
20
+ ## Solution Pattern
21
+
22
+ Use **scoped CSS transitions** on the `.react-flow__node` element's `transform` property. React Flow updates `transform: translate(x, y)` when node positions change — CSS transitions intercept this and animate the movement. Scope with a wrapper class to prevent affecting other React Flow instances in the same app.
23
+
24
+ The key insight: React Flow already changes the transform. You don't need a JavaScript animation library — just tell CSS to transition the property React Flow is already updating.
25
+
26
+ ## Code Example
27
+
28
+ ```css
29
+ /* Scoped to prevent affecting other React Flow instances */
30
+ .my-graph .react-flow__node {
31
+ transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
32
+ }
33
+
34
+ /* Edge paths also animate when nodes move */
35
+ .my-graph .react-flow__edge path {
36
+ transition: d 600ms cubic-bezier(0.4, 0, 0.2, 1);
37
+ }
38
+ ```
39
+
40
+ ```tsx
41
+ // Wrap ReactFlow in a div with your scope class
42
+ <div className="my-graph">
43
+ <ReactFlow
44
+ nodes={nodes}
45
+ edges={edges}
46
+ fitView
47
+ fitViewOptions={{ padding: 0.3, duration: 600 }} // Match CSS duration
48
+ >
49
+ <Controls />
50
+ </ReactFlow>
51
+ </div>
52
+ ```
53
+
54
+ ```tsx
55
+ // When switching layouts, just update node positions — CSS handles animation
56
+ const switchLayout = (algorithm: string) => {
57
+ const repositioned = applyLayout(nodes, edges, { algorithm });
58
+ setNodes(repositioned); // React Flow updates transform → CSS transitions animate
59
+ };
60
+ ```
61
+
62
+ ## Implementation Steps
63
+
64
+ 1. Add a wrapper `<div>` around `<ReactFlow>` with a unique class name
65
+ 2. Add CSS transitions targeting `.wrapper-class .react-flow__node` for `transform`
66
+ 3. Add CSS transitions targeting `.wrapper-class .react-flow__edge path` for `d` (SVG path data)
67
+ 4. Match the `fitViewOptions.duration` to your CSS transition duration
68
+ 5. Use `cubic-bezier(0.4, 0, 0.2, 1)` (standard ease-out) for natural deceleration
69
+
70
+ ## When to Use
71
+
72
+ - Switching between layout algorithms (dagre, force, radial, custom)
73
+ - Expanding/collapsing groups of nodes
74
+ - Any scenario where React Flow node positions change programmatically
75
+ - When you need smooth transitions without adding Framer Motion or GSAP
76
+
77
+ ## When NOT to Use
78
+
79
+ - User-initiated drag operations (CSS transitions would fight the drag)
80
+ - When you have multiple React Flow instances and only want one animated (use scoping)
81
+ - Performance-critical graphs with 500+ nodes (CSS transitions on many elements can jank)
82
+ - When nodes are being added/removed (use Framer Motion AnimatePresence for enter/exit)
83
+
84
+ ## Common Mistakes
85
+
86
+ - Applying transitions globally (affects ALL React Flow instances in the app)
87
+ - Forgetting to scope with a wrapper class
88
+ - Using `all` instead of `transform` in the transition property (transitions zoom/pan too)
89
+ - Not matching fitView duration with CSS duration (viewport pans at different speed than nodes)
90
+ - Using `transition-duration` that's too long (>800ms feels sluggish for layout changes)
91
+
92
+ ## Related Skills
93
+
94
+ - [framer-motion-layoutid-grouping](framer-motion-layoutid-grouping.md) — For non-graph animations
95
+ - [domain-specific-layout-algorithms](../_general/patterns-standards/domain-specific-layout-algorithms.md) — Custom layouts to switch between
96
+
97
+ ## References
98
+
99
+ - React Flow docs: https://reactflow.dev
100
+ - Discovered in: scribe-bible parallelism visualization (Phase 1)
101
+ - The `d` attribute transition on SVG paths enables edge morphing during layout switches
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: react-hooks-order-debugging
3
+ category: frontend
4
+ version: 1.0.0
5
+ contributed: 2026-03-12
6
+ contributor: claude-mission-control
7
+ last_updated: 2026-03-12
8
+ contributors:
9
+ - claude-mission-control
10
+ tags: [react, hooks, debugging, HMR, vite, black-screen]
11
+ difficulty: hard
12
+ usage_count: 0
13
+ success_rate: 100
14
+ ---
15
+
16
+ # React Hooks Order Debugging — Diagnosing & Fixing Hooks Crashes
17
+
18
+ ## Problem
19
+
20
+ React requires hooks to be called in the exact same order on every render. Violations cause the error: `"Rendered more hooks than during the previous render"` or `"Rendered fewer hooks..."`. This often manifests as a complete **black screen** with no visible UI, especially when:
21
+
22
+ 1. A new hook is added at an existing position (e.g., `useMemo` inserted between existing hooks)
23
+ 2. A hook type changes at an existing position (e.g., replacing `useState` with a Zustand `useStore`)
24
+ 3. Vite HMR module cache serves stale code after hook changes
25
+
26
+ **Symptoms:**
27
+ - App loads briefly, then goes completely black
28
+ - Console shows "change in the order of Hooks called by [Component]"
29
+ - Error stack trace lists hook positions: "Previous render: useState (3), Current render: useSyncExternalStore (3)"
30
+ - Hard refresh (Ctrl+Shift+R) doesn't fix it
31
+ - Only a full Vite cache clear + server restart fixes it
32
+
33
+ ## Solution Pattern
34
+
35
+ **Diagnosis:** The error message tells you exactly which hook position changed. Map the position numbers to your component's hook calls (count them top-to-bottom: 1st `useState`, 2nd `useState`, 3rd `useEffect`, etc.).
36
+
37
+ **Three root causes and their fixes:**
38
+
39
+ ### Cause 1: New hook inserted mid-component
40
+ Adding `useMemo`, `useCallback`, or any hook between existing hooks shifts all subsequent hook positions.
41
+
42
+ **Fix:** Add new hooks at the END of the hook section, or restructure to avoid the hook entirely.
43
+
44
+ ### Cause 2: Hook type changed at same position
45
+ Replacing `useState` with `useStore()` (Zustand's `useSyncExternalStore`) changes the hook type at that position. React treats different hook types at the same position as a violation.
46
+
47
+ **Fix:** Keep the original hooks, sync external store data into them via `useEffect`, or wrap the store in a child component.
48
+
49
+ ### Cause 3: Vite HMR cache serving stale modules
50
+ After fixing hook issues, Vite's module cache (`.vite/` directory + browser cache) may still serve the old broken version.
51
+
52
+ **Fix:** Full cache clear: `rm -rf node_modules/.vite && kill vite && restart`
53
+
54
+ ## Code Example
55
+
56
+ ```typescript
57
+ // BROKEN: useMemo inserted at position 43 (shifts all hooks after it)
58
+ function App() {
59
+ const [a, setA] = useState(false) // position 1
60
+ const [b, setB] = useState('home') // position 2
61
+ // ... 40 more hooks from useEffect, useState, etc.
62
+ const memoized = useMemo(() => {...}, []) // position 43 — NEW!
63
+ // All hooks after position 43 are now shifted by 1
64
+ }
65
+
66
+ // BROKEN: useState replaced with useStore (different hook type)
67
+ function App() {
68
+ // Was: const [sidebar, setSidebar] = useState(false) // useState
69
+ const { sidebar } = useAppStore() // useSyncExternalStore — DIFFERENT TYPE
70
+ }
71
+
72
+ // FIXED: Keep original hooks, don't insert or change types
73
+ function App() {
74
+ const [a, setA] = useState(false) // position 1 — unchanged
75
+ const [b, setB] = useState('home') // position 2 — unchanged
76
+ // ... all original hooks in original order
77
+ // Add new hooks ONLY at the end, or extract into child components
78
+ }
79
+ ```
80
+
81
+ ## Implementation Steps
82
+
83
+ 1. Read the error: note the hook position number and the type mismatch
84
+ 2. Count hooks in the component top-to-bottom to find which hook changed
85
+ 3. Identify root cause: insertion, type change, or conditional
86
+ 4. Fix: revert the change, move new hooks to end, or extract into child component
87
+ 5. Clear Vite cache: `rm -rf node_modules/.vite`
88
+ 6. Kill Vite dev server and restart fresh
89
+ 7. Hard refresh browser (Ctrl+Shift+R)
90
+
91
+ ## When to Use
92
+
93
+ - Black screen after code changes in a React component
94
+ - "Rendered more/fewer hooks" error in console
95
+ - Migrating from local state to external stores (Zustand, Jotai, Redux)
96
+ - Adding memoization (`useMemo`/`useCallback`) to large components
97
+ - Any HMR-related mysterious crashes
98
+
99
+ ## When NOT to Use
100
+
101
+ - Build errors (not a hooks issue)
102
+ - Runtime errors with stack traces pointing to business logic
103
+ - SSR hydration mismatches (different root cause)
104
+
105
+ ## Common Mistakes
106
+
107
+ - Thinking `Ctrl+Shift+R` is enough — Vite's `.vite/` directory cache persists across browser refreshes
108
+ - Amending the fix by adding `useMemo` "at the end" but inside a conditional — hooks can't be inside conditionals
109
+ - Replacing `useState` with `useRef` and thinking it's safe — `useRef` IS a hook, changing from `useState` to `useRef` at the same position also violates order rules
110
+ - Not killing the Vite dev server — HMR may continue serving cached modules even after file changes
111
+
112
+ ## Recovery Checklist
113
+
114
+ ```bash
115
+ # 1. Revert the problematic hook changes
116
+ git diff src/App.tsx # Identify what changed
117
+
118
+ # 2. Clear ALL caches
119
+ rm -rf node_modules/.vite
120
+
121
+ # 3. Kill Vite completely
122
+ taskkill //F //IM node.exe # Windows
123
+ # kill $(lsof -ti:5173) # Mac/Linux
124
+
125
+ # 4. Restart fresh
126
+ npm run dev
127
+
128
+ # 5. Hard refresh browser
129
+ # Ctrl+Shift+R
130
+ ```
131
+
132
+ ## Related Skills
133
+
134
+ - liveclock-extraction - Extract state to avoid hooks in large components
135
+ - use-visible-interval - Custom hook that's safe to add (leaf components only)
136
+
137
+ ## References
138
+
139
+ - React docs: "Rules of Hooks" — hooks must be called in the same order every render
140
+ - Vite docs: "Dependency Pre-Bundling" — `.vite/` cache behavior
141
+ - Contributed from: claude-mission-control App.tsx (black screen crash from hooks order violation)