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,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['search/codebase']
|
|
4
|
+
description: 'Create optimized multi-stage Dockerfiles for any language or framework'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Your goal is to help me create efficient multi-stage Dockerfiles that follow best practices, resulting in smaller, more secure container images.
|
|
8
|
+
|
|
9
|
+
## Multi-Stage Structure
|
|
10
|
+
|
|
11
|
+
- Use a builder stage for compilation, dependency installation, and other build-time operations
|
|
12
|
+
- Use a separate runtime stage that only includes what's needed to run the application
|
|
13
|
+
- Copy only the necessary artifacts from the builder stage to the runtime stage
|
|
14
|
+
- Use meaningful stage names with the `AS` keyword (e.g., `FROM node:18 AS builder`)
|
|
15
|
+
- Place stages in logical order: dependencies → build → test → runtime
|
|
16
|
+
|
|
17
|
+
## Base Images
|
|
18
|
+
|
|
19
|
+
- Start with official, minimal base images when possible
|
|
20
|
+
- Specify exact version tags to ensure reproducible builds (e.g., `python:3.11-slim` not just `python`)
|
|
21
|
+
- Consider distroless images for runtime stages where appropriate
|
|
22
|
+
- Use Alpine-based images for smaller footprints when compatible with your application
|
|
23
|
+
- Ensure the runtime image has the minimal necessary dependencies
|
|
24
|
+
|
|
25
|
+
## Layer Optimization
|
|
26
|
+
|
|
27
|
+
- Organize commands to maximize layer caching
|
|
28
|
+
- Place commands that change frequently (like code changes) after commands that change less frequently (like dependency installation)
|
|
29
|
+
- Use `.dockerignore` to prevent unnecessary files from being included in the build context
|
|
30
|
+
- Combine related RUN commands with `&&` to reduce layer count
|
|
31
|
+
- Consider using COPY --chown to set permissions in one step
|
|
32
|
+
|
|
33
|
+
## Security Practices
|
|
34
|
+
|
|
35
|
+
- Avoid running containers as root - use `USER` instruction to specify a non-root user
|
|
36
|
+
- Remove build tools and unnecessary packages from the final image
|
|
37
|
+
- Scan the final image for vulnerabilities
|
|
38
|
+
- Set restrictive file permissions
|
|
39
|
+
- Use multi-stage builds to avoid including build secrets in the final image
|
|
40
|
+
|
|
41
|
+
## Performance Considerations
|
|
42
|
+
|
|
43
|
+
- Use build arguments for configuration that might change between environments
|
|
44
|
+
- Leverage build cache efficiently by ordering layers from least to most frequently changing
|
|
45
|
+
- Consider parallelization in build steps when possible
|
|
46
|
+
- Set appropriate environment variables like NODE_ENV=production to optimize runtime behavior
|
|
47
|
+
- Use appropriate healthchecks for the application type with the HEALTHCHECK instruction
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['githubRepo', 'github', 'get_issue', 'get_issue_comments', 'get_me', 'list_issues']
|
|
4
|
+
description: 'List my issues in the current repository'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Search the current repo (using #githubRepo for the repo info) and list any issues you find (using #list_issues) that are assigned to me.
|
|
8
|
+
|
|
9
|
+
Suggest issues that I might want to focus on based on their age, the amount of comments, and their status (open/closed).
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['githubRepo', 'github', 'get_me', 'get_pull_request', 'get_pull_request_comments', 'get_pull_request_diff', 'get_pull_request_files', 'get_pull_request_reviews', 'get_pull_request_status', 'list_pull_requests', 'request_copilot_review']
|
|
4
|
+
description: 'List my pull requests in the current repository'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Search the current repo (using #githubRepo for the repo info) and list any pull requests you find (using #list_pull_requests) that are assigned to me.
|
|
8
|
+
|
|
9
|
+
Describe the purpose and details of each pull request.
|
|
10
|
+
|
|
11
|
+
If a PR is waiting for someone to review, highlight that in the response.
|
|
12
|
+
|
|
13
|
+
If there were any check failures on the PR, describe them and suggest possible fixes.
|
|
14
|
+
|
|
15
|
+
If there was no review done by Copilot, offer to request one using #request_copilot_review.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes','search/codebase', 'edit/editFiles', 'findTestFiles', 'search', 'writeTest']
|
|
4
|
+
description: 'Add new language to a Next.js + next-intl application'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This is a guide to add a new language to a Next.js project using next-intl for internationalization,
|
|
8
|
+
|
|
9
|
+
- For i18n, the application uses next-intl.
|
|
10
|
+
- All translations are in the directory `./messages`.
|
|
11
|
+
- The UI component is `src/components/language-toggle.tsx`.
|
|
12
|
+
- Routing and middleware configuration are handled in:
|
|
13
|
+
- `src/i18n/routing.ts`
|
|
14
|
+
- `src/middleware.ts`
|
|
15
|
+
|
|
16
|
+
When adding a new language:
|
|
17
|
+
|
|
18
|
+
- Translate all the content of `en.json` to the new language. The goal is to have all the JSON entries in the new language for a complete translation.
|
|
19
|
+
- Add the path in `routing.ts` and `middleware.ts`.
|
|
20
|
+
- Add the language to `language-toggle.tsx`.
|
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Generate a complete PHP Model Context Protocol server project with tools, resources, prompts, and tests using the official PHP SDK'
|
|
3
|
+
mode: agent
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# PHP MCP Server Generator
|
|
7
|
+
|
|
8
|
+
You are a PHP MCP server generator. Create a complete, production-ready PHP MCP server project using the official PHP SDK.
|
|
9
|
+
|
|
10
|
+
## Project Requirements
|
|
11
|
+
|
|
12
|
+
Ask the user for:
|
|
13
|
+
1. **Project name** (e.g., "my-mcp-server")
|
|
14
|
+
2. **Server description** (e.g., "A file management MCP server")
|
|
15
|
+
3. **Transport type** (stdio, http, or both)
|
|
16
|
+
4. **Tools to include** (e.g., "file read", "file write", "list directory")
|
|
17
|
+
5. **Whether to include resources and prompts**
|
|
18
|
+
6. **PHP version** (8.2+ required)
|
|
19
|
+
|
|
20
|
+
## Project Structure
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
{project-name}/
|
|
24
|
+
├── composer.json
|
|
25
|
+
├── .gitignore
|
|
26
|
+
├── README.md
|
|
27
|
+
├── server.php
|
|
28
|
+
├── src/
|
|
29
|
+
│ ├── Tools/
|
|
30
|
+
│ │ └── {ToolClass}.php
|
|
31
|
+
│ ├── Resources/
|
|
32
|
+
│ │ └── {ResourceClass}.php
|
|
33
|
+
│ ├── Prompts/
|
|
34
|
+
│ │ └── {PromptClass}.php
|
|
35
|
+
│ └── Providers/
|
|
36
|
+
│ └── {CompletionProvider}.php
|
|
37
|
+
└── tests/
|
|
38
|
+
└── ToolsTest.php
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## File Templates
|
|
42
|
+
|
|
43
|
+
### composer.json
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"name": "your-org/{project-name}",
|
|
48
|
+
"description": "{Server description}",
|
|
49
|
+
"type": "project",
|
|
50
|
+
"require": {
|
|
51
|
+
"php": "^8.2",
|
|
52
|
+
"mcp/sdk": "^0.1"
|
|
53
|
+
},
|
|
54
|
+
"require-dev": {
|
|
55
|
+
"phpunit/phpunit": "^10.0",
|
|
56
|
+
"symfony/cache": "^6.4"
|
|
57
|
+
},
|
|
58
|
+
"autoload": {
|
|
59
|
+
"psr-4": {
|
|
60
|
+
"App\\\\": "src/"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"autoload-dev": {
|
|
64
|
+
"psr-4": {
|
|
65
|
+
"Tests\\\\": "tests/"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"config": {
|
|
69
|
+
"optimize-autoloader": true,
|
|
70
|
+
"preferred-install": "dist",
|
|
71
|
+
"sort-packages": true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### .gitignore
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
/vendor
|
|
80
|
+
/cache
|
|
81
|
+
composer.lock
|
|
82
|
+
.phpunit.cache
|
|
83
|
+
phpstan.neon
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### README.md
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
# {Project Name}
|
|
90
|
+
|
|
91
|
+
{Server description}
|
|
92
|
+
|
|
93
|
+
## Requirements
|
|
94
|
+
|
|
95
|
+
- PHP 8.2 or higher
|
|
96
|
+
- Composer
|
|
97
|
+
|
|
98
|
+
## Installation
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
composer install
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Usage
|
|
105
|
+
|
|
106
|
+
### Start Server (Stdio)
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
php server.php
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Configure in Claude Desktop
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"mcpServers": {
|
|
117
|
+
"{project-name}": {
|
|
118
|
+
"command": "php",
|
|
119
|
+
"args": ["/absolute/path/to/server.php"]
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Testing
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
vendor/bin/phpunit
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Tools
|
|
132
|
+
|
|
133
|
+
- **{tool_name}**: {Tool description}
|
|
134
|
+
|
|
135
|
+
## Development
|
|
136
|
+
|
|
137
|
+
Test with MCP Inspector:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npx @modelcontextprotocol/inspector php server.php
|
|
141
|
+
```
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### server.php
|
|
145
|
+
|
|
146
|
+
```php
|
|
147
|
+
#!/usr/bin/env php
|
|
148
|
+
<?php
|
|
149
|
+
|
|
150
|
+
declare(strict_types=1);
|
|
151
|
+
|
|
152
|
+
require_once __DIR__ . '/vendor/autoload.php';
|
|
153
|
+
|
|
154
|
+
use Mcp\Server;
|
|
155
|
+
use Mcp\Server\Transport\StdioTransport;
|
|
156
|
+
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
|
|
157
|
+
use Symfony\Component\Cache\Psr16Cache;
|
|
158
|
+
|
|
159
|
+
// Setup cache for discovery
|
|
160
|
+
$cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery', 3600, __DIR__ . '/cache'));
|
|
161
|
+
|
|
162
|
+
// Build server with discovery
|
|
163
|
+
$server = Server::builder()
|
|
164
|
+
->setServerInfo('{Project Name}', '1.0.0')
|
|
165
|
+
->setDiscovery(
|
|
166
|
+
basePath: __DIR__,
|
|
167
|
+
scanDirs: ['src'],
|
|
168
|
+
excludeDirs: ['vendor', 'tests', 'cache'],
|
|
169
|
+
cache: $cache
|
|
170
|
+
)
|
|
171
|
+
->build();
|
|
172
|
+
|
|
173
|
+
// Run with stdio transport
|
|
174
|
+
$transport = new StdioTransport();
|
|
175
|
+
|
|
176
|
+
$server->run($transport);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### src/Tools/ExampleTool.php
|
|
180
|
+
|
|
181
|
+
```php
|
|
182
|
+
<?php
|
|
183
|
+
|
|
184
|
+
declare(strict_types=1);
|
|
185
|
+
|
|
186
|
+
namespace App\Tools;
|
|
187
|
+
|
|
188
|
+
use Mcp\Capability\Attribute\McpTool;
|
|
189
|
+
use Mcp\Capability\Attribute\Schema;
|
|
190
|
+
|
|
191
|
+
class ExampleTool
|
|
192
|
+
{
|
|
193
|
+
/**
|
|
194
|
+
* Performs a greeting with the provided name.
|
|
195
|
+
*
|
|
196
|
+
* @param string $name The name to greet
|
|
197
|
+
* @return string A greeting message
|
|
198
|
+
*/
|
|
199
|
+
#[McpTool]
|
|
200
|
+
public function greet(string $name): string
|
|
201
|
+
{
|
|
202
|
+
return "Hello, {$name}!";
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Performs arithmetic calculations.
|
|
207
|
+
*/
|
|
208
|
+
#[McpTool(name: 'calculate')]
|
|
209
|
+
public function performCalculation(
|
|
210
|
+
float $a,
|
|
211
|
+
float $b,
|
|
212
|
+
#[Schema(pattern: '^(add|subtract|multiply|divide)$')]
|
|
213
|
+
string $operation
|
|
214
|
+
): float {
|
|
215
|
+
return match($operation) {
|
|
216
|
+
'add' => $a + $b,
|
|
217
|
+
'subtract' => $a - $b,
|
|
218
|
+
'multiply' => $a * $b,
|
|
219
|
+
'divide' => $b != 0 ? $a / $b :
|
|
220
|
+
throw new \InvalidArgumentException('Division by zero'),
|
|
221
|
+
default => throw new \InvalidArgumentException('Invalid operation')
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### src/Resources/ConfigResource.php
|
|
228
|
+
|
|
229
|
+
```php
|
|
230
|
+
<?php
|
|
231
|
+
|
|
232
|
+
declare(strict_types=1);
|
|
233
|
+
|
|
234
|
+
namespace App\Resources;
|
|
235
|
+
|
|
236
|
+
use Mcp\Capability\Attribute\McpResource;
|
|
237
|
+
|
|
238
|
+
class ConfigResource
|
|
239
|
+
{
|
|
240
|
+
/**
|
|
241
|
+
* Provides application configuration.
|
|
242
|
+
*/
|
|
243
|
+
#[McpResource(
|
|
244
|
+
uri: 'config://app/settings',
|
|
245
|
+
name: 'app_config',
|
|
246
|
+
mimeType: 'application/json'
|
|
247
|
+
)]
|
|
248
|
+
public function getConfiguration(): array
|
|
249
|
+
{
|
|
250
|
+
return [
|
|
251
|
+
'version' => '1.0.0',
|
|
252
|
+
'environment' => 'production',
|
|
253
|
+
'features' => [
|
|
254
|
+
'logging' => true,
|
|
255
|
+
'caching' => true
|
|
256
|
+
]
|
|
257
|
+
];
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### src/Resources/DataProvider.php
|
|
263
|
+
|
|
264
|
+
```php
|
|
265
|
+
<?php
|
|
266
|
+
|
|
267
|
+
declare(strict_types=1);
|
|
268
|
+
|
|
269
|
+
namespace App\Resources;
|
|
270
|
+
|
|
271
|
+
use Mcp\Capability\Attribute\McpResourceTemplate;
|
|
272
|
+
|
|
273
|
+
class DataProvider
|
|
274
|
+
{
|
|
275
|
+
/**
|
|
276
|
+
* Provides data by category and ID.
|
|
277
|
+
*/
|
|
278
|
+
#[McpResourceTemplate(
|
|
279
|
+
uriTemplate: 'data://{category}/{id}',
|
|
280
|
+
name: 'data_resource',
|
|
281
|
+
mimeType: 'application/json'
|
|
282
|
+
)]
|
|
283
|
+
public function getData(string $category, string $id): array
|
|
284
|
+
{
|
|
285
|
+
// Example data retrieval
|
|
286
|
+
return [
|
|
287
|
+
'category' => $category,
|
|
288
|
+
'id' => $id,
|
|
289
|
+
'data' => "Sample data for {$category}/{$id}"
|
|
290
|
+
];
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### src/Prompts/PromptGenerator.php
|
|
296
|
+
|
|
297
|
+
```php
|
|
298
|
+
<?php
|
|
299
|
+
|
|
300
|
+
declare(strict_types=1);
|
|
301
|
+
|
|
302
|
+
namespace App\Prompts;
|
|
303
|
+
|
|
304
|
+
use Mcp\Capability\Attribute\McpPrompt;
|
|
305
|
+
use Mcp\Capability\Attribute\CompletionProvider;
|
|
306
|
+
|
|
307
|
+
class PromptGenerator
|
|
308
|
+
{
|
|
309
|
+
/**
|
|
310
|
+
* Generates a code review prompt.
|
|
311
|
+
*/
|
|
312
|
+
#[McpPrompt(name: 'code_review')]
|
|
313
|
+
public function reviewCode(
|
|
314
|
+
#[CompletionProvider(values: ['php', 'javascript', 'python', 'go', 'rust'])]
|
|
315
|
+
string $language,
|
|
316
|
+
string $code,
|
|
317
|
+
#[CompletionProvider(values: ['performance', 'security', 'style', 'general'])]
|
|
318
|
+
string $focus = 'general'
|
|
319
|
+
): array {
|
|
320
|
+
return [
|
|
321
|
+
[
|
|
322
|
+
'role' => 'assistant',
|
|
323
|
+
'content' => 'You are an expert code reviewer specializing in best practices and optimization.'
|
|
324
|
+
],
|
|
325
|
+
[
|
|
326
|
+
'role' => 'user',
|
|
327
|
+
'content' => "Review this {$language} code with focus on {$focus}:\n\n```{$language}\n{$code}\n```"
|
|
328
|
+
]
|
|
329
|
+
];
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Generates documentation prompt.
|
|
334
|
+
*/
|
|
335
|
+
#[McpPrompt]
|
|
336
|
+
public function generateDocs(string $code, string $style = 'detailed'): array
|
|
337
|
+
{
|
|
338
|
+
return [
|
|
339
|
+
[
|
|
340
|
+
'role' => 'user',
|
|
341
|
+
'content' => "Generate {$style} documentation for:\n\n```\n{$code}\n```"
|
|
342
|
+
]
|
|
343
|
+
];
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### tests/ToolsTest.php
|
|
349
|
+
|
|
350
|
+
```php
|
|
351
|
+
<?php
|
|
352
|
+
|
|
353
|
+
declare(strict_types=1);
|
|
354
|
+
|
|
355
|
+
namespace Tests;
|
|
356
|
+
|
|
357
|
+
use PHPUnit\Framework\TestCase;
|
|
358
|
+
use App\Tools\ExampleTool;
|
|
359
|
+
|
|
360
|
+
class ToolsTest extends TestCase
|
|
361
|
+
{
|
|
362
|
+
private ExampleTool $tool;
|
|
363
|
+
|
|
364
|
+
protected function setUp(): void
|
|
365
|
+
{
|
|
366
|
+
$this->tool = new ExampleTool();
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
public function testGreet(): void
|
|
370
|
+
{
|
|
371
|
+
$result = $this->tool->greet('World');
|
|
372
|
+
$this->assertSame('Hello, World!', $result);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
public function testCalculateAdd(): void
|
|
376
|
+
{
|
|
377
|
+
$result = $this->tool->performCalculation(5, 3, 'add');
|
|
378
|
+
$this->assertSame(8.0, $result);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
public function testCalculateDivide(): void
|
|
382
|
+
{
|
|
383
|
+
$result = $this->tool->performCalculation(10, 2, 'divide');
|
|
384
|
+
$this->assertSame(5.0, $result);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
public function testCalculateDivideByZero(): void
|
|
388
|
+
{
|
|
389
|
+
$this->expectException(\InvalidArgumentException::class);
|
|
390
|
+
$this->expectExceptionMessage('Division by zero');
|
|
391
|
+
|
|
392
|
+
$this->tool->performCalculation(10, 0, 'divide');
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
public function testCalculateInvalidOperation(): void
|
|
396
|
+
{
|
|
397
|
+
$this->expectException(\InvalidArgumentException::class);
|
|
398
|
+
$this->expectExceptionMessage('Invalid operation');
|
|
399
|
+
|
|
400
|
+
$this->tool->performCalculation(5, 3, 'modulo');
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### phpunit.xml.dist
|
|
406
|
+
|
|
407
|
+
```xml
|
|
408
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
409
|
+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
410
|
+
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
|
411
|
+
bootstrap="vendor/autoload.php"
|
|
412
|
+
colors="true">
|
|
413
|
+
<testsuites>
|
|
414
|
+
<testsuite name="Test Suite">
|
|
415
|
+
<directory>tests</directory>
|
|
416
|
+
</testsuite>
|
|
417
|
+
</testsuites>
|
|
418
|
+
<coverage>
|
|
419
|
+
<include>
|
|
420
|
+
<directory suffix=".php">src</directory>
|
|
421
|
+
</include>
|
|
422
|
+
</coverage>
|
|
423
|
+
</phpunit>
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
## Implementation Guidelines
|
|
427
|
+
|
|
428
|
+
1. **Use PHP Attributes**: Leverage `#[McpTool]`, `#[McpResource]`, `#[McpPrompt]` for clean code
|
|
429
|
+
2. **Type Declarations**: Use strict types (`declare(strict_types=1);`) in all files
|
|
430
|
+
3. **PSR-12 Coding Standard**: Follow PHP-FIG standards
|
|
431
|
+
4. **Schema Validation**: Use `#[Schema]` attributes for parameter validation
|
|
432
|
+
5. **Error Handling**: Throw specific exceptions with clear messages
|
|
433
|
+
6. **Testing**: Write PHPUnit tests for all tools
|
|
434
|
+
7. **Documentation**: Use PHPDoc blocks for all methods
|
|
435
|
+
8. **Caching**: Always use PSR-16 cache for discovery in production
|
|
436
|
+
|
|
437
|
+
## Tool Patterns
|
|
438
|
+
|
|
439
|
+
### Simple Tool
|
|
440
|
+
```php
|
|
441
|
+
#[McpTool]
|
|
442
|
+
public function simpleAction(string $input): string
|
|
443
|
+
{
|
|
444
|
+
return "Processed: {$input}";
|
|
445
|
+
}
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### Tool with Validation
|
|
449
|
+
```php
|
|
450
|
+
#[McpTool]
|
|
451
|
+
public function validateEmail(
|
|
452
|
+
#[Schema(format: 'email')]
|
|
453
|
+
string $email
|
|
454
|
+
): bool {
|
|
455
|
+
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
|
|
456
|
+
}
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
### Tool with Enum
|
|
460
|
+
```php
|
|
461
|
+
enum Status: string {
|
|
462
|
+
case ACTIVE = 'active';
|
|
463
|
+
case INACTIVE = 'inactive';
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
#[McpTool]
|
|
467
|
+
public function setStatus(string $id, Status $status): array
|
|
468
|
+
{
|
|
469
|
+
return ['id' => $id, 'status' => $status->value];
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
## Resource Patterns
|
|
474
|
+
|
|
475
|
+
### Static Resource
|
|
476
|
+
```php
|
|
477
|
+
#[McpResource(uri: 'config://settings', mimeType: 'application/json')]
|
|
478
|
+
public function getSettings(): array
|
|
479
|
+
{
|
|
480
|
+
return ['key' => 'value'];
|
|
481
|
+
}
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Dynamic Resource
|
|
485
|
+
```php
|
|
486
|
+
#[McpResourceTemplate(uriTemplate: 'user://{id}')]
|
|
487
|
+
public function getUser(string $id): array
|
|
488
|
+
{
|
|
489
|
+
return $this->users[$id] ?? throw new \RuntimeException('User not found');
|
|
490
|
+
}
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
## Running the Server
|
|
494
|
+
|
|
495
|
+
```bash
|
|
496
|
+
# Install dependencies
|
|
497
|
+
composer install
|
|
498
|
+
|
|
499
|
+
# Run tests
|
|
500
|
+
vendor/bin/phpunit
|
|
501
|
+
|
|
502
|
+
# Start server
|
|
503
|
+
php server.php
|
|
504
|
+
|
|
505
|
+
# Test with inspector
|
|
506
|
+
npx @modelcontextprotocol/inspector php server.php
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
## Claude Desktop Configuration
|
|
510
|
+
|
|
511
|
+
```json
|
|
512
|
+
{
|
|
513
|
+
"mcpServers": {
|
|
514
|
+
"{project-name}": {
|
|
515
|
+
"command": "php",
|
|
516
|
+
"args": ["/absolute/path/to/server.php"]
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
Now generate the complete project based on user requirements!
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Automate filling in a form using Playwright MCP'
|
|
3
|
+
mode: agent
|
|
4
|
+
tools: ['playwright']
|
|
5
|
+
model: 'Claude Sonnet 4'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Automating Filling in a Form with Playwright MCP
|
|
9
|
+
|
|
10
|
+
Your goal is to automate the process of filling in a form using Playwright MCP.
|
|
11
|
+
|
|
12
|
+
## Specific Instructions
|
|
13
|
+
|
|
14
|
+
Navigate to https://forms.microsoft.com/url-of-my-form
|
|
15
|
+
|
|
16
|
+
### Fill in the form with the following details:
|
|
17
|
+
|
|
18
|
+
1. Show: playwright live
|
|
19
|
+
|
|
20
|
+
2. Date: 15 July
|
|
21
|
+
|
|
22
|
+
3. Time: 1:00 AM
|
|
23
|
+
|
|
24
|
+
4. Topic: Playwright Live - Latest updates on Playwright MCP + Live Demo
|
|
25
|
+
|
|
26
|
+
5. Upload image: /Users/myuserName/Downloads/my-image.png
|
|
27
|
+
|
|
28
|
+
DO NOT SUBMIT THE FORM.
|
|
29
|
+
|
|
30
|
+
Ask for a review of the form before submitting it.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: agent
|
|
3
|
+
description: 'Website exploration for testing using Playwright MCP'
|
|
4
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright']
|
|
5
|
+
model: 'Claude Sonnet 4'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Website Exploration for Testing
|
|
9
|
+
|
|
10
|
+
Your goal is to explore the website and identify key functionalities.
|
|
11
|
+
|
|
12
|
+
## Specific Instructions
|
|
13
|
+
|
|
14
|
+
1. Navigate to the provided URL using the Playwright MCP Server. If no URL is provided, ask the user to provide one.
|
|
15
|
+
2. Identify and interact with 3-5 core features or user flows.
|
|
16
|
+
3. Document the user interactions, relevant UI elements (and their locators), and the expected outcomes.
|
|
17
|
+
4. Close the browser context upon completion.
|
|
18
|
+
5. Provide a concise summary of your findings.
|
|
19
|
+
6. Propose and generate test cases based on the exploration.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: agent
|
|
3
|
+
description: 'Generate a Playwright test based on a scenario using Playwright MCP'
|
|
4
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*']
|
|
5
|
+
model: 'Claude Sonnet 4.5'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Test Generation with Playwright MCP
|
|
9
|
+
|
|
10
|
+
Your goal is to generate a Playwright test based on the provided scenario after completing all prescribed steps.
|
|
11
|
+
|
|
12
|
+
## Specific Instructions
|
|
13
|
+
|
|
14
|
+
- You are given a scenario, and you need to generate a playwright test for it. If the user does not provide a scenario, you will ask them to provide one.
|
|
15
|
+
- DO NOT generate test code prematurely or based solely on the scenario without completing all prescribed steps.
|
|
16
|
+
- DO run steps one by one using the tools provided by the Playwright MCP.
|
|
17
|
+
- Only after all steps are completed, emit a Playwright TypeScript test that uses `@playwright/test` based on message history
|
|
18
|
+
- Save generated test file in the tests directory
|
|
19
|
+
- Execute the test file and iterate until the test passes
|