@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,522 @@
1
+ # Database Schema Designer
2
+
3
+ **Tier:** POWERFUL
4
+ **Category:** Engineering
5
+ **Domain:** Data Architecture / Backend
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ Design relational database schemas from requirements and generate migrations, TypeScript/Python types, seed data, RLS policies, and indexes. Handles multi-tenancy, soft deletes, audit trails, versioning, and polymorphic associations.
12
+
13
+ ## Core Capabilities
14
+
15
+ - **Schema design** — normalize requirements into tables, relationships, constraints
16
+ - **Migration generation** — Drizzle, Prisma, TypeORM, Alembic
17
+ - **Type generation** — TypeScript interfaces, Python dataclasses/Pydantic models
18
+ - **RLS policies** — Row-Level Security for multi-tenant apps
19
+ - **Index strategy** — composite indexes, partial indexes, covering indexes
20
+ - **Seed data** — realistic test data generation
21
+ - **ERD generation** — Mermaid diagram from schema
22
+
23
+ ---
24
+
25
+ ## When to Use
26
+
27
+ - Designing a new feature that needs database tables
28
+ - Reviewing a schema for performance or normalization issues
29
+ - Adding multi-tenancy to an existing schema
30
+ - Generating TypeScript types from a Prisma schema
31
+ - Planning a schema migration for a breaking change
32
+
33
+ ---
34
+
35
+ ## Schema Design Process
36
+
37
+ ### Step 1: Requirements → Entities
38
+
39
+ Given requirements:
40
+ > "Users can create projects. Each project has tasks. Tasks can have labels. Tasks can be assigned to users. We need a full audit trail."
41
+
42
+ Extract entities:
43
+ ```
44
+ User, Project, Task, Label, TaskLabel (junction), TaskAssignment, AuditLog
45
+ ```
46
+
47
+ ### Step 2: Identify Relationships
48
+
49
+ ```
50
+ User 1──* Project (owner)
51
+ Project 1──* Task
52
+ Task *──* Label (via TaskLabel)
53
+ Task *──* User (via TaskAssignment)
54
+ User 1──* AuditLog
55
+ ```
56
+
57
+ ### Step 3: Add Cross-cutting Concerns
58
+
59
+ - Multi-tenancy: add `organization_id` to all tenant-scoped tables
60
+ - Soft deletes: add `deleted_at TIMESTAMPTZ` instead of hard deletes
61
+ - Audit trail: add `created_by`, `updated_by`, `created_at`, `updated_at`
62
+ - Versioning: add `version INTEGER` for optimistic locking
63
+
64
+ ---
65
+
66
+ ## Full Schema Example (Task Management SaaS)
67
+
68
+ ### Prisma Schema
69
+
70
+ ```prisma
71
+ // schema.prisma
72
+ generator client {
73
+ provider = "prisma-client-js"
74
+ }
75
+
76
+ datasource db {
77
+ provider = "postgresql"
78
+ url = env("DATABASE_URL")
79
+ }
80
+
81
+ // ── Multi-tenancy ─────────────────────────────────────────────────────────────
82
+
83
+ model Organization {
84
+ id String @id @default(cuid())
85
+ name String
86
+ slug String @unique
87
+ plan Plan @default(FREE)
88
+ createdAt DateTime @default(now()) @map("created_at")
89
+ updatedAt DateTime @updatedAt @map("updated_at")
90
+ deletedAt DateTime? @map("deleted_at")
91
+
92
+ users OrganizationMember[]
93
+ projects Project[]
94
+ auditLogs AuditLog[]
95
+
96
+ @@map("organizations")
97
+ }
98
+
99
+ model OrganizationMember {
100
+ id String @id @default(cuid())
101
+ organizationId String @map("organization_id")
102
+ userId String @map("user_id")
103
+ role OrgRole @default(MEMBER)
104
+ joinedAt DateTime @default(now()) @map("joined_at")
105
+
106
+ organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
107
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
108
+
109
+ @@unique([organizationId, userId])
110
+ @@index([userId])
111
+ @@map("organization_members")
112
+ }
113
+
114
+ model User {
115
+ id String @id @default(cuid())
116
+ email String @unique
117
+ name String?
118
+ avatarUrl String? @map("avatar_url")
119
+ passwordHash String? @map("password_hash")
120
+ emailVerifiedAt DateTime? @map("email_verified_at")
121
+ lastLoginAt DateTime? @map("last_login_at")
122
+ createdAt DateTime @default(now()) @map("created_at")
123
+ updatedAt DateTime @updatedAt @map("updated_at")
124
+ deletedAt DateTime? @map("deleted_at")
125
+
126
+ memberships OrganizationMember[]
127
+ ownedProjects Project[] @relation("ProjectOwner")
128
+ assignedTasks TaskAssignment[]
129
+ comments Comment[]
130
+ auditLogs AuditLog[]
131
+
132
+ @@map("users")
133
+ }
134
+
135
+ // ── Core entities ─────────────────────────────────────────────────────────────
136
+
137
+ model Project {
138
+ id String @id @default(cuid())
139
+ organizationId String @map("organization_id")
140
+ ownerId String @map("owner_id")
141
+ name String
142
+ description String?
143
+ status ProjectStatus @default(ACTIVE)
144
+ settings Json @default("{}")
145
+ createdAt DateTime @default(now()) @map("created_at")
146
+ updatedAt DateTime @updatedAt @map("updated_at")
147
+ deletedAt DateTime? @map("deleted_at")
148
+
149
+ organization Organization @relation(fields: [organizationId], references: [id])
150
+ owner User @relation("ProjectOwner", fields: [ownerId], references: [id])
151
+ tasks Task[]
152
+ labels Label[]
153
+
154
+ @@index([organizationId])
155
+ @@index([organizationId, status])
156
+ @@index([deletedAt])
157
+ @@map("projects")
158
+ }
159
+
160
+ model Task {
161
+ id String @id @default(cuid())
162
+ projectId String @map("project_id")
163
+ title String
164
+ description String?
165
+ status TaskStatus @default(TODO)
166
+ priority Priority @default(MEDIUM)
167
+ dueDate DateTime? @map("due_date")
168
+ position Float @default(0) // For drag-and-drop ordering
169
+ version Int @default(1) // Optimistic locking
170
+ createdById String @map("created_by_id")
171
+ updatedById String @map("updated_by_id")
172
+ createdAt DateTime @default(now()) @map("created_at")
173
+ updatedAt DateTime @updatedAt @map("updated_at")
174
+ deletedAt DateTime? @map("deleted_at")
175
+
176
+ project Project @relation(fields: [projectId], references: [id])
177
+ assignments TaskAssignment[]
178
+ labels TaskLabel[]
179
+ comments Comment[]
180
+ attachments Attachment[]
181
+
182
+ @@index([projectId])
183
+ @@index([projectId, status])
184
+ @@index([projectId, deletedAt])
185
+ @@index([dueDate], where: { deletedAt: null }) // Partial index
186
+ @@map("tasks")
187
+ }
188
+
189
+ // ── Polymorphic attachments ───────────────────────────────────────────────────
190
+
191
+ model Attachment {
192
+ id String @id @default(cuid())
193
+ // Polymorphic association
194
+ entityType String @map("entity_type") // "task" | "comment"
195
+ entityId String @map("entity_id")
196
+ filename String
197
+ mimeType String @map("mime_type")
198
+ sizeBytes Int @map("size_bytes")
199
+ storageKey String @map("storage_key") // S3 key
200
+ uploadedById String @map("uploaded_by_id")
201
+ createdAt DateTime @default(now()) @map("created_at")
202
+
203
+ // Only one concrete relation (task) — polymorphic handled at app level
204
+ task Task? @relation(fields: [entityId], references: [id], map: "attachment_task_fk")
205
+
206
+ @@index([entityType, entityId])
207
+ @@map("attachments")
208
+ }
209
+
210
+ // ── Audit trail ───────────────────────────────────────────────────────────────
211
+
212
+ model AuditLog {
213
+ id String @id @default(cuid())
214
+ organizationId String @map("organization_id")
215
+ userId String? @map("user_id")
216
+ action String // "task.created", "task.status_changed"
217
+ entityType String @map("entity_type")
218
+ entityId String @map("entity_id")
219
+ before Json? // Previous state
220
+ after Json? // New state
221
+ ipAddress String? @map("ip_address")
222
+ userAgent String? @map("user_agent")
223
+ createdAt DateTime @default(now()) @map("created_at")
224
+
225
+ organization Organization @relation(fields: [organizationId], references: [id])
226
+ user User? @relation(fields: [userId], references: [id])
227
+
228
+ @@index([organizationId, createdAt(sort: Desc)])
229
+ @@index([entityType, entityId])
230
+ @@index([userId])
231
+ @@map("audit_logs")
232
+ }
233
+
234
+ enum Plan { FREE STARTER GROWTH ENTERPRISE }
235
+ enum OrgRole { OWNER ADMIN MEMBER VIEWER }
236
+ enum ProjectStatus { ACTIVE ARCHIVED }
237
+ enum TaskStatus { TODO IN_PROGRESS IN_REVIEW DONE CANCELLED }
238
+ enum Priority { LOW MEDIUM HIGH CRITICAL }
239
+ ```
240
+
241
+ ---
242
+
243
+ ### Drizzle Schema (TypeScript)
244
+
245
+ ```typescript
246
+ // db/schema.ts
247
+ import {
248
+ pgTable, text, timestamp, integer, boolean,
249
+ varchar, jsonb, real, pgEnum, uniqueIndex, index,
250
+ } from 'drizzle-orm/pg-core'
251
+ import { createId } from '@paralleldrive/cuid2'
252
+
253
+ export const taskStatusEnum = pgEnum('task_status', [
254
+ 'todo', 'in_progress', 'in_review', 'done', 'cancelled'
255
+ ])
256
+ export const priorityEnum = pgEnum('priority', ['low', 'medium', 'high', 'critical'])
257
+
258
+ export const tasks = pgTable('tasks', {
259
+ id: text('id').primaryKey().$defaultFn(() => createId()),
260
+ projectId: text('project_id').notNull().references(() => projects.id),
261
+ title: varchar('title', { length: 500 }).notNull(),
262
+ description: text('description'),
263
+ status: taskStatusEnum('status').notNull().default('todo'),
264
+ priority: priorityEnum('priority').notNull().default('medium'),
265
+ dueDate: timestamp('due_date', { withTimezone: true }),
266
+ position: real('position').notNull().default(0),
267
+ version: integer('version').notNull().default(1),
268
+ createdById: text('created_by_id').notNull().references(() => users.id),
269
+ updatedById: text('updated_by_id').notNull().references(() => users.id),
270
+ createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
271
+ updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
272
+ deletedAt: timestamp('deleted_at', { withTimezone: true }),
273
+ }, (table) => ({
274
+ projectIdx: index('tasks_project_id_idx').on(table.projectId),
275
+ projectStatusIdx: index('tasks_project_status_idx').on(table.projectId, table.status),
276
+ }))
277
+
278
+ // Infer TypeScript types
279
+ export type Task = typeof tasks.$inferSelect
280
+ export type NewTask = typeof tasks.$inferInsert
281
+ ```
282
+
283
+ ---
284
+
285
+ ### Alembic Migration (Python / SQLAlchemy)
286
+
287
+ ```python
288
+ # alembic/versions/20260301_create_tasks.py
289
+ """Create tasks table
290
+
291
+ Revision ID: a1b2c3d4e5f6
292
+ Revises: previous_revision
293
+ Create Date: 2026-03-01 12:00:00
294
+ """
295
+
296
+ from alembic import op
297
+ import sqlalchemy as sa
298
+ from sqlalchemy.dialects import postgresql
299
+
300
+ revision = 'a1b2c3d4e5f6'
301
+ down_revision = 'previous_revision'
302
+
303
+
304
+ def upgrade() -> None:
305
+ # Create enums
306
+ task_status = postgresql.ENUM(
307
+ 'todo', 'in_progress', 'in_review', 'done', 'cancelled',
308
+ name='task_status'
309
+ )
310
+ task_status.create(op.get_bind())
311
+
312
+ op.create_table(
313
+ 'tasks',
314
+ sa.Column('id', sa.Text(), primary_key=True),
315
+ sa.Column('project_id', sa.Text(), sa.ForeignKey('projects.id'), nullable=False),
316
+ sa.Column('title', sa.VARCHAR(500), nullable=False),
317
+ sa.Column('description', sa.Text()),
318
+ sa.Column('status', postgresql.ENUM('todo', 'in_progress', 'in_review', 'done', 'cancelled', name='task_status', create_type=False), nullable=False, server_default='todo'),
319
+ sa.Column('priority', sa.Text(), nullable=False, server_default='medium'),
320
+ sa.Column('due_date', sa.TIMESTAMP(timezone=True)),
321
+ sa.Column('position', sa.Float(), nullable=False, server_default='0'),
322
+ sa.Column('version', sa.Integer(), nullable=False, server_default='1'),
323
+ sa.Column('created_by_id', sa.Text(), sa.ForeignKey('users.id'), nullable=False),
324
+ sa.Column('updated_by_id', sa.Text(), sa.ForeignKey('users.id'), nullable=False),
325
+ sa.Column('created_at', sa.TIMESTAMP(timezone=True), nullable=False, server_default=sa.text('NOW()')),
326
+ sa.Column('updated_at', sa.TIMESTAMP(timezone=True), nullable=False, server_default=sa.text('NOW()')),
327
+ sa.Column('deleted_at', sa.TIMESTAMP(timezone=True)),
328
+ )
329
+
330
+ # Indexes
331
+ op.create_index('tasks_project_id_idx', 'tasks', ['project_id'])
332
+ op.create_index('tasks_project_status_idx', 'tasks', ['project_id', 'status'])
333
+ # Partial index for active tasks only
334
+ op.create_index(
335
+ 'tasks_due_date_active_idx',
336
+ 'tasks', ['due_date'],
337
+ postgresql_where=sa.text('deleted_at IS NULL')
338
+ )
339
+
340
+
341
+ def downgrade() -> None:
342
+ op.drop_table('tasks')
343
+ op.execute("DROP TYPE IF EXISTS task_status")
344
+ ```
345
+
346
+ ---
347
+
348
+ ## Row-Level Security (RLS) Policies
349
+
350
+ ```sql
351
+ -- Enable RLS
352
+ ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;
353
+ ALTER TABLE projects ENABLE ROW LEVEL SECURITY;
354
+
355
+ -- Create app role
356
+ CREATE ROLE app_user;
357
+
358
+ -- Users can only see tasks in their organization's projects
359
+ CREATE POLICY tasks_org_isolation ON tasks
360
+ FOR ALL TO app_user
361
+ USING (
362
+ project_id IN (
363
+ SELECT p.id FROM projects p
364
+ JOIN organization_members om ON om.organization_id = p.organization_id
365
+ WHERE om.user_id = current_setting('app.current_user_id')::text
366
+ )
367
+ );
368
+
369
+ -- Soft delete: never show deleted records
370
+ CREATE POLICY tasks_no_deleted ON tasks
371
+ FOR SELECT TO app_user
372
+ USING (deleted_at IS NULL);
373
+
374
+ -- Only task creator or admin can delete
375
+ CREATE POLICY tasks_delete_policy ON tasks
376
+ FOR DELETE TO app_user
377
+ USING (
378
+ created_by_id = current_setting('app.current_user_id')::text
379
+ OR EXISTS (
380
+ SELECT 1 FROM organization_members om
381
+ JOIN projects p ON p.organization_id = om.organization_id
382
+ WHERE p.id = tasks.project_id
383
+ AND om.user_id = current_setting('app.current_user_id')::text
384
+ AND om.role IN ('owner', 'admin')
385
+ )
386
+ );
387
+
388
+ -- Set user context (call at start of each request)
389
+ SELECT set_config('app.current_user_id', $1, true);
390
+ ```
391
+
392
+ ---
393
+
394
+ ## Seed Data Generation
395
+
396
+ ```typescript
397
+ // db/seed.ts
398
+ import { faker } from '@faker-js/faker'
399
+ import { db } from './client'
400
+ import { organizations, users, projects, tasks } from './schema'
401
+ import { createId } from '@paralleldrive/cuid2'
402
+ import { hashPassword } from '../src/lib/auth'
403
+
404
+ async function seed() {
405
+ console.log('Seeding database...')
406
+
407
+ // Create org
408
+ const [org] = await db.insert(organizations).values({
409
+ id: createId(),
410
+ name: 'Acme Corp',
411
+ slug: 'acme',
412
+ plan: 'growth',
413
+ }).returning()
414
+
415
+ // Create users
416
+ const adminUser = await db.insert(users).values({
417
+ id: createId(),
418
+ email: 'admin@acme.com',
419
+ name: 'Alice Admin',
420
+ passwordHash: await hashPassword('password123'),
421
+ }).returning().then(r => r[0])
422
+
423
+ // Create projects
424
+ const projectsData = Array.from({ length: 3 }, () => ({
425
+ id: createId(),
426
+ organizationId: org.id,
427
+ ownerId: adminUser.id,
428
+ name: faker.company.catchPhrase(),
429
+ description: faker.lorem.paragraph(),
430
+ status: 'active' as const,
431
+ }))
432
+
433
+ const createdProjects = await db.insert(projects).values(projectsData).returning()
434
+
435
+ // Create tasks for each project
436
+ for (const project of createdProjects) {
437
+ const tasksData = Array.from({ length: faker.number.int({ min: 5, max: 20 }) }, (_, i) => ({
438
+ id: createId(),
439
+ projectId: project.id,
440
+ title: faker.hacker.phrase(),
441
+ description: faker.lorem.sentences(2),
442
+ status: faker.helpers.arrayElement(['todo', 'in_progress', 'done'] as const),
443
+ priority: faker.helpers.arrayElement(['low', 'medium', 'high'] as const),
444
+ position: i * 1000,
445
+ createdById: adminUser.id,
446
+ updatedById: adminUser.id,
447
+ }))
448
+
449
+ await db.insert(tasks).values(tasksData)
450
+ }
451
+
452
+ console.log(`✅ Seeded: 1 org, ${projectsData.length} projects, tasks`)
453
+ }
454
+
455
+ seed().catch(console.error).finally(() => process.exit(0))
456
+ ```
457
+
458
+ ---
459
+
460
+ ## ERD Generation (Mermaid)
461
+
462
+ ```
463
+ erDiagram
464
+ Organization ||--o{ OrganizationMember : has
465
+ Organization ||--o{ Project : owns
466
+ User ||--o{ OrganizationMember : joins
467
+ User ||--o{ Task : "created by"
468
+ Project ||--o{ Task : contains
469
+ Task ||--o{ TaskAssignment : has
470
+ Task ||--o{ TaskLabel : has
471
+ Task ||--o{ Comment : has
472
+ Task ||--o{ Attachment : has
473
+ Label ||--o{ TaskLabel : "applied to"
474
+ User ||--o{ TaskAssignment : assigned
475
+
476
+ Organization {
477
+ string id PK
478
+ string name
479
+ string slug
480
+ string plan
481
+ }
482
+
483
+ Task {
484
+ string id PK
485
+ string project_id FK
486
+ string title
487
+ string status
488
+ string priority
489
+ timestamp due_date
490
+ timestamp deleted_at
491
+ int version
492
+ }
493
+ ```
494
+
495
+ Generate from Prisma:
496
+ ```bash
497
+ npx prisma-erd-generator
498
+ # or: npx @dbml/cli prisma2dbml -i schema.prisma | npx dbml-to-mermaid
499
+ ```
500
+
501
+ ---
502
+
503
+ ## Common Pitfalls
504
+
505
+ - **Soft delete without index** — `WHERE deleted_at IS NULL` without index = full scan
506
+ - **Missing composite indexes** — `WHERE org_id = ? AND status = ?` needs a composite index
507
+ - **Mutable surrogate keys** — never use email or slug as PK; use UUID/CUID
508
+ - **Non-nullable without default** — adding a NOT NULL column to existing table requires default or migration plan
509
+ - **No optimistic locking** — concurrent updates overwrite each other; add `version` column
510
+ - **RLS not tested** — always test RLS with a non-superuser role
511
+
512
+ ---
513
+
514
+ ## Best Practices
515
+
516
+ 1. **Timestamps everywhere** — `created_at`, `updated_at` on every table
517
+ 2. **Soft deletes for auditable data** — `deleted_at` instead of DELETE
518
+ 3. **Audit log for compliance** — log before/after JSON for regulated domains
519
+ 4. **UUIDs or CUIDs as PKs** — avoid sequential integer leakage
520
+ 5. **Index foreign keys** — every FK column should have an index
521
+ 6. **Partial indexes** — use `WHERE deleted_at IS NULL` for active-only queries
522
+ 7. **RLS over application-level filtering** — database enforces tenancy, not just app code