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,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Angular-specific coding standards and best practices'
|
|
3
|
+
applyTo: '**/*.ts, **/*.html, **/*.scss, **/*.css'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Angular Development Instructions
|
|
7
|
+
|
|
8
|
+
Instructions for generating high-quality Angular applications with TypeScript, using Angular Signals for state management, adhering to Angular best practices as outlined at https://angular.dev.
|
|
9
|
+
|
|
10
|
+
## Project Context
|
|
11
|
+
- Latest Angular version (use standalone components by default)
|
|
12
|
+
- TypeScript for type safety
|
|
13
|
+
- Angular CLI for project setup and scaffolding
|
|
14
|
+
- Follow Angular Style Guide (https://angular.dev/style-guide)
|
|
15
|
+
- Use Angular Material or other modern UI libraries for consistent styling (if specified)
|
|
16
|
+
|
|
17
|
+
## Development Standards
|
|
18
|
+
|
|
19
|
+
### Architecture
|
|
20
|
+
- Use standalone components unless modules are explicitly required
|
|
21
|
+
- Organize code by standalone feature modules or domains for scalability
|
|
22
|
+
- Implement lazy loading for feature modules to optimize performance
|
|
23
|
+
- Use Angular's built-in dependency injection system effectively
|
|
24
|
+
- Structure components with a clear separation of concerns (smart vs. presentational components)
|
|
25
|
+
|
|
26
|
+
### TypeScript
|
|
27
|
+
- Enable strict mode in `tsconfig.json` for type safety
|
|
28
|
+
- Define clear interfaces and types for components, services, and models
|
|
29
|
+
- Use type guards and union types for robust type checking
|
|
30
|
+
- Implement proper error handling with RxJS operators (e.g., `catchError`)
|
|
31
|
+
- Use typed forms (e.g., `FormGroup`, `FormControl`) for reactive forms
|
|
32
|
+
|
|
33
|
+
### Component Design
|
|
34
|
+
- Follow Angular's component lifecycle hooks best practices
|
|
35
|
+
- When using Angular >= 19, Use `input()` `output()`, `viewChild()`, `viewChildren()`, `contentChild()` and `contentChildren()` functions instead of decorators; otherwise use decorators
|
|
36
|
+
- Leverage Angular's change detection strategy (default or `OnPush` for performance)
|
|
37
|
+
- Keep templates clean and logic in component classes or services
|
|
38
|
+
- Use Angular directives and pipes for reusable functionality
|
|
39
|
+
|
|
40
|
+
### Styling
|
|
41
|
+
- Use Angular's component-level CSS encapsulation (default: ViewEncapsulation.Emulated)
|
|
42
|
+
- Prefer SCSS for styling with consistent theming
|
|
43
|
+
- Implement responsive design using CSS Grid, Flexbox, or Angular CDK Layout utilities
|
|
44
|
+
- Follow Angular Material's theming guidelines if used
|
|
45
|
+
- Maintain accessibility (a11y) with ARIA attributes and semantic HTML
|
|
46
|
+
|
|
47
|
+
### State Management
|
|
48
|
+
- Use Angular Signals for reactive state management in components and services
|
|
49
|
+
- Leverage `signal()`, `computed()`, and `effect()` for reactive state updates
|
|
50
|
+
- Use writable signals for mutable state and computed signals for derived state
|
|
51
|
+
- Handle loading and error states with signals and proper UI feedback
|
|
52
|
+
- Use Angular's `AsyncPipe` to handle observables in templates when combining signals with RxJS
|
|
53
|
+
|
|
54
|
+
### Data Fetching
|
|
55
|
+
- Use Angular's `HttpClient` for API calls with proper typing
|
|
56
|
+
- Implement RxJS operators for data transformation and error handling
|
|
57
|
+
- Use Angular's `inject()` function for dependency injection in standalone components
|
|
58
|
+
- Implement caching strategies (e.g., `shareReplay` for observables)
|
|
59
|
+
- Store API response data in signals for reactive updates
|
|
60
|
+
- Handle API errors with global interceptors for consistent error handling
|
|
61
|
+
|
|
62
|
+
### Security
|
|
63
|
+
- Sanitize user inputs using Angular's built-in sanitization
|
|
64
|
+
- Implement route guards for authentication and authorization
|
|
65
|
+
- Use Angular's `HttpInterceptor` for CSRF protection and API authentication headers
|
|
66
|
+
- Validate form inputs with Angular's reactive forms and custom validators
|
|
67
|
+
- Follow Angular's security best practices (e.g., avoid direct DOM manipulation)
|
|
68
|
+
|
|
69
|
+
### Performance
|
|
70
|
+
- Enable production builds with `ng build --prod` for optimization
|
|
71
|
+
- Use lazy loading for routes to reduce initial bundle size
|
|
72
|
+
- Optimize change detection with `OnPush` strategy and signals for fine-grained reactivity
|
|
73
|
+
- Use trackBy in `ngFor` loops to improve rendering performance
|
|
74
|
+
- Implement server-side rendering (SSR) or static site generation (SSG) with Angular Universal (if specified)
|
|
75
|
+
|
|
76
|
+
### Testing
|
|
77
|
+
- Write unit tests for components, services, and pipes using Jasmine and Karma
|
|
78
|
+
- Use Angular's `TestBed` for component testing with mocked dependencies
|
|
79
|
+
- Test signal-based state updates using Angular's testing utilities
|
|
80
|
+
- Write end-to-end tests with Cypress or Playwright (if specified)
|
|
81
|
+
- Mock HTTP requests using `provideHttpClientTesting`
|
|
82
|
+
- Ensure high test coverage for critical functionality
|
|
83
|
+
|
|
84
|
+
## Implementation Process
|
|
85
|
+
1. Plan project structure and feature modules
|
|
86
|
+
2. Define TypeScript interfaces and models
|
|
87
|
+
3. Scaffold components, services, and pipes using Angular CLI
|
|
88
|
+
4. Implement data services and API integrations with signal-based state
|
|
89
|
+
5. Build reusable components with clear inputs and outputs
|
|
90
|
+
6. Add reactive forms and validation
|
|
91
|
+
7. Apply styling with SCSS and responsive design
|
|
92
|
+
8. Implement lazy-loaded routes and guards
|
|
93
|
+
9. Add error handling and loading states using signals
|
|
94
|
+
10. Write unit and end-to-end tests
|
|
95
|
+
11. Optimize performance and bundle size
|
|
96
|
+
|
|
97
|
+
## Additional Guidelines
|
|
98
|
+
- Follow the Angular Style Guide for file naming conventions (see https://angular.dev/style-guide), e.g., use `feature.ts` for components and `feature-service.ts` for services. For legacy codebases, maintain consistency with existing pattern.
|
|
99
|
+
- Use Angular CLI commands for generating boilerplate code
|
|
100
|
+
- Document components and services with clear JSDoc comments
|
|
101
|
+
- Ensure accessibility compliance (WCAG 2.1) where applicable
|
|
102
|
+
- Use Angular's built-in i18n for internationalization (if specified)
|
|
103
|
+
- Keep code DRY by creating reusable utilities and shared modules
|
|
104
|
+
- Use signals consistently for state management to ensure reactive updates
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Ansible conventions and best practices'
|
|
3
|
+
applyTo: '**/*.yaml, **/*.yml'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ansible Conventions and Best Practices
|
|
7
|
+
|
|
8
|
+
## General Instructions
|
|
9
|
+
|
|
10
|
+
- Use Ansible to configure and manage infrastructure.
|
|
11
|
+
- Use version control for your Ansible configurations.
|
|
12
|
+
- Keep things simple; only use advanced features when necessary
|
|
13
|
+
- Give every play, block, and task a concise but descriptive `name`
|
|
14
|
+
- Start names with an action verb that indicates the operation being performed, such as "Install," "Configure," or "Copy"
|
|
15
|
+
- Capitalize the first letter of the task name
|
|
16
|
+
- Omit periods from the end of task names for brevity
|
|
17
|
+
- Omit the role name from role tasks; Ansible will automatically display the role name when running a role
|
|
18
|
+
- When including tasks from a separate file, you may include the filename in each task name to make tasks easier to locate (e.g., `<TASK_FILENAME> : <TASK_NAME>`)
|
|
19
|
+
- Use comments to provide additional context about **what**, **how**, and/or **why** something is being done
|
|
20
|
+
- Don't include redundant comments
|
|
21
|
+
- Use dynamic inventory for cloud resources
|
|
22
|
+
- Use tags to dynamically create groups based on environment, function, location, etc.
|
|
23
|
+
- Use `group_vars` to set variables based on these attributes
|
|
24
|
+
- Use idempotent Ansible modules whenever possible; avoid `shell`, `command`, and `raw`, as they break idempotency
|
|
25
|
+
- If you have to use `shell` or `command`, use the `creates:` or `removes:` parameter, where feasible, to prevent unnecessary execution
|
|
26
|
+
- Use [fully qualified collection names (FQCN)](https://docs.ansible.com/ansible/latest/reference_appendices/glossary.html#term-Fully-Qualified-Collection-Name-FQCN) to ensure the correct module or plugin is selected
|
|
27
|
+
- Use the `ansible.builtin` collection for [builtin modules and plugins](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugin-index)
|
|
28
|
+
- Group related tasks together to improve readability and modularity
|
|
29
|
+
- For modules where `state` is optional, explicitly set `state: present` or `state: absent` to improve clarity and consistency
|
|
30
|
+
- Use the lowest privileges necessary to perform a task
|
|
31
|
+
- Only set `become: true` at the play level or on an `include:` statement, if all included tasks require super user privileges; otherwise, specify `become: true` at the task level
|
|
32
|
+
- Only set `become: true` on a task if it requires super user privileges
|
|
33
|
+
|
|
34
|
+
## Secret Management
|
|
35
|
+
|
|
36
|
+
- When using Ansible alone, store secrets using Ansible Vault
|
|
37
|
+
- Use the following process to make it easy to find where vaulted variables are defined
|
|
38
|
+
1. Create a `group_vars/` subdirectory named after the group
|
|
39
|
+
2. Inside this subdirectory, create two files named `vars` and `vault`
|
|
40
|
+
3. In the `vars` file, define all of the variables needed, including any sensitive ones
|
|
41
|
+
4. Copy all of the sensitive variables over to the `vault` file and prefix these variables with `vault_`
|
|
42
|
+
5. Adjust the variables in the `vars` file to point to the matching `vault_` variables using Jinja2 syntax: `db_password: "{{ vault_db_password }}"`
|
|
43
|
+
6. Encrypt the `vault` file to protect its contents
|
|
44
|
+
7. Use the variable name from the `vars` file in your playbooks
|
|
45
|
+
- When using other tools with Ansible (e.g., Terraform), store secrets in a third-party secrets management tool (e.g., Hashicorp Vault, AWS Secrets Manager, etc.)
|
|
46
|
+
- This allows all tools to reference a single source of truth for secrets and prevents configurations from getting out of sync
|
|
47
|
+
|
|
48
|
+
## Style
|
|
49
|
+
|
|
50
|
+
- Use 2-space indentation and always indent lists
|
|
51
|
+
- Separate each of the following with a single blank line:
|
|
52
|
+
- Two host blocks
|
|
53
|
+
- Two task blocks
|
|
54
|
+
- Host and include blocks
|
|
55
|
+
- Use `snake_case` for variable names
|
|
56
|
+
- Sort variables alphabetically when defining them in `vars:` maps or variable files
|
|
57
|
+
- Always use multi-line map syntax, regardless of how many pairs exist in the map
|
|
58
|
+
- It improves readability and reduces changeset collisions for version control
|
|
59
|
+
- Prefer single quotes over double quotes
|
|
60
|
+
- The only time you should use double quotes is when they are nested within single quotes (e.g. Jinja map reference), or when your string requires escaping characters (e.g., using "\n" to represent a newline)
|
|
61
|
+
- If you must write a long string, use folded block scalar syntax (i.e., `>`) to replace newlines with spaces or literal block scalar syntax (i.e., `|`) to preserve newlines; omit all special quoting
|
|
62
|
+
- The `host` section of a play should follow this general order:
|
|
63
|
+
- `hosts` declaration
|
|
64
|
+
- Host options in alphabetical order (e.g., `become`, `remote_user`, `vars`)
|
|
65
|
+
- `pre_tasks`
|
|
66
|
+
- `roles`
|
|
67
|
+
- `tasks`
|
|
68
|
+
- Each task should follow this general order:
|
|
69
|
+
- `name`
|
|
70
|
+
- Task declaration (e.g., `service:`, `package:`)
|
|
71
|
+
- Task parameters (using multi-line map syntax)
|
|
72
|
+
- Loop operators (e.g., `loop`)
|
|
73
|
+
- Task options in alphabetical order (e.g. `become`, `ignore_errors`, `register`)
|
|
74
|
+
- `tags`
|
|
75
|
+
- For `include` statements, quote filenames and only use blank lines between `include` statements if they are multi-line (e.g., they have tags)
|
|
76
|
+
|
|
77
|
+
## Linting
|
|
78
|
+
|
|
79
|
+
- Use `ansible-lint` and `yamllint` to check syntax and enforce project standards
|
|
80
|
+
- Use `ansible-playbook --syntax-check` to check for syntax errors
|
|
81
|
+
- Use `ansible-playbook --check --diff` to perform a dry-run of playbook execution
|
|
82
|
+
|
|
83
|
+
<!--
|
|
84
|
+
These guidelines were based on, or copied from, the following sources:
|
|
85
|
+
|
|
86
|
+
- [Ansible Documentation - Tips and Tricks](https://docs.ansible.com/ansible/latest/tips_tricks/index.html)
|
|
87
|
+
- [Whitecloud Ansible Styleguide](https://github.com/whitecloud/ansible-styleguide)
|
|
88
|
+
-->
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Guidelines for building REST APIs with ASP.NET'
|
|
3
|
+
applyTo: '**/*.cs, **/*.json'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ASP.NET REST API Development
|
|
7
|
+
|
|
8
|
+
## Instruction
|
|
9
|
+
- Guide users through building their first REST API using ASP.NET Core 9.
|
|
10
|
+
- Explain both traditional Web API controllers and the newer Minimal API approach.
|
|
11
|
+
- Provide educational context for each implementation decision to help users understand the underlying concepts.
|
|
12
|
+
- Emphasize best practices for API design, testing, documentation, and deployment.
|
|
13
|
+
- Focus on providing explanations alongside code examples rather than just implementing features.
|
|
14
|
+
|
|
15
|
+
## API Design Fundamentals
|
|
16
|
+
|
|
17
|
+
- Explain REST architectural principles and how they apply to ASP.NET Core APIs.
|
|
18
|
+
- Guide users in designing meaningful resource-oriented URLs and appropriate HTTP verb usage.
|
|
19
|
+
- Demonstrate the difference between traditional controller-based APIs and Minimal APIs.
|
|
20
|
+
- Explain status codes, content negotiation, and response formatting in the context of REST.
|
|
21
|
+
- Help users understand when to choose Controllers vs. Minimal APIs based on project requirements.
|
|
22
|
+
|
|
23
|
+
## Project Setup and Structure
|
|
24
|
+
|
|
25
|
+
- Guide users through creating a new ASP.NET Core 9 Web API project with the appropriate templates.
|
|
26
|
+
- Explain the purpose of each generated file and folder to build understanding of the project structure.
|
|
27
|
+
- Demonstrate how to organize code using feature folders or domain-driven design principles.
|
|
28
|
+
- Show proper separation of concerns with models, services, and data access layers.
|
|
29
|
+
- Explain the Program.cs and configuration system in ASP.NET Core 9 including environment-specific settings.
|
|
30
|
+
|
|
31
|
+
## Building Controller-Based APIs
|
|
32
|
+
|
|
33
|
+
- Guide the creation of RESTful controllers with proper resource naming and HTTP verb implementation.
|
|
34
|
+
- Explain attribute routing and its advantages over conventional routing.
|
|
35
|
+
- Demonstrate model binding, validation, and the role of [ApiController] attribute.
|
|
36
|
+
- Show how dependency injection works within controllers.
|
|
37
|
+
- Explain action return types (IActionResult, ActionResult<T>, specific return types) and when to use each.
|
|
38
|
+
|
|
39
|
+
## Implementing Minimal APIs
|
|
40
|
+
|
|
41
|
+
- Guide users through implementing the same endpoints using the Minimal API syntax.
|
|
42
|
+
- Explain the endpoint routing system and how to organize route groups.
|
|
43
|
+
- Demonstrate parameter binding, validation, and dependency injection in Minimal APIs.
|
|
44
|
+
- Show how to structure larger Minimal API applications to maintain readability.
|
|
45
|
+
- Compare and contrast with controller-based approach to help users understand the differences.
|
|
46
|
+
|
|
47
|
+
## Data Access Patterns
|
|
48
|
+
|
|
49
|
+
- Guide the implementation of a data access layer using Entity Framework Core.
|
|
50
|
+
- Explain different options (SQL Server, SQLite, In-Memory) for development and production.
|
|
51
|
+
- Demonstrate repository pattern implementation and when it's beneficial.
|
|
52
|
+
- Show how to implement database migrations and data seeding.
|
|
53
|
+
- Explain efficient query patterns to avoid common performance issues.
|
|
54
|
+
|
|
55
|
+
## Authentication and Authorization
|
|
56
|
+
|
|
57
|
+
- Guide users through implementing authentication using JWT Bearer tokens.
|
|
58
|
+
- Explain OAuth 2.0 and OpenID Connect concepts as they relate to ASP.NET Core.
|
|
59
|
+
- Show how to implement role-based and policy-based authorization.
|
|
60
|
+
- Demonstrate integration with Microsoft Entra ID (formerly Azure AD).
|
|
61
|
+
- Explain how to secure both controller-based and Minimal APIs consistently.
|
|
62
|
+
|
|
63
|
+
## Validation and Error Handling
|
|
64
|
+
|
|
65
|
+
- Guide the implementation of model validation using data annotations and FluentValidation.
|
|
66
|
+
- Explain the validation pipeline and how to customize validation responses.
|
|
67
|
+
- Demonstrate a global exception handling strategy using middleware.
|
|
68
|
+
- Show how to create consistent error responses across the API.
|
|
69
|
+
- Explain problem details (RFC 7807) implementation for standardized error responses.
|
|
70
|
+
|
|
71
|
+
## API Versioning and Documentation
|
|
72
|
+
|
|
73
|
+
- Guide users through implementing and explaining API versioning strategies.
|
|
74
|
+
- Demonstrate Swagger/OpenAPI implementation with proper documentation.
|
|
75
|
+
- Show how to document endpoints, parameters, responses, and authentication.
|
|
76
|
+
- Explain versioning in both controller-based and Minimal APIs.
|
|
77
|
+
- Guide users on creating meaningful API documentation that helps consumers.
|
|
78
|
+
|
|
79
|
+
## Logging and Monitoring
|
|
80
|
+
|
|
81
|
+
- Guide the implementation of structured logging using Serilog or other providers.
|
|
82
|
+
- Explain the logging levels and when to use each.
|
|
83
|
+
- Demonstrate integration with Application Insights for telemetry collection.
|
|
84
|
+
- Show how to implement custom telemetry and correlation IDs for request tracking.
|
|
85
|
+
- Explain how to monitor API performance, errors, and usage patterns.
|
|
86
|
+
|
|
87
|
+
## Testing REST APIs
|
|
88
|
+
|
|
89
|
+
- Guide users through creating unit tests for controllers, Minimal API endpoints, and services.
|
|
90
|
+
- Explain integration testing approaches for API endpoints.
|
|
91
|
+
- Demonstrate how to mock dependencies for effective testing.
|
|
92
|
+
- Show how to test authentication and authorization logic.
|
|
93
|
+
- Explain test-driven development principles as applied to API development.
|
|
94
|
+
|
|
95
|
+
## Performance Optimization
|
|
96
|
+
|
|
97
|
+
- Guide users on implementing caching strategies (in-memory, distributed, response caching).
|
|
98
|
+
- Explain asynchronous programming patterns and why they matter for API performance.
|
|
99
|
+
- Demonstrate pagination, filtering, and sorting for large data sets.
|
|
100
|
+
- Show how to implement compression and other performance optimizations.
|
|
101
|
+
- Explain how to measure and benchmark API performance.
|
|
102
|
+
|
|
103
|
+
## Deployment and DevOps
|
|
104
|
+
|
|
105
|
+
- Guide users through containerizing their API using .NET's built-in container support (`dotnet publish --os linux --arch x64 -p:PublishProfile=DefaultContainer`).
|
|
106
|
+
- Explain the differences between manual Dockerfile creation and .NET's container publishing features.
|
|
107
|
+
- Explain CI/CD pipelines for ASP.NET Core applications.
|
|
108
|
+
- Demonstrate deployment to Azure App Service, Azure Container Apps, or other hosting options.
|
|
109
|
+
- Show how to implement health checks and readiness probes.
|
|
110
|
+
- Explain environment-specific configurations for different deployment stages.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Astro development standards and best practices for content-driven websites'
|
|
3
|
+
applyTo: '**/*.astro, **/*.ts, **/*.js, **/*.md, **/*.mdx'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Astro Development Instructions
|
|
7
|
+
|
|
8
|
+
Instructions for building high-quality Astro applications following the content-driven, server-first architecture with modern best practices.
|
|
9
|
+
|
|
10
|
+
## Project Context
|
|
11
|
+
- Astro 5.x with Islands Architecture and Content Layer API
|
|
12
|
+
- TypeScript for type safety and better DX with auto-generated types
|
|
13
|
+
- Content-driven websites (blogs, marketing, e-commerce, documentation)
|
|
14
|
+
- Server-first rendering with selective client-side hydration
|
|
15
|
+
- Support for multiple UI frameworks (React, Vue, Svelte, Solid, etc.)
|
|
16
|
+
- Static site generation (SSG) by default with optional server-side rendering (SSR)
|
|
17
|
+
- Enhanced performance with modern content loading and build optimizations
|
|
18
|
+
|
|
19
|
+
## Development Standards
|
|
20
|
+
|
|
21
|
+
### Architecture
|
|
22
|
+
- Embrace the Islands Architecture: server-render by default, hydrate selectively
|
|
23
|
+
- Organize content with Content Collections for type-safe Markdown/MDX management
|
|
24
|
+
- Structure projects by feature or content type for scalability
|
|
25
|
+
- Use component-based architecture with clear separation of concerns
|
|
26
|
+
- Implement progressive enhancement patterns
|
|
27
|
+
- Follow Multi-Page App (MPA) approach over Single-Page App (SPA) patterns
|
|
28
|
+
|
|
29
|
+
### TypeScript Integration
|
|
30
|
+
- Configure `tsconfig.json` with recommended v5.0 settings:
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"extends": "astro/tsconfigs/base",
|
|
34
|
+
"include": [".astro/types.d.ts", "**/*"],
|
|
35
|
+
"exclude": ["dist"]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
- Types auto-generated in `.astro/types.d.ts` (replaces `src/env.d.ts`)
|
|
39
|
+
- Run `astro sync` to generate/update type definitions
|
|
40
|
+
- Define component props with TypeScript interfaces
|
|
41
|
+
- Leverage auto-generated types for content collections and Content Layer API
|
|
42
|
+
|
|
43
|
+
### Component Design
|
|
44
|
+
- Use `.astro` components for static, server-rendered content
|
|
45
|
+
- Import framework components (React, Vue, Svelte) only when interactivity is needed
|
|
46
|
+
- Follow Astro's component script structure: frontmatter at top, template below
|
|
47
|
+
- Use meaningful component names following PascalCase convention
|
|
48
|
+
- Keep components focused and composable
|
|
49
|
+
- Implement proper prop validation and default values
|
|
50
|
+
|
|
51
|
+
### Content Collections
|
|
52
|
+
|
|
53
|
+
#### Modern Content Layer API (v5.0+)
|
|
54
|
+
- Define collections in `src/content.config.ts` using the new Content Layer API
|
|
55
|
+
- Use built-in loaders: `glob()` for file-based content, `file()` for single files
|
|
56
|
+
- Leverage enhanced performance and scalability with the new loading system
|
|
57
|
+
- Example with Content Layer API:
|
|
58
|
+
```typescript
|
|
59
|
+
import { defineCollection, z } from 'astro:content';
|
|
60
|
+
import { glob } from 'astro/loaders';
|
|
61
|
+
|
|
62
|
+
const blog = defineCollection({
|
|
63
|
+
loader: glob({ pattern: '**/*.md', base: './src/content/blog' }),
|
|
64
|
+
schema: z.object({
|
|
65
|
+
title: z.string(),
|
|
66
|
+
pubDate: z.date(),
|
|
67
|
+
tags: z.array(z.string()).optional()
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### Legacy Collections (backward compatible)
|
|
73
|
+
- Legacy `type: 'content'` collections still supported via automatic glob() implementation
|
|
74
|
+
- Migrate existing collections by adding explicit `loader` configuration
|
|
75
|
+
- Use type-safe queries with `getCollection()` and `getEntry()`
|
|
76
|
+
- Structure content with frontmatter validation and auto-generated types
|
|
77
|
+
|
|
78
|
+
### View Transitions & Client-Side Routing
|
|
79
|
+
- Enable with `<ClientRouter />` component in layout head (renamed from `<ViewTransitions />` in v5.0)
|
|
80
|
+
- Import from `astro:transitions`: `import { ClientRouter } from 'astro:transitions'`
|
|
81
|
+
- Provides SPA-like navigation without full page reloads
|
|
82
|
+
- Customize transition animations with CSS and view-transition-name
|
|
83
|
+
- Maintain state across page navigations with persistent islands
|
|
84
|
+
- Use `transition:persist` directive to preserve component state
|
|
85
|
+
|
|
86
|
+
### Performance Optimization
|
|
87
|
+
- Default to zero JavaScript - only add interactivity where needed
|
|
88
|
+
- Use client directives strategically (`client:load`, `client:idle`, `client:visible`)
|
|
89
|
+
- Implement lazy loading for images and components
|
|
90
|
+
- Optimize static assets with Astro's built-in optimization
|
|
91
|
+
- Leverage Content Layer API for faster content loading and builds
|
|
92
|
+
- Minimize bundle size by avoiding unnecessary client-side JavaScript
|
|
93
|
+
|
|
94
|
+
### Styling
|
|
95
|
+
- Use scoped styles in `.astro` components by default
|
|
96
|
+
- Implement CSS preprocessing (Sass, Less) when needed
|
|
97
|
+
- Use CSS custom properties for theming and design systems
|
|
98
|
+
- Follow mobile-first responsive design principles
|
|
99
|
+
- Ensure accessibility with semantic HTML and proper ARIA attributes
|
|
100
|
+
- Consider utility-first frameworks (Tailwind CSS) for rapid development
|
|
101
|
+
|
|
102
|
+
### Client-Side Interactivity
|
|
103
|
+
- Use framework components (React, Vue, Svelte) for interactive elements
|
|
104
|
+
- Choose the right hydration strategy based on user interaction patterns
|
|
105
|
+
- Implement state management within framework boundaries
|
|
106
|
+
- Handle client-side routing carefully to maintain MPA benefits
|
|
107
|
+
- Use Web Components for framework-agnostic interactivity
|
|
108
|
+
- Share state between islands using stores or custom events
|
|
109
|
+
|
|
110
|
+
### API Routes and SSR
|
|
111
|
+
- Create API routes in `src/pages/api/` for dynamic functionality
|
|
112
|
+
- Use proper HTTP methods and status codes
|
|
113
|
+
- Implement request validation and error handling
|
|
114
|
+
- Enable SSR mode for dynamic content requirements
|
|
115
|
+
- Use middleware for authentication and request processing
|
|
116
|
+
- Handle environment variables securely
|
|
117
|
+
|
|
118
|
+
### SEO and Meta Management
|
|
119
|
+
- Use Astro's built-in SEO components and meta tag management
|
|
120
|
+
- Implement proper Open Graph and Twitter Card metadata
|
|
121
|
+
- Generate sitemaps automatically for better search indexing
|
|
122
|
+
- Use semantic HTML structure for better accessibility and SEO
|
|
123
|
+
- Implement structured data (JSON-LD) for rich snippets
|
|
124
|
+
- Optimize page titles and descriptions for search engines
|
|
125
|
+
|
|
126
|
+
### Image Optimization
|
|
127
|
+
- Use Astro's `<Image />` component for automatic optimization
|
|
128
|
+
- Implement responsive images with proper srcset generation
|
|
129
|
+
- Use WebP and AVIF formats for modern browsers
|
|
130
|
+
- Lazy load images below the fold
|
|
131
|
+
- Provide proper alt text for accessibility
|
|
132
|
+
- Optimize images at build time for better performance
|
|
133
|
+
|
|
134
|
+
### Data Fetching
|
|
135
|
+
- Fetch data at build time in component frontmatter
|
|
136
|
+
- Use dynamic imports for conditional data loading
|
|
137
|
+
- Implement proper error handling for external API calls
|
|
138
|
+
- Cache expensive operations during build process
|
|
139
|
+
- Use Astro's built-in fetch with automatic TypeScript inference
|
|
140
|
+
- Handle loading states and fallbacks appropriately
|
|
141
|
+
|
|
142
|
+
### Build & Deployment
|
|
143
|
+
- Optimize static assets with Astro's built-in optimizations
|
|
144
|
+
- Configure deployment for static (SSG) or hybrid (SSR) rendering
|
|
145
|
+
- Use environment variables for configuration management
|
|
146
|
+
- Enable compression and caching for production builds
|
|
147
|
+
|
|
148
|
+
## Key Astro v5.0 Updates
|
|
149
|
+
|
|
150
|
+
### Breaking Changes
|
|
151
|
+
- **ClientRouter**: Use `<ClientRouter />` instead of `<ViewTransitions />`
|
|
152
|
+
- **TypeScript**: Auto-generated types in `.astro/types.d.ts` (run `astro sync`)
|
|
153
|
+
- **Content Layer API**: New `glob()` and `file()` loaders for enhanced performance
|
|
154
|
+
|
|
155
|
+
### Migration Example
|
|
156
|
+
```typescript
|
|
157
|
+
// Modern Content Layer API
|
|
158
|
+
import { defineCollection, z } from 'astro:content';
|
|
159
|
+
import { glob } from 'astro/loaders';
|
|
160
|
+
|
|
161
|
+
const blog = defineCollection({
|
|
162
|
+
loader: glob({ pattern: '**/*.md', base: './src/content/blog' }),
|
|
163
|
+
schema: z.object({ title: z.string(), pubDate: z.date() })
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Implementation Guidelines
|
|
168
|
+
|
|
169
|
+
### Development Workflow
|
|
170
|
+
1. Use `npm create astro@latest` with TypeScript template
|
|
171
|
+
2. Configure Content Layer API with appropriate loaders
|
|
172
|
+
3. Set up TypeScript with `astro sync` for type generation
|
|
173
|
+
4. Create layout components with Islands Architecture
|
|
174
|
+
5. Implement content pages with SEO and performance optimization
|
|
175
|
+
|
|
176
|
+
### Astro-Specific Best Practices
|
|
177
|
+
- **Islands Architecture**: Server-first with selective hydration using client directives
|
|
178
|
+
- **Content Layer API**: Use `glob()` and `file()` loaders for scalable content management
|
|
179
|
+
- **Zero JavaScript**: Default to static rendering, add interactivity only when needed
|
|
180
|
+
- **View Transitions**: Enable SPA-like navigation with `<ClientRouter />`
|
|
181
|
+
- **Type Safety**: Leverage auto-generated types from Content Collections
|
|
182
|
+
- **Performance**: Optimize with built-in image optimization and minimal client bundles
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Best practices for Azure DevOps Pipeline YAML files'
|
|
3
|
+
applyTo: '**/azure-pipelines.yml, **/azure-pipelines*.yml, **/*.pipeline.yml'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Azure DevOps Pipeline YAML Best Practices
|
|
7
|
+
|
|
8
|
+
## General Guidelines
|
|
9
|
+
|
|
10
|
+
- Use YAML syntax consistently with proper indentation (2 spaces)
|
|
11
|
+
- Always include meaningful names and display names for pipelines, stages, jobs, and steps
|
|
12
|
+
- Implement proper error handling and conditional execution
|
|
13
|
+
- Use variables and parameters to make pipelines reusable and maintainable
|
|
14
|
+
- Follow the principle of least privilege for service connections and permissions
|
|
15
|
+
- Include comprehensive logging and diagnostics for troubleshooting
|
|
16
|
+
|
|
17
|
+
## Pipeline Structure
|
|
18
|
+
|
|
19
|
+
- Organize complex pipelines using stages for better visualization and control
|
|
20
|
+
- Use jobs to group related steps and enable parallel execution when possible
|
|
21
|
+
- Implement proper dependencies between stages and jobs
|
|
22
|
+
- Use templates for reusable pipeline components
|
|
23
|
+
- Keep pipeline files focused and modular - split large pipelines into multiple files
|
|
24
|
+
|
|
25
|
+
## Build Best Practices
|
|
26
|
+
|
|
27
|
+
- Use specific agent pool versions and VM images for consistency
|
|
28
|
+
- Cache dependencies (npm, NuGet, Maven, etc.) to improve build performance
|
|
29
|
+
- Implement proper artifact management with meaningful names and retention policies
|
|
30
|
+
- Use build variables for version numbers and build metadata
|
|
31
|
+
- Include code quality gates (linting, testing, security scans)
|
|
32
|
+
- Ensure builds are reproducible and environment-independent
|
|
33
|
+
|
|
34
|
+
## Testing Integration
|
|
35
|
+
|
|
36
|
+
- Run unit tests as part of the build process
|
|
37
|
+
- Publish test results in standard formats (JUnit, VSTest, etc.)
|
|
38
|
+
- Include code coverage reporting and quality gates
|
|
39
|
+
- Implement integration and end-to-end tests in appropriate stages
|
|
40
|
+
- Use test impact analysis when available to optimize test execution
|
|
41
|
+
- Fail fast on test failures to provide quick feedback
|
|
42
|
+
|
|
43
|
+
## Security Considerations
|
|
44
|
+
|
|
45
|
+
- Use Azure Key Vault for sensitive configuration and secrets
|
|
46
|
+
- Implement proper secret management with variable groups
|
|
47
|
+
- Use service connections with minimal required permissions
|
|
48
|
+
- Enable security scans (dependency vulnerabilities, static analysis)
|
|
49
|
+
- Implement approval gates for production deployments
|
|
50
|
+
- Use managed identities when possible instead of service principals
|
|
51
|
+
|
|
52
|
+
## Deployment Strategies
|
|
53
|
+
|
|
54
|
+
- Implement proper environment promotion (dev → staging → production)
|
|
55
|
+
- Use deployment jobs with proper environment targeting
|
|
56
|
+
- Implement blue-green or canary deployment strategies when appropriate
|
|
57
|
+
- Include rollback mechanisms and health checks
|
|
58
|
+
- Use infrastructure as code (ARM, Bicep, Terraform) for consistent deployments
|
|
59
|
+
- Implement proper configuration management per environment
|
|
60
|
+
|
|
61
|
+
## Variable and Parameter Management
|
|
62
|
+
|
|
63
|
+
- Use variable groups for shared configuration across pipelines
|
|
64
|
+
- Implement runtime parameters for flexible pipeline execution
|
|
65
|
+
- Use conditional variables based on branches or environments
|
|
66
|
+
- Secure sensitive variables and mark them as secrets
|
|
67
|
+
- Document variable purposes and expected values
|
|
68
|
+
- Use variable templates for complex variable logic
|
|
69
|
+
|
|
70
|
+
## Performance Optimization
|
|
71
|
+
|
|
72
|
+
- Use parallel jobs and matrix strategies when appropriate
|
|
73
|
+
- Implement proper caching strategies for dependencies and build outputs
|
|
74
|
+
- Use shallow clone for Git operations when full history isn't needed
|
|
75
|
+
- Optimize Docker image builds with multi-stage builds and layer caching
|
|
76
|
+
- Monitor pipeline performance and optimize bottlenecks
|
|
77
|
+
- Use pipeline resource triggers efficiently
|
|
78
|
+
|
|
79
|
+
## Monitoring and Observability
|
|
80
|
+
|
|
81
|
+
- Include comprehensive logging throughout the pipeline
|
|
82
|
+
- Use Azure Monitor and Application Insights for deployment tracking
|
|
83
|
+
- Implement proper notification strategies for failures and successes
|
|
84
|
+
- Include deployment health checks and automated rollback triggers
|
|
85
|
+
- Use pipeline analytics to identify improvement opportunities
|
|
86
|
+
- Document pipeline behavior and troubleshooting steps
|
|
87
|
+
|
|
88
|
+
## Template and Reusability
|
|
89
|
+
|
|
90
|
+
- Create pipeline templates for common patterns
|
|
91
|
+
- Use extends templates for complete pipeline inheritance
|
|
92
|
+
- Implement step templates for reusable task sequences
|
|
93
|
+
- Use variable templates for complex variable logic
|
|
94
|
+
- Version templates appropriately for stability
|
|
95
|
+
- Document template parameters and usage examples
|
|
96
|
+
|
|
97
|
+
## Branch and Trigger Strategy
|
|
98
|
+
|
|
99
|
+
- Implement appropriate triggers for different branch types
|
|
100
|
+
- Use path filters to trigger builds only when relevant files change
|
|
101
|
+
- Configure proper CI/CD triggers for main/master branches
|
|
102
|
+
- Use pull request triggers for code validation
|
|
103
|
+
- Implement scheduled triggers for maintenance tasks
|
|
104
|
+
- Consider resource triggers for multi-repository scenarios
|
|
105
|
+
|
|
106
|
+
## Example Structure
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
# azure-pipelines.yml
|
|
110
|
+
trigger:
|
|
111
|
+
branches:
|
|
112
|
+
include:
|
|
113
|
+
- main
|
|
114
|
+
- develop
|
|
115
|
+
paths:
|
|
116
|
+
exclude:
|
|
117
|
+
- docs/*
|
|
118
|
+
- README.md
|
|
119
|
+
|
|
120
|
+
variables:
|
|
121
|
+
- group: shared-variables
|
|
122
|
+
- name: buildConfiguration
|
|
123
|
+
value: 'Release'
|
|
124
|
+
|
|
125
|
+
stages:
|
|
126
|
+
- stage: Build
|
|
127
|
+
displayName: 'Build and Test'
|
|
128
|
+
jobs:
|
|
129
|
+
- job: Build
|
|
130
|
+
displayName: 'Build Application'
|
|
131
|
+
pool:
|
|
132
|
+
vmImage: 'ubuntu-latest'
|
|
133
|
+
steps:
|
|
134
|
+
- task: UseDotNet@2
|
|
135
|
+
displayName: 'Use .NET SDK'
|
|
136
|
+
inputs:
|
|
137
|
+
version: '8.x'
|
|
138
|
+
|
|
139
|
+
- task: DotNetCoreCLI@2
|
|
140
|
+
displayName: 'Restore dependencies'
|
|
141
|
+
inputs:
|
|
142
|
+
command: 'restore'
|
|
143
|
+
projects: '**/*.csproj'
|
|
144
|
+
|
|
145
|
+
- task: DotNetCoreCLI@2
|
|
146
|
+
displayName: 'Build application'
|
|
147
|
+
inputs:
|
|
148
|
+
command: 'build'
|
|
149
|
+
projects: '**/*.csproj'
|
|
150
|
+
arguments: '--configuration $(buildConfiguration) --no-restore'
|
|
151
|
+
|
|
152
|
+
- stage: Deploy
|
|
153
|
+
displayName: 'Deploy to Staging'
|
|
154
|
+
dependsOn: Build
|
|
155
|
+
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
|
|
156
|
+
jobs:
|
|
157
|
+
- deployment: DeployToStaging
|
|
158
|
+
displayName: 'Deploy to Staging Environment'
|
|
159
|
+
environment: 'staging'
|
|
160
|
+
strategy:
|
|
161
|
+
runOnce:
|
|
162
|
+
deploy:
|
|
163
|
+
steps:
|
|
164
|
+
- download: current
|
|
165
|
+
displayName: 'Download drop artifact'
|
|
166
|
+
artifact: drop
|
|
167
|
+
- task: AzureWebApp@1
|
|
168
|
+
displayName: 'Deploy to Azure Web App'
|
|
169
|
+
inputs:
|
|
170
|
+
azureSubscription: 'staging-service-connection'
|
|
171
|
+
appType: 'webApp'
|
|
172
|
+
appName: 'myapp-staging'
|
|
173
|
+
package: '$(Pipeline.Workspace)/drop/**/*.zip'
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Common Anti-Patterns to Avoid
|
|
177
|
+
|
|
178
|
+
- Hardcoding sensitive values directly in YAML files
|
|
179
|
+
- Using overly broad triggers that cause unnecessary builds
|
|
180
|
+
- Mixing build and deployment logic in a single stage
|
|
181
|
+
- Not implementing proper error handling and cleanup
|
|
182
|
+
- Using deprecated task versions without upgrade plans
|
|
183
|
+
- Creating monolithic pipelines that are difficult to maintain
|
|
184
|
+
- Not using proper naming conventions for clarity
|
|
185
|
+
- Ignoring pipeline security best practices
|