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,430 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Power Platform Connectors Schema Development Instructions
|
|
3
|
+
description: 'Comprehensive development guidelines for Power Platform Custom Connectors using JSON Schema definitions. Covers API definitions (Swagger 2.0), API properties, and settings configuration with Microsoft extensions.'
|
|
4
|
+
applyTo: '**/*.{json,md}'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Power Platform Connectors Schema Development Instructions
|
|
8
|
+
|
|
9
|
+
## Project Overview
|
|
10
|
+
This workspace contains JSON Schema definitions for Power Platform Custom Connectors, specifically for the `paconn` (Power Apps Connector) tool. The schemas validate and provide IntelliSense for:
|
|
11
|
+
|
|
12
|
+
- **API Definitions** (Swagger 2.0 format)
|
|
13
|
+
- **API Properties** (connector metadata and configuration)
|
|
14
|
+
- **Settings** (environment and deployment configuration)
|
|
15
|
+
|
|
16
|
+
## File Structure Understanding
|
|
17
|
+
|
|
18
|
+
### 1. apiDefinition.swagger.json
|
|
19
|
+
- **Purpose**: This file contains Swagger 2.0 API definitions with Power Platform extensions.
|
|
20
|
+
- **Key Features**:
|
|
21
|
+
- Standard Swagger 2.0 properties including info, paths, definitions, and more.
|
|
22
|
+
- Microsoft-specific extensions that begin with `x-ms-*` prefixes.
|
|
23
|
+
- Custom format types specifically designed for Power Platform such as `date-no-tz` and `html`.
|
|
24
|
+
- Dynamic schema support that provides runtime flexibility.
|
|
25
|
+
- Security definitions that support OAuth2, API Key, and Basic Auth authentication methods.
|
|
26
|
+
|
|
27
|
+
### 2. apiProperties.json
|
|
28
|
+
- **Purpose**: This file defines connector metadata, authentication configurations, and policy configurations.
|
|
29
|
+
- **Key Components**:
|
|
30
|
+
- **Connection Parameters**: These support various authentication types including OAuth, API Key, and Gateway configurations.
|
|
31
|
+
- **Policy Template Instances**: These handle data transformation and routing policies for the connector.
|
|
32
|
+
- **Connector Metadata**: This includes publisher information, capabilities, and branding elements.
|
|
33
|
+
|
|
34
|
+
### 3. settings.json
|
|
35
|
+
- **Purpose**: This file provides environment and deployment configuration settings for the paconn tool.
|
|
36
|
+
- **Configuration Options**:
|
|
37
|
+
- Environment GUID targeting for specific Power Platform environments.
|
|
38
|
+
- File path mappings for connector assets and configuration files.
|
|
39
|
+
- API endpoint URLs for both production and testing environments (PROD/TIP1).
|
|
40
|
+
- API version specifications to ensure compatibility with Power Platform services.
|
|
41
|
+
|
|
42
|
+
## Development Guidelines
|
|
43
|
+
|
|
44
|
+
### When Working with API Definitions (Swagger)
|
|
45
|
+
1. **Always validate against Swagger 2.0 spec** - The schema enforces strict Swagger 2.0 compliance
|
|
46
|
+
|
|
47
|
+
2. **Microsoft Extensions for Operations**:
|
|
48
|
+
- `x-ms-summary`: Use this to provide user-friendly display names and ensure you use title case formatting.
|
|
49
|
+
- `x-ms-visibility`: Use this to control parameter visibility with values of `important`, `advanced`, or `internal`.
|
|
50
|
+
- `x-ms-trigger`: Use this to mark operations as triggers with values of `batch` or `single`.
|
|
51
|
+
- `x-ms-trigger-hint`: Use this to provide helpful hint text that guides users when working with triggers.
|
|
52
|
+
- `x-ms-trigger-metadata`: Use this to define trigger configuration settings including kind and mode properties.
|
|
53
|
+
- `x-ms-notification`: Use this to configure webhook operations for real-time notifications.
|
|
54
|
+
- `x-ms-pageable`: Use this to enable pagination functionality by specifying the `nextLinkName` property.
|
|
55
|
+
- `x-ms-safe-operation`: Use this to mark POST operations as safe when they don't have side effects.
|
|
56
|
+
- `x-ms-no-generic-test`: Use this to disable automatic testing for specific operations.
|
|
57
|
+
- `x-ms-operation-context`: Use this to configure operation simulation settings for testing purposes.
|
|
58
|
+
|
|
59
|
+
3. **Microsoft Extensions for Parameters**:
|
|
60
|
+
- `x-ms-dynamic-list`: Use this to enable dynamic dropdown lists populated from API calls.
|
|
61
|
+
- `x-ms-dynamic-values`: Use this to configure dynamic value sources that populate parameter options.
|
|
62
|
+
- `x-ms-dynamic-tree`: Use this to create hierarchical selectors for nested data structures.
|
|
63
|
+
- `x-ms-dynamic-schema`: Use this to allow runtime schema changes based on user selections.
|
|
64
|
+
- `x-ms-dynamic-properties`: Use this for dynamic property configuration that adapts to context.
|
|
65
|
+
- `x-ms-enum-values`: Use this to provide enhanced enum definitions with display names for better user experience.
|
|
66
|
+
- `x-ms-test-value`: Use this to provide sample values for testing, but never include secrets or sensitive data.
|
|
67
|
+
- `x-ms-trigger-value`: Use this to specify values specifically for trigger parameters with `value-collection` and `value-path` properties.
|
|
68
|
+
- `x-ms-url-encoding`: Use this to specify URL encoding style as either `single` or `double` (defaults to `single`).
|
|
69
|
+
- `x-ms-parameter-location`: Use this to provide parameter location hints for the API (AutoRest extension - ignored by Power Platform).
|
|
70
|
+
- `x-ms-localizeDefaultValue`: Use this to enable localization for default parameter values.
|
|
71
|
+
- `x-ms-skip-url-encoding`: Use this to skip URL encoding for path parameters (AutoRest extension - ignored by Power Platform).
|
|
72
|
+
|
|
73
|
+
4. **Microsoft Extensions for Schemas**:
|
|
74
|
+
- `x-ms-notification-url`: Use this to mark a schema property as a notification URL for webhook configurations.
|
|
75
|
+
- `x-ms-media-kind`: Use this to specify the media type for content, with supported values of `image` or `audio`.
|
|
76
|
+
- `x-ms-enum`: Use this to provide enhanced enum metadata (AutoRest extension - ignored by Power Platform).
|
|
77
|
+
- Note that all parameter extensions listed above also apply to schema properties and can be used within schema definitions.
|
|
78
|
+
|
|
79
|
+
5. **Root-Level Extensions**:
|
|
80
|
+
- `x-ms-capabilities`: Use this to define connector capabilities such as file-picker and testConnection functionality.
|
|
81
|
+
- `x-ms-connector-metadata`: Use this to provide additional connector metadata beyond the standard properties.
|
|
82
|
+
- `x-ms-docs`: Use this to configure documentation settings and references for the connector.
|
|
83
|
+
- `x-ms-deployment-version`: Use this to track version information for deployment management.
|
|
84
|
+
- `x-ms-api-annotation`: Use this to add API-level annotations for enhanced functionality.
|
|
85
|
+
|
|
86
|
+
6. **Path-Level Extensions**:
|
|
87
|
+
- `x-ms-notification-content`: Use this to define notification content schemas for webhook path items.
|
|
88
|
+
|
|
89
|
+
7. **Operation-Level Capabilities**:
|
|
90
|
+
- `x-ms-capabilities` (at operation level): Use this to enable operation-specific capabilities such as `chunkTransfer` for large file transfers.
|
|
91
|
+
|
|
92
|
+
8. **Security Considerations**:
|
|
93
|
+
- You should define appropriate `securityDefinitions` for your API to ensure proper authentication.
|
|
94
|
+
- **Multiple security definitions are allowed** - you can define up to two auth methods (e.g., oauth2 + apiKey, basic + apiKey).
|
|
95
|
+
- **Exception**: If using "None" authentication, no other security definitions can be present in the same connector.
|
|
96
|
+
- You should use `oauth2` for modern APIs, `apiKey` for simple token authentication, and consider `basic` auth only for internal/legacy systems.
|
|
97
|
+
- Each security definition must be exactly one type (this constraint is enforced by oneOf validation).
|
|
98
|
+
|
|
99
|
+
9. **Parameter Best Practices**:
|
|
100
|
+
- You should use descriptive `description` fields to help users understand each parameter's purpose.
|
|
101
|
+
- You should implement `x-ms-summary` for better user experience (title case is required).
|
|
102
|
+
- You must mark required parameters correctly to ensure proper validation.
|
|
103
|
+
- You should use appropriate `format` values (including Power Platform extensions) to enable proper data handling.
|
|
104
|
+
- You should leverage dynamic extensions for better user experience and data validation.
|
|
105
|
+
|
|
106
|
+
10. **Power Platform Format Extensions**:
|
|
107
|
+
- `date-no-tz`: This represents a date-time that has no time-offset information.
|
|
108
|
+
- `html`: This format tells clients to emit an HTML editor when editing and an HTML viewer when viewing content.
|
|
109
|
+
- Standard formats include: `int32`, `int64`, `float`, `double`, `byte`, `binary`, `date`, `date-time`, `password`, `email`, `uri`, `uuid`.
|
|
110
|
+
|
|
111
|
+
### When Working with API Properties
|
|
112
|
+
1. **Connection Parameters**:
|
|
113
|
+
- You should choose appropriate parameter types such as `string`, `securestring`, or `oauthSetting`.
|
|
114
|
+
- You should configure OAuth settings with correct identity providers.
|
|
115
|
+
- You should use `allowedValues` for dropdown options when appropriate.
|
|
116
|
+
- You should implement parameter dependencies when needed for conditional parameters.
|
|
117
|
+
|
|
118
|
+
2. **Policy Templates**:
|
|
119
|
+
- You should use `routerequesttoendpoint` for backend routing to different API endpoints.
|
|
120
|
+
- You should implement `setqueryparameter` for setting default values on query parameters.
|
|
121
|
+
- You should use `updatenextlink` for pagination scenarios to handle paging correctly.
|
|
122
|
+
- You should apply `pollingtrigger` for trigger operations that require polling behavior.
|
|
123
|
+
|
|
124
|
+
3. **Branding and Metadata**:
|
|
125
|
+
- You must always specify `iconBrandColor` as this property is required for all connectors.
|
|
126
|
+
- You should define appropriate `capabilities` to specify whether your connector supports actions or triggers.
|
|
127
|
+
- You should set meaningful `publisher` and `stackOwner` values to identify the connector's ownership.
|
|
128
|
+
|
|
129
|
+
### When Working with Settings
|
|
130
|
+
1. **Environment Configuration**:
|
|
131
|
+
- You should use proper GUID format for `environment` that matches the validation pattern.
|
|
132
|
+
- You should set correct `powerAppsUrl` and `flowUrl` for your target environment.
|
|
133
|
+
- You should match API versions to your specific requirements.
|
|
134
|
+
|
|
135
|
+
2. **File References**:
|
|
136
|
+
- You should maintain consistent file naming with the defaults of `apiProperties.json` and `apiDefinition.swagger.json`.
|
|
137
|
+
- You should use relative paths for local development environments.
|
|
138
|
+
- You should ensure icon file exists and is properly referenced in your configuration.
|
|
139
|
+
|
|
140
|
+
## Schema Validation Rules
|
|
141
|
+
|
|
142
|
+
### Required Properties
|
|
143
|
+
- **API Definition**: `swagger: "2.0"`, `info` (with `title` and `version`), `paths`
|
|
144
|
+
- **API Properties**: `properties` with `iconBrandColor`
|
|
145
|
+
- **Settings**: No required properties (all optional with defaults)
|
|
146
|
+
|
|
147
|
+
### Pattern Validation
|
|
148
|
+
- **Vendor Extensions**: Must match `^x-(?!ms-)` pattern for non-Microsoft extensions
|
|
149
|
+
- **Path Items**: Must start with `/` for API paths
|
|
150
|
+
- **Environment GUID**: Must match UUID format pattern `^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
|
|
151
|
+
- **URLs**: Must be valid URIs for endpoint configurations
|
|
152
|
+
- **Host Pattern**: Must match `^[^{}/ :\\\\]+(?::\\d+)?$` (no spaces, protocols, or paths)
|
|
153
|
+
|
|
154
|
+
### Type Constraints
|
|
155
|
+
- **Security Definitions**:
|
|
156
|
+
- Up to two security definitions allowed in `securityDefinitions` object
|
|
157
|
+
- Each individual security definition must be exactly one type (oneOf validation: `basic`, `apiKey`, `oauth2`)
|
|
158
|
+
- **Exception**: "None" authentication cannot coexist with other security definitions
|
|
159
|
+
- **Parameter Types**: Limited to specific enum values (`string`, `number`, `integer`, `boolean`, `array`, `file`)
|
|
160
|
+
- **Policy Templates**: Type-specific parameter requirements
|
|
161
|
+
- **Format Values**: Extended set including Power Platform formats
|
|
162
|
+
- **Visibility Values**: Must be one of `important`, `advanced`, or `internal`
|
|
163
|
+
- **Trigger Types**: Must be `batch` or `single`
|
|
164
|
+
|
|
165
|
+
### Additional Validation Rules
|
|
166
|
+
- **$ref References**: Should only point to `#/definitions/`, `#/parameters/`, or `#/responses/`
|
|
167
|
+
- **Path Parameters**: Must be marked as `required: true`
|
|
168
|
+
- **Info Object**: Description should be different from title
|
|
169
|
+
- **Contact Object**: Email must be valid email format, URL must be valid URI
|
|
170
|
+
- **License Object**: Name is required, URL must be valid URI if provided
|
|
171
|
+
- **External Docs**: URL is required and must be valid URI
|
|
172
|
+
- **Tags**: Must have unique names within the array
|
|
173
|
+
- **Schemes**: Must be valid HTTP schemes (`http`, `https`, `ws`, `wss`)
|
|
174
|
+
- **MIME Types**: Must follow valid MIME type format in `consumes` and `produces`
|
|
175
|
+
|
|
176
|
+
## Common Patterns and Examples
|
|
177
|
+
|
|
178
|
+
### API Definition Examples
|
|
179
|
+
|
|
180
|
+
#### Basic Operation with Microsoft Extensions
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"get": {
|
|
184
|
+
"operationId": "GetItems",
|
|
185
|
+
"summary": "Get items",
|
|
186
|
+
"x-ms-summary": "Get Items",
|
|
187
|
+
"x-ms-visibility": "important",
|
|
188
|
+
"description": "Retrieves a list of items from the API",
|
|
189
|
+
"parameters": [
|
|
190
|
+
{
|
|
191
|
+
"name": "category",
|
|
192
|
+
"in": "query",
|
|
193
|
+
"type": "string",
|
|
194
|
+
"x-ms-summary": "Category",
|
|
195
|
+
"x-ms-visibility": "important",
|
|
196
|
+
"x-ms-dynamic-values": {
|
|
197
|
+
"operationId": "GetCategories",
|
|
198
|
+
"value-path": "id",
|
|
199
|
+
"value-title": "name"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"responses": {
|
|
204
|
+
"200": {
|
|
205
|
+
"description": "Success",
|
|
206
|
+
"x-ms-summary": "Success",
|
|
207
|
+
"schema": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"properties": {
|
|
210
|
+
"items": {
|
|
211
|
+
"type": "array",
|
|
212
|
+
"x-ms-summary": "Items",
|
|
213
|
+
"items": {
|
|
214
|
+
"$ref": "#/definitions/Item"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### Trigger Operation Configuration
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"get": {
|
|
229
|
+
"operationId": "WhenItemCreated",
|
|
230
|
+
"x-ms-summary": "When an Item is Created",
|
|
231
|
+
"x-ms-trigger": "batch",
|
|
232
|
+
"x-ms-trigger-hint": "To see it work now, create an item",
|
|
233
|
+
"x-ms-trigger-metadata": {
|
|
234
|
+
"kind": "query",
|
|
235
|
+
"mode": "polling"
|
|
236
|
+
},
|
|
237
|
+
"x-ms-pageable": {
|
|
238
|
+
"nextLinkName": "@odata.nextLink"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### Dynamic Schema Example
|
|
245
|
+
```json
|
|
246
|
+
{
|
|
247
|
+
"name": "dynamicSchema",
|
|
248
|
+
"in": "body",
|
|
249
|
+
"schema": {
|
|
250
|
+
"x-ms-dynamic-schema": {
|
|
251
|
+
"operationId": "GetSchema",
|
|
252
|
+
"parameters": {
|
|
253
|
+
"table": {
|
|
254
|
+
"parameter": "table"
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"value-path": "schema"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
#### File Picker Capability
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"x-ms-capabilities": {
|
|
267
|
+
"file-picker": {
|
|
268
|
+
"open": {
|
|
269
|
+
"operationId": "OneDriveFilePickerOpen",
|
|
270
|
+
"parameters": {
|
|
271
|
+
"dataset": {
|
|
272
|
+
"value-property": "dataset"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"browse": {
|
|
277
|
+
"operationId": "OneDriveFilePickerBrowse",
|
|
278
|
+
"parameters": {
|
|
279
|
+
"dataset": {
|
|
280
|
+
"value-property": "dataset"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"value-title": "DisplayName",
|
|
285
|
+
"value-collection": "value",
|
|
286
|
+
"value-folder-property": "IsFolder",
|
|
287
|
+
"value-media-property": "MediaType"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
#### Test Connection Capability (Note: Not Supported for Custom Connectors)
|
|
294
|
+
```json
|
|
295
|
+
{
|
|
296
|
+
"x-ms-capabilities": {
|
|
297
|
+
"testConnection": {
|
|
298
|
+
"operationId": "TestConnection",
|
|
299
|
+
"parameters": {
|
|
300
|
+
"param1": "literal-value"
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
#### Operation Context for Simulation
|
|
308
|
+
```json
|
|
309
|
+
{
|
|
310
|
+
"x-ms-operation-context": {
|
|
311
|
+
"simulate": {
|
|
312
|
+
"operationId": "SimulateOperation",
|
|
313
|
+
"parameters": {
|
|
314
|
+
"param1": {
|
|
315
|
+
"parameter": "inputParam"
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Basic OAuth Configuration
|
|
324
|
+
```json
|
|
325
|
+
{
|
|
326
|
+
"type": "oauthSetting",
|
|
327
|
+
"oAuthSettings": {
|
|
328
|
+
"identityProvider": "oauth2",
|
|
329
|
+
"clientId": "your-client-id",
|
|
330
|
+
"scopes": ["scope1", "scope2"],
|
|
331
|
+
"redirectMode": "Global"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
#### Multiple Security Definitions Example
|
|
337
|
+
```json
|
|
338
|
+
{
|
|
339
|
+
"securityDefinitions": {
|
|
340
|
+
"oauth2": {
|
|
341
|
+
"type": "oauth2",
|
|
342
|
+
"flow": "accessCode",
|
|
343
|
+
"authorizationUrl": "https://api.example.com/oauth/authorize",
|
|
344
|
+
"tokenUrl": "https://api.example.com/oauth/token",
|
|
345
|
+
"scopes": {
|
|
346
|
+
"read": "Read access",
|
|
347
|
+
"write": "Write access"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"apiKey": {
|
|
351
|
+
"type": "apiKey",
|
|
352
|
+
"name": "X-API-Key",
|
|
353
|
+
"in": "header"
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Note**: Maximum of two security definitions can coexist, but "None" authentication cannot be combined with other methods.
|
|
360
|
+
|
|
361
|
+
### Dynamic Parameter Setup
|
|
362
|
+
```json
|
|
363
|
+
{
|
|
364
|
+
"x-ms-dynamic-values": {
|
|
365
|
+
"operationId": "GetItems",
|
|
366
|
+
"value-path": "id",
|
|
367
|
+
"value-title": "name"
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Policy Template for Routing
|
|
373
|
+
```json
|
|
374
|
+
{
|
|
375
|
+
"templateId": "routerequesttoendpoint",
|
|
376
|
+
"title": "Route to backend",
|
|
377
|
+
"parameters": {
|
|
378
|
+
"x-ms-apimTemplate-operationName": ["GetData"],
|
|
379
|
+
"x-ms-apimTemplateParameter.newPath": "/api/v2/data"
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
## Best Practices
|
|
385
|
+
|
|
386
|
+
1. **Use IntelliSense**: These schemas provide rich autocomplete and validation capabilities that help during development.
|
|
387
|
+
2. **Follow Naming Conventions**: Use descriptive names for operations and parameters to improve code readability.
|
|
388
|
+
3. **Implement Error Handling**: Define appropriate response schemas and error codes to handle failure scenarios properly.
|
|
389
|
+
4. **Test Thoroughly**: Validate schemas before deployment to catch issues early in the development process.
|
|
390
|
+
5. **Document Extensions**: Comment Microsoft-specific extensions for team understanding and future maintenance.
|
|
391
|
+
6. **Version Management**: Use semantic versioning in API info to track changes and compatibility.
|
|
392
|
+
7. **Security First**: Always implement appropriate authentication mechanisms to protect your API endpoints.
|
|
393
|
+
|
|
394
|
+
## Troubleshooting
|
|
395
|
+
|
|
396
|
+
### Common Schema Violations
|
|
397
|
+
- **Missing required properties**: `swagger: "2.0"`, `info.title`, `info.version`, `paths`
|
|
398
|
+
- **Invalid pattern formats**:
|
|
399
|
+
- GUIDs must match exact format `^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
|
|
400
|
+
- URLs must be valid URIs with proper scheme
|
|
401
|
+
- Paths must start with `/`
|
|
402
|
+
- Host must not include protocol, paths, or spaces
|
|
403
|
+
- **Incorrect vendor extension naming**: Use `x-ms-*` for Microsoft extensions, `^x-(?!ms-)` for others
|
|
404
|
+
- **Mismatched security definition types**: Each security definition must be exactly one type
|
|
405
|
+
- **Invalid enum values**: Check allowed values for `x-ms-visibility`, `x-ms-trigger`, parameter types
|
|
406
|
+
- **$ref pointing to invalid locations**: Must point to `#/definitions/`, `#/parameters/`, or `#/responses/`
|
|
407
|
+
- **Path parameters not marked as required**: All path parameters must have `required: true`
|
|
408
|
+
- **Type 'file' in wrong context**: Only allowed in `formData` parameters, not in schemas
|
|
409
|
+
|
|
410
|
+
### API Definition Specific Issues
|
|
411
|
+
- **Dynamic schema conflicts**: Can't use `x-ms-dynamic-schema` with fixed schema properties
|
|
412
|
+
- **Trigger configuration errors**: `x-ms-trigger-metadata` requires both `kind` and `mode`
|
|
413
|
+
- **Pagination setup**: `x-ms-pageable` requires `nextLinkName` property
|
|
414
|
+
- **File picker misconfiguration**: Must include both `open` operation and required properties
|
|
415
|
+
- **Capability conflicts**: Some capabilities may conflict with certain parameter types
|
|
416
|
+
- **Test value security**: Never include secrets or PII in `x-ms-test-value`
|
|
417
|
+
- **Operation context setup**: `x-ms-operation-context` requires a `simulate` object with `operationId`
|
|
418
|
+
- **Notification content schema**: Path-level `x-ms-notification-content` must define proper schema structure
|
|
419
|
+
- **Media kind restrictions**: `x-ms-media-kind` only supports `image` or `audio` values
|
|
420
|
+
- **Trigger value configuration**: `x-ms-trigger-value` must have at least one property (`value-collection` or `value-path`)
|
|
421
|
+
|
|
422
|
+
### Validation Tools
|
|
423
|
+
- Use JSON Schema validators to check your schema definitions for compliance.
|
|
424
|
+
- Leverage VS Code's built-in schema validation to catch errors during development.
|
|
425
|
+
- Test with paconn CLI before deployment using: `paconn validate --api-def apiDefinition.swagger.json`
|
|
426
|
+
- Validate against Power Platform connector requirements to ensure compatibility.
|
|
427
|
+
- Use the Power Platform Connector portal for validation and testing in the target environment.
|
|
428
|
+
- Check that operation responses match expected schemas to prevent runtime errors.
|
|
429
|
+
|
|
430
|
+
Remember: These schemas ensure your Power Platform connectors are properly formatted and will work correctly in the Power Platform ecosystem.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Instructions for developing Power Platform custom connectors with Model Context Protocol (MCP) integration for Microsoft Copilot Studio'
|
|
3
|
+
applyTo: '**/*.{json,csx,md}'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Power Platform MCP Custom Connector Development
|
|
7
|
+
|
|
8
|
+
## Instructions
|
|
9
|
+
|
|
10
|
+
### MCP Protocol Integration
|
|
11
|
+
- Always implement JSON-RPC 2.0 standard for MCP communication
|
|
12
|
+
- Use `x-ms-agentic-protocol: mcp-streamable-1.0` header for Copilot Studio compatibility
|
|
13
|
+
- Structure endpoints to support both standard REST operations and MCP tool invocation
|
|
14
|
+
- Transform responses to comply with Copilot Studio constraints (no reference types, single types only)
|
|
15
|
+
|
|
16
|
+
### Schema Design Best Practices
|
|
17
|
+
- Remove `$ref` and other reference types from JSON schemas as Copilot Studio cannot handle them
|
|
18
|
+
- Use single types instead of arrays of types in schema definitions
|
|
19
|
+
- Flatten `anyOf`/`oneOf` constructs to single schemas for Copilot Studio compatibility
|
|
20
|
+
- Ensure all tool input schemas are self-contained without external references
|
|
21
|
+
|
|
22
|
+
### Authentication and Security
|
|
23
|
+
- Implement OAuth 2.0 with MCP security best practices within Power Platform constraints
|
|
24
|
+
- Use connection parameter sets for flexible authentication configuration
|
|
25
|
+
- Validate token audience to prevent passthrough attacks
|
|
26
|
+
- Add MCP-specific security headers for enhanced validation
|
|
27
|
+
- Support multiple authentication methods (OAuth standard, OAuth enhanced, API key fallback)
|
|
28
|
+
|
|
29
|
+
### Custom Script Implementation
|
|
30
|
+
- Handle JSON-RPC transformation in the custom script (script.csx)
|
|
31
|
+
- Implement proper error handling with JSON-RPC error response format
|
|
32
|
+
- Add token validation and audience checking in authentication flow
|
|
33
|
+
- Transform MCP server responses for Copilot Studio compatibility
|
|
34
|
+
- Use connection parameters for dynamic security configuration
|
|
35
|
+
|
|
36
|
+
### Swagger Definition Guidelines
|
|
37
|
+
- Use Swagger 2.0 specification for Power Platform compatibility
|
|
38
|
+
- Implement proper `operationId` values for each endpoint
|
|
39
|
+
- Define clear parameter schemas with appropriate types and descriptions
|
|
40
|
+
- Add comprehensive response schemas for all success and error cases
|
|
41
|
+
- Include proper HTTP status codes and response headers
|
|
42
|
+
|
|
43
|
+
### Resource and Tool Management
|
|
44
|
+
- Structure MCP resources to be consumable as tool outputs in Copilot Studio
|
|
45
|
+
- Ensure proper MIME type declarations for resource content
|
|
46
|
+
- Add audience and priority annotations for better Copilot Studio integration
|
|
47
|
+
- Implement resource transformation to meet Copilot Studio requirements
|
|
48
|
+
|
|
49
|
+
### Connection Parameter Configuration
|
|
50
|
+
- Use enum dropdowns for OAuth version and security level selection
|
|
51
|
+
- Provide clear parameter descriptions and constraints
|
|
52
|
+
- Support multiple authentication parameter sets for different deployment scenarios
|
|
53
|
+
- Include validation rules and default values where appropriate
|
|
54
|
+
- Enable dynamic configuration through connection parameter values
|
|
55
|
+
|
|
56
|
+
### Error Handling and Logging
|
|
57
|
+
- Implement comprehensive error responses following JSON-RPC 2.0 error format
|
|
58
|
+
- Add detailed logging for authentication, validation, and transformation steps
|
|
59
|
+
- Provide clear error messages that help with troubleshooting
|
|
60
|
+
- Include proper HTTP status codes aligned with error conditions
|
|
61
|
+
|
|
62
|
+
### Testing and Validation
|
|
63
|
+
- Test connector with actual MCP server implementations
|
|
64
|
+
- Validate schema transformations work correctly with Copilot Studio
|
|
65
|
+
- Verify authentication flows for all supported parameter sets
|
|
66
|
+
- Ensure proper error handling for various failure scenarios
|
|
67
|
+
- Test connection parameter configurations and dynamic behavior
|
|
68
|
+
|
|
69
|
+
## Additional Guidelines
|
|
70
|
+
|
|
71
|
+
### Power Platform Certification Requirements
|
|
72
|
+
- Include comprehensive documentation (readme.md, CUSTOMIZE.md)
|
|
73
|
+
- Provide clear setup and configuration instructions
|
|
74
|
+
- Document all authentication options and security considerations
|
|
75
|
+
- Include proper publisher and stack owner information
|
|
76
|
+
- Ensure compliance with Power Platform connector certification standards
|
|
77
|
+
|
|
78
|
+
### MCP Server Compatibility
|
|
79
|
+
- Design for compatibility with standard MCP server implementations
|
|
80
|
+
- Support common MCP methods like `tools/list`, `tools/call`, `resources/list`
|
|
81
|
+
- Handle streaming responses appropriately for `mcp-streamable-1.0` protocol
|
|
82
|
+
- Implement proper protocol negotiation and capability detection
|
|
83
|
+
|
|
84
|
+
### Copilot Studio Integration
|
|
85
|
+
- Ensure tool definitions work correctly within Copilot Studio's constraints
|
|
86
|
+
- Test resource access and tool invocation from Copilot Studio interface
|
|
87
|
+
- Validate that transformed schemas produce expected behavior in conversations
|
|
88
|
+
- Confirm proper integration with Copilot Studio's agent framework
|