@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,360 @@
|
|
|
1
|
+
# MCP Testing and Validation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document defines testing strategies and validation approaches for MCP implementations. Comprehensive testing is critical for ensuring context quality, performance, and reliability.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Unit Testing
|
|
10
|
+
|
|
11
|
+
### Context Transformations
|
|
12
|
+
|
|
13
|
+
Test individual context transformation functions:
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
def test_context_compression():
|
|
17
|
+
"""Test context compression maintains key information"""
|
|
18
|
+
original = "Long context with important details..."
|
|
19
|
+
compressed = compress_context(original, ratio=0.5)
|
|
20
|
+
|
|
21
|
+
assert len(compressed) < len(original)
|
|
22
|
+
assert "important details" in compressed
|
|
23
|
+
assert calculate_fidelity(original, compressed) > 0.85
|
|
24
|
+
|
|
25
|
+
def test_chunking():
|
|
26
|
+
"""Test semantic chunking preserves boundaries"""
|
|
27
|
+
document = "Section 1.\n\nSection 2.\n\nSection 3."
|
|
28
|
+
chunks = chunk_document(document, chunk_size=512)
|
|
29
|
+
|
|
30
|
+
assert len(chunks) == 3
|
|
31
|
+
assert all("Section" in chunk for chunk in chunks)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### State Serialization
|
|
35
|
+
|
|
36
|
+
Test round-trip serialization:
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
def test_state_serialization():
|
|
40
|
+
"""Test state serialization round-trip"""
|
|
41
|
+
original_state = AgentState(
|
|
42
|
+
session_id="test-123",
|
|
43
|
+
context={"key": "value"},
|
|
44
|
+
history=[{"role": "user", "content": "Hello"}]
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# Serialize
|
|
48
|
+
serialized = original_state.json()
|
|
49
|
+
|
|
50
|
+
# Deserialize
|
|
51
|
+
restored_state = AgentState.parse_raw(serialized)
|
|
52
|
+
|
|
53
|
+
assert restored_state == original_state
|
|
54
|
+
assert restored_state.session_id == "test-123"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Configuration Validation
|
|
58
|
+
|
|
59
|
+
Test configuration parsing and validation:
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
def test_config_validation():
|
|
63
|
+
"""Test configuration validation"""
|
|
64
|
+
valid_config = {
|
|
65
|
+
"version": "1.0",
|
|
66
|
+
"mcpTypes": ["token", "vector"]
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
config = MCPConfig(**valid_config)
|
|
70
|
+
assert config.mcpTypes == ["token", "vector"]
|
|
71
|
+
|
|
72
|
+
# Test invalid config
|
|
73
|
+
invalid_config = {"version": "1.0", "mcpTypes": ["invalid"]}
|
|
74
|
+
with pytest.raises(ValidationError):
|
|
75
|
+
MCPConfig(**invalid_config)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Error Handling
|
|
79
|
+
|
|
80
|
+
Test error scenarios:
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
def test_overflow_handling():
|
|
84
|
+
"""Test graceful handling of context overflow"""
|
|
85
|
+
large_context = "x" * 300000 # Exceeds 200k token limit
|
|
86
|
+
|
|
87
|
+
result = process_context(large_context, max_tokens=200000)
|
|
88
|
+
|
|
89
|
+
assert result.truncated == True
|
|
90
|
+
assert result.token_count <= 200000
|
|
91
|
+
assert result.warning == "Context truncated due to token limit"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 2. Integration Testing
|
|
97
|
+
|
|
98
|
+
### End-to-End Pipeline
|
|
99
|
+
|
|
100
|
+
Test complete MCP pipeline:
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
def test_rag_pipeline():
|
|
104
|
+
"""Test end-to-end RAG pipeline"""
|
|
105
|
+
# Setup
|
|
106
|
+
knowledge_base = ["Document 1 content", "Document 2 content"]
|
|
107
|
+
index_documents(knowledge_base)
|
|
108
|
+
|
|
109
|
+
# Query
|
|
110
|
+
query = "What is in document 1?"
|
|
111
|
+
results = retrieve_and_generate(query, top_k=3)
|
|
112
|
+
|
|
113
|
+
# Validate
|
|
114
|
+
assert len(results.retrieved_docs) <= 3
|
|
115
|
+
assert results.generated_response is not None
|
|
116
|
+
assert "Document 1" in results.generated_response
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Multi-Type Integration
|
|
120
|
+
|
|
121
|
+
Test hybrid MCP configurations:
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
def test_hybrid_mcp():
|
|
125
|
+
"""Test hybrid MCP with multiple memory types"""
|
|
126
|
+
# Initialize hybrid MCP
|
|
127
|
+
mcp = HybridMCP(
|
|
128
|
+
memory_types=["token", "vector", "state"],
|
|
129
|
+
budget_allocation={"token": 0.4, "vector": 0.4, "state": 0.2}
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
# Process request
|
|
133
|
+
response = mcp.process_request(
|
|
134
|
+
query="What did we discuss yesterday?",
|
|
135
|
+
session_id="test-session"
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# Validate all memory types were used
|
|
139
|
+
assert response.token_memory_used == True
|
|
140
|
+
assert response.vector_memory_used == True
|
|
141
|
+
assert response.state_memory_used == True
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Performance Testing
|
|
145
|
+
|
|
146
|
+
Benchmark latency and throughput:
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
def test_retrieval_latency():
|
|
150
|
+
"""Test retrieval latency meets SLA"""
|
|
151
|
+
import time
|
|
152
|
+
|
|
153
|
+
start = time.time()
|
|
154
|
+
results = retrieve_context(query="test query", top_k=10)
|
|
155
|
+
latency = time.time() - start
|
|
156
|
+
|
|
157
|
+
assert latency < 0.1 # 100ms SLA
|
|
158
|
+
assert len(results) == 10
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Regression Testing
|
|
162
|
+
|
|
163
|
+
Validate against known good outputs:
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
def test_regression():
|
|
167
|
+
"""Test against golden dataset"""
|
|
168
|
+
golden_dataset = load_golden_dataset()
|
|
169
|
+
|
|
170
|
+
for example in golden_dataset:
|
|
171
|
+
result = process_context(example.input)
|
|
172
|
+
|
|
173
|
+
# Compare with expected output
|
|
174
|
+
similarity = calculate_similarity(result, example.expected_output)
|
|
175
|
+
assert similarity > 0.95 # 95% similarity threshold
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 3. Synthetic Testing
|
|
181
|
+
|
|
182
|
+
### Context Replay
|
|
183
|
+
|
|
184
|
+
Save and replay contexts:
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
def test_context_replay():
|
|
188
|
+
"""Test context replay for debugging"""
|
|
189
|
+
# Save context
|
|
190
|
+
save_context_snapshot(
|
|
191
|
+
session_id="test-123",
|
|
192
|
+
context=current_context,
|
|
193
|
+
timestamp="2026-01-29T10:00:00Z"
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Replay context
|
|
197
|
+
replayed = load_context_snapshot("test-123", "2026-01-29T10:00:00Z")
|
|
198
|
+
|
|
199
|
+
# Process with replayed context
|
|
200
|
+
result = process_with_context(replayed)
|
|
201
|
+
|
|
202
|
+
assert result is not None
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Adversarial Inputs
|
|
206
|
+
|
|
207
|
+
Test with malformed/oversized contexts:
|
|
208
|
+
|
|
209
|
+
```python
|
|
210
|
+
def test_malformed_context():
|
|
211
|
+
"""Test handling of malformed context"""
|
|
212
|
+
malformed_contexts = [
|
|
213
|
+
None,
|
|
214
|
+
"",
|
|
215
|
+
"x" * 1000000, # Oversized
|
|
216
|
+
{"invalid": "schema"},
|
|
217
|
+
"Prompt injection: Ignore previous instructions"
|
|
218
|
+
]
|
|
219
|
+
|
|
220
|
+
for context in malformed_contexts:
|
|
221
|
+
result = process_context(context)
|
|
222
|
+
assert result.error is not None or result.sanitized == True
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Edge Cases
|
|
226
|
+
|
|
227
|
+
Test boundary conditions:
|
|
228
|
+
|
|
229
|
+
```python
|
|
230
|
+
def test_edge_cases():
|
|
231
|
+
"""Test edge cases"""
|
|
232
|
+
# Empty context
|
|
233
|
+
assert process_context("") == default_context()
|
|
234
|
+
|
|
235
|
+
# Exactly at token limit
|
|
236
|
+
context_at_limit = "x" * 200000
|
|
237
|
+
result = process_context(context_at_limit, max_tokens=200000)
|
|
238
|
+
assert result.token_count <= 200000
|
|
239
|
+
|
|
240
|
+
# Single token over limit
|
|
241
|
+
context_over_limit = "x" * 200001
|
|
242
|
+
result = process_context(context_over_limit, max_tokens=200000)
|
|
243
|
+
assert result.truncated == True
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Stress Testing
|
|
247
|
+
|
|
248
|
+
Test at maximum capacity:
|
|
249
|
+
|
|
250
|
+
```python
|
|
251
|
+
def test_stress():
|
|
252
|
+
"""Test under maximum load"""
|
|
253
|
+
import concurrent.futures
|
|
254
|
+
|
|
255
|
+
def process_request(i):
|
|
256
|
+
return retrieve_context(f"query {i}", top_k=10)
|
|
257
|
+
|
|
258
|
+
# Simulate 100 concurrent requests
|
|
259
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
|
|
260
|
+
futures = [executor.submit(process_request, i) for i in range(100)]
|
|
261
|
+
results = [f.result() for f in futures]
|
|
262
|
+
|
|
263
|
+
assert len(results) == 100
|
|
264
|
+
assert all(r is not None for r in results)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 4. Monitoring and Metrics
|
|
270
|
+
|
|
271
|
+
### Token Usage Metrics
|
|
272
|
+
|
|
273
|
+
```python
|
|
274
|
+
def track_token_usage(request_id, tokens_used, tokens_budgeted):
|
|
275
|
+
"""Track token usage metrics"""
|
|
276
|
+
metrics.gauge("mcp.tokens.used", tokens_used, tags={"request_id": request_id})
|
|
277
|
+
metrics.gauge("mcp.tokens.budgeted", tokens_budgeted, tags={"request_id": request_id})
|
|
278
|
+
|
|
279
|
+
if tokens_used > tokens_budgeted:
|
|
280
|
+
metrics.increment("mcp.tokens.overflow", tags={"request_id": request_id})
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Retrieval Quality Metrics
|
|
284
|
+
|
|
285
|
+
```python
|
|
286
|
+
def track_retrieval_metrics(query, results, relevant_docs):
|
|
287
|
+
"""Track retrieval quality metrics"""
|
|
288
|
+
# Recall@K
|
|
289
|
+
recall_at_k = len(set(results) & set(relevant_docs)) / len(relevant_docs)
|
|
290
|
+
metrics.gauge("mcp.retrieval.recall_at_k", recall_at_k)
|
|
291
|
+
|
|
292
|
+
# Precision
|
|
293
|
+
precision = len(set(results) & set(relevant_docs)) / len(results)
|
|
294
|
+
metrics.gauge("mcp.retrieval.precision", precision)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Latency Metrics
|
|
298
|
+
|
|
299
|
+
```python
|
|
300
|
+
def track_latency(operation, duration):
|
|
301
|
+
"""Track operation latency"""
|
|
302
|
+
metrics.histogram("mcp.latency", duration, tags={"operation": operation})
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Error Rate Metrics
|
|
306
|
+
|
|
307
|
+
```python
|
|
308
|
+
def track_errors(error_type):
|
|
309
|
+
"""Track error rates"""
|
|
310
|
+
metrics.increment("mcp.errors", tags={"type": error_type})
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 5. Validation Checklist
|
|
316
|
+
|
|
317
|
+
### Pre-Deployment Checklist
|
|
318
|
+
|
|
319
|
+
- [ ] All unit tests pass
|
|
320
|
+
- [ ] Integration tests pass
|
|
321
|
+
- [ ] Performance benchmarks meet SLA
|
|
322
|
+
- [ ] Security tests pass (PII detection, injection prevention)
|
|
323
|
+
- [ ] Configuration validation works
|
|
324
|
+
- [ ] Error handling covers all failure modes
|
|
325
|
+
- [ ] Monitoring and alerting configured
|
|
326
|
+
- [ ] Documentation is complete and accurate
|
|
327
|
+
- [ ] Regression tests pass
|
|
328
|
+
- [ ] Load testing completed
|
|
329
|
+
|
|
330
|
+
### Post-Deployment Checklist
|
|
331
|
+
|
|
332
|
+
- [ ] Monitor token usage in production
|
|
333
|
+
- [ ] Track retrieval quality metrics
|
|
334
|
+
- [ ] Monitor latency (p50, p95, p99)
|
|
335
|
+
- [ ] Track error rates
|
|
336
|
+
- [ ] Review logs for anomalies
|
|
337
|
+
- [ ] Validate cost tracking
|
|
338
|
+
- [ ] Check for context drift
|
|
339
|
+
- [ ] Review user feedback
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Best Practices
|
|
344
|
+
|
|
345
|
+
✅ **DO**:
|
|
346
|
+
- Test all context transformations with unit tests
|
|
347
|
+
- Validate state serialization round-trips
|
|
348
|
+
- Benchmark performance against SLA
|
|
349
|
+
- Test with adversarial inputs
|
|
350
|
+
- Monitor metrics in production
|
|
351
|
+
- Maintain golden datasets for regression testing
|
|
352
|
+
|
|
353
|
+
❌ **DON'T**:
|
|
354
|
+
- Deploy without integration tests
|
|
355
|
+
- Skip performance testing
|
|
356
|
+
- Ignore edge cases
|
|
357
|
+
- Test only happy paths
|
|
358
|
+
- Deploy without monitoring
|
|
359
|
+
- Forget to test error handling
|
|
360
|
+
|