@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,249 @@
|
|
|
1
|
+
# Data Migration Workflow
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Provide structured guidance for safely migrating database schema and data changes with minimal downtime and risk.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
1. **Safety First**: Always have a rollback plan
|
|
12
|
+
2. **Zero Downtime**: Design migrations to run without service interruption
|
|
13
|
+
3. **Backward Compatibility**: Ensure old code works during migration
|
|
14
|
+
4. **Incremental Changes**: Break large migrations into smaller steps
|
|
15
|
+
5. **Test Thoroughly**: Test migrations on production-like data
|
|
16
|
+
6. **Monitor Closely**: Watch for issues during and after migration
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Migration Types
|
|
21
|
+
|
|
22
|
+
### 1. Schema Migrations
|
|
23
|
+
|
|
24
|
+
**Adding Columns**:
|
|
25
|
+
- Add column as nullable or with default value
|
|
26
|
+
- Backfill data if needed (separate step)
|
|
27
|
+
- Add constraints after backfill
|
|
28
|
+
|
|
29
|
+
**Removing Columns**:
|
|
30
|
+
- Stop writing to column (deploy code first)
|
|
31
|
+
- Wait for old code to drain
|
|
32
|
+
- Remove column (separate migration)
|
|
33
|
+
|
|
34
|
+
**Renaming Columns**:
|
|
35
|
+
- Create new column
|
|
36
|
+
- Dual-write to both columns
|
|
37
|
+
- Backfill old data to new column
|
|
38
|
+
- Switch reads to new column
|
|
39
|
+
- Stop writing to old column
|
|
40
|
+
- Remove old column
|
|
41
|
+
|
|
42
|
+
**Changing Column Types**:
|
|
43
|
+
- Create new column with new type
|
|
44
|
+
- Dual-write and transform data
|
|
45
|
+
- Backfill old data
|
|
46
|
+
- Switch reads to new column
|
|
47
|
+
- Remove old column
|
|
48
|
+
|
|
49
|
+
### 2. Data Migrations
|
|
50
|
+
|
|
51
|
+
**Backfilling Data**:
|
|
52
|
+
- Process in batches (avoid locking entire table)
|
|
53
|
+
- Use idempotent operations (safe to retry)
|
|
54
|
+
- Add progress tracking
|
|
55
|
+
- Handle failures gracefully
|
|
56
|
+
|
|
57
|
+
**Data Transformations**:
|
|
58
|
+
- Validate data before transformation
|
|
59
|
+
- Transform in batches
|
|
60
|
+
- Verify transformation correctness
|
|
61
|
+
- Keep audit trail
|
|
62
|
+
|
|
63
|
+
### 3. Index Migrations
|
|
64
|
+
|
|
65
|
+
**Adding Indexes**:
|
|
66
|
+
- Use concurrent index creation (PostgreSQL: `CREATE INDEX CONCURRENTLY`)
|
|
67
|
+
- Monitor index build progress
|
|
68
|
+
- Verify index is used by queries
|
|
69
|
+
|
|
70
|
+
**Removing Indexes**:
|
|
71
|
+
- Verify index is not used (check query plans)
|
|
72
|
+
- Remove index
|
|
73
|
+
- Monitor query performance
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Migration Workflow
|
|
78
|
+
|
|
79
|
+
### Step 1: Plan Migration
|
|
80
|
+
|
|
81
|
+
**Questions to Answer**:
|
|
82
|
+
- What is changing? (schema, data, indexes)
|
|
83
|
+
- What is the impact? (downtime, performance, data loss risk)
|
|
84
|
+
- What is the rollback strategy?
|
|
85
|
+
- What are the dependencies? (code changes, other migrations)
|
|
86
|
+
- What is the timeline? (when to execute, how long will it take)
|
|
87
|
+
|
|
88
|
+
**Output**: Migration plan document
|
|
89
|
+
|
|
90
|
+
### Step 2: Create Migration Scripts
|
|
91
|
+
|
|
92
|
+
**Up Migration**:
|
|
93
|
+
```sql
|
|
94
|
+
-- Example: Add column with default value
|
|
95
|
+
ALTER TABLE users
|
|
96
|
+
ADD COLUMN email_verified BOOLEAN DEFAULT FALSE;
|
|
97
|
+
|
|
98
|
+
-- Example: Create index concurrently (PostgreSQL)
|
|
99
|
+
CREATE INDEX CONCURRENTLY idx_users_email ON users(email);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Down Migration** (Rollback):
|
|
103
|
+
```sql
|
|
104
|
+
-- Example: Remove column
|
|
105
|
+
ALTER TABLE users DROP COLUMN email_verified;
|
|
106
|
+
|
|
107
|
+
-- Example: Drop index
|
|
108
|
+
DROP INDEX idx_users_email;
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Best Practices**:
|
|
112
|
+
- Make migrations idempotent (safe to run multiple times)
|
|
113
|
+
- Use transactions where appropriate
|
|
114
|
+
- Add comments explaining the change
|
|
115
|
+
- Include timing estimates
|
|
116
|
+
|
|
117
|
+
### Step 3: Test Migration
|
|
118
|
+
|
|
119
|
+
**Test Environments**:
|
|
120
|
+
1. **Local**: Test on local development database
|
|
121
|
+
2. **Staging**: Test on production-like data and load
|
|
122
|
+
3. **Production Clone**: Test on actual production data (if possible)
|
|
123
|
+
|
|
124
|
+
**Test Scenarios**:
|
|
125
|
+
- Migration succeeds
|
|
126
|
+
- Migration can be rolled back
|
|
127
|
+
- Application works during migration
|
|
128
|
+
- Application works after migration
|
|
129
|
+
- Performance is acceptable
|
|
130
|
+
|
|
131
|
+
### Step 4: Execute Migration
|
|
132
|
+
|
|
133
|
+
**Pre-Migration Checklist**:
|
|
134
|
+
- [ ] Backup database
|
|
135
|
+
- [ ] Verify rollback plan
|
|
136
|
+
- [ ] Schedule maintenance window (if needed)
|
|
137
|
+
- [ ] Notify stakeholders
|
|
138
|
+
- [ ] Prepare monitoring dashboards
|
|
139
|
+
|
|
140
|
+
**Execution Steps**:
|
|
141
|
+
1. Start monitoring (database metrics, application metrics)
|
|
142
|
+
2. Run migration script
|
|
143
|
+
3. Verify migration success (check schema, data, indexes)
|
|
144
|
+
4. Monitor application behavior
|
|
145
|
+
5. If issues: execute rollback plan
|
|
146
|
+
6. If success: mark migration as complete
|
|
147
|
+
|
|
148
|
+
**Post-Migration**:
|
|
149
|
+
- Verify data integrity
|
|
150
|
+
- Check application logs for errors
|
|
151
|
+
- Monitor performance metrics
|
|
152
|
+
- Document any issues encountered
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Zero-Downtime Migration Strategies
|
|
157
|
+
|
|
158
|
+
### Expand-Contract Pattern
|
|
159
|
+
|
|
160
|
+
**Phase 1: Expand** (add new schema elements)
|
|
161
|
+
- Add new columns/tables
|
|
162
|
+
- Deploy code that writes to both old and new schema
|
|
163
|
+
- Backfill data to new schema
|
|
164
|
+
|
|
165
|
+
**Phase 2: Contract** (remove old schema elements)
|
|
166
|
+
- Deploy code that reads from new schema only
|
|
167
|
+
- Stop writing to old schema
|
|
168
|
+
- Remove old columns/tables
|
|
169
|
+
|
|
170
|
+
### Blue-Green Database Migration
|
|
171
|
+
|
|
172
|
+
**Setup**:
|
|
173
|
+
- Create new database (green) with new schema
|
|
174
|
+
- Keep old database (blue) running
|
|
175
|
+
|
|
176
|
+
**Migration**:
|
|
177
|
+
- Replicate data from blue to green
|
|
178
|
+
- Switch application to green database
|
|
179
|
+
- Keep blue as backup
|
|
180
|
+
|
|
181
|
+
### Online Schema Change Tools
|
|
182
|
+
|
|
183
|
+
**Tools**:
|
|
184
|
+
- **PostgreSQL**: `pg_repack`, `pgslice`
|
|
185
|
+
- **MySQL**: `pt-online-schema-change`, `gh-ost`
|
|
186
|
+
- **MongoDB**: Built-in online schema changes
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Common Pitfalls
|
|
191
|
+
|
|
192
|
+
❌ **Running long migrations without batching**: Locks tables, causes downtime
|
|
193
|
+
✅ **Solution**: Process in small batches with delays
|
|
194
|
+
|
|
195
|
+
❌ **Not testing rollback**: Rollback fails when needed
|
|
196
|
+
✅ **Solution**: Test rollback in staging environment
|
|
197
|
+
|
|
198
|
+
❌ **Deploying code and migration together**: Code expects new schema before migration runs
|
|
199
|
+
✅ **Solution**: Deploy backward-compatible code first, then migrate
|
|
200
|
+
|
|
201
|
+
❌ **Not monitoring during migration**: Issues go unnoticed
|
|
202
|
+
✅ **Solution**: Set up alerts and watch dashboards
|
|
203
|
+
|
|
204
|
+
❌ **Forgetting to backfill data**: New column has NULL values
|
|
205
|
+
✅ **Solution**: Plan backfill as separate step after adding column
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## AI Prompt Templates
|
|
210
|
+
|
|
211
|
+
### Planning a Migration
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
I need to plan a database migration for [describe change].
|
|
215
|
+
|
|
216
|
+
Current schema:
|
|
217
|
+
[paste current schema]
|
|
218
|
+
|
|
219
|
+
Desired schema:
|
|
220
|
+
[paste desired schema]
|
|
221
|
+
|
|
222
|
+
Constraints:
|
|
223
|
+
- Zero downtime required: [yes/no]
|
|
224
|
+
- Backward compatibility needed: [yes/no]
|
|
225
|
+
- Data volume: [number of rows]
|
|
226
|
+
|
|
227
|
+
Please create a migration plan with:
|
|
228
|
+
1. Step-by-step migration strategy
|
|
229
|
+
2. Up and down migration scripts
|
|
230
|
+
3. Rollback plan
|
|
231
|
+
4. Testing checklist
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Creating Migration Scripts
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
Create migration scripts for [describe change].
|
|
238
|
+
|
|
239
|
+
Database: [PostgreSQL/MySQL/etc.]
|
|
240
|
+
Current schema: [paste schema]
|
|
241
|
+
Desired change: [describe change]
|
|
242
|
+
|
|
243
|
+
Requirements:
|
|
244
|
+
- Idempotent (safe to run multiple times)
|
|
245
|
+
- Include rollback script
|
|
246
|
+
- Add comments
|
|
247
|
+
- Estimate execution time
|
|
248
|
+
```
|
|
249
|
+
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
# Database Documentation Standards
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Establish standards for documenting database schemas, migrations, queries, and design decisions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Principles
|
|
10
|
+
|
|
11
|
+
1. **Document Why, Not What**: Code shows what; documentation explains why
|
|
12
|
+
2. **Keep Documentation Close**: Store docs near the code they describe
|
|
13
|
+
3. **Update Documentation with Changes**: Outdated docs are worse than no docs
|
|
14
|
+
4. **Use Standard Formats**: Follow consistent documentation patterns
|
|
15
|
+
5. **Make Documentation Discoverable**: Easy to find and navigate
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Schema Documentation
|
|
20
|
+
|
|
21
|
+
### Table Documentation
|
|
22
|
+
|
|
23
|
+
**What to Document**:
|
|
24
|
+
- Purpose of the table
|
|
25
|
+
- Key relationships
|
|
26
|
+
- Important constraints
|
|
27
|
+
- Performance considerations
|
|
28
|
+
- Data retention policies
|
|
29
|
+
|
|
30
|
+
**Format** (SQL comments):
|
|
31
|
+
```sql
|
|
32
|
+
-- Users table
|
|
33
|
+
-- Stores user account information and authentication credentials.
|
|
34
|
+
-- Related tables: user_profiles, user_sessions, orders
|
|
35
|
+
-- Indexes: idx_users_email (for login lookups), idx_users_created_at (for analytics)
|
|
36
|
+
-- Retention: User data retained indefinitely unless user requests deletion
|
|
37
|
+
CREATE TABLE users (
|
|
38
|
+
id SERIAL PRIMARY KEY,
|
|
39
|
+
email VARCHAR(255) NOT NULL UNIQUE,
|
|
40
|
+
password_hash VARCHAR(255) NOT NULL,
|
|
41
|
+
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
42
|
+
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
-- Email must be unique for authentication
|
|
46
|
+
CREATE UNIQUE INDEX idx_users_email ON users(email);
|
|
47
|
+
|
|
48
|
+
-- Created_at index for analytics queries (user growth over time)
|
|
49
|
+
CREATE INDEX idx_users_created_at ON users(created_at);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Format** (Markdown documentation):
|
|
53
|
+
```markdown
|
|
54
|
+
# Users Table
|
|
55
|
+
|
|
56
|
+
## Purpose
|
|
57
|
+
Stores user account information and authentication credentials.
|
|
58
|
+
|
|
59
|
+
## Schema
|
|
60
|
+
| Column | Type | Constraints | Description |
|
|
61
|
+
|--------|------|-------------|-------------|
|
|
62
|
+
| id | SERIAL | PRIMARY KEY | Unique user identifier |
|
|
63
|
+
| email | VARCHAR(255) | NOT NULL, UNIQUE | User email (used for login) |
|
|
64
|
+
| password_hash | VARCHAR(255) | NOT NULL | Bcrypt hashed password |
|
|
65
|
+
| created_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Account creation timestamp |
|
|
66
|
+
| updated_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | Last update timestamp |
|
|
67
|
+
|
|
68
|
+
## Relationships
|
|
69
|
+
- **One-to-One**: `user_profiles` (extended user information)
|
|
70
|
+
- **One-to-Many**: `user_sessions` (active login sessions)
|
|
71
|
+
- **One-to-Many**: `orders` (user purchase history)
|
|
72
|
+
|
|
73
|
+
## Indexes
|
|
74
|
+
- `idx_users_email` (UNIQUE): Fast email lookups for authentication
|
|
75
|
+
- `idx_users_created_at`: Analytics queries for user growth over time
|
|
76
|
+
|
|
77
|
+
## Data Retention
|
|
78
|
+
User data retained indefinitely unless user requests deletion (GDPR compliance).
|
|
79
|
+
|
|
80
|
+
## Performance Notes
|
|
81
|
+
- Email lookups are O(log n) due to unique index
|
|
82
|
+
- Avoid full table scans; always filter by id or email
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Column Documentation
|
|
86
|
+
|
|
87
|
+
**What to Document**:
|
|
88
|
+
- Purpose of the column
|
|
89
|
+
- Valid values or ranges
|
|
90
|
+
- Business rules
|
|
91
|
+
- Calculation logic (for computed columns)
|
|
92
|
+
|
|
93
|
+
**Example**:
|
|
94
|
+
```sql
|
|
95
|
+
CREATE TABLE orders (
|
|
96
|
+
id SERIAL PRIMARY KEY,
|
|
97
|
+
user_id INTEGER NOT NULL REFERENCES users(id),
|
|
98
|
+
|
|
99
|
+
-- Order status: pending, processing, shipped, delivered, cancelled
|
|
100
|
+
-- Transitions: pending -> processing -> shipped -> delivered
|
|
101
|
+
-- pending -> cancelled, processing -> cancelled
|
|
102
|
+
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
|
103
|
+
|
|
104
|
+
-- Total order amount in cents (to avoid floating point errors)
|
|
105
|
+
-- Calculated as: SUM(order_items.quantity * order_items.price_at_purchase)
|
|
106
|
+
total_cents INTEGER NOT NULL,
|
|
107
|
+
|
|
108
|
+
-- Timestamp when order was placed (immutable)
|
|
109
|
+
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
110
|
+
|
|
111
|
+
-- Timestamp of last status change
|
|
112
|
+
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
|
113
|
+
);
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Migration Documentation
|
|
119
|
+
|
|
120
|
+
### Migration File Header
|
|
121
|
+
|
|
122
|
+
**What to Document**:
|
|
123
|
+
- Purpose of the migration
|
|
124
|
+
- Related ticket/issue
|
|
125
|
+
- Breaking changes
|
|
126
|
+
- Rollback considerations
|
|
127
|
+
- Estimated execution time
|
|
128
|
+
|
|
129
|
+
**Example**:
|
|
130
|
+
```sql
|
|
131
|
+
-- Migration: Add email verification
|
|
132
|
+
-- Date: 2024-01-15
|
|
133
|
+
-- Author: AI Agent
|
|
134
|
+
-- Issue: bd-dbmod.5
|
|
135
|
+
--
|
|
136
|
+
-- Purpose: Add email_verified column to track email verification status
|
|
137
|
+
--
|
|
138
|
+
-- Breaking Changes: None (column is nullable with default value)
|
|
139
|
+
--
|
|
140
|
+
-- Rollback: Safe to rollback; column will be dropped
|
|
141
|
+
--
|
|
142
|
+
-- Estimated Execution Time: < 1 second (table has ~10k rows)
|
|
143
|
+
--
|
|
144
|
+
-- Dependencies: None
|
|
145
|
+
|
|
146
|
+
-- UP Migration
|
|
147
|
+
ALTER TABLE users
|
|
148
|
+
ADD COLUMN email_verified BOOLEAN DEFAULT FALSE;
|
|
149
|
+
|
|
150
|
+
COMMENT ON COLUMN users.email_verified IS
|
|
151
|
+
'Whether user has verified their email address. Default FALSE for new users.';
|
|
152
|
+
|
|
153
|
+
-- DOWN Migration (Rollback)
|
|
154
|
+
-- ALTER TABLE users DROP COLUMN email_verified;
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Migration Changelog
|
|
158
|
+
|
|
159
|
+
**Purpose**: Track all migrations in chronological order
|
|
160
|
+
|
|
161
|
+
**Format** (CHANGELOG.md):
|
|
162
|
+
```markdown
|
|
163
|
+
# Database Migration Changelog
|
|
164
|
+
|
|
165
|
+
## 2024-01-15: Add Email Verification
|
|
166
|
+
- **Migration**: `20240115_add_email_verified.sql`
|
|
167
|
+
- **Issue**: bd-dbmod.5
|
|
168
|
+
- **Changes**: Added `email_verified` column to `users` table
|
|
169
|
+
- **Impact**: No breaking changes; backward compatible
|
|
170
|
+
- **Rollback**: Safe to rollback
|
|
171
|
+
|
|
172
|
+
## 2024-01-10: Create Orders Table
|
|
173
|
+
- **Migration**: `20240110_create_orders.sql`
|
|
174
|
+
- **Issue**: bd-dbmod.3
|
|
175
|
+
- **Changes**: Created `orders` and `order_items` tables
|
|
176
|
+
- **Impact**: New tables; no impact on existing code
|
|
177
|
+
- **Rollback**: Safe to rollback if no orders created
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Query Documentation
|
|
183
|
+
|
|
184
|
+
### Complex Query Documentation
|
|
185
|
+
|
|
186
|
+
**What to Document**:
|
|
187
|
+
- Purpose of the query
|
|
188
|
+
- Performance characteristics
|
|
189
|
+
- Assumptions and limitations
|
|
190
|
+
- Example usage
|
|
191
|
+
|
|
192
|
+
**Example**:
|
|
193
|
+
```sql
|
|
194
|
+
-- Get top 10 customers by total order value in the last 30 days
|
|
195
|
+
--
|
|
196
|
+
-- Performance: Uses idx_orders_created_at and idx_orders_user_id
|
|
197
|
+
-- Expected execution time: < 100ms for ~100k orders
|
|
198
|
+
--
|
|
199
|
+
-- Assumptions:
|
|
200
|
+
-- - Orders table has created_at index
|
|
201
|
+
-- - Total_cents is accurate (no refunds deducted)
|
|
202
|
+
--
|
|
203
|
+
-- Limitations:
|
|
204
|
+
-- - Does not account for cancelled orders
|
|
205
|
+
-- - Does not account for refunds
|
|
206
|
+
--
|
|
207
|
+
-- Example usage:
|
|
208
|
+
-- SELECT * FROM top_customers_last_30_days;
|
|
209
|
+
|
|
210
|
+
CREATE VIEW top_customers_last_30_days AS
|
|
211
|
+
SELECT
|
|
212
|
+
u.id,
|
|
213
|
+
u.email,
|
|
214
|
+
u.name,
|
|
215
|
+
COUNT(o.id) AS order_count,
|
|
216
|
+
SUM(o.total_cents) / 100.0 AS total_spent
|
|
217
|
+
FROM users u
|
|
218
|
+
JOIN orders o ON u.id = o.user_id
|
|
219
|
+
WHERE
|
|
220
|
+
o.created_at >= NOW() - INTERVAL '30 days'
|
|
221
|
+
AND o.status != 'cancelled'
|
|
222
|
+
GROUP BY u.id, u.email, u.name
|
|
223
|
+
ORDER BY total_spent DESC
|
|
224
|
+
LIMIT 10;
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Design Decision Documentation
|
|
230
|
+
|
|
231
|
+
### Architecture Decision Records (ADRs)
|
|
232
|
+
|
|
233
|
+
**Purpose**: Document important database design decisions
|
|
234
|
+
|
|
235
|
+
**Format**:
|
|
236
|
+
```markdown
|
|
237
|
+
# ADR-001: Use PostgreSQL for Primary Database
|
|
238
|
+
|
|
239
|
+
## Status
|
|
240
|
+
Accepted
|
|
241
|
+
|
|
242
|
+
## Context
|
|
243
|
+
We need to select a database for our e-commerce application. Requirements:
|
|
244
|
+
- Strong consistency for financial transactions
|
|
245
|
+
- Complex queries for analytics
|
|
246
|
+
- ACID compliance
|
|
247
|
+
- Mature ecosystem
|
|
248
|
+
|
|
249
|
+
## Decision
|
|
250
|
+
Use PostgreSQL as the primary database.
|
|
251
|
+
|
|
252
|
+
## Consequences
|
|
253
|
+
|
|
254
|
+
### Positive
|
|
255
|
+
- Strong ACID guarantees for transactions
|
|
256
|
+
- Rich query capabilities (JSON, full-text search, etc.)
|
|
257
|
+
- Excellent performance for our scale (< 1M users)
|
|
258
|
+
- Large community and ecosystem
|
|
259
|
+
|
|
260
|
+
### Negative
|
|
261
|
+
- Vertical scaling limitations (will need sharding at very large scale)
|
|
262
|
+
- More complex than NoSQL for simple key-value operations
|
|
263
|
+
|
|
264
|
+
## Alternatives Considered
|
|
265
|
+
- **MySQL**: Similar capabilities, but PostgreSQL has better JSON support
|
|
266
|
+
- **MongoDB**: Better for unstructured data, but lacks ACID guarantees
|
|
267
|
+
- **DynamoDB**: Excellent scalability, but limited query capabilities
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Documentation Locations
|
|
273
|
+
|
|
274
|
+
### Where to Store Documentation
|
|
275
|
+
|
|
276
|
+
**1. SQL Comments** (for schema):
|
|
277
|
+
- Table and column comments
|
|
278
|
+
- Index purposes
|
|
279
|
+
- Constraint explanations
|
|
280
|
+
|
|
281
|
+
**2. Migration Files** (for changes):
|
|
282
|
+
- Migration headers
|
|
283
|
+
- Rollback instructions
|
|
284
|
+
- Impact analysis
|
|
285
|
+
|
|
286
|
+
**3. README.md** (for overview):
|
|
287
|
+
- Database setup instructions
|
|
288
|
+
- Schema overview
|
|
289
|
+
- Common queries
|
|
290
|
+
|
|
291
|
+
**4. docs/database/** (for detailed docs):
|
|
292
|
+
- Schema documentation
|
|
293
|
+
- ADRs
|
|
294
|
+
- Query guides
|
|
295
|
+
- Performance tuning
|
|
296
|
+
|
|
297
|
+
**5. Code Comments** (for application code):
|
|
298
|
+
- Query explanations
|
|
299
|
+
- Transaction boundaries
|
|
300
|
+
- Performance notes
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## AI Prompt Templates
|
|
305
|
+
|
|
306
|
+
### Documenting a Schema
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
Document this database schema:
|
|
310
|
+
|
|
311
|
+
[paste schema]
|
|
312
|
+
|
|
313
|
+
Please create comprehensive documentation including:
|
|
314
|
+
- Table purposes and relationships
|
|
315
|
+
- Column descriptions
|
|
316
|
+
- Index purposes
|
|
317
|
+
- Performance considerations
|
|
318
|
+
- Data retention policies
|
|
319
|
+
|
|
320
|
+
Format: [SQL comments / Markdown table]
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Documenting a Migration
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
Create documentation for this migration:
|
|
327
|
+
|
|
328
|
+
[paste migration SQL]
|
|
329
|
+
|
|
330
|
+
Please include:
|
|
331
|
+
- Purpose and context
|
|
332
|
+
- Breaking changes (if any)
|
|
333
|
+
- Rollback considerations
|
|
334
|
+
- Estimated execution time
|
|
335
|
+
- Dependencies
|
|
336
|
+
|
|
337
|
+
Format: SQL comment header
|
|
338
|
+
```
|
|
339
|
+
|