@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,305 @@
|
|
|
1
|
+
# Database Testing Patterns
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Provide comprehensive testing strategies for database schemas, queries, migrations, and data integrity.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Testing Levels
|
|
10
|
+
|
|
11
|
+
### 1. Unit Tests
|
|
12
|
+
|
|
13
|
+
**Purpose**: Test individual database components in isolation
|
|
14
|
+
|
|
15
|
+
**What to Test**:
|
|
16
|
+
- Constraints (primary keys, foreign keys, unique, check)
|
|
17
|
+
- Default values
|
|
18
|
+
- Triggers
|
|
19
|
+
- Stored procedures/functions
|
|
20
|
+
- Data validation rules
|
|
21
|
+
|
|
22
|
+
**Example** (PostgreSQL with Jest):
|
|
23
|
+
```javascript
|
|
24
|
+
describe('Users table constraints', () => {
|
|
25
|
+
test('email must be unique', async () => {
|
|
26
|
+
await db.query('INSERT INTO users (email) VALUES ($1)', ['test@example.com']);
|
|
27
|
+
|
|
28
|
+
await expect(
|
|
29
|
+
db.query('INSERT INTO users (email) VALUES ($1)', ['test@example.com'])
|
|
30
|
+
).rejects.toThrow(/unique constraint/);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
test('email cannot be null', async () => {
|
|
34
|
+
await expect(
|
|
35
|
+
db.query('INSERT INTO users (name) VALUES ($1)', ['John'])
|
|
36
|
+
).rejects.toThrow(/not null constraint/);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Integration Tests
|
|
42
|
+
|
|
43
|
+
**Purpose**: Test database interactions with application code
|
|
44
|
+
|
|
45
|
+
**What to Test**:
|
|
46
|
+
- CRUD operations
|
|
47
|
+
- Complex queries
|
|
48
|
+
- Transactions
|
|
49
|
+
- Relationships between tables
|
|
50
|
+
- Data consistency across operations
|
|
51
|
+
|
|
52
|
+
**Example** (Node.js with Jest):
|
|
53
|
+
```javascript
|
|
54
|
+
describe('Order creation', () => {
|
|
55
|
+
test('creates order with line items in transaction', async () => {
|
|
56
|
+
const order = await createOrder({
|
|
57
|
+
userId: 1,
|
|
58
|
+
items: [
|
|
59
|
+
{ productId: 1, quantity: 2 },
|
|
60
|
+
{ productId: 2, quantity: 1 }
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
expect(order.id).toBeDefined();
|
|
65
|
+
expect(order.total).toBe(150.00);
|
|
66
|
+
|
|
67
|
+
const lineItems = await db.query(
|
|
68
|
+
'SELECT * FROM order_items WHERE order_id = $1',
|
|
69
|
+
[order.id]
|
|
70
|
+
);
|
|
71
|
+
expect(lineItems.rows).toHaveLength(2);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('rolls back order if payment fails', async () => {
|
|
75
|
+
await expect(
|
|
76
|
+
createOrder({ userId: 1, items: [], paymentFails: true })
|
|
77
|
+
).rejects.toThrow();
|
|
78
|
+
|
|
79
|
+
const orders = await db.query('SELECT * FROM orders WHERE user_id = $1', [1]);
|
|
80
|
+
expect(orders.rows).toHaveLength(0);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 3. Performance Tests
|
|
86
|
+
|
|
87
|
+
**Purpose**: Ensure queries and operations meet performance requirements
|
|
88
|
+
|
|
89
|
+
**What to Test**:
|
|
90
|
+
- Query execution time
|
|
91
|
+
- Index effectiveness
|
|
92
|
+
- Bulk operation performance
|
|
93
|
+
- Concurrent access handling
|
|
94
|
+
|
|
95
|
+
**Example** (Node.js with Jest):
|
|
96
|
+
```javascript
|
|
97
|
+
describe('Query performance', () => {
|
|
98
|
+
test('user search completes within 100ms', async () => {
|
|
99
|
+
const start = Date.now();
|
|
100
|
+
await db.query(
|
|
101
|
+
'SELECT * FROM users WHERE email LIKE $1 LIMIT 10',
|
|
102
|
+
['%@example.com']
|
|
103
|
+
);
|
|
104
|
+
const duration = Date.now() - start;
|
|
105
|
+
|
|
106
|
+
expect(duration).toBeLessThan(100);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
test('bulk insert handles 10k records efficiently', async () => {
|
|
110
|
+
const records = Array.from({ length: 10000 }, (_, i) => ({
|
|
111
|
+
email: `user${i}@example.com`,
|
|
112
|
+
name: `User ${i}`
|
|
113
|
+
}));
|
|
114
|
+
|
|
115
|
+
const start = Date.now();
|
|
116
|
+
await bulkInsertUsers(records);
|
|
117
|
+
const duration = Date.now() - start;
|
|
118
|
+
|
|
119
|
+
expect(duration).toBeLessThan(5000); // 5 seconds
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 4. Migration Tests
|
|
125
|
+
|
|
126
|
+
**Purpose**: Verify migrations execute correctly and can be rolled back
|
|
127
|
+
|
|
128
|
+
**What to Test**:
|
|
129
|
+
- Migration succeeds
|
|
130
|
+
- Rollback succeeds
|
|
131
|
+
- Data integrity after migration
|
|
132
|
+
- Application compatibility during migration
|
|
133
|
+
|
|
134
|
+
**Example** (Node.js with Jest):
|
|
135
|
+
```javascript
|
|
136
|
+
describe('Add email_verified column migration', () => {
|
|
137
|
+
beforeEach(async () => {
|
|
138
|
+
await runMigration('down', '20240115_add_email_verified');
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
test('migration adds column with default value', async () => {
|
|
142
|
+
await runMigration('up', '20240115_add_email_verified');
|
|
143
|
+
|
|
144
|
+
const result = await db.query(`
|
|
145
|
+
SELECT column_name, column_default
|
|
146
|
+
FROM information_schema.columns
|
|
147
|
+
WHERE table_name = 'users' AND column_name = 'email_verified'
|
|
148
|
+
`);
|
|
149
|
+
|
|
150
|
+
expect(result.rows).toHaveLength(1);
|
|
151
|
+
expect(result.rows[0].column_default).toBe('false');
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
test('rollback removes column', async () => {
|
|
155
|
+
await runMigration('up', '20240115_add_email_verified');
|
|
156
|
+
await runMigration('down', '20240115_add_email_verified');
|
|
157
|
+
|
|
158
|
+
const result = await db.query(`
|
|
159
|
+
SELECT column_name
|
|
160
|
+
FROM information_schema.columns
|
|
161
|
+
WHERE table_name = 'users' AND column_name = 'email_verified'
|
|
162
|
+
`);
|
|
163
|
+
|
|
164
|
+
expect(result.rows).toHaveLength(0);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Test Data Management
|
|
172
|
+
|
|
173
|
+
### Fixtures
|
|
174
|
+
|
|
175
|
+
**Purpose**: Provide consistent, reusable test data
|
|
176
|
+
|
|
177
|
+
**Best Practices**:
|
|
178
|
+
- Use factories for generating test data
|
|
179
|
+
- Keep fixtures minimal (only what's needed for test)
|
|
180
|
+
- Use realistic data (avoid "test", "foo", "bar")
|
|
181
|
+
- Version fixtures with schema changes
|
|
182
|
+
|
|
183
|
+
**Example** (JavaScript factory):
|
|
184
|
+
```javascript
|
|
185
|
+
const userFactory = {
|
|
186
|
+
build: (overrides = {}) => ({
|
|
187
|
+
email: `user${Date.now()}@example.com`,
|
|
188
|
+
name: 'Test User',
|
|
189
|
+
created_at: new Date(),
|
|
190
|
+
...overrides
|
|
191
|
+
}),
|
|
192
|
+
|
|
193
|
+
create: async (overrides = {}) => {
|
|
194
|
+
const user = userFactory.build(overrides);
|
|
195
|
+
const result = await db.query(
|
|
196
|
+
'INSERT INTO users (email, name, created_at) VALUES ($1, $2, $3) RETURNING *',
|
|
197
|
+
[user.email, user.name, user.created_at]
|
|
198
|
+
);
|
|
199
|
+
return result.rows[0];
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Database Seeding
|
|
205
|
+
|
|
206
|
+
**Purpose**: Populate database with initial data for testing
|
|
207
|
+
|
|
208
|
+
**Strategies**:
|
|
209
|
+
- **Minimal Seed**: Only essential data (users, roles, etc.)
|
|
210
|
+
- **Full Seed**: Realistic dataset for manual testing
|
|
211
|
+
- **Performance Seed**: Large dataset for performance testing
|
|
212
|
+
|
|
213
|
+
**Example** (seed script):
|
|
214
|
+
```javascript
|
|
215
|
+
async function seed() {
|
|
216
|
+
// Create admin user
|
|
217
|
+
await userFactory.create({ email: 'admin@example.com', role: 'admin' });
|
|
218
|
+
|
|
219
|
+
// Create 100 regular users
|
|
220
|
+
for (let i = 0; i < 100; i++) {
|
|
221
|
+
await userFactory.create();
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// Create products
|
|
225
|
+
const products = await Promise.all([
|
|
226
|
+
productFactory.create({ name: 'Product 1', price: 10.00 }),
|
|
227
|
+
productFactory.create({ name: 'Product 2', price: 20.00 })
|
|
228
|
+
]);
|
|
229
|
+
|
|
230
|
+
console.log('Database seeded successfully');
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Test Isolation
|
|
235
|
+
|
|
236
|
+
**Purpose**: Ensure tests don't interfere with each other
|
|
237
|
+
|
|
238
|
+
**Strategies**:
|
|
239
|
+
|
|
240
|
+
**1. Transaction Rollback** (fastest):
|
|
241
|
+
```javascript
|
|
242
|
+
beforeEach(async () => {
|
|
243
|
+
await db.query('BEGIN');
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
afterEach(async () => {
|
|
247
|
+
await db.query('ROLLBACK');
|
|
248
|
+
});
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
**2. Database Truncation**:
|
|
252
|
+
```javascript
|
|
253
|
+
afterEach(async () => {
|
|
254
|
+
await db.query('TRUNCATE users, orders, order_items CASCADE');
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**3. Database Recreation** (slowest, most thorough):
|
|
259
|
+
```javascript
|
|
260
|
+
beforeEach(async () => {
|
|
261
|
+
await dropDatabase('test_db');
|
|
262
|
+
await createDatabase('test_db');
|
|
263
|
+
await runMigrations('test_db');
|
|
264
|
+
});
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## AI Prompt Templates
|
|
270
|
+
|
|
271
|
+
### Creating Unit Tests
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
Create unit tests for this database schema:
|
|
275
|
+
|
|
276
|
+
[paste schema]
|
|
277
|
+
|
|
278
|
+
Test framework: [Jest/Mocha/pytest/etc.]
|
|
279
|
+
Database: [PostgreSQL/MySQL/etc.]
|
|
280
|
+
|
|
281
|
+
Please create tests for:
|
|
282
|
+
- All constraints (primary key, foreign key, unique, not null)
|
|
283
|
+
- Default values
|
|
284
|
+
- Data validation rules
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Creating Integration Tests
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
Create integration tests for this database operation:
|
|
291
|
+
|
|
292
|
+
[paste code or describe operation]
|
|
293
|
+
|
|
294
|
+
Schema:
|
|
295
|
+
[paste relevant schema]
|
|
296
|
+
|
|
297
|
+
Test framework: [Jest/Mocha/pytest/etc.]
|
|
298
|
+
|
|
299
|
+
Please create tests covering:
|
|
300
|
+
- Happy path
|
|
301
|
+
- Error cases
|
|
302
|
+
- Edge cases
|
|
303
|
+
- Transaction rollback
|
|
304
|
+
```
|
|
305
|
+
|