@mytechtoday/augment-extensions 0.1.2 → 0.4.0
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.
- package/README.md +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- package/augment-extensions/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/domain-rules/wordpress/README.md +163 -0
- package/augment-extensions/domain-rules/wordpress/module.json +32 -0
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- package/augment-extensions/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -0
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
- package/augment-extensions/writing-standards/screenplay/README.md +171 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +142 -9
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +42 -71
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- package/cli/dist/utils/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.js.map +1 -0
- package/cli/dist/utils/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +153 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +528 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +534 -70
- package/package.json +12 -3
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
# Schema Design Workflow
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Provide structured guidance for designing optimal database schemas across different database types (relational, NoSQL, vector, flat).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
1. **Design for Access Patterns**: Optimize for how data will be queried, not just how it's structured
|
|
12
|
+
2. **Balance Normalization**: Find the right balance between normalization and query performance
|
|
13
|
+
3. **Plan for Growth**: Design schemas that can scale with data volume and complexity
|
|
14
|
+
4. **Enforce Constraints**: Use database constraints to maintain data integrity
|
|
15
|
+
5. **Document Decisions**: Record why design choices were made
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Schema Design Workflow
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
┌─────────────────────┐
|
|
23
|
+
│ Gather Requirements │
|
|
24
|
+
│ Identify entities │
|
|
25
|
+
└──────────┬──────────┘
|
|
26
|
+
│
|
|
27
|
+
▼
|
|
28
|
+
┌─────────────────────┐
|
|
29
|
+
│ Model Entities │
|
|
30
|
+
│ Define attributes │
|
|
31
|
+
└──────────┬──────────┘
|
|
32
|
+
│
|
|
33
|
+
▼
|
|
34
|
+
┌─────────────────────┐
|
|
35
|
+
│ Map Relationships │
|
|
36
|
+
│ Define associations │
|
|
37
|
+
└──────────┬──────────┘
|
|
38
|
+
│
|
|
39
|
+
▼
|
|
40
|
+
┌─────────────────────┐
|
|
41
|
+
│ Apply Normalization │
|
|
42
|
+
│ Or denormalization │
|
|
43
|
+
└──────────┬──────────┘
|
|
44
|
+
│
|
|
45
|
+
▼
|
|
46
|
+
┌─────────────────────┐
|
|
47
|
+
│ Define Constraints │
|
|
48
|
+
│ Validation rules │
|
|
49
|
+
└──────────┬──────────┘
|
|
50
|
+
│
|
|
51
|
+
▼
|
|
52
|
+
┌─────────────────────┐
|
|
53
|
+
│ Plan Indexes │
|
|
54
|
+
│ Query optimization │
|
|
55
|
+
└──────────┬──────────┘
|
|
56
|
+
│
|
|
57
|
+
▼
|
|
58
|
+
┌─────────────────────┐
|
|
59
|
+
│ Review & Validate │
|
|
60
|
+
│ Check design │
|
|
61
|
+
└─────────────────────┘
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Step 1: Gather Requirements
|
|
67
|
+
|
|
68
|
+
**Questions to Answer**:
|
|
69
|
+
|
|
70
|
+
1. **What entities exist in the domain?**
|
|
71
|
+
- Users, products, orders, etc.
|
|
72
|
+
- What are the core business objects?
|
|
73
|
+
|
|
74
|
+
2. **What attributes does each entity have?**
|
|
75
|
+
- User: id, email, name, created_at
|
|
76
|
+
- Product: id, name, price, inventory
|
|
77
|
+
|
|
78
|
+
3. **What are the relationships between entities?**
|
|
79
|
+
- User has many Orders
|
|
80
|
+
- Order has many OrderItems
|
|
81
|
+
- Product belongs to Category
|
|
82
|
+
|
|
83
|
+
4. **What are the common query patterns?**
|
|
84
|
+
- Find user by email
|
|
85
|
+
- Get all orders for a user
|
|
86
|
+
- Search products by category
|
|
87
|
+
- Calculate total sales by month
|
|
88
|
+
|
|
89
|
+
5. **What are the data volume expectations?**
|
|
90
|
+
- Number of users: 10K, 100K, 1M+
|
|
91
|
+
- Number of transactions per day
|
|
92
|
+
- Growth rate
|
|
93
|
+
|
|
94
|
+
6. **What are the consistency requirements?**
|
|
95
|
+
- Strong consistency (ACID) needed?
|
|
96
|
+
- Eventual consistency acceptable?
|
|
97
|
+
- Real-time updates required?
|
|
98
|
+
|
|
99
|
+
**Output**: Requirements document with entities, relationships, and query patterns
|
|
100
|
+
|
|
101
|
+
**AI Prompt Template**:
|
|
102
|
+
```
|
|
103
|
+
Help me gather requirements for a database schema for [application type].
|
|
104
|
+
|
|
105
|
+
**Domain**: [e-commerce, social media, analytics, etc.]
|
|
106
|
+
|
|
107
|
+
**Known Entities**: [list entities if known]
|
|
108
|
+
|
|
109
|
+
**Key Features**:
|
|
110
|
+
- [Feature 1]
|
|
111
|
+
- [Feature 2]
|
|
112
|
+
|
|
113
|
+
Please help me identify:
|
|
114
|
+
1. All entities and their attributes
|
|
115
|
+
2. Relationships between entities
|
|
116
|
+
3. Common query patterns
|
|
117
|
+
4. Data volume expectations
|
|
118
|
+
5. Consistency requirements
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Step 2: Model Entities
|
|
124
|
+
|
|
125
|
+
**For Each Entity, Define**:
|
|
126
|
+
|
|
127
|
+
1. **Entity Name**: Clear, singular noun (User, Product, Order)
|
|
128
|
+
2. **Attributes**: All properties with data types
|
|
129
|
+
3. **Primary Key**: Unique identifier
|
|
130
|
+
4. **Required vs Optional**: Which fields are mandatory
|
|
131
|
+
5. **Data Types**: String, integer, date, boolean, etc.
|
|
132
|
+
6. **Default Values**: Sensible defaults where applicable
|
|
133
|
+
|
|
134
|
+
**Example Entity Model**:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Entity: User
|
|
138
|
+
- id: UUID (primary key)
|
|
139
|
+
- email: String (required, unique)
|
|
140
|
+
- name: String (required)
|
|
141
|
+
- password_hash: String (required)
|
|
142
|
+
- email_verified: Boolean (default: false)
|
|
143
|
+
- created_at: Timestamp (default: now)
|
|
144
|
+
- updated_at: Timestamp (default: now)
|
|
145
|
+
- last_login_at: Timestamp (optional)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Output**: Entity models with all attributes and types
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Step 3: Map Relationships
|
|
153
|
+
|
|
154
|
+
**Relationship Types**:
|
|
155
|
+
|
|
156
|
+
1. **One-to-One** (1:1)
|
|
157
|
+
- User has one Profile
|
|
158
|
+
- Profile belongs to one User
|
|
159
|
+
|
|
160
|
+
2. **One-to-Many** (1:N)
|
|
161
|
+
- User has many Orders
|
|
162
|
+
- Order belongs to one User
|
|
163
|
+
|
|
164
|
+
3. **Many-to-Many** (M:N)
|
|
165
|
+
- Product has many Categories
|
|
166
|
+
- Category has many Products
|
|
167
|
+
- Requires join table: ProductCategories
|
|
168
|
+
|
|
169
|
+
**Relationship Mapping**:
|
|
170
|
+
|
|
171
|
+
For each relationship, define:
|
|
172
|
+
- **Parent Entity**: The "one" side
|
|
173
|
+
- **Child Entity**: The "many" side
|
|
174
|
+
- **Foreign Key**: Column linking child to parent
|
|
175
|
+
- **Cascade Rules**: What happens on delete/update
|
|
176
|
+
- **Optionality**: Required or optional relationship
|
|
177
|
+
|
|
178
|
+
**Example Relationships**:
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
User (1) ──< Orders (N)
|
|
182
|
+
- Foreign key: orders.user_id → users.id
|
|
183
|
+
- Cascade: ON DELETE CASCADE (delete orders when user deleted)
|
|
184
|
+
- Required: Yes (order must have a user)
|
|
185
|
+
|
|
186
|
+
Product (M) ──< ProductCategories >── Category (N)
|
|
187
|
+
- Join table: product_categories
|
|
188
|
+
- Foreign keys:
|
|
189
|
+
- product_categories.product_id → products.id
|
|
190
|
+
- product_categories.category_id → categories.id
|
|
191
|
+
- Cascade: ON DELETE CASCADE
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Output**: Entity Relationship Diagram (ERD) or relationship documentation
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Step 4: Apply Normalization (Relational) or Denormalization (NoSQL)
|
|
199
|
+
|
|
200
|
+
### For Relational Databases: Normalize
|
|
201
|
+
|
|
202
|
+
**Normalization Levels**:
|
|
203
|
+
|
|
204
|
+
**1NF (First Normal Form)**:
|
|
205
|
+
- Eliminate repeating groups
|
|
206
|
+
- Each cell contains atomic values
|
|
207
|
+
- Each row is unique
|
|
208
|
+
|
|
209
|
+
**2NF (Second Normal Form)**:
|
|
210
|
+
- Meet 1NF requirements
|
|
211
|
+
- Remove partial dependencies
|
|
212
|
+
- All non-key attributes depend on entire primary key
|
|
213
|
+
|
|
214
|
+
**3NF (Third Normal Form)**:
|
|
215
|
+
- Meet 2NF requirements
|
|
216
|
+
- Remove transitive dependencies
|
|
217
|
+
- Non-key attributes depend only on primary key
|
|
218
|
+
|
|
219
|
+
**When to Denormalize**:
|
|
220
|
+
- Read-heavy workloads with expensive joins
|
|
221
|
+
- Reporting and analytics queries
|
|
222
|
+
- Caching frequently accessed data
|
|
223
|
+
- After measuring performance issues
|
|
224
|
+
|
|
225
|
+
### For NoSQL Databases: Denormalize
|
|
226
|
+
|
|
227
|
+
**Denormalization Strategies**:
|
|
228
|
+
|
|
229
|
+
1. **Embed Related Data**:
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"user_id": "123",
|
|
233
|
+
"name": "John Doe",
|
|
234
|
+
"orders": [
|
|
235
|
+
{"order_id": "456", "total": 99.99},
|
|
236
|
+
{"order_id": "789", "total": 149.99}
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
2. **Reference Large or Frequently Updated Data**:
|
|
242
|
+
```json
|
|
243
|
+
{
|
|
244
|
+
"user_id": "123",
|
|
245
|
+
"name": "John Doe",
|
|
246
|
+
"order_ids": ["456", "789"]
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
3. **Duplicate Data for Query Efficiency**:
|
|
251
|
+
- Store user name in order document
|
|
252
|
+
- Avoid joins at query time
|
|
253
|
+
- Accept eventual consistency
|
|
254
|
+
|
|
255
|
+
**Output**: Normalized (relational) or denormalized (NoSQL) schema design
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Step 5: Define Constraints
|
|
260
|
+
|
|
261
|
+
**Constraint Types**:
|
|
262
|
+
|
|
263
|
+
1. **Primary Key**: Unique identifier for each row
|
|
264
|
+
2. **Foreign Key**: Referential integrity between tables
|
|
265
|
+
3. **Unique**: Ensure column values are unique
|
|
266
|
+
4. **Not Null**: Require value for column
|
|
267
|
+
5. **Check**: Validate data meets conditions
|
|
268
|
+
6. **Default**: Provide default value
|
|
269
|
+
|
|
270
|
+
**Example Constraints**:
|
|
271
|
+
|
|
272
|
+
```sql
|
|
273
|
+
CREATE TABLE users (
|
|
274
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
275
|
+
email VARCHAR(255) NOT NULL UNIQUE,
|
|
276
|
+
name VARCHAR(255) NOT NULL,
|
|
277
|
+
age INTEGER CHECK (age >= 18),
|
|
278
|
+
status VARCHAR(20) DEFAULT 'active' CHECK (status IN ('active', 'inactive', 'suspended')),
|
|
279
|
+
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
CREATE TABLE orders (
|
|
283
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
284
|
+
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
285
|
+
total DECIMAL(10, 2) NOT NULL CHECK (total >= 0),
|
|
286
|
+
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
|
287
|
+
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
288
|
+
);
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Output**: Schema with all constraints defined
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Step 6: Plan Indexes
|
|
296
|
+
|
|
297
|
+
**Index Planning**:
|
|
298
|
+
|
|
299
|
+
1. **Identify Query Patterns**:
|
|
300
|
+
- Which columns are used in WHERE clauses?
|
|
301
|
+
- Which columns are used in JOIN conditions?
|
|
302
|
+
- Which columns are used in ORDER BY?
|
|
303
|
+
|
|
304
|
+
2. **Create Indexes**:
|
|
305
|
+
- Primary key (automatic)
|
|
306
|
+
- Foreign keys (important for joins)
|
|
307
|
+
- Columns used in WHERE clauses
|
|
308
|
+
- Columns used for sorting
|
|
309
|
+
|
|
310
|
+
3. **Consider Index Types**:
|
|
311
|
+
- **B-tree**: Default, good for equality and range queries
|
|
312
|
+
- **Hash**: Fast equality lookups, no range queries
|
|
313
|
+
- **GIN/GiST**: Full-text search, JSON queries (PostgreSQL)
|
|
314
|
+
- **Covering Index**: Include all columns needed by query
|
|
315
|
+
|
|
316
|
+
4. **Balance Read vs Write Performance**:
|
|
317
|
+
- Indexes speed up reads
|
|
318
|
+
- Indexes slow down writes
|
|
319
|
+
- Don't over-index
|
|
320
|
+
|
|
321
|
+
**Example Indexes**:
|
|
322
|
+
|
|
323
|
+
```sql
|
|
324
|
+
-- Index on foreign key for joins
|
|
325
|
+
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
326
|
+
|
|
327
|
+
-- Index on frequently queried column
|
|
328
|
+
CREATE INDEX idx_users_email ON users(email);
|
|
329
|
+
|
|
330
|
+
-- Composite index for common query pattern
|
|
331
|
+
CREATE INDEX idx_orders_user_status ON orders(user_id, status);
|
|
332
|
+
|
|
333
|
+
-- Partial index for specific condition
|
|
334
|
+
CREATE INDEX idx_active_users ON users(email) WHERE status = 'active';
|
|
335
|
+
|
|
336
|
+
-- Covering index (includes all columns needed)
|
|
337
|
+
CREATE INDEX idx_orders_covering ON orders(user_id, status) INCLUDE (total, created_at);
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Output**: Index plan with rationale for each index
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Step 7: Review & Validate
|
|
345
|
+
|
|
346
|
+
**Review Checklist**:
|
|
347
|
+
|
|
348
|
+
- [ ] All entities have primary keys
|
|
349
|
+
- [ ] All relationships have foreign keys (relational)
|
|
350
|
+
- [ ] All required fields have NOT NULL constraints
|
|
351
|
+
- [ ] All validation rules have CHECK constraints
|
|
352
|
+
- [ ] All unique fields have UNIQUE constraints
|
|
353
|
+
- [ ] All common queries have supporting indexes
|
|
354
|
+
- [ ] Schema is normalized to appropriate level
|
|
355
|
+
- [ ] Design supports all required query patterns
|
|
356
|
+
- [ ] Design can scale with expected data volume
|
|
357
|
+
- [ ] Design decisions are documented
|
|
358
|
+
|
|
359
|
+
**Validation Questions**:
|
|
360
|
+
|
|
361
|
+
1. **Can all required queries be executed efficiently?**
|
|
362
|
+
2. **Are there any N+1 query problems?**
|
|
363
|
+
3. **Are there any missing indexes for common queries?**
|
|
364
|
+
4. **Are there any over-indexed tables?**
|
|
365
|
+
5. **Is the schema normalized appropriately?**
|
|
366
|
+
6. **Are all constraints enforced at database level?**
|
|
367
|
+
7. **Is the design flexible for future requirements?**
|
|
368
|
+
|
|
369
|
+
**Output**: Validated schema design ready for implementation
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Database Type-Specific Guidance
|
|
374
|
+
|
|
375
|
+
### Relational Databases (PostgreSQL, MySQL)
|
|
376
|
+
|
|
377
|
+
**Best Practices**:
|
|
378
|
+
- Normalize to 3NF by default
|
|
379
|
+
- Use foreign keys for referential integrity
|
|
380
|
+
- Use CHECK constraints for validation
|
|
381
|
+
- Use SERIAL/AUTO_INCREMENT for integer IDs
|
|
382
|
+
- Use UUID for distributed systems
|
|
383
|
+
- Use TIMESTAMP WITH TIME ZONE for dates
|
|
384
|
+
- Use JSONB for semi-structured data (PostgreSQL)
|
|
385
|
+
|
|
386
|
+
**Common Patterns**:
|
|
387
|
+
- Soft deletes: Add `deleted_at` column
|
|
388
|
+
- Audit trails: Add `created_at`, `updated_at`, `created_by`, `updated_by`
|
|
389
|
+
- Versioning: Add `version` column with optimistic locking
|
|
390
|
+
- Multi-tenancy: Add `tenant_id` to all tables
|
|
391
|
+
|
|
392
|
+
### NoSQL Databases (MongoDB, DynamoDB)
|
|
393
|
+
|
|
394
|
+
**Best Practices**:
|
|
395
|
+
- Design for access patterns, not normalization
|
|
396
|
+
- Embed related data for 1:1 and 1:N relationships
|
|
397
|
+
- Use references for M:N relationships
|
|
398
|
+
- Denormalize for read performance
|
|
399
|
+
- Use schema validation (MongoDB)
|
|
400
|
+
- Plan for document size limits (16MB in MongoDB)
|
|
401
|
+
- Use compound indexes for multi-field queries
|
|
402
|
+
|
|
403
|
+
**Common Patterns**:
|
|
404
|
+
- Embed arrays for 1:N relationships (up to ~100 items)
|
|
405
|
+
- Reference for large or frequently updated data
|
|
406
|
+
- Duplicate data to avoid joins
|
|
407
|
+
- Use schema version field for migrations
|
|
408
|
+
|
|
409
|
+
### Vector Databases (Pinecone, Milvus)
|
|
410
|
+
|
|
411
|
+
**Best Practices**:
|
|
412
|
+
- Match vector dimensions to embedding model
|
|
413
|
+
- Choose appropriate distance metric (cosine, euclidean)
|
|
414
|
+
- Plan metadata fields for filtering
|
|
415
|
+
- Use namespaces for multi-tenancy
|
|
416
|
+
- Consider hybrid search (vector + keyword)
|
|
417
|
+
|
|
418
|
+
**Common Patterns**:
|
|
419
|
+
- Store metadata alongside vectors
|
|
420
|
+
- Use metadata filtering to reduce search space
|
|
421
|
+
- Normalize vectors before insertion
|
|
422
|
+
- Batch insertions for performance
|
|
423
|
+
|
|
424
|
+
### Flat Databases (CSV, JSON)
|
|
425
|
+
|
|
426
|
+
**Best Practices**:
|
|
427
|
+
- Define clear schema (column names, types)
|
|
428
|
+
- Use consistent date/time formats (ISO 8601)
|
|
429
|
+
- Validate data on read/write
|
|
430
|
+
- Use JSON Schema for validation
|
|
431
|
+
- Consider file size limits
|
|
432
|
+
|
|
433
|
+
**Common Patterns**:
|
|
434
|
+
- One file per entity type
|
|
435
|
+
- Use IDs for relationships (manual joins)
|
|
436
|
+
- Version schema in separate file
|
|
437
|
+
- Compress large files
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## AI Prompt Templates
|
|
442
|
+
|
|
443
|
+
### Entity Modeling
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
Model database entities for [application type].
|
|
447
|
+
|
|
448
|
+
**Domain**: [e-commerce, social media, etc.]
|
|
449
|
+
|
|
450
|
+
**Requirements**:
|
|
451
|
+
[paste requirements]
|
|
452
|
+
|
|
453
|
+
Please create entity models with:
|
|
454
|
+
- Entity names
|
|
455
|
+
- All attributes with data types
|
|
456
|
+
- Primary keys
|
|
457
|
+
- Required vs optional fields
|
|
458
|
+
- Default values
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Relationship Mapping
|
|
462
|
+
|
|
463
|
+
```
|
|
464
|
+
Map relationships between these entities:
|
|
465
|
+
|
|
466
|
+
**Entities**:
|
|
467
|
+
- [Entity 1]: [attributes]
|
|
468
|
+
- [Entity 2]: [attributes]
|
|
469
|
+
- [Entity 3]: [attributes]
|
|
470
|
+
|
|
471
|
+
**Known Relationships**:
|
|
472
|
+
- [Relationship 1]
|
|
473
|
+
- [Relationship 2]
|
|
474
|
+
|
|
475
|
+
Please create:
|
|
476
|
+
- Entity Relationship Diagram (ERD)
|
|
477
|
+
- Foreign key definitions
|
|
478
|
+
- Cascade rules
|
|
479
|
+
- Join tables for M:N relationships
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Schema Validation
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
Review this database schema design:
|
|
486
|
+
|
|
487
|
+
[paste schema]
|
|
488
|
+
|
|
489
|
+
**Query Patterns**:
|
|
490
|
+
- [Query 1]
|
|
491
|
+
- [Query 2]
|
|
492
|
+
|
|
493
|
+
**Data Volume**: [expected records]
|
|
494
|
+
|
|
495
|
+
Please validate:
|
|
496
|
+
- Normalization level appropriate?
|
|
497
|
+
- All constraints defined?
|
|
498
|
+
- Indexes support query patterns?
|
|
499
|
+
- Any missing relationships?
|
|
500
|
+
- Any performance concerns?
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
## Common Pitfalls
|
|
506
|
+
|
|
507
|
+
**Pitfall 1: Over-Normalization**
|
|
508
|
+
- ❌ Normalizing to 5NF causing excessive joins
|
|
509
|
+
- ✅ Stop at 3NF unless specific reason to go further
|
|
510
|
+
|
|
511
|
+
**Pitfall 2: Missing Constraints**
|
|
512
|
+
- ❌ Relying on application-level validation only
|
|
513
|
+
- ✅ Enforce constraints at database level
|
|
514
|
+
|
|
515
|
+
**Pitfall 3: Poor Index Planning**
|
|
516
|
+
- ❌ No indexes or too many indexes
|
|
517
|
+
- ✅ Index based on actual query patterns
|
|
518
|
+
|
|
519
|
+
**Pitfall 4: Ignoring Data Types**
|
|
520
|
+
- ❌ Using VARCHAR for everything
|
|
521
|
+
- ✅ Use appropriate types (INTEGER, DECIMAL, TIMESTAMP)
|
|
522
|
+
|
|
523
|
+
**Pitfall 5: Not Planning for Growth**
|
|
524
|
+
- ❌ Designing for current data volume only
|
|
525
|
+
- ✅ Consider future scale and query patterns
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## Next Steps
|
|
530
|
+
|
|
531
|
+
- See `workflow.md` for overall database workflow
|
|
532
|
+
- See `data-migration.md` for implementing schema changes
|
|
533
|
+
- See `optimization-workflow.md` for performance tuning
|
|
534
|
+
- See `testing-patterns.md` for validating schema design
|
|
535
|
+
- See `documentation-standards.md` for documenting schemas
|