workspace-architect 1.3.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/.env.example +1 -0
- package/.gitattributes +1 -0
- package/.github/workflows/manual-publish.yml +36 -0
- package/.github/workflows/sync-and-publish.yml +58 -0
- package/.release-it.json +20 -0
- package/CHANGELOG.md +43 -0
- package/README.md +62 -0
- package/assets/chatmodes/4.1-Beast.chatmode.md +152 -0
- package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +337 -0
- package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +644 -0
- package/assets/chatmodes/accessibility.chatmode.md +298 -0
- package/assets/chatmodes/address-comments.chatmode.md +59 -0
- package/assets/chatmodes/aem-frontend-specialist.chatmode.md +385 -0
- package/assets/chatmodes/api-architect.chatmode.md +40 -0
- package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +444 -0
- package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +100 -0
- package/assets/chatmodes/azure-principal-architect.chatmode.md +58 -0
- package/assets/chatmodes/azure-saas-architect.chatmode.md +118 -0
- package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +44 -0
- package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +58 -0
- package/assets/chatmodes/bicep-implement.chatmode.md +40 -0
- package/assets/chatmodes/bicep-plan.chatmode.md +112 -0
- package/assets/chatmodes/blueprint-mode-codex.chatmode.md +110 -0
- package/assets/chatmodes/blueprint-mode.chatmode.md +171 -0
- package/assets/chatmodes/clojure-interactive-programming.chatmode.md +174 -0
- package/assets/chatmodes/code-tour.chatmode.md +205 -0
- package/assets/chatmodes/critical-thinking.chatmode.md +23 -0
- package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +83 -0
- package/assets/chatmodes/csharp-mcp-expert.chatmode.md +69 -0
- package/assets/chatmodes/debug.chatmode.md +79 -0
- package/assets/chatmodes/declarative-agents-architect.chatmode.md +76 -0
- package/assets/chatmodes/demonstrate-understanding.chatmode.md +60 -0
- package/assets/chatmodes/dotnet-upgrade.chatmode.md +222 -0
- package/assets/chatmodes/drupal-expert.chatmode.md +687 -0
- package/assets/chatmodes/electron-angular-native.chatmode.md +285 -0
- package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +27 -0
- package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +22 -0
- package/assets/chatmodes/expert-nextjs-developer.chatmode.md +477 -0
- package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +738 -0
- package/assets/chatmodes/gilfoyle.chatmode.md +66 -0
- package/assets/chatmodes/go-mcp-expert.chatmode.md +122 -0
- package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +109 -0
- package/assets/chatmodes/hlbpa.chatmode.md +232 -0
- package/assets/chatmodes/implementation-plan.chatmode.md +159 -0
- package/assets/chatmodes/janitor.chatmode.md +89 -0
- package/assets/chatmodes/java-mcp-expert.chatmode.md +325 -0
- package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +181 -0
- package/assets/chatmodes/kusto-assistant.chatmode.md +143 -0
- package/assets/chatmodes/laravel-expert-agent.chatmode.md +628 -0
- package/assets/chatmodes/mentor.chatmode.md +32 -0
- package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +15 -0
- package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +62 -0
- package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +62 -0
- package/assets/chatmodes/microsoft-study-mode.chatmode.md +32 -0
- package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +388 -0
- package/assets/chatmodes/ms-sql-dba.chatmode.md +25 -0
- package/assets/chatmodes/php-mcp-expert.chatmode.md +498 -0
- package/assets/chatmodes/pimcore-expert.chatmode.md +869 -0
- package/assets/chatmodes/plan.chatmode.md +114 -0
- package/assets/chatmodes/planner.chatmode.md +14 -0
- package/assets/chatmodes/playwright-tester.chatmode.md +13 -0
- package/assets/chatmodes/postgresql-dba.chatmode.md +17 -0
- package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +319 -0
- package/assets/chatmodes/power-bi-dax-expert.chatmode.md +334 -0
- package/assets/chatmodes/power-bi-performance-expert.chatmode.md +533 -0
- package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +549 -0
- package/assets/chatmodes/power-platform-expert.chatmode.md +116 -0
- package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +149 -0
- package/assets/chatmodes/prd.chatmode.md +201 -0
- package/assets/chatmodes/principal-software-engineer.chatmode.md +41 -0
- package/assets/chatmodes/prompt-builder.chatmode.md +352 -0
- package/assets/chatmodes/prompt-engineer.chatmode.md +72 -0
- package/assets/chatmodes/python-mcp-expert.chatmode.md +99 -0
- package/assets/chatmodes/refine-issue.chatmode.md +34 -0
- package/assets/chatmodes/research-technical-spike.chatmode.md +169 -0
- package/assets/chatmodes/ruby-mcp-expert.chatmode.md +346 -0
- package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +197 -0
- package/assets/chatmodes/rust-mcp-expert.chatmode.md +465 -0
- package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +227 -0
- package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +31 -0
- package/assets/chatmodes/semantic-kernel-python.chatmode.md +28 -0
- package/assets/chatmodes/shopify-expert.chatmode.md +681 -0
- package/assets/chatmodes/simple-app-idea-generator.chatmode.md +134 -0
- package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +164 -0
- package/assets/chatmodes/specification.chatmode.md +127 -0
- package/assets/chatmodes/swift-mcp-expert.chatmode.md +240 -0
- package/assets/chatmodes/task-planner.chatmode.md +374 -0
- package/assets/chatmodes/task-researcher.chatmode.md +254 -0
- package/assets/chatmodes/tdd-green.chatmode.md +59 -0
- package/assets/chatmodes/tdd-red.chatmode.md +59 -0
- package/assets/chatmodes/tdd-refactor.chatmode.md +84 -0
- package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +49 -0
- package/assets/chatmodes/terraform-azure-implement.chatmode.md +104 -0
- package/assets/chatmodes/terraform-azure-planning.chatmode.md +157 -0
- package/assets/chatmodes/typescript-mcp-expert.chatmode.md +91 -0
- package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +230 -0
- package/assets/chatmodes/wg-code-alchemist.chatmode.md +61 -0
- package/assets/chatmodes/wg-code-sentinel.chatmode.md +55 -0
- package/assets/collections/ai-prompt-engineering.json +18 -0
- package/assets/collections/angular-development.json +7 -0
- package/assets/collections/azure-cloud-architect.json +29 -0
- package/assets/collections/cpp-development.json +6 -0
- package/assets/collections/database-administration.json +8 -0
- package/assets/collections/devops-sre.json +11 -0
- package/assets/collections/dotnet-development.json +22 -0
- package/assets/collections/general-productivity.json +9 -0
- package/assets/collections/go-development.json +7 -0
- package/assets/collections/java-spring-developer.json +26 -0
- package/assets/collections/learning-mentoring.json +10 -0
- package/assets/collections/legacy-migration.json +4 -0
- package/assets/collections/mcp-specialist.json +41 -0
- package/assets/collections/mobile-development.json +4 -0
- package/assets/collections/php-cms-development.json +11 -0
- package/assets/collections/power-platform-specialist.json +31 -0
- package/assets/collections/project-management.json +12 -0
- package/assets/collections/python-development.json +13 -0
- package/assets/collections/quality-assurance.json +13 -0
- package/assets/collections/ruby-development.json +9 -0
- package/assets/collections/rust-development.json +10 -0
- package/assets/collections/security-specialist.json +8 -0
- package/assets/collections/software-architect.json +25 -0
- package/assets/collections/technical-writing.json +9 -0
- package/assets/collections/web-frontend-development.json +14 -0
- package/assets/instructions/a11y.instructions.md +369 -0
- package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +867 -0
- package/assets/instructions/angular.instructions.md +104 -0
- package/assets/instructions/ansible.instructions.md +88 -0
- package/assets/instructions/aspnet-rest-apis.instructions.md +110 -0
- package/assets/instructions/astro.instructions.md +182 -0
- package/assets/instructions/azure-devops-pipelines.instructions.md +185 -0
- package/assets/instructions/azure-functions-typescript.instructions.md +14 -0
- package/assets/instructions/azure-logic-apps-power-automate.instructions.md +1943 -0
- package/assets/instructions/azure-verified-modules-terraform.instructions.md +229 -0
- package/assets/instructions/bicep-code-best-practices.instructions.md +54 -0
- package/assets/instructions/blazor.instructions.md +77 -0
- package/assets/instructions/clojure.instructions.md +349 -0
- package/assets/instructions/cmake-vcpkg.instructions.md +10 -0
- package/assets/instructions/codexer.instructions.md +428 -0
- package/assets/instructions/coldfusion-cfc.instructions.md +30 -0
- package/assets/instructions/coldfusion-cfm.instructions.md +28 -0
- package/assets/instructions/collections.instructions.md +54 -0
- package/assets/instructions/containerization-docker-best-practices.instructions.md +681 -0
- package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +949 -0
- package/assets/instructions/copilot-thought-logging.instructions.md +62 -0
- package/assets/instructions/csharp-ja.instructions.md +114 -0
- package/assets/instructions/csharp-ko.instructions.md +77 -0
- package/assets/instructions/csharp-mcp-server.instructions.md +95 -0
- package/assets/instructions/csharp.instructions.md +114 -0
- package/assets/instructions/dart-n-flutter.instructions.md +447 -0
- package/assets/instructions/declarative-agents-microsoft365.instructions.md +316 -0
- package/assets/instructions/devbox-image-definition.instructions.md +302 -0
- package/assets/instructions/devops-core-principles.instructions.md +167 -0
- package/assets/instructions/dotnet-architecture-good-practices.instructions.md +279 -0
- package/assets/instructions/dotnet-framework.instructions.md +113 -0
- package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +1922 -0
- package/assets/instructions/dotnet-maui.instructions.md +69 -0
- package/assets/instructions/dotnet-upgrade.instructions.md +287 -0
- package/assets/instructions/dotnet-wpf.instructions.md +79 -0
- package/assets/instructions/genaiscript.instructions.md +21 -0
- package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +82 -0
- package/assets/instructions/gilfoyle-code-review.instructions.md +114 -0
- package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
- package/assets/instructions/go-mcp-server.instructions.md +346 -0
- package/assets/instructions/go.instructions.md +373 -0
- package/assets/instructions/instructions.instructions.md +256 -0
- package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +793 -0
- package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +464 -0
- package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +311 -0
- package/assets/instructions/java-mcp-server.instructions.md +553 -0
- package/assets/instructions/java.instructions.md +81 -0
- package/assets/instructions/joyride-user-project.instructions.md +206 -0
- package/assets/instructions/joyride-workspace-automation.instructions.md +46 -0
- package/assets/instructions/kotlin-mcp-server.instructions.md +481 -0
- package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +307 -0
- package/assets/instructions/langchain-python.instructions.md +229 -0
- package/assets/instructions/localization.instructions.md +39 -0
- package/assets/instructions/makefile.instructions.md +410 -0
- package/assets/instructions/markdown.instructions.md +52 -0
- package/assets/instructions/memory-bank.instructions.md +299 -0
- package/assets/instructions/mongo-dba.instructions.md +25 -0
- package/assets/instructions/ms-sql-dba.instructions.md +25 -0
- package/assets/instructions/nestjs.instructions.md +406 -0
- package/assets/instructions/nextjs-tailwind.instructions.md +72 -0
- package/assets/instructions/nextjs.instructions.md +143 -0
- package/assets/instructions/nodejs-javascript-vitest.instructions.md +30 -0
- package/assets/instructions/object-calisthenics.instructions.md +302 -0
- package/assets/instructions/oqtane.instructions.md +86 -0
- package/assets/instructions/performance-optimization.instructions.md +420 -0
- package/assets/instructions/php-mcp-server.instructions.md +809 -0
- package/assets/instructions/playwright-dotnet.instructions.md +101 -0
- package/assets/instructions/playwright-python.instructions.md +62 -0
- package/assets/instructions/playwright-typescript.instructions.md +86 -0
- package/assets/instructions/power-apps-canvas-yaml.instructions.md +827 -0
- package/assets/instructions/power-apps-code-apps.instructions.md +601 -0
- package/assets/instructions/power-bi-custom-visuals-development.instructions.md +810 -0
- package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +639 -0
- package/assets/instructions/power-bi-dax-best-practices.instructions.md +795 -0
- package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +623 -0
- package/assets/instructions/power-bi-report-design-best-practices.instructions.md +752 -0
- package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +504 -0
- package/assets/instructions/power-platform-connector.instructions.md +430 -0
- package/assets/instructions/power-platform-mcp-development.instructions.md +88 -0
- package/assets/instructions/powershell-pester-5.instructions.md +197 -0
- package/assets/instructions/powershell.instructions.md +356 -0
- package/assets/instructions/prompt.instructions.md +73 -0
- package/assets/instructions/python-mcp-server.instructions.md +204 -0
- package/assets/instructions/python.instructions.md +56 -0
- package/assets/instructions/quarkus-mcp-server-sse.instructions.md +49 -0
- package/assets/instructions/quarkus.instructions.md +98 -0
- package/assets/instructions/r.instructions.md +116 -0
- package/assets/instructions/reactjs.instructions.md +162 -0
- package/assets/instructions/ruby-mcp-server.instructions.md +629 -0
- package/assets/instructions/ruby-on-rails.instructions.md +124 -0
- package/assets/instructions/rust-mcp-server.instructions.md +715 -0
- package/assets/instructions/rust.instructions.md +135 -0
- package/assets/instructions/security-and-owasp.instructions.md +51 -0
- package/assets/instructions/self-explanatory-code-commenting.instructions.md +162 -0
- package/assets/instructions/shell.instructions.md +132 -0
- package/assets/instructions/spec-driven-workflow-v1.instructions.md +323 -0
- package/assets/instructions/springboot.instructions.md +68 -0
- package/assets/instructions/sql-sp-generation.instructions.md +74 -0
- package/assets/instructions/svelte.instructions.md +161 -0
- package/assets/instructions/swift-mcp-server.instructions.md +498 -0
- package/assets/instructions/taming-copilot.instructions.md +40 -0
- package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +212 -0
- package/assets/instructions/task-implementation.instructions.md +190 -0
- package/assets/instructions/tasksync.instructions.md +352 -0
- package/assets/instructions/terraform-azure.instructions.md +254 -0
- package/assets/instructions/terraform-sap-btp.instructions.md +195 -0
- package/assets/instructions/terraform.instructions.md +113 -0
- package/assets/instructions/typescript-5-es2022.instructions.md +114 -0
- package/assets/instructions/typescript-mcp-server.instructions.md +228 -0
- package/assets/instructions/update-code-from-shorthand.instructions.md +130 -0
- package/assets/instructions/vuejs3.instructions.md +153 -0
- package/assets/instructions/wordpress.instructions.md +186 -0
- package/assets/prompts/add-educational-comments.prompt.md +129 -0
- package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +230 -0
- package/assets/prompts/architecture-blueprint-generator.prompt.md +322 -0
- package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +42 -0
- package/assets/prompts/az-cost-optimize.prompt.md +305 -0
- package/assets/prompts/azure-resource-health-diagnose.prompt.md +290 -0
- package/assets/prompts/boost-prompt.prompt.md +25 -0
- package/assets/prompts/breakdown-epic-arch.prompt.md +66 -0
- package/assets/prompts/breakdown-epic-pm.prompt.md +58 -0
- package/assets/prompts/breakdown-feature-implementation.prompt.md +128 -0
- package/assets/prompts/breakdown-feature-prd.prompt.md +61 -0
- package/assets/prompts/breakdown-plan.prompt.md +509 -0
- package/assets/prompts/breakdown-test.prompt.md +365 -0
- package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
- package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +26 -0
- package/assets/prompts/containerize-aspnet-framework.prompt.md +455 -0
- package/assets/prompts/containerize-aspnetcore.prompt.md +393 -0
- package/assets/prompts/conventional-commit.prompt.md +73 -0
- package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
- package/assets/prompts/cosmosdb-datamodeling.prompt.md +1045 -0
- package/assets/prompts/create-agentsmd.prompt.md +249 -0
- package/assets/prompts/create-architectural-decision-record.prompt.md +97 -0
- package/assets/prompts/create-github-action-workflow-specification.prompt.md +276 -0
- package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +28 -0
- package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
- package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
- package/assets/prompts/create-github-pull-request-from-specification.prompt.md +24 -0
- package/assets/prompts/create-implementation-plan.prompt.md +157 -0
- package/assets/prompts/create-llms.prompt.md +210 -0
- package/assets/prompts/create-oo-component-documentation.prompt.md +193 -0
- package/assets/prompts/create-readme.prompt.md +21 -0
- package/assets/prompts/create-specification.prompt.md +127 -0
- package/assets/prompts/create-spring-boot-java-project.prompt.md +163 -0
- package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +147 -0
- package/assets/prompts/create-technical-spike.prompt.md +231 -0
- package/assets/prompts/csharp-async.prompt.md +50 -0
- package/assets/prompts/csharp-docs.prompt.md +63 -0
- package/assets/prompts/csharp-mcp-server-generator.prompt.md +59 -0
- package/assets/prompts/csharp-mstest.prompt.md +67 -0
- package/assets/prompts/csharp-nunit.prompt.md +72 -0
- package/assets/prompts/csharp-tunit.prompt.md +101 -0
- package/assets/prompts/csharp-xunit.prompt.md +69 -0
- package/assets/prompts/declarative-agents.prompt.md +93 -0
- package/assets/prompts/documentation-writer.prompt.md +46 -0
- package/assets/prompts/dotnet-best-practices.prompt.md +84 -0
- package/assets/prompts/dotnet-design-pattern-review.prompt.md +41 -0
- package/assets/prompts/dotnet-upgrade.prompt.md +116 -0
- package/assets/prompts/editorconfig.prompt.md +64 -0
- package/assets/prompts/ef-core.prompt.md +76 -0
- package/assets/prompts/finalize-agent-prompt.prompt.md +27 -0
- package/assets/prompts/first-ask.prompt.md +29 -0
- package/assets/prompts/folder-structure-blueprint-generator.prompt.md +405 -0
- package/assets/prompts/gen-specs-as-issues.prompt.md +165 -0
- package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +240 -0
- package/assets/prompts/git-flow-branch-creator.prompt.md +293 -0
- package/assets/prompts/github-copilot-starter.prompt.md +372 -0
- package/assets/prompts/go-mcp-server-generator.prompt.md +334 -0
- package/assets/prompts/java-docs.prompt.md +24 -0
- package/assets/prompts/java-junit.prompt.md +64 -0
- package/assets/prompts/java-mcp-server-generator.prompt.md +756 -0
- package/assets/prompts/java-refactoring-extract-method.prompt.md +105 -0
- package/assets/prompts/java-refactoring-remove-parameter.prompt.md +85 -0
- package/assets/prompts/java-springboot.prompt.md +66 -0
- package/assets/prompts/javascript-typescript-jest.prompt.md +44 -0
- package/assets/prompts/kotlin-mcp-server-generator.prompt.md +449 -0
- package/assets/prompts/kotlin-springboot.prompt.md +71 -0
- package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +118 -0
- package/assets/prompts/memory-merger.prompt.md +107 -0
- package/assets/prompts/mkdocs-translations.prompt.md +110 -0
- package/assets/prompts/model-recommendation.prompt.md +677 -0
- package/assets/prompts/multi-stage-dockerfile.prompt.md +47 -0
- package/assets/prompts/my-issues.prompt.md +9 -0
- package/assets/prompts/my-pull-requests.prompt.md +15 -0
- package/assets/prompts/next-intl-add-language.prompt.md +20 -0
- package/assets/prompts/php-mcp-server-generator.prompt.md +522 -0
- package/assets/prompts/playwright-automation-fill-in-form.prompt.md +30 -0
- package/assets/prompts/playwright-explore-website.prompt.md +19 -0
- package/assets/prompts/playwright-generate-test.prompt.md +19 -0
- package/assets/prompts/postgresql-code-review.prompt.md +214 -0
- package/assets/prompts/postgresql-optimization.prompt.md +406 -0
- package/assets/prompts/power-apps-code-app-scaffold.prompt.md +150 -0
- package/assets/prompts/power-bi-dax-optimization.prompt.md +175 -0
- package/assets/prompts/power-bi-model-design-review.prompt.md +405 -0
- package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +384 -0
- package/assets/prompts/power-bi-report-design-consultation.prompt.md +353 -0
- package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +156 -0
- package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
- package/assets/prompts/prompt-builder.prompt.md +142 -0
- package/assets/prompts/pytest-coverage.prompt.md +28 -0
- package/assets/prompts/python-mcp-server-generator.prompt.md +105 -0
- package/assets/prompts/readme-blueprint-generator.prompt.md +79 -0
- package/assets/prompts/remember-interactive-programming.prompt.md +13 -0
- package/assets/prompts/remember.prompt.md +125 -0
- package/assets/prompts/repo-story-time.prompt.md +156 -0
- package/assets/prompts/review-and-refactor.prompt.md +15 -0
- package/assets/prompts/ruby-mcp-server-generator.prompt.md +660 -0
- package/assets/prompts/rust-mcp-server-generator.prompt.md +578 -0
- package/assets/prompts/shuffle-json-data.prompt.md +151 -0
- package/assets/prompts/sql-code-review.prompt.md +303 -0
- package/assets/prompts/sql-optimization.prompt.md +298 -0
- package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
- package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
- package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
- package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
- package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
- package/assets/prompts/swift-mcp-server-generator.prompt.md +669 -0
- package/assets/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
- package/assets/prompts/typescript-mcp-server-generator.prompt.md +90 -0
- package/assets/prompts/update-avm-modules-in-bicep.prompt.md +60 -0
- package/assets/prompts/update-implementation-plan.prompt.md +157 -0
- package/assets/prompts/update-llms.prompt.md +216 -0
- package/assets/prompts/update-markdown-file-index.prompt.md +76 -0
- package/assets/prompts/update-oo-component-documentation.prompt.md +162 -0
- package/assets/prompts/update-specification.prompt.md +127 -0
- package/assets/prompts/write-coding-standards-from-file.prompt.md +316 -0
- package/bin/cli.js +200 -0
- package/package.json +53 -0
- package/scripts/sync.js +99 -0
- package/verdaccio/config.yaml +202 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems']
|
|
4
|
+
description: 'Get best practices for C# async programming'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# C# Async Programming Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me follow best practices for asynchronous programming in C#.
|
|
10
|
+
|
|
11
|
+
## Naming Conventions
|
|
12
|
+
|
|
13
|
+
- Use the 'Async' suffix for all async methods
|
|
14
|
+
- Match method names with their synchronous counterparts when applicable (e.g., `GetDataAsync()` for `GetData()`)
|
|
15
|
+
|
|
16
|
+
## Return Types
|
|
17
|
+
|
|
18
|
+
- Return `Task<T>` when the method returns a value
|
|
19
|
+
- Return `Task` when the method doesn't return a value
|
|
20
|
+
- Consider `ValueTask<T>` for high-performance scenarios to reduce allocations
|
|
21
|
+
- Avoid returning `void` for async methods except for event handlers
|
|
22
|
+
|
|
23
|
+
## Exception Handling
|
|
24
|
+
|
|
25
|
+
- Use try/catch blocks around await expressions
|
|
26
|
+
- Avoid swallowing exceptions in async methods
|
|
27
|
+
- Use `ConfigureAwait(false)` when appropriate to prevent deadlocks in library code
|
|
28
|
+
- Propagate exceptions with `Task.FromException()` instead of throwing in async Task returning methods
|
|
29
|
+
|
|
30
|
+
## Performance
|
|
31
|
+
|
|
32
|
+
- Use `Task.WhenAll()` for parallel execution of multiple tasks
|
|
33
|
+
- Use `Task.WhenAny()` for implementing timeouts or taking the first completed task
|
|
34
|
+
- Avoid unnecessary async/await when simply passing through task results
|
|
35
|
+
- Consider cancellation tokens for long-running operations
|
|
36
|
+
|
|
37
|
+
## Common Pitfalls
|
|
38
|
+
|
|
39
|
+
- Never use `.Wait()`, `.Result`, or `.GetAwaiter().GetResult()` in async code
|
|
40
|
+
- Avoid mixing blocking and async code
|
|
41
|
+
- Don't create async void methods (except for event handlers)
|
|
42
|
+
- Always await Task-returning methods
|
|
43
|
+
|
|
44
|
+
## Implementation Patterns
|
|
45
|
+
|
|
46
|
+
- Implement the async command pattern for long-running operations
|
|
47
|
+
- Use async streams (IAsyncEnumerable<T>) for processing sequences asynchronously
|
|
48
|
+
- Consider the task-based asynchronous pattern (TAP) for public APIs
|
|
49
|
+
|
|
50
|
+
When reviewing my C# code, identify these issues and suggest improvements that follow these best practices.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems']
|
|
4
|
+
description: 'Ensure that C# types are documented with XML comments and follow best practices for documentation.'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# C# Documentation Best Practices
|
|
8
|
+
|
|
9
|
+
- Public members should be documented with XML comments.
|
|
10
|
+
- It is encouraged to document internal members as well, especially if they are complex or not self-explanatory.
|
|
11
|
+
|
|
12
|
+
## Guidance for all APIs
|
|
13
|
+
|
|
14
|
+
- Use `<summary>` to provide a brief, one sentence, description of what the type or member does. Start the summary with a present-tense, third-person verb.
|
|
15
|
+
- Use `<remarks>` for additional information, which can include implementation details, usage notes, or any other relevant context.
|
|
16
|
+
- Use `<see langword>` for language-specific keywords like `null`, `true`, `false`, `int`, `bool`, etc.
|
|
17
|
+
- Use `<c>` for inline code snippets.
|
|
18
|
+
- Use `<example>` for usage examples on how to use the member.
|
|
19
|
+
- Use `<code>` for code blocks. `<code>` tags should be placed within an `<example>` tag. Add the language of the code example using the `language` attribute, for example, `<code language="csharp">`.
|
|
20
|
+
- Use `<see cref>` to reference other types or members inline (in a sentence).
|
|
21
|
+
- Use `<seealso>` for standalone (not in a sentence) references to other types or members in the "See also" section of the online docs.
|
|
22
|
+
- Use `<inheritdoc/>` to inherit documentation from base classes or interfaces.
|
|
23
|
+
- Unless there is major behavior change, in which case you should document the differences.
|
|
24
|
+
|
|
25
|
+
## Methods
|
|
26
|
+
|
|
27
|
+
- Use `<param>` to describe method parameters.
|
|
28
|
+
- The description should be a noun phrase that doesn't specify the data type.
|
|
29
|
+
- Begin with an introductory article.
|
|
30
|
+
- If the parameter is a flag enum, start the description with "A bitwise combination of the enumeration values that specifies...".
|
|
31
|
+
- If the parameter is a non-flag enum, start the description with "One of the enumeration values that specifies...".
|
|
32
|
+
- If the parameter is a Boolean, the wording should be of the form "`<see langword="true" />` to ...; otherwise, `<see langword="false" />`.".
|
|
33
|
+
- If the parameter is an "out" parameter, the wording should be of the form "When this method returns, contains .... This parameter is treated as uninitialized.".
|
|
34
|
+
- Use `<paramref>` to reference parameter names in documentation.
|
|
35
|
+
- Use `<typeparam>` to describe type parameters in generic types or methods.
|
|
36
|
+
- Use `<typeparamref>` to reference type parameters in documentation.
|
|
37
|
+
- Use `<returns>` to describe what the method returns.
|
|
38
|
+
- The description should be a noun phrase that doesn't specify the data type.
|
|
39
|
+
- Begin with an introductory article.
|
|
40
|
+
- If the return type is Boolean, the wording should be of the form "`<see langword="true" />` if ...; otherwise, `<see langword="false" />`.".
|
|
41
|
+
|
|
42
|
+
## Constructors
|
|
43
|
+
|
|
44
|
+
- The summary wording should be "Initializes a new instance of the <Class> class [or struct].".
|
|
45
|
+
|
|
46
|
+
## Properties
|
|
47
|
+
|
|
48
|
+
- The `<summary>` should start with:
|
|
49
|
+
- "Gets or sets..." for a read-write property.
|
|
50
|
+
- "Gets..." for a read-only property.
|
|
51
|
+
- "Gets [or sets] a value that indicates whether..." for properties that return a Boolean value.
|
|
52
|
+
- Use `<value>` to describe the value of the property.
|
|
53
|
+
- The description should be a noun phrase that doesn't specify the data type.
|
|
54
|
+
- If the property has a default value, add it in a separate sentence, for example, "The default is `<see langword="false" />`".
|
|
55
|
+
- If the value type is Boolean, the wording should be of the form "`<see langword="true" />` if ...; otherwise, `<see langword="false" />`. The default is ...".
|
|
56
|
+
|
|
57
|
+
## Exceptions
|
|
58
|
+
|
|
59
|
+
- Use `<exception cref>` to document exceptions thrown by constructors, properties, indexers, methods, operators, and events.
|
|
60
|
+
- Document all exceptions thrown directly by the member.
|
|
61
|
+
- For exceptions thrown by nested members, document only the exceptions users are most likely to encounter.
|
|
62
|
+
- The description of the exception describes the condition under which it's thrown.
|
|
63
|
+
- Omit "Thrown if ..." or "If ..." at the beginning of the sentence. Just state the condition directly, for example "An error occurred when accessing a Message Queuing API."
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
description: 'Generate a complete MCP server project in C# with tools, prompts, and proper configuration'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Generate C# MCP Server
|
|
7
|
+
|
|
8
|
+
Create a complete Model Context Protocol (MCP) server in C# with the following specifications:
|
|
9
|
+
|
|
10
|
+
## Requirements
|
|
11
|
+
|
|
12
|
+
1. **Project Structure**: Create a new C# console application with proper directory structure
|
|
13
|
+
2. **NuGet Packages**: Include ModelContextProtocol (prerelease) and Microsoft.Extensions.Hosting
|
|
14
|
+
3. **Logging Configuration**: Configure all logs to stderr to avoid interfering with stdio transport
|
|
15
|
+
4. **Server Setup**: Use the Host builder pattern with proper DI configuration
|
|
16
|
+
5. **Tools**: Create at least one useful tool with proper attributes and descriptions
|
|
17
|
+
6. **Error Handling**: Include proper error handling and validation
|
|
18
|
+
|
|
19
|
+
## Implementation Details
|
|
20
|
+
|
|
21
|
+
### Basic Project Setup
|
|
22
|
+
- Use .NET 8.0 or later
|
|
23
|
+
- Create a console application
|
|
24
|
+
- Add necessary NuGet packages with --prerelease flag
|
|
25
|
+
- Configure logging to stderr
|
|
26
|
+
|
|
27
|
+
### Server Configuration
|
|
28
|
+
- Use `Host.CreateApplicationBuilder` for DI and lifecycle management
|
|
29
|
+
- Configure `AddMcpServer()` with stdio transport
|
|
30
|
+
- Use `WithToolsFromAssembly()` for automatic tool discovery
|
|
31
|
+
- Ensure the server runs with `RunAsync()`
|
|
32
|
+
|
|
33
|
+
### Tool Implementation
|
|
34
|
+
- Use `[McpServerToolType]` attribute on tool classes
|
|
35
|
+
- Use `[McpServerTool]` attribute on tool methods
|
|
36
|
+
- Add `[Description]` attributes to tools and parameters
|
|
37
|
+
- Support async operations where appropriate
|
|
38
|
+
- Include proper parameter validation
|
|
39
|
+
|
|
40
|
+
### Code Quality
|
|
41
|
+
- Follow C# naming conventions
|
|
42
|
+
- Include XML documentation comments
|
|
43
|
+
- Use nullable reference types
|
|
44
|
+
- Implement proper error handling with McpProtocolException
|
|
45
|
+
- Use structured logging for debugging
|
|
46
|
+
|
|
47
|
+
## Example Tool Types to Consider
|
|
48
|
+
- File operations (read, write, search)
|
|
49
|
+
- Data processing (transform, validate, analyze)
|
|
50
|
+
- External API integrations (HTTP requests)
|
|
51
|
+
- System operations (execute commands, check status)
|
|
52
|
+
- Database operations (query, update)
|
|
53
|
+
|
|
54
|
+
## Testing Guidance
|
|
55
|
+
- Explain how to run the server
|
|
56
|
+
- Provide example commands to test with MCP clients
|
|
57
|
+
- Include troubleshooting tips
|
|
58
|
+
|
|
59
|
+
Generate a complete, production-ready MCP server with comprehensive documentation and error handling.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
4
|
+
description: 'Get best practices for MSTest unit testing, including data-driven tests'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# MSTest Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me write effective unit tests with MSTest, covering both standard and data-driven testing approaches.
|
|
10
|
+
|
|
11
|
+
## Project Setup
|
|
12
|
+
|
|
13
|
+
- Use a separate test project with naming convention `[ProjectName].Tests`
|
|
14
|
+
- Reference MSTest package
|
|
15
|
+
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
|
|
16
|
+
- Use .NET SDK test commands: `dotnet test` for running tests
|
|
17
|
+
|
|
18
|
+
## Test Structure
|
|
19
|
+
|
|
20
|
+
- Use `[TestClass]` attribute for test classes
|
|
21
|
+
- Use `[TestMethod]` attribute for test methods
|
|
22
|
+
- Follow the Arrange-Act-Assert (AAA) pattern
|
|
23
|
+
- Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
|
|
24
|
+
- Use `[TestInitialize]` and `[TestCleanup]` for per-test setup and teardown
|
|
25
|
+
- Use `[ClassInitialize]` and `[ClassCleanup]` for per-class setup and teardown
|
|
26
|
+
- Use `[AssemblyInitialize]` and `[AssemblyCleanup]` for assembly-level setup and teardown
|
|
27
|
+
|
|
28
|
+
## Standard Tests
|
|
29
|
+
|
|
30
|
+
- Keep tests focused on a single behavior
|
|
31
|
+
- Avoid testing multiple behaviors in one test method
|
|
32
|
+
- Use clear assertions that express intent
|
|
33
|
+
- Include only the assertions needed to verify the test case
|
|
34
|
+
- Make tests independent and idempotent (can run in any order)
|
|
35
|
+
- Avoid test interdependencies
|
|
36
|
+
|
|
37
|
+
## Data-Driven Tests
|
|
38
|
+
|
|
39
|
+
- Use `[TestMethod]` combined with data source attributes
|
|
40
|
+
- Use `[DataRow]` for inline test data
|
|
41
|
+
- Use `[DynamicData]` for programmatically generated test data
|
|
42
|
+
- Use `[TestProperty]` to add metadata to tests
|
|
43
|
+
- Use meaningful parameter names in data-driven tests
|
|
44
|
+
|
|
45
|
+
## Assertions
|
|
46
|
+
|
|
47
|
+
- Use `Assert.AreEqual` for value equality
|
|
48
|
+
- Use `Assert.AreSame` for reference equality
|
|
49
|
+
- Use `Assert.IsTrue`/`Assert.IsFalse` for boolean conditions
|
|
50
|
+
- Use `CollectionAssert` for collection comparisons
|
|
51
|
+
- Use `StringAssert` for string-specific assertions
|
|
52
|
+
- Use `Assert.Throws<T>` to test exceptions
|
|
53
|
+
- Ensure assertions are simple in nature and have a message provided for clarity on failure
|
|
54
|
+
|
|
55
|
+
## Mocking and Isolation
|
|
56
|
+
|
|
57
|
+
- Consider using Moq or NSubstitute alongside MSTest
|
|
58
|
+
- Mock dependencies to isolate units under test
|
|
59
|
+
- Use interfaces to facilitate mocking
|
|
60
|
+
- Consider using a DI container for complex test setups
|
|
61
|
+
|
|
62
|
+
## Test Organization
|
|
63
|
+
|
|
64
|
+
- Group tests by feature or component
|
|
65
|
+
- Use test categories with `[TestCategory("Category")]`
|
|
66
|
+
- Use test priorities with `[Priority(1)]` for critical tests
|
|
67
|
+
- Use `[Owner("DeveloperName")]` to indicate ownership
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
4
|
+
description: 'Get best practices for NUnit unit testing, including data-driven tests'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# NUnit Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me write effective unit tests with NUnit, covering both standard and data-driven testing approaches.
|
|
10
|
+
|
|
11
|
+
## Project Setup
|
|
12
|
+
|
|
13
|
+
- Use a separate test project with naming convention `[ProjectName].Tests`
|
|
14
|
+
- Reference Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter packages
|
|
15
|
+
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
|
|
16
|
+
- Use .NET SDK test commands: `dotnet test` for running tests
|
|
17
|
+
|
|
18
|
+
## Test Structure
|
|
19
|
+
|
|
20
|
+
- Apply `[TestFixture]` attribute to test classes
|
|
21
|
+
- Use `[Test]` attribute for test methods
|
|
22
|
+
- Follow the Arrange-Act-Assert (AAA) pattern
|
|
23
|
+
- Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
|
|
24
|
+
- Use `[SetUp]` and `[TearDown]` for per-test setup and teardown
|
|
25
|
+
- Use `[OneTimeSetUp]` and `[OneTimeTearDown]` for per-class setup and teardown
|
|
26
|
+
- Use `[SetUpFixture]` for assembly-level setup and teardown
|
|
27
|
+
|
|
28
|
+
## Standard Tests
|
|
29
|
+
|
|
30
|
+
- Keep tests focused on a single behavior
|
|
31
|
+
- Avoid testing multiple behaviors in one test method
|
|
32
|
+
- Use clear assertions that express intent
|
|
33
|
+
- Include only the assertions needed to verify the test case
|
|
34
|
+
- Make tests independent and idempotent (can run in any order)
|
|
35
|
+
- Avoid test interdependencies
|
|
36
|
+
|
|
37
|
+
## Data-Driven Tests
|
|
38
|
+
|
|
39
|
+
- Use `[TestCase]` for inline test data
|
|
40
|
+
- Use `[TestCaseSource]` for programmatically generated test data
|
|
41
|
+
- Use `[Values]` for simple parameter combinations
|
|
42
|
+
- Use `[ValueSource]` for property or method-based data sources
|
|
43
|
+
- Use `[Random]` for random numeric test values
|
|
44
|
+
- Use `[Range]` for sequential numeric test values
|
|
45
|
+
- Use `[Combinatorial]` or `[Pairwise]` for combining multiple parameters
|
|
46
|
+
|
|
47
|
+
## Assertions
|
|
48
|
+
|
|
49
|
+
- Use `Assert.That` with constraint model (preferred NUnit style)
|
|
50
|
+
- Use constraints like `Is.EqualTo`, `Is.SameAs`, `Contains.Item`
|
|
51
|
+
- Use `Assert.AreEqual` for simple value equality (classic style)
|
|
52
|
+
- Use `CollectionAssert` for collection comparisons
|
|
53
|
+
- Use `StringAssert` for string-specific assertions
|
|
54
|
+
- Use `Assert.Throws<T>` or `Assert.ThrowsAsync<T>` to test exceptions
|
|
55
|
+
- Use descriptive messages in assertions for clarity on failure
|
|
56
|
+
|
|
57
|
+
## Mocking and Isolation
|
|
58
|
+
|
|
59
|
+
- Consider using Moq or NSubstitute alongside NUnit
|
|
60
|
+
- Mock dependencies to isolate units under test
|
|
61
|
+
- Use interfaces to facilitate mocking
|
|
62
|
+
- Consider using a DI container for complex test setups
|
|
63
|
+
|
|
64
|
+
## Test Organization
|
|
65
|
+
|
|
66
|
+
- Group tests by feature or component
|
|
67
|
+
- Use categories with `[Category("CategoryName")]`
|
|
68
|
+
- Use `[Order]` to control test execution order when necessary
|
|
69
|
+
- Use `[Author("DeveloperName")]` to indicate ownership
|
|
70
|
+
- Use `[Description]` to provide additional test information
|
|
71
|
+
- Consider `[Explicit]` for tests that shouldn't run automatically
|
|
72
|
+
- Use `[Ignore("Reason")]` to temporarily skip tests
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
4
|
+
description: 'Get best practices for TUnit unit testing, including data-driven tests'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# TUnit Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me write effective unit tests with TUnit, covering both standard and data-driven testing approaches.
|
|
10
|
+
|
|
11
|
+
## Project Setup
|
|
12
|
+
|
|
13
|
+
- Use a separate test project with naming convention `[ProjectName].Tests`
|
|
14
|
+
- Reference TUnit package and TUnit.Assertions for fluent assertions
|
|
15
|
+
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
|
|
16
|
+
- Use .NET SDK test commands: `dotnet test` for running tests
|
|
17
|
+
- TUnit requires .NET 8.0 or higher
|
|
18
|
+
|
|
19
|
+
## Test Structure
|
|
20
|
+
|
|
21
|
+
- No test class attributes required (like xUnit/NUnit)
|
|
22
|
+
- Use `[Test]` attribute for test methods (not `[Fact]` like xUnit)
|
|
23
|
+
- Follow the Arrange-Act-Assert (AAA) pattern
|
|
24
|
+
- Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
|
|
25
|
+
- Use lifecycle hooks: `[Before(Test)]` for setup and `[After(Test)]` for teardown
|
|
26
|
+
- Use `[Before(Class)]` and `[After(Class)]` for shared context between tests in a class
|
|
27
|
+
- Use `[Before(Assembly)]` and `[After(Assembly)]` for shared context across test classes
|
|
28
|
+
- TUnit supports advanced lifecycle hooks like `[Before(TestSession)]` and `[After(TestSession)]`
|
|
29
|
+
|
|
30
|
+
## Standard Tests
|
|
31
|
+
|
|
32
|
+
- Keep tests focused on a single behavior
|
|
33
|
+
- Avoid testing multiple behaviors in one test method
|
|
34
|
+
- Use TUnit's fluent assertion syntax with `await Assert.That()`
|
|
35
|
+
- Include only the assertions needed to verify the test case
|
|
36
|
+
- Make tests independent and idempotent (can run in any order)
|
|
37
|
+
- Avoid test interdependencies (use `[DependsOn]` attribute if needed)
|
|
38
|
+
|
|
39
|
+
## Data-Driven Tests
|
|
40
|
+
|
|
41
|
+
- Use `[Arguments]` attribute for inline test data (equivalent to xUnit's `[InlineData]`)
|
|
42
|
+
- Use `[MethodData]` for method-based test data (equivalent to xUnit's `[MemberData]`)
|
|
43
|
+
- Use `[ClassData]` for class-based test data
|
|
44
|
+
- Create custom data sources by implementing `ITestDataSource`
|
|
45
|
+
- Use meaningful parameter names in data-driven tests
|
|
46
|
+
- Multiple `[Arguments]` attributes can be applied to the same test method
|
|
47
|
+
|
|
48
|
+
## Assertions
|
|
49
|
+
|
|
50
|
+
- Use `await Assert.That(value).IsEqualTo(expected)` for value equality
|
|
51
|
+
- Use `await Assert.That(value).IsSameReferenceAs(expected)` for reference equality
|
|
52
|
+
- Use `await Assert.That(value).IsTrue()` or `await Assert.That(value).IsFalse()` for boolean conditions
|
|
53
|
+
- Use `await Assert.That(collection).Contains(item)` or `await Assert.That(collection).DoesNotContain(item)` for collections
|
|
54
|
+
- Use `await Assert.That(value).Matches(pattern)` for regex pattern matching
|
|
55
|
+
- Use `await Assert.That(action).Throws<TException>()` or `await Assert.That(asyncAction).ThrowsAsync<TException>()` to test exceptions
|
|
56
|
+
- Chain assertions with `.And` operator: `await Assert.That(value).IsNotNull().And.IsEqualTo(expected)`
|
|
57
|
+
- Use `.Or` operator for alternative conditions: `await Assert.That(value).IsEqualTo(1).Or.IsEqualTo(2)`
|
|
58
|
+
- Use `.Within(tolerance)` for DateTime and numeric comparisons with tolerance
|
|
59
|
+
- All assertions are asynchronous and must be awaited
|
|
60
|
+
|
|
61
|
+
## Advanced Features
|
|
62
|
+
|
|
63
|
+
- Use `[Repeat(n)]` to repeat tests multiple times
|
|
64
|
+
- Use `[Retry(n)]` for automatic retry on failure
|
|
65
|
+
- Use `[ParallelLimit<T>]` to control parallel execution limits
|
|
66
|
+
- Use `[Skip("reason")]` to skip tests conditionally
|
|
67
|
+
- Use `[DependsOn(nameof(OtherTest))]` to create test dependencies
|
|
68
|
+
- Use `[Timeout(milliseconds)]` to set test timeouts
|
|
69
|
+
- Create custom attributes by extending TUnit's base attributes
|
|
70
|
+
|
|
71
|
+
## Test Organization
|
|
72
|
+
|
|
73
|
+
- Group tests by feature or component
|
|
74
|
+
- Use `[Category("CategoryName")]` for test categorization
|
|
75
|
+
- Use `[DisplayName("Custom Test Name")]` for custom test names
|
|
76
|
+
- Consider using `TestContext` for test diagnostics and information
|
|
77
|
+
- Use conditional attributes like custom `[WindowsOnly]` for platform-specific tests
|
|
78
|
+
|
|
79
|
+
## Performance and Parallel Execution
|
|
80
|
+
|
|
81
|
+
- TUnit runs tests in parallel by default (unlike xUnit which requires explicit configuration)
|
|
82
|
+
- Use `[NotInParallel]` to disable parallel execution for specific tests
|
|
83
|
+
- Use `[ParallelLimit<T>]` with custom limit classes to control concurrency
|
|
84
|
+
- Tests within the same class run sequentially by default
|
|
85
|
+
- Use `[Repeat(n)]` with `[ParallelLimit<T>]` for load testing scenarios
|
|
86
|
+
|
|
87
|
+
## Migration from xUnit
|
|
88
|
+
|
|
89
|
+
- Replace `[Fact]` with `[Test]`
|
|
90
|
+
- Replace `[Theory]` with `[Test]` and use `[Arguments]` for data
|
|
91
|
+
- Replace `[InlineData]` with `[Arguments]`
|
|
92
|
+
- Replace `[MemberData]` with `[MethodData]`
|
|
93
|
+
- Replace `Assert.Equal` with `await Assert.That(actual).IsEqualTo(expected)`
|
|
94
|
+
- Replace `Assert.True` with `await Assert.That(condition).IsTrue()`
|
|
95
|
+
- Replace `Assert.Throws<T>` with `await Assert.That(action).Throws<T>()`
|
|
96
|
+
- Replace constructor/IDisposable with `[Before(Test)]`/`[After(Test)]`
|
|
97
|
+
- Replace `IClassFixture<T>` with `[Before(Class)]`/`[After(Class)]`
|
|
98
|
+
|
|
99
|
+
**Why TUnit over xUnit?**
|
|
100
|
+
|
|
101
|
+
TUnit offers a modern, fast, and flexible testing experience with advanced features not present in xUnit, such as asynchronous assertions, more refined lifecycle hooks, and improved data-driven testing capabilities. TUnit's fluent assertions provide clearer and more expressive test validation, making it especially suitable for complex .NET projects.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
4
|
+
description: 'Get best practices for XUnit unit testing, including data-driven tests'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# XUnit Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me write effective unit tests with XUnit, covering both standard and data-driven testing approaches.
|
|
10
|
+
|
|
11
|
+
## Project Setup
|
|
12
|
+
|
|
13
|
+
- Use a separate test project with naming convention `[ProjectName].Tests`
|
|
14
|
+
- Reference Microsoft.NET.Test.Sdk, xunit, and xunit.runner.visualstudio packages
|
|
15
|
+
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
|
|
16
|
+
- Use .NET SDK test commands: `dotnet test` for running tests
|
|
17
|
+
|
|
18
|
+
## Test Structure
|
|
19
|
+
|
|
20
|
+
- No test class attributes required (unlike MSTest/NUnit)
|
|
21
|
+
- Use fact-based tests with `[Fact]` attribute for simple tests
|
|
22
|
+
- Follow the Arrange-Act-Assert (AAA) pattern
|
|
23
|
+
- Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
|
|
24
|
+
- Use constructor for setup and `IDisposable.Dispose()` for teardown
|
|
25
|
+
- Use `IClassFixture<T>` for shared context between tests in a class
|
|
26
|
+
- Use `ICollectionFixture<T>` for shared context between multiple test classes
|
|
27
|
+
|
|
28
|
+
## Standard Tests
|
|
29
|
+
|
|
30
|
+
- Keep tests focused on a single behavior
|
|
31
|
+
- Avoid testing multiple behaviors in one test method
|
|
32
|
+
- Use clear assertions that express intent
|
|
33
|
+
- Include only the assertions needed to verify the test case
|
|
34
|
+
- Make tests independent and idempotent (can run in any order)
|
|
35
|
+
- Avoid test interdependencies
|
|
36
|
+
|
|
37
|
+
## Data-Driven Tests
|
|
38
|
+
|
|
39
|
+
- Use `[Theory]` combined with data source attributes
|
|
40
|
+
- Use `[InlineData]` for inline test data
|
|
41
|
+
- Use `[MemberData]` for method-based test data
|
|
42
|
+
- Use `[ClassData]` for class-based test data
|
|
43
|
+
- Create custom data attributes by implementing `DataAttribute`
|
|
44
|
+
- Use meaningful parameter names in data-driven tests
|
|
45
|
+
|
|
46
|
+
## Assertions
|
|
47
|
+
|
|
48
|
+
- Use `Assert.Equal` for value equality
|
|
49
|
+
- Use `Assert.Same` for reference equality
|
|
50
|
+
- Use `Assert.True`/`Assert.False` for boolean conditions
|
|
51
|
+
- Use `Assert.Contains`/`Assert.DoesNotContain` for collections
|
|
52
|
+
- Use `Assert.Matches`/`Assert.DoesNotMatch` for regex pattern matching
|
|
53
|
+
- Use `Assert.Throws<T>` or `await Assert.ThrowsAsync<T>` to test exceptions
|
|
54
|
+
- Use fluent assertions library for more readable assertions
|
|
55
|
+
|
|
56
|
+
## Mocking and Isolation
|
|
57
|
+
|
|
58
|
+
- Consider using Moq or NSubstitute alongside XUnit
|
|
59
|
+
- Mock dependencies to isolate units under test
|
|
60
|
+
- Use interfaces to facilitate mocking
|
|
61
|
+
- Consider using a DI container for complex test setups
|
|
62
|
+
|
|
63
|
+
## Test Organization
|
|
64
|
+
|
|
65
|
+
- Group tests by feature or component
|
|
66
|
+
- Use `[Trait("Category", "CategoryName")]` for categorization
|
|
67
|
+
- Use collection fixtures to group tests with shared dependencies
|
|
68
|
+
- Consider output helpers (`ITestOutputHelper`) for test diagnostics
|
|
69
|
+
- Skip tests conditionally with `Skip = "reason"` in fact/theory attributes
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Complete development kit for Microsoft 365 Copilot declarative agents with three comprehensive workflows (basic, advanced, validation), TypeSpec support, and Microsoft 365 Agents Toolkit integration
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Microsoft 365 Declarative Agents Development Kit
|
|
6
|
+
|
|
7
|
+
I'll help you create and develop Microsoft 365 Copilot declarative agents using the latest v1.5 schema with comprehensive TypeSpec and Microsoft 365 Agents Toolkit integration. Choose from three specialized workflows:
|
|
8
|
+
|
|
9
|
+
## Workflow 1: Basic Agent Creation
|
|
10
|
+
**Perfect for**: New developers, simple agents, quick prototypes
|
|
11
|
+
|
|
12
|
+
I'll guide you through:
|
|
13
|
+
1. **Agent Planning**: Define purpose, target users, and core capabilities
|
|
14
|
+
2. **Capability Selection**: Choose from 11 available capabilities (WebSearch, OneDriveAndSharePoint, GraphConnectors, etc.)
|
|
15
|
+
3. **Basic Schema Creation**: Generate compliant JSON manifest with proper constraints
|
|
16
|
+
4. **TypeSpec Alternative**: Create modern type-safe definitions that compile to JSON
|
|
17
|
+
5. **Testing Setup**: Configure Agents Playground for local testing
|
|
18
|
+
6. **Toolkit Integration**: Leverage Microsoft 365 Agents Toolkit for enhanced development
|
|
19
|
+
|
|
20
|
+
## Workflow 2: Advanced Enterprise Agent Design
|
|
21
|
+
**Perfect for**: Complex enterprise scenarios, production deployment, advanced features
|
|
22
|
+
|
|
23
|
+
I'll help you architect:
|
|
24
|
+
1. **Enterprise Requirements Analysis**: Multi-tenant considerations, compliance, security
|
|
25
|
+
2. **Advanced Capability Configuration**: Complex capability combinations and interactions
|
|
26
|
+
3. **Behavior Override Implementation**: Custom response patterns and specialized behaviors
|
|
27
|
+
4. **Localization Strategy**: Multi-language support with proper resource management
|
|
28
|
+
5. **Conversation Starters**: Strategic conversation entry points for user engagement
|
|
29
|
+
6. **Production Deployment**: Environment management, versioning, and lifecycle planning
|
|
30
|
+
7. **Monitoring & Analytics**: Implementation of tracking and performance optimization
|
|
31
|
+
|
|
32
|
+
## Workflow 3: Validation & Optimization
|
|
33
|
+
**Perfect for**: Existing agents, troubleshooting, performance optimization
|
|
34
|
+
|
|
35
|
+
I'll perform:
|
|
36
|
+
1. **Schema Compliance Validation**: Full v1.5 specification adherence checking
|
|
37
|
+
2. **Character Limit Optimization**: Name (100), description (1000), instructions (8000)
|
|
38
|
+
3. **Capability Audit**: Verify proper capability configuration and usage
|
|
39
|
+
4. **TypeSpec Migration**: Convert existing JSON to modern TypeSpec definitions
|
|
40
|
+
5. **Testing Protocol**: Comprehensive validation using Agents Playground
|
|
41
|
+
6. **Performance Analysis**: Identify bottlenecks and optimization opportunities
|
|
42
|
+
7. **Best Practices Review**: Alignment with Microsoft guidelines and recommendations
|
|
43
|
+
|
|
44
|
+
## Core Features Across All Workflows
|
|
45
|
+
|
|
46
|
+
### Microsoft 365 Agents Toolkit Integration
|
|
47
|
+
- **VS Code Extension**: Full integration with `teamsdevapp.ms-teams-vscode-extension`
|
|
48
|
+
- **TypeSpec Development**: Modern type-safe agent definitions
|
|
49
|
+
- **Local Debugging**: Agents Playground integration for testing
|
|
50
|
+
- **Environment Management**: Development, staging, production configurations
|
|
51
|
+
- **Lifecycle Management**: Creation, testing, deployment, monitoring
|
|
52
|
+
|
|
53
|
+
### TypeSpec Examples
|
|
54
|
+
```typespec
|
|
55
|
+
// Modern declarative agent definition
|
|
56
|
+
model MyAgent {
|
|
57
|
+
name: string;
|
|
58
|
+
description: string;
|
|
59
|
+
instructions: string;
|
|
60
|
+
capabilities: AgentCapability[];
|
|
61
|
+
conversation_starters?: ConversationStarter[];
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### JSON Schema v1.5 Validation
|
|
66
|
+
- Full compliance with latest Microsoft specification
|
|
67
|
+
- Character limit enforcement (name: 100, description: 1000, instructions: 8000)
|
|
68
|
+
- Array constraint validation (conversation_starters: max 4, capabilities: max 5)
|
|
69
|
+
- Required field validation and type checking
|
|
70
|
+
|
|
71
|
+
### Available Capabilities (Choose up to 5)
|
|
72
|
+
1. **WebSearch**: Internet search functionality
|
|
73
|
+
2. **OneDriveAndSharePoint**: File and content access
|
|
74
|
+
3. **GraphConnectors**: Enterprise data integration
|
|
75
|
+
4. **MicrosoftGraph**: Microsoft 365 service integration
|
|
76
|
+
5. **TeamsAndOutlook**: Communication platform access
|
|
77
|
+
6. **PowerPlatform**: Power Apps and Power Automate integration
|
|
78
|
+
7. **BusinessDataProcessing**: Enterprise data analysis
|
|
79
|
+
8. **WordAndExcel**: Document and spreadsheet manipulation
|
|
80
|
+
9. **CopilotForMicrosoft365**: Advanced Copilot features
|
|
81
|
+
10. **EnterpriseApplications**: Third-party system integration
|
|
82
|
+
11. **CustomConnectors**: Custom API and service integration
|
|
83
|
+
|
|
84
|
+
### Environment Variables Support
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"name": "${AGENT_NAME}",
|
|
88
|
+
"description": "${AGENT_DESCRIPTION}",
|
|
89
|
+
"instructions": "${AGENT_INSTRUCTIONS}"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Which workflow would you like to start with?** Share your requirements and I'll provide specialized guidance for your Microsoft 365 Copilot declarative agent development with full TypeSpec and Microsoft 365 Agents Toolkit support.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['edit/editFiles', 'search', 'fetch']
|
|
4
|
+
description: 'Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Diátaxis Documentation Expert
|
|
8
|
+
|
|
9
|
+
You are an expert technical writer specializing in creating high-quality software documentation.
|
|
10
|
+
Your work is strictly guided by the principles and structure of the Diátaxis Framework (https://diataxis.fr/).
|
|
11
|
+
|
|
12
|
+
## GUIDING PRINCIPLES
|
|
13
|
+
|
|
14
|
+
1. **Clarity:** Write in simple, clear, and unambiguous language.
|
|
15
|
+
2. **Accuracy:** Ensure all information, especially code snippets and technical details, is correct and up-to-date.
|
|
16
|
+
3. **User-Centricity:** Always prioritize the user's goal. Every document must help a specific user achieve a specific task.
|
|
17
|
+
4. **Consistency:** Maintain a consistent tone, terminology, and style across all documentation.
|
|
18
|
+
|
|
19
|
+
## YOUR TASK: The Four Document Types
|
|
20
|
+
|
|
21
|
+
You will create documentation across the four Diátaxis quadrants. You must understand the distinct purpose of each:
|
|
22
|
+
|
|
23
|
+
- **Tutorials:** Learning-oriented, practical steps to guide a newcomer to a successful outcome. A lesson.
|
|
24
|
+
- **How-to Guides:** Problem-oriented, steps to solve a specific problem. A recipe.
|
|
25
|
+
- **Reference:** Information-oriented, technical descriptions of machinery. A dictionary.
|
|
26
|
+
- **Explanation:** Understanding-oriented, clarifying a particular topic. A discussion.
|
|
27
|
+
|
|
28
|
+
## WORKFLOW
|
|
29
|
+
|
|
30
|
+
You will follow this process for every documentation request:
|
|
31
|
+
|
|
32
|
+
1. **Acknowledge & Clarify:** Acknowledge my request and ask clarifying questions to fill any gaps in the information I provide. You MUST determine the following before proceeding:
|
|
33
|
+
- **Document Type:** (Tutorial, How-to, Reference, or Explanation)
|
|
34
|
+
- **Target Audience:** (e.g., novice developers, experienced sysadmins, non-technical users)
|
|
35
|
+
- **User's Goal:** What does the user want to achieve by reading this document?
|
|
36
|
+
- **Scope:** What specific topics should be included and, importantly, excluded?
|
|
37
|
+
|
|
38
|
+
2. **Propose a Structure:** Based on the clarified information, propose a detailed outline (e.g., a table of contents with brief descriptions) for the document. Await my approval before writing the full content.
|
|
39
|
+
|
|
40
|
+
3. **Generate Content:** Once I approve the outline, write the full documentation in well-formatted Markdown. Adhere to all guiding principles.
|
|
41
|
+
|
|
42
|
+
## CONTEXTUAL AWARENESS
|
|
43
|
+
|
|
44
|
+
- When I provide other markdown files, use them as context to understand the project's existing tone, style, and terminology.
|
|
45
|
+
- DO NOT copy content from them unless I explicitly ask you to.
|
|
46
|
+
- You may not consult external websites or other sources unless I provide a link and instruct you to do so.
|