@thierrynakoa/fire-flow 12.2.1 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -455
  4. package/TROUBLESHOOTING.md +264 -264
  5. package/agents/fire-debugger.md +54 -0
  6. package/agents/fire-executor.md +1610 -1033
  7. package/agents/fire-fact-checker.md +1 -1
  8. package/agents/fire-planner.md +85 -17
  9. package/agents/fire-project-researcher.md +1 -1
  10. package/agents/fire-researcher.md +4 -22
  11. package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
  12. package/agents/fire-reviewer.md +552 -499
  13. package/agents/fire-verifier.md +114 -19
  14. package/bin/cli.js +18 -101
  15. package/commands/fire-0-orient.md +2 -2
  16. package/commands/fire-1a-new.md +50 -15
  17. package/commands/fire-1c-setup.md +33 -5
  18. package/commands/fire-1d-discuss.md +87 -1
  19. package/commands/fire-2-plan.md +556 -527
  20. package/commands/fire-3-execute.md +2046 -1356
  21. package/commands/fire-4-verify.md +975 -906
  22. package/commands/fire-5-handoff.md +46 -5
  23. package/commands/fire-6-resume.md +2 -31
  24. package/commands/fire-add-new-skill.md +138 -19
  25. package/commands/fire-autonomous.md +14 -2
  26. package/commands/fire-complete-milestone.md +1 -1
  27. package/commands/fire-cost.md +179 -183
  28. package/commands/fire-debug.md +1 -6
  29. package/commands/fire-loop-resume.md +2 -2
  30. package/commands/fire-loop-stop.md +1 -1
  31. package/commands/fire-loop.md +2 -15
  32. package/commands/fire-map-codebase.md +1 -1
  33. package/commands/fire-migrate-database.md +548 -0
  34. package/commands/fire-new-milestone.md +1 -1
  35. package/commands/fire-reflect.md +1 -2
  36. package/commands/fire-research.md +142 -21
  37. package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
  38. package/commands/fire-scaffold.md +297 -0
  39. package/commands/fire-search.md +1 -2
  40. package/commands/fire-security-scan.md +483 -484
  41. package/commands/fire-setup.md +359 -0
  42. package/commands/fire-skill.md +770 -0
  43. package/commands/fire-skills-diff.md +506 -506
  44. package/commands/fire-skills-history.md +388 -388
  45. package/commands/fire-skills-rollback.md +7 -7
  46. package/commands/fire-skills-sync.md +470 -470
  47. package/commands/fire-test.md +5 -5
  48. package/commands/fire-todos.md +1 -1
  49. package/commands/fire-update.md +5 -5
  50. package/commands/fire-validate-skills.md +282 -0
  51. package/commands/fire-vuln-scan.md +492 -493
  52. package/hooks/run-hook.sh +8 -8
  53. package/hooks/run-session-end.sh +7 -7
  54. package/hooks/session-end.sh +90 -90
  55. package/hooks/session-start.sh +1 -1
  56. package/package.json +4 -24
  57. package/plugin.json +7 -7
  58. package/references/autonomy-levels.md +235 -0
  59. package/references/behavioral-directives.md +95 -3
  60. package/references/blocker-tracking.md +1 -1
  61. package/references/circuit-breaker.md +93 -2
  62. package/references/context-engineering.md +227 -9
  63. package/references/honesty-protocols.md +70 -1
  64. package/references/issue-to-pr-pipeline.md +149 -150
  65. package/references/metrics-and-trends.md +1 -2
  66. package/references/research-improvements.md +4 -108
  67. package/references/sdlc-mapping.md +73 -0
  68. package/references/state-machine.md +151 -0
  69. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  70. package/skills-library/SKILLS-INDEX.md +57 -558
  71. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  72. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  73. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  74. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  75. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  76. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  77. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  78. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  79. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  80. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  81. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  82. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  83. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  84. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  85. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  86. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  87. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  88. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  89. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  90. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  91. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  92. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  93. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  94. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  95. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  96. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  97. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  98. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  99. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  100. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  101. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  102. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  103. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  104. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  105. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  106. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  107. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  108. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  109. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  110. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  111. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  112. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  113. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  114. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  115. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  116. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  117. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  118. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  119. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  120. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  121. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  122. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  123. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  124. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  125. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  126. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  127. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  128. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  129. package/skills-library/_quarantine/README.md +30 -0
  130. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  131. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  132. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  133. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  134. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  135. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  136. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  137. package/skills-library/appointment-scheduler-design.md +423 -0
  138. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  139. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  140. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  141. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  142. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  143. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  144. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  145. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  146. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  151. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  152. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  153. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  154. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  155. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  156. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  157. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  158. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  159. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  160. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  161. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  162. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  163. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  164. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  165. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  166. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  167. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  168. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  169. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  170. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  171. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  172. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  173. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  174. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  175. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  176. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  177. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  178. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  179. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  180. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  182. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  183. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  184. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  185. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  186. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  187. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  188. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  189. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  190. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  191. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  192. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  193. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  194. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  195. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  196. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  197. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  198. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  199. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  200. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  201. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  202. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  203. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  204. package/skills-library/database-solutions/normalization-validator.md +778 -0
  205. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  206. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  207. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  208. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  209. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  210. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  211. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  212. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  213. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  215. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  216. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  217. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  218. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  219. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  220. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  221. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  222. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  223. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  224. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  225. package/skills-library/deployment-security/SECURITY.md +41 -0
  226. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  227. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  228. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  229. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  230. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  231. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  232. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  233. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  234. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  235. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  236. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  237. package/skills-library/deployment-security/vps-deployment.md +135 -0
  238. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  239. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  240. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  241. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  242. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  243. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  244. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  245. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  246. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  247. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  248. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  249. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  250. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  251. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  252. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  253. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  254. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  255. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  256. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  257. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  258. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  259. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  260. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  261. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  262. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  263. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  264. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  265. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  266. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  267. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  268. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  272. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  273. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  274. package/skills-library/excalidraw-diagrams/README.md +178 -0
  275. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  276. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  277. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  278. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  279. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  280. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  281. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  282. package/skills-library/infrastructure/observability-designer.md +264 -0
  283. package/skills-library/infrastructure/performance-profiler.md +621 -0
  284. package/skills-library/installer-wizard-patterns.md +249 -0
  285. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  286. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  287. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  288. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  289. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  290. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  291. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  293. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  294. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  295. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  297. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  299. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  300. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  301. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  302. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  303. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  304. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  305. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  306. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  307. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  308. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  313. package/skills-library/marketing/campaign-analytics.md +97 -0
  314. package/skills-library/marketing/content-creator.md +105 -0
  315. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  316. package/skills-library/marketing/social-media-analyzer.md +81 -0
  317. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  318. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  319. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  320. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  321. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  322. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  323. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  324. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  325. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  326. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  327. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  328. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  329. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  330. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  331. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  332. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  333. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  334. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  335. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  336. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  337. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  338. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  339. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  340. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  341. package/skills-library/parallel-debug/SKILL.md +60 -0
  342. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  343. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  344. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  345. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  346. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  347. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  348. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  349. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  350. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  351. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  352. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  353. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  354. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  355. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  356. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  357. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  358. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  359. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  360. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  361. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  362. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  363. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  364. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  365. package/skills-library/security/admin-deletion-safety.md +396 -0
  366. package/skills-library/security/application-vuln-patterns.md +477 -0
  367. package/skills-library/security/env-secrets-manager.md +686 -0
  368. package/skills-library/security/secure-ai-application-templates.md +347 -0
  369. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  370. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  371. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  372. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  373. package/skills-library/system-context/SKILL.md +40 -0
  374. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  375. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  376. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  377. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  378. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  379. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  380. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  381. package/skills-library/toolbox/SKILL.md +84 -0
  382. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  383. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  384. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  385. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  386. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  387. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  388. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  389. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  390. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  391. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  392. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  393. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  406. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  407. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  408. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  409. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  410. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  411. package/skills-library/wordpress-style-theme-components.md +1526 -0
  412. package/templates/ASSUMPTIONS.md +1 -1
  413. package/templates/DECISION_LOG.md +0 -1
  414. package/templates/phase-prompt.md +1 -1
  415. package/templates/phoenix-comparison.md +6 -6
  416. package/templates/skill-api-integration.md +106 -0
  417. package/templates/skill-architecture-pattern.md +92 -0
  418. package/templates/skill-debug-pattern.md +98 -0
  419. package/templates/skill-devops-recipe.md +107 -0
  420. package/templates/skill-general.md +65 -0
  421. package/templates/skill-ui-component.md +113 -0
  422. package/tools/uat-runner.py +179 -0
  423. package/version.json +7 -3
  424. package/workflows/handoff-session.md +2 -2
  425. package/workflows/new-project.md +2 -2
  426. package/workflows/plan-phase.md +1 -1
  427. package/.claude-plugin/plugin.json +0 -64
  428. package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
  429. package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
  430. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
  431. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
  432. package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
  433. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
  434. package/skills-library/specialists/api-architecture/api-designer.md +0 -49
  435. package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
  436. package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
  437. package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
  438. package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
  439. package/skills-library/specialists/backend/django-expert.md +0 -52
  440. package/skills-library/specialists/backend/fastapi-expert.md +0 -52
  441. package/skills-library/specialists/backend/laravel-specialist.md +0 -52
  442. package/skills-library/specialists/backend/nestjs-expert.md +0 -51
  443. package/skills-library/specialists/backend/rails-expert.md +0 -53
  444. package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
  445. package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
  446. package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
  447. package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
  448. package/skills-library/specialists/data-ml/rag-architect.md +0 -51
  449. package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
  450. package/skills-library/specialists/frontend/angular-architect.md +0 -52
  451. package/skills-library/specialists/frontend/flutter-expert.md +0 -51
  452. package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
  453. package/skills-library/specialists/frontend/react-native-expert.md +0 -50
  454. package/skills-library/specialists/frontend/vue-expert.md +0 -51
  455. package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
  456. package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
  457. package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
  458. package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
  459. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
  460. package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
  461. package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
  462. package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
  463. package/skills-library/specialists/languages/cpp-pro.md +0 -74
  464. package/skills-library/specialists/languages/csharp-developer.md +0 -69
  465. package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
  466. package/skills-library/specialists/languages/golang-pro.md +0 -51
  467. package/skills-library/specialists/languages/java-architect.md +0 -49
  468. package/skills-library/specialists/languages/javascript-pro.md +0 -68
  469. package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
  470. package/skills-library/specialists/languages/php-pro.md +0 -49
  471. package/skills-library/specialists/languages/python-pro.md +0 -52
  472. package/skills-library/specialists/languages/react-expert.md +0 -51
  473. package/skills-library/specialists/languages/rust-engineer.md +0 -50
  474. package/skills-library/specialists/languages/sql-pro.md +0 -56
  475. package/skills-library/specialists/languages/swift-expert.md +0 -69
  476. package/skills-library/specialists/languages/typescript-pro.md +0 -51
  477. package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
  478. package/skills-library/specialists/platform/embedded-systems.md +0 -53
  479. package/skills-library/specialists/platform/game-developer.md +0 -53
  480. package/skills-library/specialists/platform/salesforce-developer.md +0 -53
  481. package/skills-library/specialists/platform/shopify-expert.md +0 -49
  482. package/skills-library/specialists/platform/wordpress-pro.md +0 -49
  483. package/skills-library/specialists/quality/code-documenter.md +0 -51
  484. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  485. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  486. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  487. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  488. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  489. package/skills-library/specialists/quality/spec-miner.md +0 -56
  490. package/skills-library/specialists/quality/test-master.md +0 -65
  491. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  492. package/skills-library/specialists/security/security-reviewer.md +0 -53
  493. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  494. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  495. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  496. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  497. package/skills-library/specialists/workflow/the-fool.md +0 -62
  498. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  499. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,569 @@
1
+ ---
2
+ name: er-diagram-components
3
+ category: database-solutions
4
+ version: 1.0.0
5
+ contributed: 2026-03-09
6
+ contributor: fire-research
7
+ last_updated: 2026-03-09
8
+ tags: [erd, entity-relationship, database-design, react-flow, crow-foot, chen-notation]
9
+ difficulty: medium
10
+ ---
11
+
12
+ # ER Diagram Components
13
+
14
+
15
+ ## Problem
16
+
17
+ Building a visual ERD editor requires precise knowledge of all ER diagram components, their visual representations, notation variants, and how they map to UI framework primitives (React Flow nodes/edges). Without a canonical reference, developers mix notation systems, miss attribute variants, or implement incomplete cardinality symbols — producing diagrams that look professional but encode incorrect semantics.
18
+
19
+ ## Solution Pattern
20
+
21
+ Implement ER diagrams as a layered system:
22
+
23
+ 1. **Data model layer** — TypeScript types for entities, attributes, relationships, cardinality, participation
24
+ 2. **Notation layer** — Rendering rules that map the data model to visual shapes (Chen or Crow's Foot)
25
+ 3. **React Flow layer** — Custom node components, edge types, SVG markers, and handle placement
26
+ 4. **Validation layer** — Cardinality checks, participation constraint enforcement, normalization warnings
27
+
28
+ Start with Crow's Foot notation (modern, compact, professional standard). Add Chen as an alternate view. The textbook explicitly notes the newer ERD style (attributes inside entities) is preferred because it reduces visual clutter — "if depicted in the older model, we would see 21 attribute ovals and a minimum of 8 actions."
29
+
30
+ ---
31
+
32
+ ## Entity Types
33
+
34
+ ### Strong Entity
35
+ - **Visual:** Rectangle with entity name as header
36
+ - **Definition:** Has its own primary key. Can exist independently.
37
+ - **React Flow node type:** `entityNode` — rectangular card with name header + attribute rows
38
+
39
+ ### Weak Entity
40
+ - **Visual:** Double-bordered rectangle
41
+ - **Definition:** Cannot exist without its identifying (owner) entity. Requires partial key + owner's PK for full identification.
42
+ - **React Flow node type:** `weakEntityNode` — same as entityNode but with `border: double 3px` or nested border via CSS `outline` + `border`
43
+ - **Implementation note:** Always paired with an identifying relationship (double diamond in Chen, or a labeled edge with "ID" marker in Crow's Foot)
44
+
45
+ ```typescript
46
+ // Entity data model
47
+ interface EREntity {
48
+ id: string;
49
+ name: string;
50
+ type: 'strong' | 'weak';
51
+ attributes: ERAttribute[];
52
+ position: { x: number; y: number };
53
+ // Weak entity fields
54
+ ownerEntityId?: string; // FK to identifying entity
55
+ partialKeyAttributes?: string[]; // attribute IDs forming partial key
56
+ }
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Attribute Types
62
+
63
+ Six variants exist. In Crow's Foot, all render as rows inside the entity box. In Chen, each has a distinct oval shape.
64
+
65
+ ### 1. Simple Attribute
66
+ - **Chen visual:** Single oval connected by line to entity
67
+ - **Crow's Foot visual:** Plain row inside entity box (e.g., `first_name VARCHAR(50)`)
68
+ - **Example:** `email`, `phone`, `salary`
69
+
70
+ ### 2. Key Attribute (Primary Key)
71
+ - **Chen visual:** Oval with **underlined** text
72
+ - **Crow's Foot visual:** Row with **PK** prefix marker, bold or key icon
73
+ - **Example:** `student_id`, `order_id`
74
+ - **Rendering:** Always rendered first/top in entity box
75
+
76
+ ### 3. Composite Attribute
77
+ - **Chen visual:** Oval that branches into sub-ovals (tree structure)
78
+ - **Crow's Foot visual:** Flattened to leaf-level columns inside entity box (e.g., `Address` becomes `street`, `city`, `state`, `zip`)
79
+ - **Example:** `Name` -> `FirstName`, `LastName`; `Address` -> `Street`, `City`, `State`, `Zip`
80
+ - **DDL mapping:** Only leaf attributes become columns
81
+
82
+ ### 4. Multivalued Attribute
83
+ - **Chen visual:** Double-bordered oval
84
+ - **Crow's Foot visual:** Not shown inline — generates a **separate table** with FK back to entity
85
+ - **Example:** `PhoneNumbers` (a person can have multiple), `Skills`, `Colors`
86
+ - **DDL mapping:** Creates separate table: `entity_attribute(entity_pk FK, attribute_value, PRIMARY KEY(entity_pk, attribute_value))`
87
+
88
+ ### 5. Derived Attribute
89
+ - **Chen visual:** Dashed-bordered oval
90
+ - **Crow's Foot visual:** Typically omitted or shown with `(derived)` annotation / italic text
91
+ - **Example:** `Age` derived from `DateOfBirth`, `TotalPrice` derived from `Quantity * UnitPrice`
92
+ - **DDL mapping:** Usually NOT stored. Implemented as computed column (`GENERATED ALWAYS AS`) or application-level calculation.
93
+
94
+ ### 6. Partial Key (Weak Entity Discriminator)
95
+ - **Chen visual:** Oval with **dashed underline**
96
+ - **Crow's Foot visual:** Row with partial-key marker inside weak entity box
97
+ - **Example:** In a weak entity `Dependent` owned by `Employee`, the partial key `dependent_name` uniquely identifies within one employee but not globally
98
+ - **DDL mapping:** Combined with owner PK to form composite primary key
99
+
100
+ ```typescript
101
+ // Attribute data model
102
+ interface ERAttribute {
103
+ id: string;
104
+ name: string;
105
+ type: 'simple' | 'key' | 'composite' | 'multivalued' | 'derived' | 'partial-key';
106
+ dataType: string; // VARCHAR(50), INTEGER, etc.
107
+ nullable: boolean;
108
+ defaultValue?: string;
109
+ children?: ERAttribute[]; // For composite attributes
110
+ derivedFrom?: string; // Expression for derived attributes
111
+ }
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Relationship Types
117
+
118
+ ### Unary (Recursive)
119
+ - **Definition:** Entity relates to itself
120
+ - **Example:** `Employee` manages `Employee`, `Person` is_married_to `Person`
121
+ - **React Flow:** Self-loop edge from entity back to itself (use `sourceHandle` and `targetHandle` on different sides of the same node)
122
+ - **Cardinality:** Can be 1:1, 1:N, or M:N (e.g., manager is 1:N, married_to is 1:1)
123
+
124
+ ### Binary
125
+ - **Definition:** Two entities connected. Most common type (>90% of relationships).
126
+ - **Example:** `Student` enrolls_in `Course`, `Order` belongs_to `Customer`
127
+ - **React Flow:** Standard edge between two entity nodes
128
+
129
+ ### N-ary (Ternary+)
130
+ - **Definition:** Three or more entities in a single relationship
131
+ - **Example:** `Doctor` prescribes `Drug` to `Patient` (ternary — the relationship only makes sense with all three)
132
+ - **React Flow:** Represented as a diamond node (relationship node) with edges to 3+ entities, OR converted to a junction table entity in Crow's Foot
133
+ - **DDL mapping:** Always becomes a junction table with FKs to all participating entities
134
+
135
+ ### Cardinality Constraints
136
+
137
+ | Notation | Meaning | Example |
138
+ |----------|---------|---------|
139
+ | **1:1** | One-to-one | Person HAS Passport |
140
+ | **1:N** | One-to-many | Department HAS Employees |
141
+ | **M:N** | Many-to-many | Student ENROLLS Course |
142
+
143
+ ### Participation Constraints
144
+
145
+ | Constraint | Visual (Chen) | Visual (Crow's Foot) | Meaning |
146
+ |-----------|---------------|----------------------|---------|
147
+ | **Total (mandatory)** | Double line | Bar symbol `\|\|` on entity side | Every instance MUST participate |
148
+ | **Partial (optional)** | Single line | Circle `O` on entity side | Instances MAY participate |
149
+
150
+ **Combined reading (Crow's Foot):** Read from each entity toward the relationship. A `Customer` with `\|\|` (total) on its side and `\|<` (one-or-many) on the `Order` side means: "each customer MUST have one or more orders."
151
+
152
+ ```typescript
153
+ // Relationship data model
154
+ interface ERRelationship {
155
+ id: string;
156
+ name: string;
157
+ type: 'unary' | 'binary' | 'ternary' | 'n-ary';
158
+ entities: {
159
+ entityId: string;
160
+ role?: string; // "manager", "subordinate" for recursive
161
+ cardinality: '1' | 'N' | 'M';
162
+ participation: 'total' | 'partial';
163
+ }[];
164
+ attributes?: ERAttribute[]; // Relationship can have attributes (e.g., enrollment_date)
165
+ isIdentifying?: boolean; // True for weak entity identifying relationships
166
+ }
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Notation Systems
172
+
173
+ ### Chen Notation (Peter Chen, 1976)
174
+
175
+ The original academic notation. Best for teaching and conceptual modeling.
176
+
177
+ **Node types required (5):**
178
+
179
+ | Shape | Meaning | CSS/SVG |
180
+ |-------|---------|---------|
181
+ | Rectangle | Strong Entity | `border: 2px solid` |
182
+ | Double Rectangle | Weak Entity | `border: 2px solid; outline: 2px solid; outline-offset: 3px` |
183
+ | Oval/Ellipse | Attribute | `border-radius: 50%; border: 2px solid` |
184
+ | Diamond | Relationship | `transform: rotate(45deg)` on inner div, or SVG `<polygon>` |
185
+ | Double Diamond | Weak/Identifying Relationship | Diamond with double border |
186
+
187
+ **Attribute variants (6):**
188
+
189
+ | Variant | Visual Modifier |
190
+ |---------|----------------|
191
+ | Simple | Plain oval |
192
+ | Key | Underlined text (`text-decoration: underline`) |
193
+ | Composite | Oval with child ovals branching off |
194
+ | Multivalued | Double-bordered oval (`border: double 3px`) |
195
+ | Derived | Dashed border (`border-style: dashed`) |
196
+ | Partial Key | Dashed underline (`text-decoration: underline; text-decoration-style: dashed`) |
197
+
198
+ **Line styles:**
199
+ - Single line = partial participation
200
+ - Double line = total participation
201
+ - Cardinality labels (1, M, N) placed near entity on the connecting line
202
+
203
+ ### Crow's Foot Notation (Modern Industry Standard)
204
+
205
+ Used by ERwin, Lucidchart, dbdiagram.io, draw.io, and most professional tools.
206
+
207
+ **Node types required (1):**
208
+ - Entity box: Rectangle with header (entity name) + rows (attributes with PK/FK markers and data types)
209
+
210
+ **Line-end symbols (4):**
211
+
212
+ | Symbol | Name | Meaning | Visual Description |
213
+ |--------|------|---------|-------------------|
214
+ | `\|\|` | Exactly one | Mandatory single | Two short perpendicular bars |
215
+ | `O\|` | Zero or one | Optional single | Circle + perpendicular bar |
216
+ | `\|<` | One or many | Mandatory multiple | Bar + crow's foot (three-pronged fork) |
217
+ | `O<` | Zero or many | Optional multiple | Circle + crow's foot |
218
+
219
+ **Reading convention:** Each end of the line describes the cardinality as seen FROM the other entity. The symbol closest to an entity describes how many of THAT entity participate.
220
+
221
+ **SVG Marker Definitions for Crow's Foot Endpoints:**
222
+
223
+ ```svg
224
+ <!-- Define these once in an <svg> <defs> block at the app root -->
225
+ <svg style="position: absolute; width: 0; height: 0;">
226
+ <defs>
227
+ <!-- Exactly One: || (two vertical bars) -->
228
+ <marker
229
+ id="crowsfoot-one"
230
+ viewBox="0 0 20 20"
231
+ refX="20"
232
+ refY="10"
233
+ markerWidth="20"
234
+ markerHeight="20"
235
+ orient="auto-start-reverse"
236
+ >
237
+ <line x1="14" y1="2" x2="14" y2="18" stroke="currentColor" strokeWidth="2" />
238
+ <line x1="20" y1="2" x2="20" y2="18" stroke="currentColor" strokeWidth="2" />
239
+ </marker>
240
+
241
+ <!-- Zero or One: O| (circle + bar) -->
242
+ <marker
243
+ id="crowsfoot-zero-one"
244
+ viewBox="0 0 30 20"
245
+ refX="30"
246
+ refY="10"
247
+ markerWidth="30"
248
+ markerHeight="20"
249
+ orient="auto-start-reverse"
250
+ >
251
+ <circle cx="10" cy="10" r="6" fill="white" stroke="currentColor" strokeWidth="2" />
252
+ <line x1="24" y1="2" x2="24" y2="18" stroke="currentColor" strokeWidth="2" />
253
+ </marker>
254
+
255
+ <!-- One or Many: |< (bar + crow's foot fork) -->
256
+ <marker
257
+ id="crowsfoot-many"
258
+ viewBox="0 0 20 20"
259
+ refX="20"
260
+ refY="10"
261
+ markerWidth="20"
262
+ markerHeight="20"
263
+ orient="auto-start-reverse"
264
+ >
265
+ <line x1="2" y1="2" x2="2" y2="18" stroke="currentColor" strokeWidth="2" />
266
+ <polyline points="20,2 2,10 20,18" fill="none" stroke="currentColor" strokeWidth="2" />
267
+ </marker>
268
+
269
+ <!-- Zero or Many: O< (circle + crow's foot fork) -->
270
+ <marker
271
+ id="crowsfoot-zero-many"
272
+ viewBox="0 0 30 20"
273
+ refX="30"
274
+ refY="10"
275
+ markerWidth="30"
276
+ markerHeight="20"
277
+ orient="auto-start-reverse"
278
+ >
279
+ <circle cx="8" cy="10" r="6" fill="white" stroke="currentColor" strokeWidth="2" />
280
+ <polyline points="30,2 14,10 30,18" fill="none" stroke="currentColor" strokeWidth="2" />
281
+ </marker>
282
+ </defs>
283
+ </svg>
284
+ ```
285
+
286
+ **Applying markers to React Flow edges:**
287
+
288
+ ```typescript
289
+ // Map cardinality + participation to marker IDs
290
+ function getMarkerIds(
291
+ cardinality: '1' | 'N' | 'M',
292
+ participation: 'total' | 'partial'
293
+ ): string {
294
+ if (cardinality === '1' && participation === 'total') return 'crowsfoot-one';
295
+ if (cardinality === '1' && participation === 'partial') return 'crowsfoot-zero-one';
296
+ if (participation === 'total') return 'crowsfoot-many';
297
+ return 'crowsfoot-zero-many';
298
+ }
299
+ ```
300
+
301
+ ---
302
+
303
+ ## React Flow Implementation
304
+
305
+ ### DatabaseSchemaNode (Crow's Foot Entity)
306
+
307
+ Based on React Flow's official `DatabaseSchemaNode` component pattern (reactflow.dev/ui/components/database-schema-node) and the ChartDB architecture (React Flow + shadcn/ui + TypeScript).
308
+
309
+ ```typescript
310
+ import { Handle, Position, type NodeProps } from '@xyflow/react';
311
+
312
+ interface Column {
313
+ id: string;
314
+ name: string;
315
+ type: string;
316
+ isPrimaryKey: boolean;
317
+ isForeignKey: boolean;
318
+ isNullable: boolean;
319
+ defaultValue?: string;
320
+ }
321
+
322
+ interface EntityNodeData {
323
+ name: string;
324
+ type: 'strong' | 'weak';
325
+ columns: Column[];
326
+ }
327
+
328
+ export function EntityNode({ data }: NodeProps<EntityNodeData>) {
329
+ const borderStyle = data.type === 'weak'
330
+ ? 'border-2 border-gray-800 outline outline-2 outline-offset-2 outline-gray-800'
331
+ : 'border-2 border-gray-800';
332
+
333
+ return (
334
+ <div className={`bg-white rounded-lg shadow-md min-w-[200px] ${borderStyle}`}>
335
+ {/* Entity name header */}
336
+ <div className="bg-gray-800 text-white px-3 py-2 rounded-t-md font-semibold text-sm">
337
+ {data.name}
338
+ </div>
339
+
340
+ {/* Column rows with per-column handles */}
341
+ <div className="divide-y divide-gray-200">
342
+ {data.columns.map((col, index) => (
343
+ <div
344
+ key={col.id}
345
+ className="relative flex items-center gap-2 px-3 py-1.5 text-xs font-mono"
346
+ >
347
+ {/* Left handle — for incoming FK connections */}
348
+ <Handle
349
+ type="target"
350
+ position={Position.Left}
351
+ id={`${col.id}-target`}
352
+ style={{ top: '50%' }}
353
+ className="!w-2 !h-2"
354
+ />
355
+
356
+ {/* PK/FK markers */}
357
+ <span className="text-gray-400 w-6 text-right">
358
+ {col.isPrimaryKey && <span className="text-yellow-600">PK</span>}
359
+ {col.isForeignKey && <span className="text-blue-600">FK</span>}
360
+ </span>
361
+
362
+ {/* Column name */}
363
+ <span className={col.isPrimaryKey ? 'font-bold' : ''}>
364
+ {col.name}
365
+ </span>
366
+
367
+ {/* Data type */}
368
+ <span className="ml-auto text-gray-400">
369
+ {col.type}
370
+ {!col.isNullable && ' NN'}
371
+ </span>
372
+
373
+ {/* Right handle — for outgoing PK connections */}
374
+ <Handle
375
+ type="source"
376
+ position={Position.Right}
377
+ id={`${col.id}-source`}
378
+ style={{ top: '50%' }}
379
+ className="!w-2 !h-2"
380
+ />
381
+ </div>
382
+ ))}
383
+ </div>
384
+ </div>
385
+ );
386
+ }
387
+ ```
388
+
389
+ ### Per-Column Handle Placement
390
+
391
+ The critical pattern from React Flow's official DatabaseSchemaNode: each column row gets its own `Handle` pair (source + target). This enables **field-level relationship connections** — an FK column connects directly to the PK column it references, not just entity-to-entity.
392
+
393
+ ```typescript
394
+ // Handle IDs follow the pattern: {columnId}-source / {columnId}-target
395
+ // Edge sourceHandle and targetHandle reference these IDs
396
+
397
+ const edge = {
398
+ id: 'order-customer-fk',
399
+ source: 'orders-entity', // source node
400
+ target: 'customers-entity', // target node
401
+ sourceHandle: 'customer_id-source', // FK column handle
402
+ targetHandle: 'id-target', // PK column handle
403
+ markerStart: 'crowsfoot-many', // many orders...
404
+ markerEnd: 'crowsfoot-one', // ...to one customer
405
+ label: 'belongs_to',
406
+ };
407
+ ```
408
+
409
+ ### Custom Edge with Crow's Foot Markers
410
+
411
+ ```typescript
412
+ import { BaseEdge, getSmoothStepPath, type EdgeProps } from '@xyflow/react';
413
+
414
+ interface RelationshipEdgeData {
415
+ label?: string;
416
+ sourceCardinality: '1' | 'N' | 'M';
417
+ sourceParticipation: 'total' | 'partial';
418
+ targetCardinality: '1' | 'N' | 'M';
419
+ targetParticipation: 'total' | 'partial';
420
+ }
421
+
422
+ export function RelationshipEdge(props: EdgeProps<RelationshipEdgeData>) {
423
+ const [edgePath, labelX, labelY] = getSmoothStepPath({
424
+ sourceX: props.sourceX,
425
+ sourceY: props.sourceY,
426
+ targetX: props.targetX,
427
+ targetY: props.targetY,
428
+ sourcePosition: props.sourcePosition,
429
+ targetPosition: props.targetPosition,
430
+ borderRadius: 8,
431
+ });
432
+
433
+ const sourceMarker = getMarkerIds(
434
+ props.data?.sourceCardinality ?? '1',
435
+ props.data?.sourceParticipation ?? 'total'
436
+ );
437
+ const targetMarker = getMarkerIds(
438
+ props.data?.targetCardinality ?? 'N',
439
+ props.data?.targetParticipation ?? 'total'
440
+ );
441
+
442
+ return (
443
+ <>
444
+ <BaseEdge
445
+ path={edgePath}
446
+ markerStart={`url(#${sourceMarker})`}
447
+ markerEnd={`url(#${targetMarker})`}
448
+ style={{ stroke: '#374151', strokeWidth: 2 }}
449
+ />
450
+ {props.data?.label && (
451
+ <text
452
+ x={labelX}
453
+ y={labelY - 10}
454
+ textAnchor="middle"
455
+ className="fill-gray-600 text-xs"
456
+ >
457
+ {props.data.label}
458
+ </text>
459
+ )}
460
+ </>
461
+ );
462
+ }
463
+ ```
464
+
465
+ ### Registering Node and Edge Types
466
+
467
+ ```typescript
468
+ import { ReactFlow } from '@xyflow/react';
469
+ import { EntityNode } from './nodes/EntityNode';
470
+ import { RelationshipEdge } from './edges/RelationshipEdge';
471
+
472
+ const nodeTypes = {
473
+ entity: EntityNode,
474
+ // Add Chen notation nodes if supporting both:
475
+ // attribute: AttributeOvalNode,
476
+ // relationship: RelationshipDiamondNode,
477
+ };
478
+
479
+ const edgeTypes = {
480
+ relationship: RelationshipEdge,
481
+ };
482
+
483
+ function ERDEditor() {
484
+ return (
485
+ <>
486
+ {/* SVG defs for crow's foot markers — render once at app root */}
487
+ <CrowsFootMarkerDefs />
488
+
489
+ <ReactFlow
490
+ nodeTypes={nodeTypes}
491
+ edgeTypes={edgeTypes}
492
+ nodes={nodes}
493
+ edges={edges}
494
+ fitView
495
+ />
496
+ </>
497
+ );
498
+ }
499
+ ```
500
+
501
+ ---
502
+
503
+ ## AI Integration Notes
504
+
505
+ ### LLM Cardinality Weakness (Cogent Education 2025)
506
+
507
+ The study "Challenges and Feasibility of Multimodal LLMs in ER Diagram Evaluation" found:
508
+
509
+ 1. **LLMs struggle most with cardinality interpretation.** When given an ER diagram image, models frequently misidentify 1:N as M:N or confuse participation constraints (total vs partial).
510
+
511
+ 2. **Chain-of-Thought (CoT) prompting improves Chen notation parsing** — asking the model to "first identify each entity, then list relationships, then determine cardinality for each" produced more accurate results.
512
+
513
+ 3. **CoT has mixed effects on Crow's Foot notation** — the compact visual format with line-end symbols is harder for vision models to parse reliably. The fork/bar/circle symbols are often misread.
514
+
515
+ 4. **Implication for ERD editors with AI features:**
516
+ - Always validate AI-generated cardinality with human confirmation
517
+ - When using AI to suggest relationships, present cardinality as a dropdown the user must explicitly confirm — never auto-commit
518
+ - If implementing AI-powered "describe your schema in plain text" features, use CoT prompting internally and present results as editable suggestions
519
+ - Store cardinality as explicit enum values in the data model, not as visual-only markers
520
+
521
+ ### Recommended AI Integration Pattern
522
+
523
+ ```typescript
524
+ // When AI suggests a relationship, always mark it as unconfirmed
525
+ interface AIRelationshipSuggestion {
526
+ relationship: ERRelationship;
527
+ confidence: number; // 0-1
528
+ reasoning: string; // CoT explanation
529
+ confirmed: false; // MUST be confirmed by user
530
+ }
531
+
532
+ // UI should show unconfirmed relationships with dashed lines
533
+ // and a "Confirm cardinality" button/dropdown
534
+ ```
535
+
536
+ ---
537
+
538
+ ## When to Use
539
+
540
+ - Building visual ERD editors with React Flow
541
+ - Implementing database diagramming features in any web application
542
+ - Choosing between Chen and Crow's Foot notation for a diagram tool
543
+ - Mapping ER concepts to React Flow nodes, edges, and handles
544
+ - Defining the data model for a schema design tool
545
+ - Implementing crow's foot line-end markers with SVG
546
+
547
+ ## When NOT to Use
548
+
549
+ - Simple schema documentation (use `sql-ddl-generator` instead)
550
+ - Runtime database operations (query building, connection pooling)
551
+ - Query optimization (indexing strategy, execution plans)
552
+ - Generating Mermaid/DBML text diagrams (use `database-schema-designer` ERD section)
553
+
554
+ ## Related Skills
555
+
556
+ - `er-to-ddl-mapping` — Converting ER diagrams to SQL DDL (the 7 canonical mapping rules)
557
+ - `sql-ddl-generator` — DDL output templates with multi-database type mapping
558
+ - `normalization-validator` — 1NF/2NF/3NF violation detection and fix recommendations
559
+ - `database-schema-designer` — General schema design patterns (Prisma, Drizzle, RLS, seed data)
560
+
561
+ ## References
562
+
563
+ - LibreTexts "Database Design" — Dr. Sarah North, Affordable Learning Georgia (CC BY 4.0), Chapters 6-10
564
+ - Cogent Education 2025 — "Challenges and Feasibility of Multimodal LLMs in ER Diagram Evaluation"
565
+ - React Flow Database Schema Node — reactflow.dev/ui/components/database-schema-node
566
+ - ChartDB — github.com/chartdb/chartdb (React Flow + shadcn/ui + TypeScript ERD tool)
567
+ - DrawDB — github.com/drawdb-io/drawdb (browser-based database diagram editor)
568
+ - relliv/crows-foot-notations — github.com/relliv/crows-foot-notations (SVG symbol reference)
569
+ - Peter Chen, "The Entity-Relationship Model — Toward a Unified View of Data" (1976)