devskill 2.0.7 → 2.0.8
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/meta.ts +4 -0
- package/package.json +1 -1
- package/skills/add-educational-comments/LICENSE.md +21 -0
- package/skills/add-educational-comments/SKILL.md +128 -0
- package/skills/add-educational-comments/SYNC.md +5 -0
- package/skills/agent-governance/LICENSE.md +21 -0
- package/skills/agent-governance/SKILL.md +569 -0
- package/skills/agent-governance/SYNC.md +5 -0
- package/skills/agentic-eval/LICENSE.md +21 -0
- package/skills/agentic-eval/SKILL.md +189 -0
- package/skills/agentic-eval/SYNC.md +5 -0
- package/skills/ai-prompt-engineering-safety-review/LICENSE.md +21 -0
- package/skills/ai-prompt-engineering-safety-review/SKILL.md +230 -0
- package/skills/ai-prompt-engineering-safety-review/SYNC.md +5 -0
- package/skills/appinsights-instrumentation/LICENSE.md +21 -0
- package/skills/appinsights-instrumentation/LICENSE.txt +21 -0
- package/skills/appinsights-instrumentation/SKILL.md +48 -0
- package/skills/appinsights-instrumentation/SYNC.md +5 -0
- package/skills/appinsights-instrumentation/examples/appinsights.bicep +30 -0
- package/skills/appinsights-instrumentation/references/ASPNETCORE.md +29 -0
- package/skills/appinsights-instrumentation/references/AUTO.md +13 -0
- package/skills/appinsights-instrumentation/references/NODEJS.md +28 -0
- package/skills/appinsights-instrumentation/references/PYTHON.md +48 -0
- package/skills/appinsights-instrumentation/scripts/appinsights.ps1 +20 -0
- package/skills/apple-appstore-reviewer/LICENSE.md +21 -0
- package/skills/apple-appstore-reviewer/SKILL.md +305 -0
- package/skills/apple-appstore-reviewer/SYNC.md +5 -0
- package/skills/arch-linux-triage/LICENSE.md +21 -0
- package/skills/arch-linux-triage/SKILL.md +31 -0
- package/skills/arch-linux-triage/SYNC.md +5 -0
- package/skills/architecture-blueprint-generator/LICENSE.md +21 -0
- package/skills/architecture-blueprint-generator/SKILL.md +322 -0
- package/skills/architecture-blueprint-generator/SYNC.md +5 -0
- package/skills/aspire/LICENSE.md +21 -0
- package/skills/aspire/SKILL.md +231 -0
- package/skills/aspire/SYNC.md +5 -0
- package/skills/aspire/references/architecture.md +341 -0
- package/skills/aspire/references/cli-reference.md +307 -0
- package/skills/aspire/references/dashboard.md +226 -0
- package/skills/aspire/references/deployment.md +237 -0
- package/skills/aspire/references/integrations-catalog.md +68 -0
- package/skills/aspire/references/mcp-server.md +195 -0
- package/skills/aspire/references/polyglot-apis.md +296 -0
- package/skills/aspire/references/testing.md +281 -0
- package/skills/aspire/references/troubleshooting.md +194 -0
- package/skills/aspnet-minimal-api-openapi/LICENSE.md +21 -0
- package/skills/aspnet-minimal-api-openapi/SKILL.md +41 -0
- package/skills/aspnet-minimal-api-openapi/SYNC.md +5 -0
- package/skills/automate-this/LICENSE.md +21 -0
- package/skills/automate-this/SKILL.md +244 -0
- package/skills/automate-this/SYNC.md +5 -0
- package/skills/autoresearch/LICENSE.md +21 -0
- package/skills/autoresearch/SKILL.md +275 -0
- package/skills/autoresearch/SYNC.md +5 -0
- package/skills/aws-cdk-python-setup/LICENSE.md +21 -0
- package/skills/aws-cdk-python-setup/SKILL.md +111 -0
- package/skills/aws-cdk-python-setup/SYNC.md +5 -0
- package/skills/az-cost-optimize/LICENSE.md +21 -0
- package/skills/az-cost-optimize/SKILL.md +305 -0
- package/skills/az-cost-optimize/SYNC.md +5 -0
- package/skills/azure-deployment-preflight/LICENSE.md +21 -0
- package/skills/azure-deployment-preflight/SKILL.md +216 -0
- package/skills/azure-deployment-preflight/SYNC.md +5 -0
- package/skills/azure-deployment-preflight/references/ERROR-HANDLING.md +392 -0
- package/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md +352 -0
- package/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md +379 -0
- package/skills/azure-devops-cli/LICENSE.md +21 -0
- package/skills/azure-devops-cli/SKILL.md +94 -0
- package/skills/azure-devops-cli/SYNC.md +5 -0
- package/skills/azure-devops-cli/references/advanced-usage.md +197 -0
- package/skills/azure-devops-cli/references/boards-and-iterations.md +258 -0
- package/skills/azure-devops-cli/references/org-and-security.md +469 -0
- package/skills/azure-devops-cli/references/pipelines-and-builds.md +245 -0
- package/skills/azure-devops-cli/references/repos-and-prs.md +333 -0
- package/skills/azure-devops-cli/references/variables-and-agents.md +212 -0
- package/skills/azure-devops-cli/references/workflows-and-patterns.md +668 -0
- package/skills/azure-pricing/LICENSE.md +21 -0
- package/skills/azure-pricing/SKILL.md +189 -0
- package/skills/azure-pricing/SYNC.md +5 -0
- package/skills/azure-pricing/references/COPILOT-STUDIO-RATES.md +135 -0
- package/skills/azure-pricing/references/COST-ESTIMATOR.md +142 -0
- package/skills/azure-pricing/references/REGIONS.md +84 -0
- package/skills/azure-pricing/references/SERVICE-NAMES.md +106 -0
- package/skills/azure-resource-health-diagnose/LICENSE.md +21 -0
- package/skills/azure-resource-health-diagnose/SKILL.md +290 -0
- package/skills/azure-resource-health-diagnose/SYNC.md +5 -0
- package/skills/azure-resource-visualizer/LICENSE.md +21 -0
- package/skills/azure-resource-visualizer/LICENSE.txt +21 -0
- package/skills/azure-resource-visualizer/SKILL.md +233 -0
- package/skills/azure-resource-visualizer/SYNC.md +5 -0
- package/skills/azure-resource-visualizer/assets/template-architecture.md +41 -0
- package/skills/azure-role-selector/LICENSE.md +21 -0
- package/skills/azure-role-selector/LICENSE.txt +21 -0
- package/skills/azure-role-selector/SKILL.md +6 -0
- package/skills/azure-role-selector/SYNC.md +5 -0
- package/skills/azure-static-web-apps/LICENSE.md +21 -0
- package/skills/azure-static-web-apps/SKILL.md +315 -0
- package/skills/azure-static-web-apps/SYNC.md +5 -0
- package/skills/bigquery-pipeline-audit/LICENSE.md +21 -0
- package/skills/bigquery-pipeline-audit/SKILL.md +129 -0
- package/skills/bigquery-pipeline-audit/SYNC.md +5 -0
- package/skills/boost-prompt/LICENSE.md +21 -0
- package/skills/boost-prompt/SKILL.md +25 -0
- package/skills/boost-prompt/SYNC.md +5 -0
- package/skills/breakdown-epic-arch/LICENSE.md +21 -0
- package/skills/breakdown-epic-arch/SKILL.md +66 -0
- package/skills/breakdown-epic-arch/SYNC.md +5 -0
- package/skills/breakdown-epic-pm/LICENSE.md +21 -0
- package/skills/breakdown-epic-pm/SKILL.md +58 -0
- package/skills/breakdown-epic-pm/SYNC.md +5 -0
- package/skills/breakdown-feature-implementation/LICENSE.md +21 -0
- package/skills/breakdown-feature-implementation/SKILL.md +128 -0
- package/skills/breakdown-feature-implementation/SYNC.md +5 -0
- package/skills/breakdown-feature-prd/LICENSE.md +21 -0
- package/skills/breakdown-feature-prd/SKILL.md +61 -0
- package/skills/breakdown-feature-prd/SYNC.md +5 -0
- package/skills/breakdown-plan/LICENSE.md +21 -0
- package/skills/breakdown-plan/SKILL.md +509 -0
- package/skills/breakdown-plan/SYNC.md +5 -0
- package/skills/breakdown-test/LICENSE.md +21 -0
- package/skills/breakdown-test/SKILL.md +365 -0
- package/skills/breakdown-test/SYNC.md +5 -0
- package/skills/centos-linux-triage/LICENSE.md +21 -0
- package/skills/centos-linux-triage/SKILL.md +31 -0
- package/skills/centos-linux-triage/SYNC.md +5 -0
- package/skills/chrome-devtools/LICENSE.md +21 -0
- package/skills/chrome-devtools/SKILL.md +97 -0
- package/skills/chrome-devtools/SYNC.md +5 -0
- package/skills/cli-mastery/LICENSE.md +21 -0
- package/skills/cli-mastery/SKILL.md +43 -0
- package/skills/cli-mastery/SYNC.md +5 -0
- package/skills/cli-mastery/references/final-exam.md +24 -0
- package/skills/cli-mastery/references/module-1-slash-commands.md +88 -0
- package/skills/cli-mastery/references/module-2-keyboard-shortcuts.md +38 -0
- package/skills/cli-mastery/references/module-3-modes.md +33 -0
- package/skills/cli-mastery/references/module-4-agents.md +42 -0
- package/skills/cli-mastery/references/module-5-skills.md +33 -0
- package/skills/cli-mastery/references/module-6-mcp.md +50 -0
- package/skills/cli-mastery/references/module-7-advanced.md +38 -0
- package/skills/cli-mastery/references/module-8-configuration.md +34 -0
- package/skills/cli-mastery/references/scenarios.md +44 -0
- package/skills/cloud-design-patterns/LICENSE.md +21 -0
- package/skills/cloud-design-patterns/SKILL.md +62 -0
- package/skills/cloud-design-patterns/SYNC.md +5 -0
- package/skills/cloud-design-patterns/references/architecture-design.md +127 -0
- package/skills/cloud-design-patterns/references/azure-service-mappings.md +13 -0
- package/skills/cloud-design-patterns/references/best-practices.md +34 -0
- package/skills/cloud-design-patterns/references/deployment-operational.md +91 -0
- package/skills/cloud-design-patterns/references/event-driven.md +21 -0
- package/skills/cloud-design-patterns/references/messaging-integration.md +127 -0
- package/skills/cloud-design-patterns/references/performance.md +180 -0
- package/skills/cloud-design-patterns/references/reliability-resilience.md +156 -0
- package/skills/cloud-design-patterns/references/security.md +55 -0
- package/skills/code-exemplars-blueprint-generator/LICENSE.md +21 -0
- package/skills/code-exemplars-blueprint-generator/SKILL.md +126 -0
- package/skills/code-exemplars-blueprint-generator/SYNC.md +5 -0
- package/skills/codeql/LICENSE.md +21 -0
- package/skills/codeql/SKILL.md +405 -0
- package/skills/codeql/SYNC.md +5 -0
- package/skills/codeql/references/alert-management.md +170 -0
- package/skills/codeql/references/cli-commands.md +283 -0
- package/skills/codeql/references/compiled-languages.md +284 -0
- package/skills/codeql/references/sarif-output.md +265 -0
- package/skills/codeql/references/troubleshooting.md +259 -0
- package/skills/codeql/references/workflow-configuration.md +398 -0
- package/skills/comment-code-generate-a-tutorial/LICENSE.md +21 -0
- package/skills/comment-code-generate-a-tutorial/SKILL.md +26 -0
- package/skills/comment-code-generate-a-tutorial/SYNC.md +5 -0
- package/skills/containerize-aspnet-framework/LICENSE.md +21 -0
- package/skills/containerize-aspnet-framework/SKILL.md +454 -0
- package/skills/containerize-aspnet-framework/SYNC.md +5 -0
- package/skills/containerize-aspnetcore/LICENSE.md +21 -0
- package/skills/containerize-aspnetcore/SKILL.md +392 -0
- package/skills/containerize-aspnetcore/SYNC.md +5 -0
- package/skills/context-map/LICENSE.md +21 -0
- package/skills/context-map/SKILL.md +52 -0
- package/skills/context-map/SYNC.md +5 -0
- package/skills/conventional-commit/LICENSE.md +21 -0
- package/skills/conventional-commit/SKILL.md +72 -0
- package/skills/conventional-commit/SYNC.md +5 -0
- package/skills/convert-plaintext-to-md/LICENSE.md +21 -0
- package/skills/convert-plaintext-to-md/SKILL.md +362 -0
- package/skills/convert-plaintext-to-md/SYNC.md +5 -0
- package/skills/copilot-cli-quickstart/LICENSE.md +21 -0
- package/skills/copilot-cli-quickstart/SKILL.md +774 -0
- package/skills/copilot-cli-quickstart/SYNC.md +5 -0
- package/skills/copilot-instructions-blueprint-generator/LICENSE.md +21 -0
- package/skills/copilot-instructions-blueprint-generator/SKILL.md +294 -0
- package/skills/copilot-instructions-blueprint-generator/SYNC.md +5 -0
- package/skills/copilot-sdk/LICENSE.md +21 -0
- package/skills/copilot-sdk/SKILL.md +914 -0
- package/skills/copilot-sdk/SYNC.md +5 -0
- package/skills/copilot-spaces/LICENSE.md +21 -0
- package/skills/copilot-spaces/SKILL.md +205 -0
- package/skills/copilot-spaces/SYNC.md +5 -0
- package/skills/copilot-usage-metrics/LICENSE.md +21 -0
- package/skills/copilot-usage-metrics/SKILL.md +52 -0
- package/skills/copilot-usage-metrics/SYNC.md +5 -0
- package/skills/copilot-usage-metrics/get-enterprise-metrics.sh +22 -0
- package/skills/copilot-usage-metrics/get-enterprise-user-metrics.sh +22 -0
- package/skills/copilot-usage-metrics/get-org-metrics.sh +22 -0
- package/skills/copilot-usage-metrics/get-org-user-metrics.sh +22 -0
- package/skills/cosmosdb-datamodeling/LICENSE.md +21 -0
- package/skills/cosmosdb-datamodeling/SKILL.md +1045 -0
- package/skills/cosmosdb-datamodeling/SYNC.md +5 -0
- package/skills/create-agentsmd/LICENSE.md +21 -0
- package/skills/create-agentsmd/SKILL.md +249 -0
- package/skills/create-agentsmd/SYNC.md +5 -0
- package/skills/create-architectural-decision-record/LICENSE.md +21 -0
- package/skills/create-architectural-decision-record/SKILL.md +97 -0
- package/skills/create-architectural-decision-record/SYNC.md +5 -0
- package/skills/create-github-action-workflow-specification/LICENSE.md +21 -0
- package/skills/create-github-action-workflow-specification/SKILL.md +276 -0
- package/skills/create-github-action-workflow-specification/SYNC.md +5 -0
- package/skills/create-github-issue-feature-from-specification/LICENSE.md +21 -0
- package/skills/create-github-issue-feature-from-specification/SKILL.md +28 -0
- package/skills/create-github-issue-feature-from-specification/SYNC.md +5 -0
- package/skills/create-github-issues-feature-from-implementation-plan/LICENSE.md +21 -0
- package/skills/create-github-issues-feature-from-implementation-plan/SKILL.md +28 -0
- package/skills/create-github-issues-feature-from-implementation-plan/SYNC.md +5 -0
- package/skills/create-github-issues-for-unmet-specification-requirements/LICENSE.md +21 -0
- package/skills/create-github-issues-for-unmet-specification-requirements/SKILL.md +35 -0
- package/skills/create-github-issues-for-unmet-specification-requirements/SYNC.md +5 -0
- package/skills/create-github-pull-request-from-specification/LICENSE.md +21 -0
- package/skills/create-github-pull-request-from-specification/SKILL.md +24 -0
- package/skills/create-github-pull-request-from-specification/SYNC.md +5 -0
- package/skills/create-implementation-plan/LICENSE.md +21 -0
- package/skills/create-implementation-plan/SKILL.md +157 -0
- package/skills/create-implementation-plan/SYNC.md +5 -0
- package/skills/create-llms/LICENSE.md +21 -0
- package/skills/create-llms/SKILL.md +210 -0
- package/skills/create-llms/SYNC.md +5 -0
- package/skills/create-readme/LICENSE.md +21 -0
- package/skills/create-readme/SKILL.md +21 -0
- package/skills/create-readme/SYNC.md +5 -0
- package/skills/create-specification/LICENSE.md +21 -0
- package/skills/create-specification/SKILL.md +127 -0
- package/skills/create-specification/SYNC.md +5 -0
- package/skills/create-spring-boot-java-project/LICENSE.md +21 -0
- package/skills/create-spring-boot-java-project/SKILL.md +163 -0
- package/skills/create-spring-boot-java-project/SYNC.md +5 -0
- package/skills/create-spring-boot-kotlin-project/LICENSE.md +21 -0
- package/skills/create-spring-boot-kotlin-project/SKILL.md +147 -0
- package/skills/create-spring-boot-kotlin-project/SYNC.md +5 -0
- package/skills/create-technical-spike/LICENSE.md +21 -0
- package/skills/create-technical-spike/SKILL.md +230 -0
- package/skills/create-technical-spike/SYNC.md +5 -0
- package/skills/create-tldr-page/LICENSE.md +21 -0
- package/skills/create-tldr-page/SKILL.md +210 -0
- package/skills/create-tldr-page/SYNC.md +5 -0
- package/skills/creating-oracle-to-postgres-master-migration-plan/LICENSE.md +21 -0
- package/skills/creating-oracle-to-postgres-master-migration-plan/SKILL.md +83 -0
- package/skills/creating-oracle-to-postgres-master-migration-plan/SYNC.md +5 -0
- package/skills/creating-oracle-to-postgres-migration-bug-report/LICENSE.md +21 -0
- package/skills/creating-oracle-to-postgres-migration-bug-report/SKILL.md +43 -0
- package/skills/creating-oracle-to-postgres-migration-bug-report/SYNC.md +5 -0
- package/skills/creating-oracle-to-postgres-migration-bug-report/references/BUG-REPORT-TEMPLATE.md +79 -0
- package/skills/creating-oracle-to-postgres-migration-integration-tests/LICENSE.md +21 -0
- package/skills/creating-oracle-to-postgres-migration-integration-tests/SKILL.md +60 -0
- package/skills/creating-oracle-to-postgres-migration-integration-tests/SYNC.md +5 -0
- package/skills/csharp-async/LICENSE.md +21 -0
- package/skills/csharp-async/SKILL.md +49 -0
- package/skills/csharp-async/SYNC.md +5 -0
- package/skills/csharp-docs/LICENSE.md +21 -0
- package/skills/csharp-docs/SKILL.md +62 -0
- package/skills/csharp-docs/SYNC.md +5 -0
- package/skills/csharp-mcp-server-generator/LICENSE.md +21 -0
- package/skills/csharp-mcp-server-generator/SKILL.md +59 -0
- package/skills/csharp-mcp-server-generator/SYNC.md +5 -0
- package/skills/csharp-mstest/LICENSE.md +21 -0
- package/skills/csharp-mstest/SKILL.md +478 -0
- package/skills/csharp-mstest/SYNC.md +5 -0
- package/skills/csharp-nunit/LICENSE.md +21 -0
- package/skills/csharp-nunit/SKILL.md +71 -0
- package/skills/csharp-nunit/SYNC.md +5 -0
- package/skills/csharp-tunit/LICENSE.md +21 -0
- package/skills/csharp-tunit/SKILL.md +100 -0
- package/skills/csharp-tunit/SYNC.md +5 -0
- package/skills/csharp-xunit/LICENSE.md +21 -0
- package/skills/csharp-xunit/SKILL.md +68 -0
- package/skills/csharp-xunit/SYNC.md +5 -0
- package/skills/datanalysis-credit-risk/LICENSE.md +21 -0
- package/skills/datanalysis-credit-risk/SKILL.md +113 -0
- package/skills/datanalysis-credit-risk/SYNC.md +5 -0
- package/skills/datanalysis-credit-risk/references/analysis.py +1223 -0
- package/skills/datanalysis-credit-risk/references/func.py +228 -0
- package/skills/datanalysis-credit-risk/scripts/example.py +391 -0
- package/skills/dataverse-python-advanced-patterns/LICENSE.md +21 -0
- package/skills/dataverse-python-advanced-patterns/SKILL.md +17 -0
- package/skills/dataverse-python-advanced-patterns/SYNC.md +5 -0
- package/skills/dataverse-python-production-code/LICENSE.md +21 -0
- package/skills/dataverse-python-production-code/SKILL.md +116 -0
- package/skills/dataverse-python-production-code/SYNC.md +5 -0
- package/skills/dataverse-python-quickstart/LICENSE.md +21 -0
- package/skills/dataverse-python-quickstart/SKILL.md +14 -0
- package/skills/dataverse-python-quickstart/SYNC.md +5 -0
- package/skills/dataverse-python-usecase-builder/LICENSE.md +21 -0
- package/skills/dataverse-python-usecase-builder/SKILL.md +246 -0
- package/skills/dataverse-python-usecase-builder/SYNC.md +5 -0
- package/skills/debian-linux-triage/LICENSE.md +21 -0
- package/skills/debian-linux-triage/SKILL.md +31 -0
- package/skills/debian-linux-triage/SYNC.md +5 -0
- package/skills/declarative-agents/LICENSE.md +21 -0
- package/skills/declarative-agents/SKILL.md +94 -0
- package/skills/declarative-agents/SYNC.md +5 -0
- package/skills/dependabot/LICENSE.md +21 -0
- package/skills/dependabot/SKILL.md +422 -0
- package/skills/dependabot/SYNC.md +5 -0
- package/skills/dependabot/references/dependabot-yml-reference.md +374 -0
- package/skills/dependabot/references/example-configs.md +409 -0
- package/skills/dependabot/references/pr-commands.md +91 -0
- package/skills/devops-rollout-plan/LICENSE.md +21 -0
- package/skills/devops-rollout-plan/SKILL.md +117 -0
- package/skills/devops-rollout-plan/SYNC.md +5 -0
- package/skills/documentation-writer/LICENSE.md +21 -0
- package/skills/documentation-writer/SKILL.md +45 -0
- package/skills/documentation-writer/SYNC.md +5 -0
- package/skills/dotnet-best-practices/LICENSE.md +21 -0
- package/skills/dotnet-best-practices/SKILL.md +85 -0
- package/skills/dotnet-best-practices/SYNC.md +5 -0
- package/skills/dotnet-design-pattern-review/LICENSE.md +21 -0
- package/skills/dotnet-design-pattern-review/SKILL.md +42 -0
- package/skills/dotnet-design-pattern-review/SYNC.md +5 -0
- package/skills/dotnet-timezone/LICENSE.md +21 -0
- package/skills/dotnet-timezone/SKILL.md +109 -0
- package/skills/dotnet-timezone/SYNC.md +5 -0
- package/skills/dotnet-timezone/references/code-patterns.md +153 -0
- package/skills/dotnet-timezone/references/timezone-index.md +87 -0
- package/skills/dotnet-upgrade/LICENSE.md +21 -0
- package/skills/dotnet-upgrade/SKILL.md +116 -0
- package/skills/dotnet-upgrade/SYNC.md +5 -0
- package/skills/doublecheck/LICENSE.md +21 -0
- package/skills/doublecheck/SKILL.md +277 -0
- package/skills/doublecheck/SYNC.md +5 -0
- package/skills/doublecheck/assets/verification-report-template.md +92 -0
- package/skills/editorconfig/LICENSE.md +21 -0
- package/skills/editorconfig/SKILL.md +63 -0
- package/skills/editorconfig/SYNC.md +5 -0
- package/skills/ef-core/LICENSE.md +21 -0
- package/skills/ef-core/SKILL.md +75 -0
- package/skills/ef-core/SYNC.md +5 -0
- package/skills/entra-agent-user/LICENSE.md +21 -0
- package/skills/entra-agent-user/SKILL.md +270 -0
- package/skills/entra-agent-user/SYNC.md +5 -0
- package/skills/eval-driven-dev/LICENSE.md +21 -0
- package/skills/eval-driven-dev/SKILL.md +862 -0
- package/skills/eval-driven-dev/SYNC.md +5 -0
- package/skills/eval-driven-dev/references/pixie-api.md +195 -0
- package/skills/excalidraw-diagram-generator/LICENSE.md +21 -0
- package/skills/excalidraw-diagram-generator/SKILL.md +613 -0
- package/skills/excalidraw-diagram-generator/SYNC.md +5 -0
- package/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
- package/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
- package/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
- package/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
- package/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
- package/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
- package/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
- package/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
- package/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
- package/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
- package/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
- package/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
- package/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
- package/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
- package/skills/fabric-lakehouse/LICENSE.md +21 -0
- package/skills/fabric-lakehouse/SKILL.md +106 -0
- package/skills/fabric-lakehouse/SYNC.md +5 -0
- package/skills/fabric-lakehouse/references/getdata.md +36 -0
- package/skills/fabric-lakehouse/references/pyspark.md +189 -0
- package/skills/fedora-linux-triage/LICENSE.md +21 -0
- package/skills/fedora-linux-triage/SKILL.md +31 -0
- package/skills/fedora-linux-triage/SYNC.md +5 -0
- package/skills/finalize-agent-prompt/LICENSE.md +21 -0
- package/skills/finalize-agent-prompt/SKILL.md +26 -0
- package/skills/finalize-agent-prompt/SYNC.md +5 -0
- package/skills/finnish-humanizer/LICENSE.md +21 -0
- package/skills/finnish-humanizer/SKILL.md +145 -0
- package/skills/finnish-humanizer/SYNC.md +5 -0
- package/skills/finnish-humanizer/references/patterns.md +338 -0
- package/skills/first-ask/LICENSE.md +21 -0
- package/skills/first-ask/SKILL.md +30 -0
- package/skills/first-ask/SYNC.md +5 -0
- package/skills/flowstudio-power-automate-build/LICENSE.md +21 -0
- package/skills/flowstudio-power-automate-build/SKILL.md +460 -0
- package/skills/flowstudio-power-automate-build/SYNC.md +5 -0
- package/skills/flowstudio-power-automate-build/references/action-patterns-connectors.md +542 -0
- package/skills/flowstudio-power-automate-build/references/action-patterns-core.md +542 -0
- package/skills/flowstudio-power-automate-build/references/action-patterns-data.md +735 -0
- package/skills/flowstudio-power-automate-build/references/build-patterns.md +108 -0
- package/skills/flowstudio-power-automate-build/references/flow-schema.md +225 -0
- package/skills/flowstudio-power-automate-build/references/trigger-types.md +211 -0
- package/skills/flowstudio-power-automate-debug/LICENSE.md +21 -0
- package/skills/flowstudio-power-automate-debug/SKILL.md +322 -0
- package/skills/flowstudio-power-automate-debug/SYNC.md +5 -0
- package/skills/flowstudio-power-automate-debug/references/common-errors.md +188 -0
- package/skills/flowstudio-power-automate-debug/references/debug-workflow.md +157 -0
- package/skills/flowstudio-power-automate-mcp/LICENSE.md +21 -0
- package/skills/flowstudio-power-automate-mcp/SKILL.md +450 -0
- package/skills/flowstudio-power-automate-mcp/SYNC.md +5 -0
- package/skills/flowstudio-power-automate-mcp/references/MCP-BOOTSTRAP.md +53 -0
- package/skills/flowstudio-power-automate-mcp/references/action-types.md +79 -0
- package/skills/flowstudio-power-automate-mcp/references/connection-references.md +115 -0
- package/skills/flowstudio-power-automate-mcp/references/tool-reference.md +445 -0
- package/skills/fluentui-blazor/LICENSE.md +21 -0
- package/skills/fluentui-blazor/SKILL.md +231 -0
- package/skills/fluentui-blazor/SYNC.md +5 -0
- package/skills/fluentui-blazor/references/DATAGRID.md +162 -0
- package/skills/fluentui-blazor/references/LAYOUT-AND-NAVIGATION.md +173 -0
- package/skills/fluentui-blazor/references/SETUP.md +129 -0
- package/skills/fluentui-blazor/references/THEMING.md +103 -0
- package/skills/folder-structure-blueprint-generator/LICENSE.md +21 -0
- package/skills/folder-structure-blueprint-generator/SKILL.md +405 -0
- package/skills/folder-structure-blueprint-generator/SYNC.md +5 -0
- package/skills/game-engine/LICENSE.md +21 -0
- package/skills/game-engine/SKILL.md +139 -0
- package/skills/game-engine/SYNC.md +5 -0
- package/skills/game-engine/assets/2d-maze-game.md +528 -0
- package/skills/game-engine/assets/2d-platform-game.md +1855 -0
- package/skills/game-engine/assets/gameBase-template-repo.md +310 -0
- package/skills/game-engine/assets/paddle-game-template.md +1528 -0
- package/skills/game-engine/assets/simple-2d-engine.md +507 -0
- package/skills/game-engine/references/3d-web-games.md +754 -0
- package/skills/game-engine/references/algorithms.md +843 -0
- package/skills/game-engine/references/basics.md +343 -0
- package/skills/game-engine/references/game-control-mechanisms.md +617 -0
- package/skills/game-engine/references/game-engine-core-principles.md +695 -0
- package/skills/game-engine/references/game-publishing.md +352 -0
- package/skills/game-engine/references/techniques.md +894 -0
- package/skills/game-engine/references/terminology.md +354 -0
- package/skills/game-engine/references/web-apis.md +1394 -0
- package/skills/gen-specs-as-issues/LICENSE.md +21 -0
- package/skills/gen-specs-as-issues/SKILL.md +165 -0
- package/skills/gen-specs-as-issues/SYNC.md +5 -0
- package/skills/generate-custom-instructions-from-codebase/LICENSE.md +21 -0
- package/skills/generate-custom-instructions-from-codebase/SKILL.md +240 -0
- package/skills/generate-custom-instructions-from-codebase/SYNC.md +5 -0
- package/skills/geofeed-tuner/LICENSE.md +21 -0
- package/skills/geofeed-tuner/SKILL.md +864 -0
- package/skills/geofeed-tuner/SYNC.md +5 -0
- package/skills/geofeed-tuner/assets/example/01-user-input-rfc8805-feed.csv +5 -0
- package/skills/geofeed-tuner/assets/iso3166-1.json +1249 -0
- package/skills/geofeed-tuner/assets/iso3166-2.json +20188 -0
- package/skills/geofeed-tuner/assets/small-territories.json +106 -0
- package/skills/geofeed-tuner/references/rfc8805.txt +735 -0
- package/skills/geofeed-tuner/references/snippets-python3.md +85 -0
- package/skills/geofeed-tuner/scripts/templates/index.html +2305 -0
- package/skills/gh-cli/LICENSE.md +21 -0
- package/skills/gh-cli/SKILL.md +2187 -0
- package/skills/gh-cli/SYNC.md +5 -0
- package/skills/git-commit/LICENSE.md +21 -0
- package/skills/git-commit/SKILL.md +124 -0
- package/skills/git-commit/SYNC.md +5 -0
- package/skills/git-flow-branch-creator/LICENSE.md +21 -0
- package/skills/git-flow-branch-creator/SKILL.md +292 -0
- package/skills/git-flow-branch-creator/SYNC.md +5 -0
- package/skills/github-copilot-starter/LICENSE.md +21 -0
- package/skills/github-copilot-starter/SKILL.md +402 -0
- package/skills/github-copilot-starter/SYNC.md +5 -0
- package/skills/github-issues/LICENSE.md +21 -0
- package/skills/github-issues/SKILL.md +201 -0
- package/skills/github-issues/SYNC.md +5 -0
- package/skills/github-issues/references/dependencies.md +71 -0
- package/skills/github-issues/references/images.md +116 -0
- package/skills/github-issues/references/issue-fields.md +191 -0
- package/skills/github-issues/references/issue-types.md +72 -0
- package/skills/github-issues/references/projects.md +273 -0
- package/skills/github-issues/references/search.md +231 -0
- package/skills/github-issues/references/sub-issues.md +137 -0
- package/skills/github-issues/references/templates.md +90 -0
- package/skills/go-mcp-server-generator/LICENSE.md +21 -0
- package/skills/go-mcp-server-generator/SKILL.md +334 -0
- package/skills/go-mcp-server-generator/SYNC.md +5 -0
- package/skills/gtm-0-to-1-launch/LICENSE.md +21 -0
- package/skills/gtm-0-to-1-launch/SKILL.md +321 -0
- package/skills/gtm-0-to-1-launch/SYNC.md +5 -0
- package/skills/gtm-ai-gtm/LICENSE.md +21 -0
- package/skills/gtm-ai-gtm/SKILL.md +569 -0
- package/skills/gtm-ai-gtm/SYNC.md +5 -0
- package/skills/gtm-board-and-investor-communication/LICENSE.md +21 -0
- package/skills/gtm-board-and-investor-communication/SKILL.md +456 -0
- package/skills/gtm-board-and-investor-communication/SYNC.md +5 -0
- package/skills/gtm-developer-ecosystem/LICENSE.md +21 -0
- package/skills/gtm-developer-ecosystem/SKILL.md +310 -0
- package/skills/gtm-developer-ecosystem/SYNC.md +5 -0
- package/skills/gtm-enterprise-account-planning/LICENSE.md +21 -0
- package/skills/gtm-enterprise-account-planning/SKILL.md +429 -0
- package/skills/gtm-enterprise-account-planning/SYNC.md +5 -0
- package/skills/gtm-enterprise-onboarding/LICENSE.md +21 -0
- package/skills/gtm-enterprise-onboarding/SKILL.md +457 -0
- package/skills/gtm-enterprise-onboarding/SYNC.md +5 -0
- package/skills/gtm-operating-cadence/LICENSE.md +21 -0
- package/skills/gtm-operating-cadence/SKILL.md +420 -0
- package/skills/gtm-operating-cadence/SYNC.md +5 -0
- package/skills/gtm-partnership-architecture/LICENSE.md +21 -0
- package/skills/gtm-partnership-architecture/SKILL.md +470 -0
- package/skills/gtm-partnership-architecture/SYNC.md +5 -0
- package/skills/gtm-positioning-strategy/LICENSE.md +21 -0
- package/skills/gtm-positioning-strategy/SKILL.md +438 -0
- package/skills/gtm-positioning-strategy/SYNC.md +5 -0
- package/skills/gtm-product-led-growth/LICENSE.md +21 -0
- package/skills/gtm-product-led-growth/SKILL.md +339 -0
- package/skills/gtm-product-led-growth/SYNC.md +5 -0
- package/skills/gtm-technical-product-pricing/LICENSE.md +21 -0
- package/skills/gtm-technical-product-pricing/SKILL.md +353 -0
- package/skills/gtm-technical-product-pricing/SYNC.md +5 -0
- package/skills/image-manipulation-image-magick/LICENSE.md +21 -0
- package/skills/image-manipulation-image-magick/SKILL.md +252 -0
- package/skills/image-manipulation-image-magick/SYNC.md +5 -0
- package/skills/import-infrastructure-as-code/LICENSE.md +21 -0
- package/skills/import-infrastructure-as-code/SKILL.md +367 -0
- package/skills/import-infrastructure-as-code/SYNC.md +5 -0
- package/skills/issue-fields-migration/LICENSE.md +21 -0
- package/skills/issue-fields-migration/SKILL.md +533 -0
- package/skills/issue-fields-migration/SYNC.md +5 -0
- package/skills/issue-fields-migration/references/issue-fields-api.md +129 -0
- package/skills/issue-fields-migration/references/labels-api.md +74 -0
- package/skills/issue-fields-migration/references/projects-api.md +116 -0
- package/skills/java-add-graalvm-native-image-support/LICENSE.md +21 -0
- package/skills/java-add-graalvm-native-image-support/SKILL.md +449 -0
- package/skills/java-add-graalvm-native-image-support/SYNC.md +5 -0
- package/skills/java-docs/LICENSE.md +21 -0
- package/skills/java-docs/SKILL.md +23 -0
- package/skills/java-docs/SYNC.md +5 -0
- package/skills/java-junit/LICENSE.md +21 -0
- package/skills/java-junit/SKILL.md +63 -0
- package/skills/java-junit/SYNC.md +5 -0
- package/skills/java-mcp-server-generator/LICENSE.md +21 -0
- package/skills/java-mcp-server-generator/SKILL.md +756 -0
- package/skills/java-mcp-server-generator/SYNC.md +5 -0
- package/skills/java-refactoring-extract-method/LICENSE.md +21 -0
- package/skills/java-refactoring-extract-method/SKILL.md +104 -0
- package/skills/java-refactoring-extract-method/SYNC.md +5 -0
- package/skills/java-refactoring-remove-parameter/LICENSE.md +21 -0
- package/skills/java-refactoring-remove-parameter/SKILL.md +84 -0
- package/skills/java-refactoring-remove-parameter/SYNC.md +5 -0
- package/skills/java-springboot/LICENSE.md +21 -0
- package/skills/java-springboot/SKILL.md +65 -0
- package/skills/java-springboot/SYNC.md +5 -0
- package/skills/javascript-typescript-jest/LICENSE.md +21 -0
- package/skills/javascript-typescript-jest/SKILL.md +44 -0
- package/skills/javascript-typescript-jest/SYNC.md +5 -0
- package/skills/kotlin-mcp-server-generator/LICENSE.md +21 -0
- package/skills/kotlin-mcp-server-generator/SKILL.md +449 -0
- package/skills/kotlin-mcp-server-generator/SYNC.md +5 -0
- package/skills/kotlin-springboot/LICENSE.md +21 -0
- package/skills/kotlin-springboot/SKILL.md +70 -0
- package/skills/kotlin-springboot/SYNC.md +5 -0
- package/skills/legacy-circuit-mockups/LICENSE.md +21 -0
- package/skills/legacy-circuit-mockups/SKILL.md +276 -0
- package/skills/legacy-circuit-mockups/SYNC.md +5 -0
- package/skills/legacy-circuit-mockups/references/28256-eeprom.md +190 -0
- package/skills/legacy-circuit-mockups/references/555.md +861 -0
- package/skills/legacy-circuit-mockups/references/6502.md +221 -0
- package/skills/legacy-circuit-mockups/references/6522.md +211 -0
- package/skills/legacy-circuit-mockups/references/6C62256.md +177 -0
- package/skills/legacy-circuit-mockups/references/7400-series.md +177 -0
- package/skills/legacy-circuit-mockups/references/assembly-compiler.md +258 -0
- package/skills/legacy-circuit-mockups/references/assembly-language.md +226 -0
- package/skills/legacy-circuit-mockups/references/basic-electronic-components.md +86 -0
- package/skills/legacy-circuit-mockups/references/breadboard.md +214 -0
- package/skills/legacy-circuit-mockups/references/common-breadboard-components.md +281 -0
- package/skills/legacy-circuit-mockups/references/connecting-electronic-components.md +310 -0
- package/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md +245 -0
- package/skills/legacy-circuit-mockups/references/emulator-6502.md +251 -0
- package/skills/legacy-circuit-mockups/references/emulator-6522.md +288 -0
- package/skills/legacy-circuit-mockups/references/emulator-6C62256.md +233 -0
- package/skills/legacy-circuit-mockups/references/emulator-lcd.md +266 -0
- package/skills/legacy-circuit-mockups/references/lcd.md +208 -0
- package/skills/legacy-circuit-mockups/references/minipro.md +211 -0
- package/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md +174 -0
- package/skills/make-repo-contribution/LICENSE.md +21 -0
- package/skills/make-repo-contribution/SKILL.md +90 -0
- package/skills/make-repo-contribution/SYNC.md +5 -0
- package/skills/make-repo-contribution/assets/issue-template.md +37 -0
- package/skills/make-repo-contribution/assets/pr-template.md +36 -0
- package/skills/make-skill-template/LICENSE.md +21 -0
- package/skills/make-skill-template/SKILL.md +147 -0
- package/skills/make-skill-template/SYNC.md +5 -0
- package/skills/markdown-to-html/LICENSE.md +21 -0
- package/skills/markdown-to-html/SKILL.md +916 -0
- package/skills/markdown-to-html/SYNC.md +5 -0
- package/skills/markdown-to-html/references/basic-markdown-to-html.md +420 -0
- package/skills/markdown-to-html/references/basic-markdown.md +496 -0
- package/skills/markdown-to-html/references/code-blocks-to-html.md +165 -0
- package/skills/markdown-to-html/references/code-blocks.md +70 -0
- package/skills/markdown-to-html/references/collapsed-sections-to-html.md +136 -0
- package/skills/markdown-to-html/references/collapsed-sections.md +48 -0
- package/skills/markdown-to-html/references/gomarkdown.md +253 -0
- package/skills/markdown-to-html/references/hugo.md +394 -0
- package/skills/markdown-to-html/references/jekyll.md +321 -0
- package/skills/markdown-to-html/references/marked.md +121 -0
- package/skills/markdown-to-html/references/pandoc.md +226 -0
- package/skills/markdown-to-html/references/tables-to-html.md +169 -0
- package/skills/markdown-to-html/references/tables.md +72 -0
- package/skills/markdown-to-html/references/writing-mathematical-expressions-to-html.md +350 -0
- package/skills/markdown-to-html/references/writing-mathematical-expressions.md +76 -0
- package/skills/mcp-cli/LICENSE.md +21 -0
- package/skills/mcp-cli/SKILL.md +78 -0
- package/skills/mcp-cli/SYNC.md +5 -0
- package/skills/mcp-copilot-studio-server-generator/LICENSE.md +21 -0
- package/skills/mcp-copilot-studio-server-generator/SKILL.md +118 -0
- package/skills/mcp-copilot-studio-server-generator/SYNC.md +5 -0
- package/skills/mcp-create-adaptive-cards/LICENSE.md +21 -0
- package/skills/mcp-create-adaptive-cards/SKILL.md +532 -0
- package/skills/mcp-create-adaptive-cards/SYNC.md +5 -0
- package/skills/mcp-create-declarative-agent/LICENSE.md +21 -0
- package/skills/mcp-create-declarative-agent/SKILL.md +315 -0
- package/skills/mcp-create-declarative-agent/SYNC.md +5 -0
- package/skills/mcp-deploy-manage-agents/LICENSE.md +21 -0
- package/skills/mcp-deploy-manage-agents/SKILL.md +341 -0
- package/skills/mcp-deploy-manage-agents/SYNC.md +5 -0
- package/skills/meeting-minutes/LICENSE.md +21 -0
- package/skills/meeting-minutes/SKILL.md +235 -0
- package/skills/meeting-minutes/SYNC.md +5 -0
- package/skills/memory-merger/LICENSE.md +21 -0
- package/skills/memory-merger/SKILL.md +108 -0
- package/skills/memory-merger/SYNC.md +5 -0
- package/skills/mentoring-juniors/LICENSE.md +21 -0
- package/skills/mentoring-juniors/SKILL.md +310 -0
- package/skills/mentoring-juniors/SYNC.md +5 -0
- package/skills/microsoft-agent-framework/LICENSE.md +21 -0
- package/skills/microsoft-agent-framework/SKILL.md +65 -0
- package/skills/microsoft-agent-framework/SYNC.md +5 -0
- package/skills/microsoft-agent-framework/references/dotnet.md +24 -0
- package/skills/microsoft-agent-framework/references/python.md +24 -0
- package/skills/microsoft-code-reference/LICENSE.md +21 -0
- package/skills/microsoft-code-reference/SKILL.md +99 -0
- package/skills/microsoft-code-reference/SYNC.md +5 -0
- package/skills/microsoft-docs/LICENSE.md +21 -0
- package/skills/microsoft-docs/SKILL.md +134 -0
- package/skills/microsoft-docs/SYNC.md +5 -0
- package/skills/microsoft-skill-creator/LICENSE.md +21 -0
- package/skills/microsoft-skill-creator/SKILL.md +250 -0
- package/skills/microsoft-skill-creator/SYNC.md +5 -0
- package/skills/microsoft-skill-creator/references/skill-templates.md +345 -0
- package/skills/migrating-oracle-to-postgres-stored-procedures/LICENSE.md +21 -0
- package/skills/migrating-oracle-to-postgres-stored-procedures/SKILL.md +42 -0
- package/skills/migrating-oracle-to-postgres-stored-procedures/SYNC.md +5 -0
- package/skills/mkdocs-translations/LICENSE.md +21 -0
- package/skills/mkdocs-translations/SKILL.md +108 -0
- package/skills/mkdocs-translations/SYNC.md +5 -0
- package/skills/model-recommendation/LICENSE.md +21 -0
- package/skills/model-recommendation/SKILL.md +672 -0
- package/skills/model-recommendation/SYNC.md +5 -0
- package/skills/msstore-cli/LICENSE.md +21 -0
- package/skills/msstore-cli/SKILL.md +600 -0
- package/skills/msstore-cli/SYNC.md +5 -0
- package/skills/multi-stage-dockerfile/LICENSE.md +21 -0
- package/skills/multi-stage-dockerfile/SKILL.md +46 -0
- package/skills/multi-stage-dockerfile/SYNC.md +5 -0
- package/skills/my-issues/LICENSE.md +21 -0
- package/skills/my-issues/SKILL.md +8 -0
- package/skills/my-issues/SYNC.md +5 -0
- package/skills/my-pull-requests/LICENSE.md +21 -0
- package/skills/my-pull-requests/SKILL.md +14 -0
- package/skills/my-pull-requests/SYNC.md +5 -0
- package/skills/nano-banana-pro-openrouter/LICENSE.md +21 -0
- package/skills/nano-banana-pro-openrouter/SKILL.md +74 -0
- package/skills/nano-banana-pro-openrouter/SYNC.md +5 -0
- package/skills/nano-banana-pro-openrouter/assets/SYSTEM_TEMPLATE +14 -0
- package/skills/nano-banana-pro-openrouter/scripts/generate_image.py +191 -0
- package/skills/napkin/LICENSE.md +21 -0
- package/skills/napkin/SKILL.md +154 -0
- package/skills/napkin/SYNC.md +5 -0
- package/skills/napkin/assets/napkin.html +2019 -0
- package/skills/napkin/assets/step1-activate.svg +107 -0
- package/skills/napkin/assets/step2-whiteboard.svg +157 -0
- package/skills/napkin/assets/step3-draw.svg +143 -0
- package/skills/napkin/assets/step4-share.svg +98 -0
- package/skills/napkin/assets/step5-response.svg +112 -0
- package/skills/next-intl-add-language/LICENSE.md +21 -0
- package/skills/next-intl-add-language/SKILL.md +19 -0
- package/skills/next-intl-add-language/SYNC.md +5 -0
- package/skills/noob-mode/LICENSE.md +21 -0
- package/skills/noob-mode/SKILL.md +263 -0
- package/skills/noob-mode/SYNC.md +5 -0
- package/skills/noob-mode/references/examples.md +418 -0
- package/skills/noob-mode/references/glossary.md +368 -0
- package/skills/nuget-manager/LICENSE.md +21 -0
- package/skills/nuget-manager/SKILL.md +68 -0
- package/skills/nuget-manager/SYNC.md +5 -0
- package/skills/oo-component-documentation/LICENSE.md +21 -0
- package/skills/oo-component-documentation/SKILL.md +74 -0
- package/skills/oo-component-documentation/SYNC.md +5 -0
- package/skills/oo-component-documentation/assets/documentation-template.md +97 -0
- package/skills/oo-component-documentation/references/create-mode.md +32 -0
- package/skills/oo-component-documentation/references/update-mode.md +32 -0
- package/skills/openapi-to-application-code/LICENSE.md +21 -0
- package/skills/openapi-to-application-code/SKILL.md +112 -0
- package/skills/openapi-to-application-code/SYNC.md +5 -0
- package/skills/pdftk-server/LICENSE.md +21 -0
- package/skills/pdftk-server/SKILL.md +162 -0
- package/skills/pdftk-server/SYNC.md +5 -0
- package/skills/pdftk-server/references/download.md +75 -0
- package/skills/pdftk-server/references/pdftk-cli-examples.md +193 -0
- package/skills/pdftk-server/references/pdftk-man-page.md +232 -0
- package/skills/pdftk-server/references/pdftk-server-license.md +25 -0
- package/skills/pdftk-server/references/third-party-materials.md +103 -0
- package/skills/penpot-uiux-design/LICENSE.md +21 -0
- package/skills/penpot-uiux-design/SKILL.md +342 -0
- package/skills/penpot-uiux-design/SYNC.md +5 -0
- package/skills/penpot-uiux-design/references/accessibility.md +329 -0
- package/skills/penpot-uiux-design/references/component-patterns.md +339 -0
- package/skills/penpot-uiux-design/references/platform-guidelines.md +367 -0
- package/skills/penpot-uiux-design/references/setup-troubleshooting.md +328 -0
- package/skills/php-mcp-server-generator/LICENSE.md +21 -0
- package/skills/php-mcp-server-generator/SKILL.md +522 -0
- package/skills/php-mcp-server-generator/SYNC.md +5 -0
- package/skills/planning-oracle-to-postgres-migration-integration-testing/LICENSE.md +21 -0
- package/skills/planning-oracle-to-postgres-migration-integration-testing/SKILL.md +44 -0
- package/skills/planning-oracle-to-postgres-migration-integration-testing/SYNC.md +5 -0
- package/skills/plantuml-ascii/LICENSE.md +21 -0
- package/skills/plantuml-ascii/SKILL.md +305 -0
- package/skills/plantuml-ascii/SYNC.md +5 -0
- package/skills/playwright-automation-fill-in-form/LICENSE.md +21 -0
- package/skills/playwright-automation-fill-in-form/SKILL.md +28 -0
- package/skills/playwright-automation-fill-in-form/SYNC.md +5 -0
- package/skills/playwright-explore-website/LICENSE.md +21 -0
- package/skills/playwright-explore-website/SKILL.md +17 -0
- package/skills/playwright-explore-website/SYNC.md +5 -0
- package/skills/playwright-generate-test/LICENSE.md +21 -0
- package/skills/playwright-generate-test/SKILL.md +17 -0
- package/skills/playwright-generate-test/SYNC.md +5 -0
- package/skills/polyglot-test-agent/LICENSE.md +21 -0
- package/skills/polyglot-test-agent/SKILL.md +161 -0
- package/skills/polyglot-test-agent/SYNC.md +5 -0
- package/skills/polyglot-test-agent/unit-test-generation.prompt.md +155 -0
- package/skills/postgresql-code-review/LICENSE.md +21 -0
- package/skills/postgresql-code-review/SKILL.md +212 -0
- package/skills/postgresql-code-review/SYNC.md +5 -0
- package/skills/postgresql-optimization/LICENSE.md +21 -0
- package/skills/postgresql-optimization/SKILL.md +404 -0
- package/skills/postgresql-optimization/SYNC.md +5 -0
- package/skills/power-apps-code-app-scaffold/LICENSE.md +21 -0
- package/skills/power-apps-code-app-scaffold/SKILL.md +146 -0
- package/skills/power-apps-code-app-scaffold/SYNC.md +5 -0
- package/skills/power-bi-dax-optimization/LICENSE.md +21 -0
- package/skills/power-bi-dax-optimization/SKILL.md +173 -0
- package/skills/power-bi-dax-optimization/SYNC.md +5 -0
- package/skills/power-bi-model-design-review/LICENSE.md +21 -0
- package/skills/power-bi-model-design-review/SKILL.md +403 -0
- package/skills/power-bi-model-design-review/SYNC.md +5 -0
- package/skills/power-bi-performance-troubleshooting/LICENSE.md +21 -0
- package/skills/power-bi-performance-troubleshooting/SKILL.md +382 -0
- package/skills/power-bi-performance-troubleshooting/SYNC.md +5 -0
- package/skills/power-bi-report-design-consultation/LICENSE.md +21 -0
- package/skills/power-bi-report-design-consultation/SKILL.md +351 -0
- package/skills/power-bi-report-design-consultation/SYNC.md +5 -0
- package/skills/power-platform-mcp-connector-suite/LICENSE.md +21 -0
- package/skills/power-platform-mcp-connector-suite/SKILL.md +156 -0
- package/skills/power-platform-mcp-connector-suite/SYNC.md +5 -0
- package/skills/powerbi-modeling/LICENSE.md +21 -0
- package/skills/powerbi-modeling/SKILL.md +153 -0
- package/skills/powerbi-modeling/SYNC.md +5 -0
- package/skills/powerbi-modeling/references/MEASURES-DAX.md +195 -0
- package/skills/powerbi-modeling/references/PERFORMANCE.md +215 -0
- package/skills/powerbi-modeling/references/RELATIONSHIPS.md +147 -0
- package/skills/powerbi-modeling/references/RLS.md +226 -0
- package/skills/powerbi-modeling/references/STAR-SCHEMA.md +103 -0
- package/skills/prd/LICENSE.md +21 -0
- package/skills/prd/SKILL.md +143 -0
- package/skills/prd/SYNC.md +5 -0
- package/skills/premium-frontend-ui/LICENSE.md +21 -0
- package/skills/premium-frontend-ui/SKILL.md +110 -0
- package/skills/premium-frontend-ui/SYNC.md +5 -0
- package/skills/project-workflow-analysis-blueprint-generator/LICENSE.md +21 -0
- package/skills/project-workflow-analysis-blueprint-generator/SKILL.md +293 -0
- package/skills/project-workflow-analysis-blueprint-generator/SYNC.md +5 -0
- package/skills/prompt-builder/LICENSE.md +21 -0
- package/skills/prompt-builder/SKILL.md +141 -0
- package/skills/prompt-builder/SYNC.md +5 -0
- package/skills/publish-to-pages/LICENSE.md +21 -0
- package/skills/publish-to-pages/SKILL.md +107 -0
- package/skills/publish-to-pages/SYNC.md +5 -0
- package/skills/publish-to-pages/scripts/convert-pdf.py +176 -0
- package/skills/publish-to-pages/scripts/convert-pptx.py +376 -0
- package/skills/publish-to-pages/scripts/publish.sh +51 -0
- package/skills/pytest-coverage/LICENSE.md +21 -0
- package/skills/pytest-coverage/SKILL.md +28 -0
- package/skills/pytest-coverage/SYNC.md +5 -0
- package/skills/python-mcp-server-generator/LICENSE.md +21 -0
- package/skills/python-mcp-server-generator/SKILL.md +105 -0
- package/skills/python-mcp-server-generator/SYNC.md +5 -0
- package/skills/quasi-coder/LICENSE.md +21 -0
- package/skills/quasi-coder/SKILL.md +369 -0
- package/skills/quasi-coder/SYNC.md +5 -0
- package/skills/readme-blueprint-generator/LICENSE.md +21 -0
- package/skills/readme-blueprint-generator/SKILL.md +78 -0
- package/skills/readme-blueprint-generator/SYNC.md +5 -0
- package/skills/refactor/LICENSE.md +21 -0
- package/skills/refactor/SKILL.md +645 -0
- package/skills/refactor/SYNC.md +5 -0
- package/skills/refactor-method-complexity-reduce/LICENSE.md +21 -0
- package/skills/refactor-method-complexity-reduce/SKILL.md +98 -0
- package/skills/refactor-method-complexity-reduce/SYNC.md +5 -0
- package/skills/refactor-plan/LICENSE.md +21 -0
- package/skills/refactor-plan/SKILL.md +65 -0
- package/skills/refactor-plan/SYNC.md +5 -0
- package/skills/remember/LICENSE.md +21 -0
- package/skills/remember/SKILL.md +126 -0
- package/skills/remember/SYNC.md +5 -0
- package/skills/remember-interactive-programming/LICENSE.md +21 -0
- package/skills/remember-interactive-programming/SKILL.md +13 -0
- package/skills/remember-interactive-programming/SYNC.md +5 -0
- package/skills/repo-story-time/LICENSE.md +21 -0
- package/skills/repo-story-time/SKILL.md +154 -0
- package/skills/repo-story-time/SYNC.md +5 -0
- package/skills/review-and-refactor/LICENSE.md +21 -0
- package/skills/review-and-refactor/SKILL.md +15 -0
- package/skills/review-and-refactor/SYNC.md +5 -0
- package/skills/reviewing-oracle-to-postgres-migration/LICENSE.md +21 -0
- package/skills/reviewing-oracle-to-postgres-migration/SKILL.md +67 -0
- package/skills/reviewing-oracle-to-postgres-migration/SYNC.md +5 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/REFERENCE.md +13 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/empty-strings-handling.md +69 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/no-data-found-exceptions.md +99 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/oracle-parentheses-from-clause.md +190 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-sorting.md +51 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-timestamp-timezone.md +187 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-to-char-numeric.md +145 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-type-coercion.md +182 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/postgres-concurrent-transactions.md +259 -0
- package/skills/reviewing-oracle-to-postgres-migration/references/postgres-refcursor-handling.md +148 -0
- package/skills/ruby-mcp-server-generator/LICENSE.md +21 -0
- package/skills/ruby-mcp-server-generator/SKILL.md +660 -0
- package/skills/ruby-mcp-server-generator/SYNC.md +5 -0
- package/skills/rust-mcp-server-generator/LICENSE.md +21 -0
- package/skills/rust-mcp-server-generator/SKILL.md +577 -0
- package/skills/rust-mcp-server-generator/SYNC.md +5 -0
- package/skills/sandbox-npm-install/LICENSE.md +21 -0
- package/skills/sandbox-npm-install/SKILL.md +80 -0
- package/skills/sandbox-npm-install/SYNC.md +5 -0
- package/skills/sandbox-npm-install/scripts/install.sh +193 -0
- package/skills/scaffolding-oracle-to-postgres-migration-test-project/LICENSE.md +21 -0
- package/skills/scaffolding-oracle-to-postgres-migration-test-project/SKILL.md +54 -0
- package/skills/scaffolding-oracle-to-postgres-migration-test-project/SYNC.md +5 -0
- package/skills/scoutqa-test/LICENSE.md +21 -0
- package/skills/scoutqa-test/SKILL.md +375 -0
- package/skills/scoutqa-test/SYNC.md +5 -0
- package/skills/secret-scanning/LICENSE.md +21 -0
- package/skills/secret-scanning/SKILL.md +224 -0
- package/skills/secret-scanning/SYNC.md +5 -0
- package/skills/secret-scanning/references/alerts-and-remediation.md +245 -0
- package/skills/secret-scanning/references/custom-patterns.md +158 -0
- package/skills/secret-scanning/references/push-protection.md +164 -0
- package/skills/semantic-kernel/LICENSE.md +21 -0
- package/skills/semantic-kernel/SKILL.md +56 -0
- package/skills/semantic-kernel/SYNC.md +5 -0
- package/skills/semantic-kernel/references/dotnet.md +15 -0
- package/skills/semantic-kernel/references/python.md +15 -0
- package/skills/shuffle-json-data/LICENSE.md +21 -0
- package/skills/shuffle-json-data/SKILL.md +150 -0
- package/skills/shuffle-json-data/SYNC.md +5 -0
- package/skills/snowflake-semanticview/LICENSE.md +21 -0
- package/skills/snowflake-semanticview/SKILL.md +83 -0
- package/skills/snowflake-semanticview/SYNC.md +5 -0
- package/skills/sponsor-finder/LICENSE.md +21 -0
- package/skills/sponsor-finder/SKILL.md +258 -0
- package/skills/sponsor-finder/SYNC.md +5 -0
- package/skills/spring-boot-testing/LICENSE.md +21 -0
- package/skills/spring-boot-testing/SKILL.md +189 -0
- package/skills/spring-boot-testing/SYNC.md +5 -0
- package/skills/spring-boot-testing/references/assertj-basics.md +207 -0
- package/skills/spring-boot-testing/references/assertj-collections.md +183 -0
- package/skills/spring-boot-testing/references/context-caching.md +115 -0
- package/skills/spring-boot-testing/references/datajpatest.md +197 -0
- package/skills/spring-boot-testing/references/instancio.md +230 -0
- package/skills/spring-boot-testing/references/mockitobean.md +232 -0
- package/skills/spring-boot-testing/references/mockmvc-classic.md +206 -0
- package/skills/spring-boot-testing/references/mockmvc-tester.md +311 -0
- package/skills/spring-boot-testing/references/restclienttest.md +227 -0
- package/skills/spring-boot-testing/references/resttestclient.md +278 -0
- package/skills/spring-boot-testing/references/sb4-migration.md +181 -0
- package/skills/spring-boot-testing/references/test-slices-overview.md +203 -0
- package/skills/spring-boot-testing/references/testcontainers-jdbc.md +234 -0
- package/skills/spring-boot-testing/references/webmvctest.md +177 -0
- package/skills/sql-code-review/LICENSE.md +21 -0
- package/skills/sql-code-review/SKILL.md +301 -0
- package/skills/sql-code-review/SYNC.md +5 -0
- package/skills/sql-optimization/LICENSE.md +21 -0
- package/skills/sql-optimization/SKILL.md +296 -0
- package/skills/sql-optimization/SYNC.md +5 -0
- package/skills/structured-autonomy-generate/LICENSE.md +21 -0
- package/skills/structured-autonomy-generate/SKILL.md +125 -0
- package/skills/structured-autonomy-generate/SYNC.md +5 -0
- package/skills/structured-autonomy-implement/LICENSE.md +21 -0
- package/skills/structured-autonomy-implement/SKILL.md +19 -0
- package/skills/structured-autonomy-implement/SYNC.md +5 -0
- package/skills/structured-autonomy-plan/LICENSE.md +21 -0
- package/skills/structured-autonomy-plan/SKILL.md +81 -0
- package/skills/structured-autonomy-plan/SYNC.md +5 -0
- package/skills/suggest-awesome-github-copilot-agents/LICENSE.md +21 -0
- package/skills/suggest-awesome-github-copilot-agents/SKILL.md +106 -0
- package/skills/suggest-awesome-github-copilot-agents/SYNC.md +5 -0
- package/skills/suggest-awesome-github-copilot-instructions/LICENSE.md +21 -0
- package/skills/suggest-awesome-github-copilot-instructions/SKILL.md +122 -0
- package/skills/suggest-awesome-github-copilot-instructions/SYNC.md +5 -0
- package/skills/suggest-awesome-github-copilot-skills/LICENSE.md +21 -0
- package/skills/suggest-awesome-github-copilot-skills/SKILL.md +130 -0
- package/skills/suggest-awesome-github-copilot-skills/SYNC.md +5 -0
- package/skills/swift-mcp-server-generator/LICENSE.md +21 -0
- package/skills/swift-mcp-server-generator/SKILL.md +669 -0
- package/skills/swift-mcp-server-generator/SYNC.md +5 -0
- package/skills/technology-stack-blueprint-generator/LICENSE.md +21 -0
- package/skills/technology-stack-blueprint-generator/SKILL.md +242 -0
- package/skills/technology-stack-blueprint-generator/SYNC.md +5 -0
- package/skills/terraform-azurerm-set-diff-analyzer/LICENSE.md +21 -0
- package/skills/terraform-azurerm-set-diff-analyzer/SKILL.md +48 -0
- package/skills/terraform-azurerm-set-diff-analyzer/SYNC.md +5 -0
- package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.json +154 -0
- package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.md +145 -0
- package/skills/terraform-azurerm-set-diff-analyzer/scripts/README.md +205 -0
- package/skills/terraform-azurerm-set-diff-analyzer/scripts/analyze_plan.py +940 -0
- package/skills/tldr-prompt/LICENSE.md +21 -0
- package/skills/tldr-prompt/SKILL.md +304 -0
- package/skills/tldr-prompt/SYNC.md +5 -0
- package/skills/transloadit-media-processing/LICENSE.md +21 -0
- package/skills/transloadit-media-processing/SKILL.md +194 -0
- package/skills/transloadit-media-processing/SYNC.md +5 -0
- package/skills/typescript-mcp-server-generator/LICENSE.md +21 -0
- package/skills/typescript-mcp-server-generator/SKILL.md +90 -0
- package/skills/typescript-mcp-server-generator/SYNC.md +5 -0
- package/skills/typespec-api-operations/LICENSE.md +21 -0
- package/skills/typespec-api-operations/SKILL.md +418 -0
- package/skills/typespec-api-operations/SYNC.md +5 -0
- package/skills/typespec-create-agent/LICENSE.md +21 -0
- package/skills/typespec-create-agent/SKILL.md +91 -0
- package/skills/typespec-create-agent/SYNC.md +5 -0
- package/skills/typespec-create-api-plugin/LICENSE.md +21 -0
- package/skills/typespec-create-api-plugin/SKILL.md +164 -0
- package/skills/typespec-create-api-plugin/SYNC.md +5 -0
- package/skills/unit-test-vue-pinia/LICENSE.md +21 -0
- package/skills/unit-test-vue-pinia/SKILL.md +198 -0
- package/skills/unit-test-vue-pinia/SYNC.md +5 -0
- package/skills/unit-test-vue-pinia/references/pinia-patterns.md +95 -0
- package/skills/update-avm-modules-in-bicep/LICENSE.md +21 -0
- package/skills/update-avm-modules-in-bicep/SKILL.md +60 -0
- package/skills/update-avm-modules-in-bicep/SYNC.md +5 -0
- package/skills/update-implementation-plan/LICENSE.md +21 -0
- package/skills/update-implementation-plan/SKILL.md +157 -0
- package/skills/update-implementation-plan/SYNC.md +5 -0
- package/skills/update-llms/LICENSE.md +21 -0
- package/skills/update-llms/SKILL.md +216 -0
- package/skills/update-llms/SYNC.md +5 -0
- package/skills/update-markdown-file-index/LICENSE.md +21 -0
- package/skills/update-markdown-file-index/SKILL.md +76 -0
- package/skills/update-markdown-file-index/SYNC.md +5 -0
- package/skills/update-specification/LICENSE.md +21 -0
- package/skills/update-specification/SKILL.md +127 -0
- package/skills/update-specification/SYNC.md +5 -0
- package/skills/vscode-ext-commands/LICENSE.md +21 -0
- package/skills/vscode-ext-commands/SKILL.md +21 -0
- package/skills/vscode-ext-commands/SYNC.md +5 -0
- package/skills/vscode-ext-localization/LICENSE.md +21 -0
- package/skills/vscode-ext-localization/SKILL.md +25 -0
- package/skills/vscode-ext-localization/SYNC.md +5 -0
- package/skills/web-coder/LICENSE.md +21 -0
- package/skills/web-coder/SKILL.md +563 -0
- package/skills/web-coder/SYNC.md +5 -0
- package/skills/web-coder/references/accessibility.md +346 -0
- package/skills/web-coder/references/architecture-patterns.md +625 -0
- package/skills/web-coder/references/browsers-engines.md +358 -0
- package/skills/web-coder/references/css-styling.md +696 -0
- package/skills/web-coder/references/data-formats-encoding.md +411 -0
- package/skills/web-coder/references/development-tools.md +502 -0
- package/skills/web-coder/references/glossary.md +649 -0
- package/skills/web-coder/references/html-markup.md +387 -0
- package/skills/web-coder/references/http-networking.md +538 -0
- package/skills/web-coder/references/javascript-programming.md +807 -0
- package/skills/web-coder/references/media-graphics.md +504 -0
- package/skills/web-coder/references/performance-optimization.md +546 -0
- package/skills/web-coder/references/security-authentication.md +603 -0
- package/skills/web-coder/references/servers-infrastructure.md +615 -0
- package/skills/web-coder/references/web-apis-dom.md +654 -0
- package/skills/web-coder/references/web-protocols-standards.md +265 -0
- package/skills/web-design-reviewer/LICENSE.md +21 -0
- package/skills/web-design-reviewer/SKILL.md +368 -0
- package/skills/web-design-reviewer/SYNC.md +5 -0
- package/skills/web-design-reviewer/references/framework-fixes.md +475 -0
- package/skills/web-design-reviewer/references/visual-checklist.md +236 -0
- package/skills/webapp-testing/LICENSE.md +21 -0
- package/skills/webapp-testing/SKILL.md +104 -67
- package/skills/webapp-testing/SYNC.md +2 -2
- package/skills/webapp-testing/assets/test-helper.js +56 -0
- package/skills/what-context-needed/LICENSE.md +21 -0
- package/skills/what-context-needed/SKILL.md +39 -0
- package/skills/what-context-needed/SYNC.md +5 -0
- package/skills/winapp-cli/LICENSE.md +21 -0
- package/skills/winapp-cli/SKILL.md +217 -0
- package/skills/winapp-cli/SYNC.md +5 -0
- package/skills/winmd-api-search/LICENSE.md +21 -0
- package/skills/winmd-api-search/LICENSE.txt +21 -0
- package/skills/winmd-api-search/SKILL.md +192 -0
- package/skills/winmd-api-search/SYNC.md +5 -0
- package/skills/winmd-api-search/scripts/Invoke-WinMdQuery.ps1 +505 -0
- package/skills/winmd-api-search/scripts/Update-WinMdCache.ps1 +208 -0
- package/skills/winmd-api-search/scripts/cache-generator/CacheGenerator.csproj +29 -0
- package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.props +3 -0
- package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.targets +3 -0
- package/skills/winmd-api-search/scripts/cache-generator/Directory.Packages.props +3 -0
- package/skills/winmd-api-search/scripts/cache-generator/Program.cs +1222 -0
- package/skills/winui3-migration-guide/LICENSE.md +21 -0
- package/skills/winui3-migration-guide/SKILL.md +277 -0
- package/skills/winui3-migration-guide/SYNC.md +5 -0
- package/skills/workiq-copilot/LICENSE.md +21 -0
- package/skills/workiq-copilot/SKILL.md +98 -0
- package/skills/workiq-copilot/SYNC.md +5 -0
- package/skills/write-coding-standards-from-file/LICENSE.md +21 -0
- package/skills/write-coding-standards-from-file/SKILL.md +316 -0
- package/skills/write-coding-standards-from-file/SYNC.md +5 -0
- package/skills/webapp-testing/LICENSE.txt +0 -202
- package/skills/webapp-testing/examples/console_logging.py +0 -35
- package/skills/webapp-testing/examples/element_discovery.py +0 -40
- package/skills/webapp-testing/examples/static_html_automation.py +0 -33
- package/skills/webapp-testing/scripts/with_server.py +0 -106
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Best Practices for Pattern Selection
|
|
2
|
+
|
|
3
|
+
## Selecting Appropriate Patterns
|
|
4
|
+
|
|
5
|
+
- **Understand the problem**: Clearly identify the specific challenge before choosing a pattern
|
|
6
|
+
- **Consider trade-offs**: Each pattern introduces complexity and trade-offs
|
|
7
|
+
- **Combine patterns**: Many patterns work better together (Circuit Breaker + Retry, CQRS + Event Sourcing)
|
|
8
|
+
- **Start simple**: Don't over-engineer; apply patterns when the need is clear
|
|
9
|
+
- **Platform-specific**: Consider Azure services that implement patterns natively
|
|
10
|
+
|
|
11
|
+
## Well-Architected Framework Alignment
|
|
12
|
+
|
|
13
|
+
Map selected patterns to Well-Architected Framework pillars:
|
|
14
|
+
- **Reliability**: Circuit Breaker, Bulkhead, Retry, Health Endpoint Monitoring
|
|
15
|
+
- **Security**: Federated Identity, Valet Key, Gateway Offloading, Quarantine
|
|
16
|
+
- **Cost Optimization**: Compute Resource Consolidation, Static Content Hosting, Throttling
|
|
17
|
+
- **Operational Excellence**: External Configuration Store, Sidecar, Deployment Stamps
|
|
18
|
+
- **Performance Efficiency**: Cache-Aside, CQRS, Materialized View, Sharding
|
|
19
|
+
|
|
20
|
+
## Pattern Documentation
|
|
21
|
+
|
|
22
|
+
When implementing patterns, document:
|
|
23
|
+
- Which pattern is being used and why
|
|
24
|
+
- Trade-offs accepted
|
|
25
|
+
- Configuration and tuning parameters
|
|
26
|
+
- Monitoring and observability approach
|
|
27
|
+
- Failure scenarios and recovery procedures
|
|
28
|
+
|
|
29
|
+
## Monitoring Patterns
|
|
30
|
+
|
|
31
|
+
- Implement comprehensive observability for all patterns
|
|
32
|
+
- Track pattern-specific metrics (circuit breaker state, cache hit ratio, queue depth)
|
|
33
|
+
- Use distributed tracing for patterns involving multiple services
|
|
34
|
+
- Alert on pattern degradation (circuit frequently open, high retry rates)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Deployment & Operational Patterns
|
|
2
|
+
|
|
3
|
+
## Compute Resource Consolidation Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Multiple tasks consume resources inefficiently when isolated.
|
|
6
|
+
|
|
7
|
+
**Solution**: Consolidate multiple tasks or operations into a single computational unit.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Reducing infrastructure costs
|
|
11
|
+
- Improving resource utilization
|
|
12
|
+
- Simplifying deployment and management
|
|
13
|
+
|
|
14
|
+
**Implementation Considerations**:
|
|
15
|
+
- Group related tasks with similar scaling requirements
|
|
16
|
+
- Use containers or microservices hosting
|
|
17
|
+
- Monitor resource usage per task
|
|
18
|
+
- Ensure isolation where needed for security/reliability
|
|
19
|
+
- Balance between consolidation and failure isolation
|
|
20
|
+
|
|
21
|
+
## Deployment Stamps Pattern
|
|
22
|
+
|
|
23
|
+
**Problem**: Applications need to scale across regions or customer segments.
|
|
24
|
+
|
|
25
|
+
**Solution**: Deploy multiple independent copies of application components (stamps), including data stores, to serve different regions or customer segments.
|
|
26
|
+
|
|
27
|
+
**When to Use**:
|
|
28
|
+
- Scaling beyond single stamp limits
|
|
29
|
+
- Providing regional data residency
|
|
30
|
+
- Isolating tenants for security or performance
|
|
31
|
+
|
|
32
|
+
**Implementation Considerations**:
|
|
33
|
+
- Each stamp is a complete, self-contained deployment
|
|
34
|
+
- Deploy stamps across regions for geo-distribution
|
|
35
|
+
- Route requests to appropriate stamp
|
|
36
|
+
- Manage stamp deployments consistently (IaC)
|
|
37
|
+
- Plan for stamp capacity and when to add new stamps
|
|
38
|
+
|
|
39
|
+
## External Configuration Store Pattern
|
|
40
|
+
|
|
41
|
+
**Problem**: Application configuration is embedded in deployment packages.
|
|
42
|
+
|
|
43
|
+
**Solution**: Move configuration information out of the application deployment package to a centralized location.
|
|
44
|
+
|
|
45
|
+
**When to Use**:
|
|
46
|
+
- Managing configuration across multiple environments
|
|
47
|
+
- Updating configuration without redeployment
|
|
48
|
+
- Sharing configuration across multiple applications
|
|
49
|
+
|
|
50
|
+
**Implementation Considerations**:
|
|
51
|
+
- Use Azure App Configuration, Key Vault, or similar services
|
|
52
|
+
- Implement configuration change notifications
|
|
53
|
+
- Cache configuration locally to reduce dependencies
|
|
54
|
+
- Secure sensitive configuration (connection strings, secrets)
|
|
55
|
+
- Version configuration changes
|
|
56
|
+
|
|
57
|
+
## Geode Pattern
|
|
58
|
+
|
|
59
|
+
**Problem**: Users in different regions experience high latency.
|
|
60
|
+
|
|
61
|
+
**Solution**: Deploy backend services into a set of geographical nodes, each of which can service any client request in any region.
|
|
62
|
+
|
|
63
|
+
**When to Use**:
|
|
64
|
+
- Reducing latency for globally distributed users
|
|
65
|
+
- Providing high availability across regions
|
|
66
|
+
- Implementing active-active geo-distribution
|
|
67
|
+
|
|
68
|
+
**Implementation Considerations**:
|
|
69
|
+
- Deploy application instances in multiple regions
|
|
70
|
+
- Replicate data globally (consider consistency implications)
|
|
71
|
+
- Route users to nearest healthy region
|
|
72
|
+
- Implement conflict resolution for multi-master writes
|
|
73
|
+
- Monitor regional health and performance
|
|
74
|
+
|
|
75
|
+
## Static Content Hosting Pattern
|
|
76
|
+
|
|
77
|
+
**Problem**: Serving static content from compute instances is inefficient.
|
|
78
|
+
|
|
79
|
+
**Solution**: Deploy static content to a cloud-based storage service that can deliver content directly to the client.
|
|
80
|
+
|
|
81
|
+
**When to Use**:
|
|
82
|
+
- Hosting images, videos, CSS, JavaScript files
|
|
83
|
+
- Reducing load on web servers
|
|
84
|
+
- Improving content delivery performance
|
|
85
|
+
|
|
86
|
+
**Implementation Considerations**:
|
|
87
|
+
- Use blob storage, CDN, or static website hosting
|
|
88
|
+
- Enable CORS for cross-origin access
|
|
89
|
+
- Implement caching headers appropriately
|
|
90
|
+
- Use CDN for global content distribution
|
|
91
|
+
- Secure content with SAS tokens if needed
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Event-Driven Architecture Patterns
|
|
2
|
+
|
|
3
|
+
## Event Sourcing Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Need complete audit trail of all changes to application state.
|
|
6
|
+
|
|
7
|
+
**Solution**: Use an append-only store to record the full series of events that describe actions taken on data in a domain.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Requiring complete audit trail
|
|
11
|
+
- Implementing temporal queries (point-in-time state)
|
|
12
|
+
- Supporting event replay and debugging
|
|
13
|
+
- Implementing CQRS with eventual consistency
|
|
14
|
+
|
|
15
|
+
**Implementation Considerations**:
|
|
16
|
+
- Store events in append-only log
|
|
17
|
+
- Rebuild current state by replaying events
|
|
18
|
+
- Implement event versioning strategy
|
|
19
|
+
- Handle event schema evolution
|
|
20
|
+
- Consider storage growth over time
|
|
21
|
+
- Implement snapshots for performance
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Messaging & Integration Patterns
|
|
2
|
+
|
|
3
|
+
## Choreography Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Central orchestrators create coupling and single points of failure.
|
|
6
|
+
|
|
7
|
+
**Solution**: Let individual services decide when and how a business operation is processed through event-driven collaboration.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Loosely coupled microservices architectures
|
|
11
|
+
- Event-driven systems
|
|
12
|
+
- Avoiding central orchestration bottlenecks
|
|
13
|
+
|
|
14
|
+
**Implementation Considerations**:
|
|
15
|
+
- Use publish-subscribe messaging for event distribution
|
|
16
|
+
- Each service publishes domain events and subscribes to relevant events
|
|
17
|
+
- Implement saga pattern for complex workflows
|
|
18
|
+
- Ensure idempotency as events may be delivered multiple times
|
|
19
|
+
- Provide comprehensive logging and distributed tracing
|
|
20
|
+
|
|
21
|
+
## Claim Check Pattern
|
|
22
|
+
|
|
23
|
+
**Problem**: Large messages can overwhelm message infrastructure.
|
|
24
|
+
|
|
25
|
+
**Solution**: Split a large message into a claim check (reference) and a payload stored separately.
|
|
26
|
+
|
|
27
|
+
**When to Use**:
|
|
28
|
+
- Messages exceed messaging system size limits
|
|
29
|
+
- Reducing message bus load
|
|
30
|
+
- Handling large file transfers asynchronously
|
|
31
|
+
|
|
32
|
+
**Implementation Considerations**:
|
|
33
|
+
- Store payload in blob storage or database
|
|
34
|
+
- Send only reference/URI through message bus
|
|
35
|
+
- Implement expiration policies for stored payloads
|
|
36
|
+
- Handle access control for payload storage
|
|
37
|
+
- Consider costs of storage vs message transmission
|
|
38
|
+
|
|
39
|
+
## Competing Consumers Pattern
|
|
40
|
+
|
|
41
|
+
**Problem**: Single consumer may not keep up with message volume.
|
|
42
|
+
|
|
43
|
+
**Solution**: Enable multiple concurrent consumers to process messages from the same messaging channel.
|
|
44
|
+
|
|
45
|
+
**When to Use**:
|
|
46
|
+
- High message throughput requirements
|
|
47
|
+
- Scaling message processing horizontally
|
|
48
|
+
- Load balancing across multiple instances
|
|
49
|
+
|
|
50
|
+
**Implementation Considerations**:
|
|
51
|
+
- Ensure messages can be processed in any order
|
|
52
|
+
- Use competing consumer queues (Service Bus, RabbitMQ)
|
|
53
|
+
- Implement idempotency for message handlers
|
|
54
|
+
- Handle poison messages with retry and dead-letter policies
|
|
55
|
+
- Scale consumer count based on queue depth
|
|
56
|
+
|
|
57
|
+
## Messaging Bridge Pattern
|
|
58
|
+
|
|
59
|
+
**Problem**: Different systems use incompatible messaging technologies.
|
|
60
|
+
|
|
61
|
+
**Solution**: Build an intermediary to enable communication between messaging systems that are otherwise incompatible.
|
|
62
|
+
|
|
63
|
+
**When to Use**:
|
|
64
|
+
- Migrating between messaging systems
|
|
65
|
+
- Integrating with legacy systems
|
|
66
|
+
- Connecting cloud and on-premises messaging
|
|
67
|
+
|
|
68
|
+
**Implementation Considerations**:
|
|
69
|
+
- Transform message formats between systems
|
|
70
|
+
- Handle protocol differences
|
|
71
|
+
- Maintain message ordering if required
|
|
72
|
+
- Implement error handling and retry logic
|
|
73
|
+
- Monitor bridge performance and health
|
|
74
|
+
|
|
75
|
+
## Pipes and Filters Pattern
|
|
76
|
+
|
|
77
|
+
**Problem**: Complex processing tasks are difficult to maintain and reuse.
|
|
78
|
+
|
|
79
|
+
**Solution**: Break down a task that performs complex processing into a series of separate, reusable elements (filters) connected by channels (pipes).
|
|
80
|
+
|
|
81
|
+
**When to Use**:
|
|
82
|
+
- Processing data streams with multiple transformations
|
|
83
|
+
- Building reusable processing components
|
|
84
|
+
- Enabling parallel processing of independent operations
|
|
85
|
+
|
|
86
|
+
**Implementation Considerations**:
|
|
87
|
+
- Each filter performs a single transformation
|
|
88
|
+
- Connect filters using message queues or streams
|
|
89
|
+
- Enable parallel execution where possible
|
|
90
|
+
- Handle errors within filters or at pipeline level
|
|
91
|
+
- Support filter composition and reordering
|
|
92
|
+
|
|
93
|
+
## Publisher-Subscriber Pattern
|
|
94
|
+
|
|
95
|
+
**Problem**: Applications need to broadcast information to multiple interested consumers.
|
|
96
|
+
|
|
97
|
+
**Solution**: Enable an application to announce events to multiple consumers asynchronously, without coupling senders to receivers.
|
|
98
|
+
|
|
99
|
+
**When to Use**:
|
|
100
|
+
- Broadcasting events to multiple interested parties
|
|
101
|
+
- Decoupling event producers from consumers
|
|
102
|
+
- Implementing event-driven architectures
|
|
103
|
+
|
|
104
|
+
**Implementation Considerations**:
|
|
105
|
+
- Use topic-based or content-based subscriptions
|
|
106
|
+
- Ensure message delivery guarantees match requirements
|
|
107
|
+
- Implement subscription filters for selective consumption
|
|
108
|
+
- Handle consumer failures without affecting publishers
|
|
109
|
+
- Consider message ordering requirements per subscriber
|
|
110
|
+
|
|
111
|
+
## Scheduler Agent Supervisor Pattern
|
|
112
|
+
|
|
113
|
+
**Problem**: Distributed actions need coordination and monitoring.
|
|
114
|
+
|
|
115
|
+
**Solution**: Coordinate a set of actions across distributed services and resources with a supervisor that monitors and manages the workflow.
|
|
116
|
+
|
|
117
|
+
**When to Use**:
|
|
118
|
+
- Orchestrating multi-step workflows
|
|
119
|
+
- Coordinating distributed transactions
|
|
120
|
+
- Implementing resilient long-running processes
|
|
121
|
+
|
|
122
|
+
**Implementation Considerations**:
|
|
123
|
+
- Scheduler dispatches tasks to agents
|
|
124
|
+
- Agents perform work and report status
|
|
125
|
+
- Supervisor monitors progress and handles failures
|
|
126
|
+
- Implement compensation logic for failed steps
|
|
127
|
+
- Maintain state for workflow recovery
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Performance Patterns
|
|
2
|
+
|
|
3
|
+
## Asynchronous Request-Reply Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Client applications expect synchronous responses, but back-end processing is asynchronous.
|
|
6
|
+
|
|
7
|
+
**Solution**: Decouple back-end processing from a front-end host where back-end processing must be asynchronous, but the front end requires a clear response.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Long-running back-end operations
|
|
11
|
+
- Client applications can't wait for synchronous responses
|
|
12
|
+
- Offloading compute-intensive operations from web tier
|
|
13
|
+
|
|
14
|
+
**Implementation Considerations**:
|
|
15
|
+
- Return HTTP 202 (Accepted) with location header for status checking
|
|
16
|
+
- Implement status endpoint for clients to poll
|
|
17
|
+
- Consider webhooks for callback notifications
|
|
18
|
+
- Use correlation IDs to track requests
|
|
19
|
+
- Implement timeouts for long-running operations
|
|
20
|
+
|
|
21
|
+
## Cache-Aside Pattern
|
|
22
|
+
|
|
23
|
+
**Problem**: Applications repeatedly access the same data from a data store.
|
|
24
|
+
|
|
25
|
+
**Solution**: Load data on demand into a cache from a data store when needed.
|
|
26
|
+
|
|
27
|
+
**When to Use**:
|
|
28
|
+
- Frequently accessed, read-heavy data
|
|
29
|
+
- Data that changes infrequently
|
|
30
|
+
- Reducing load on primary data store
|
|
31
|
+
|
|
32
|
+
**Implementation Considerations**:
|
|
33
|
+
- Check cache before accessing data store
|
|
34
|
+
- Load data into cache on cache miss (lazy loading)
|
|
35
|
+
- Set appropriate cache expiration policies
|
|
36
|
+
- Implement cache invalidation strategies
|
|
37
|
+
- Handle cache failures gracefully (fallback to data store)
|
|
38
|
+
- Consider cache coherency in distributed scenarios
|
|
39
|
+
|
|
40
|
+
## CQRS (Command Query Responsibility Segregation) Pattern
|
|
41
|
+
|
|
42
|
+
**Problem**: Read and write workloads have different requirements and scaling needs.
|
|
43
|
+
|
|
44
|
+
**Solution**: Separate operations that read data from those that update data by using distinct interfaces.
|
|
45
|
+
|
|
46
|
+
**When to Use**:
|
|
47
|
+
- Read and write workloads have vastly different performance characteristics
|
|
48
|
+
- Different teams work on read and write sides
|
|
49
|
+
- Need to prevent merge conflicts in collaborative scenarios
|
|
50
|
+
- Complex business logic differs between reads and writes
|
|
51
|
+
|
|
52
|
+
**Implementation Considerations**:
|
|
53
|
+
- Separate read and write models
|
|
54
|
+
- Use event sourcing to synchronize models
|
|
55
|
+
- Scale read and write sides independently
|
|
56
|
+
- Consider eventual consistency implications
|
|
57
|
+
- Implement appropriate security for commands vs queries
|
|
58
|
+
|
|
59
|
+
## Index Table Pattern
|
|
60
|
+
|
|
61
|
+
**Problem**: Queries frequently reference fields that aren't indexed efficiently.
|
|
62
|
+
|
|
63
|
+
**Solution**: Create indexes over the fields in data stores that queries frequently reference.
|
|
64
|
+
|
|
65
|
+
**When to Use**:
|
|
66
|
+
- Improving query performance
|
|
67
|
+
- Supporting multiple query patterns
|
|
68
|
+
- Working with NoSQL databases without native indexing
|
|
69
|
+
|
|
70
|
+
**Implementation Considerations**:
|
|
71
|
+
- Create separate tables/collections optimized for specific queries
|
|
72
|
+
- Maintain indexes asynchronously using events or triggers
|
|
73
|
+
- Consider storage overhead of duplicate data
|
|
74
|
+
- Handle index update failures and inconsistencies
|
|
75
|
+
|
|
76
|
+
## Materialized View Pattern
|
|
77
|
+
|
|
78
|
+
**Problem**: Data is poorly formatted for required query operations.
|
|
79
|
+
|
|
80
|
+
**Solution**: Generate prepopulated views over the data in one or more data stores when the data isn't ideally formatted for query operations.
|
|
81
|
+
|
|
82
|
+
**When to Use**:
|
|
83
|
+
- Complex queries over normalized data
|
|
84
|
+
- Improving read performance for complex joins/aggregations
|
|
85
|
+
- Supporting multiple query patterns efficiently
|
|
86
|
+
|
|
87
|
+
**Implementation Considerations**:
|
|
88
|
+
- Refresh views asynchronously using background jobs or triggers
|
|
89
|
+
- Consider staleness tolerance for materialized data
|
|
90
|
+
- Balance between storage cost and query performance
|
|
91
|
+
- Implement incremental refresh where possible
|
|
92
|
+
|
|
93
|
+
## Priority Queue Pattern
|
|
94
|
+
|
|
95
|
+
**Problem**: Some requests need faster processing than others.
|
|
96
|
+
|
|
97
|
+
**Solution**: Prioritize requests sent to services so that requests with a higher priority are processed more quickly.
|
|
98
|
+
|
|
99
|
+
**When to Use**:
|
|
100
|
+
- Providing different service levels to different customers
|
|
101
|
+
- Processing critical operations before less important ones
|
|
102
|
+
- Managing mixed workloads with varying importance
|
|
103
|
+
|
|
104
|
+
**Implementation Considerations**:
|
|
105
|
+
- Use message priority metadata
|
|
106
|
+
- Implement multiple queues for different priority levels
|
|
107
|
+
- Prevent starvation of low-priority messages
|
|
108
|
+
- Monitor queue depths and processing times per priority
|
|
109
|
+
|
|
110
|
+
## Queue-Based Load Leveling Pattern
|
|
111
|
+
|
|
112
|
+
**Problem**: Intermittent heavy loads can overwhelm services.
|
|
113
|
+
|
|
114
|
+
**Solution**: Use a queue as a buffer between a task and a service to smooth intermittent heavy loads.
|
|
115
|
+
|
|
116
|
+
**When to Use**:
|
|
117
|
+
- Protecting services from traffic spikes
|
|
118
|
+
- Decoupling producers and consumers
|
|
119
|
+
- Enabling asynchronous processing
|
|
120
|
+
|
|
121
|
+
**Implementation Considerations**:
|
|
122
|
+
- Choose appropriate queue technology (Azure Storage Queue, Service Bus, etc.)
|
|
123
|
+
- Monitor queue length to detect saturation
|
|
124
|
+
- Implement auto-scaling based on queue depth
|
|
125
|
+
- Set appropriate message time-to-live (TTL)
|
|
126
|
+
- Handle poison messages with dead-letter queues
|
|
127
|
+
|
|
128
|
+
## Rate Limiting Pattern
|
|
129
|
+
|
|
130
|
+
**Problem**: Service consumption must be controlled to prevent resource exhaustion.
|
|
131
|
+
|
|
132
|
+
**Solution**: Control the consumption of resources by applications, tenants, or services to prevent resource exhaustion and throttling.
|
|
133
|
+
|
|
134
|
+
**When to Use**:
|
|
135
|
+
- Protecting backend services from overload
|
|
136
|
+
- Implementing fair usage policies
|
|
137
|
+
- Preventing one tenant from monopolizing resources
|
|
138
|
+
|
|
139
|
+
**Implementation Considerations**:
|
|
140
|
+
- Implement token bucket, leaky bucket, or fixed window algorithms
|
|
141
|
+
- Return HTTP 429 (Too Many Requests) when limits exceeded
|
|
142
|
+
- Provide Retry-After headers to clients
|
|
143
|
+
- Consider different limits for different clients/tiers
|
|
144
|
+
- Make limits configurable and monitorable
|
|
145
|
+
|
|
146
|
+
## Sharding Pattern
|
|
147
|
+
|
|
148
|
+
**Problem**: A single data store may have limitations in storage capacity and performance.
|
|
149
|
+
|
|
150
|
+
**Solution**: Divide a data store into a set of horizontal partitions or shards.
|
|
151
|
+
|
|
152
|
+
**When to Use**:
|
|
153
|
+
- Scaling beyond single database limits
|
|
154
|
+
- Improving query performance by reducing dataset size
|
|
155
|
+
- Distributing load across multiple databases
|
|
156
|
+
|
|
157
|
+
**Implementation Considerations**:
|
|
158
|
+
- Choose appropriate shard key (hash, range, or list-based)
|
|
159
|
+
- Avoid hot partitions by selecting balanced shard keys
|
|
160
|
+
- Handle cross-shard queries carefully
|
|
161
|
+
- Plan for shard rebalancing and splitting
|
|
162
|
+
- Consider operational complexity of managing multiple shards
|
|
163
|
+
|
|
164
|
+
## Throttling Pattern
|
|
165
|
+
|
|
166
|
+
**Problem**: Resource consumption must be limited to prevent system overload.
|
|
167
|
+
|
|
168
|
+
**Solution**: Control the consumption of resources used by an application, tenant, or service.
|
|
169
|
+
|
|
170
|
+
**When to Use**:
|
|
171
|
+
- Ensuring system operates within defined capacity
|
|
172
|
+
- Preventing resource exhaustion during peak load
|
|
173
|
+
- Enforcing SLA-based resource allocation
|
|
174
|
+
|
|
175
|
+
**Implementation Considerations**:
|
|
176
|
+
- Implement at API gateway or service level
|
|
177
|
+
- Use different strategies: reject requests, queue, or degrade service
|
|
178
|
+
- Return appropriate HTTP status codes (429, 503)
|
|
179
|
+
- Provide clear feedback to clients about throttling
|
|
180
|
+
- Monitor throttling metrics to adjust capacity
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Reliability & Resilience Patterns
|
|
2
|
+
|
|
3
|
+
## Ambassador Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Services need proxy functionality for network requests (logging, monitoring, routing, security).
|
|
6
|
+
|
|
7
|
+
**Solution**: Create helper services that send network requests on behalf of a consumer service or application.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Offloading common client connectivity tasks (monitoring, logging, routing)
|
|
11
|
+
- Supporting legacy applications that can't be easily modified
|
|
12
|
+
- Implementing retry logic, circuit breakers, or timeout handling for remote services
|
|
13
|
+
|
|
14
|
+
**Implementation Considerations**:
|
|
15
|
+
- Deploy ambassador as a sidecar process or container with the application
|
|
16
|
+
- Consider network latency introduced by the proxy layer
|
|
17
|
+
- Ensure ambassador doesn't become a single point of failure
|
|
18
|
+
|
|
19
|
+
## Bulkhead Pattern
|
|
20
|
+
|
|
21
|
+
**Problem**: A failure in one component can cascade and affect the entire system.
|
|
22
|
+
|
|
23
|
+
**Solution**: Isolate elements of an application into pools so that if one fails, the others continue to function.
|
|
24
|
+
|
|
25
|
+
**When to Use**:
|
|
26
|
+
- Isolating critical resources from less critical ones
|
|
27
|
+
- Preventing resource exhaustion in one area from affecting others
|
|
28
|
+
- Partitioning consumers and resources to improve availability
|
|
29
|
+
|
|
30
|
+
**Implementation Considerations**:
|
|
31
|
+
- Separate connection pools for different backends
|
|
32
|
+
- Partition service instances across different groups
|
|
33
|
+
- Use resource limits (CPU, memory, threads) per partition
|
|
34
|
+
- Monitor bulkhead health and capacity
|
|
35
|
+
|
|
36
|
+
## Circuit Breaker Pattern
|
|
37
|
+
|
|
38
|
+
**Problem**: Applications can waste resources attempting operations that are likely to fail.
|
|
39
|
+
|
|
40
|
+
**Solution**: Prevent an application from repeatedly trying to execute an operation that's likely to fail, allowing it to continue without waiting for the fault to be fixed.
|
|
41
|
+
|
|
42
|
+
**When to Use**:
|
|
43
|
+
- Protecting against cascading failures
|
|
44
|
+
- Failing fast when a remote service is unavailable
|
|
45
|
+
- Providing fallback behavior when services are down
|
|
46
|
+
|
|
47
|
+
**Implementation Considerations**:
|
|
48
|
+
- Define threshold for triggering circuit breaker (failures/time window)
|
|
49
|
+
- Implement three states: Closed, Open, Half-Open
|
|
50
|
+
- Set appropriate timeout values for operations
|
|
51
|
+
- Log state transitions and failures for diagnostics
|
|
52
|
+
- Provide meaningful error messages to clients
|
|
53
|
+
|
|
54
|
+
## Compensating Transaction Pattern
|
|
55
|
+
|
|
56
|
+
**Problem**: Distributed transactions are difficult to implement and may not be supported.
|
|
57
|
+
|
|
58
|
+
**Solution**: Undo the work performed by a sequence of steps that collectively form an eventually consistent operation.
|
|
59
|
+
|
|
60
|
+
**When to Use**:
|
|
61
|
+
- Implementing eventual consistency in distributed systems
|
|
62
|
+
- Rolling back multi-step business processes that fail partway through
|
|
63
|
+
- Handling long-running transactions that can't use 2PC
|
|
64
|
+
|
|
65
|
+
**Implementation Considerations**:
|
|
66
|
+
- Define compensating logic for each step in transaction
|
|
67
|
+
- Store enough state to undo operations
|
|
68
|
+
- Handle idempotency for compensation operations
|
|
69
|
+
- Consider ordering dependencies between compensating actions
|
|
70
|
+
|
|
71
|
+
## Retry Pattern
|
|
72
|
+
|
|
73
|
+
**Problem**: Transient failures are common in distributed systems.
|
|
74
|
+
|
|
75
|
+
**Solution**: Enable applications to handle anticipated temporary failures by retrying failed operations.
|
|
76
|
+
|
|
77
|
+
**When to Use**:
|
|
78
|
+
- Handling transient faults (network glitches, temporary unavailability)
|
|
79
|
+
- Operations expected to succeed after a brief delay
|
|
80
|
+
- Non-idempotent operations with careful consideration
|
|
81
|
+
|
|
82
|
+
**Implementation Considerations**:
|
|
83
|
+
- Implement exponential backoff between retries
|
|
84
|
+
- Set maximum retry count to avoid infinite loops
|
|
85
|
+
- Distinguish between transient and permanent failures
|
|
86
|
+
- Ensure operations are idempotent or track retry attempts
|
|
87
|
+
- Consider jitter to avoid thundering herd problem
|
|
88
|
+
|
|
89
|
+
## Health Endpoint Monitoring Pattern
|
|
90
|
+
|
|
91
|
+
**Problem**: External tools need to verify system health and availability.
|
|
92
|
+
|
|
93
|
+
**Solution**: Implement functional checks in an application that external tools can access through exposed endpoints at regular intervals.
|
|
94
|
+
|
|
95
|
+
**When to Use**:
|
|
96
|
+
- Monitoring web applications and back-end services
|
|
97
|
+
- Implementing readiness and liveness probes
|
|
98
|
+
- Providing detailed health information to orchestrators
|
|
99
|
+
|
|
100
|
+
**Implementation Considerations**:
|
|
101
|
+
- Expose health endpoints (e.g., `/health`, `/ready`, `/live`)
|
|
102
|
+
- Check critical dependencies (databases, queues, external services)
|
|
103
|
+
- Return appropriate HTTP status codes (200, 503)
|
|
104
|
+
- Implement authentication/authorization for sensitive health data
|
|
105
|
+
- Provide different levels of detail based on security context
|
|
106
|
+
|
|
107
|
+
## Leader Election Pattern
|
|
108
|
+
|
|
109
|
+
**Problem**: Distributed tasks need coordination through a single instance.
|
|
110
|
+
|
|
111
|
+
**Solution**: Coordinate actions in a distributed application by electing one instance as the leader that manages collaborating task instances.
|
|
112
|
+
|
|
113
|
+
**When to Use**:
|
|
114
|
+
- Coordinating distributed tasks
|
|
115
|
+
- Managing shared resources in a cluster
|
|
116
|
+
- Ensuring single-instance execution of critical tasks
|
|
117
|
+
|
|
118
|
+
**Implementation Considerations**:
|
|
119
|
+
- Use distributed locking mechanisms (Redis, etcd, ZooKeeper)
|
|
120
|
+
- Handle leader failures with automatic re-election
|
|
121
|
+
- Implement heartbeats to detect leader health
|
|
122
|
+
- Ensure followers can become leaders quickly
|
|
123
|
+
|
|
124
|
+
## Saga Pattern
|
|
125
|
+
|
|
126
|
+
**Problem**: Maintaining data consistency across microservices without distributed transactions.
|
|
127
|
+
|
|
128
|
+
**Solution**: Manage data consistency across microservices in distributed transaction scenarios using a sequence of local transactions.
|
|
129
|
+
|
|
130
|
+
**When to Use**:
|
|
131
|
+
- Long-running business processes spanning multiple services
|
|
132
|
+
- Distributed transactions without 2PC support
|
|
133
|
+
- Eventual consistency requirements across microservices
|
|
134
|
+
|
|
135
|
+
**Implementation Considerations**:
|
|
136
|
+
- Choose between orchestration (centralized) or choreography (event-based)
|
|
137
|
+
- Define compensating transactions for rollback scenarios
|
|
138
|
+
- Handle partial failures and rollback logic
|
|
139
|
+
- Implement idempotency for all saga steps
|
|
140
|
+
- Provide clear audit trails and monitoring
|
|
141
|
+
|
|
142
|
+
## Sequential Convoy Pattern
|
|
143
|
+
|
|
144
|
+
**Problem**: Process related messages in order without blocking independent message groups.
|
|
145
|
+
|
|
146
|
+
**Solution**: Process a set of related messages in a defined order without blocking other message groups.
|
|
147
|
+
|
|
148
|
+
**When to Use**:
|
|
149
|
+
- Message processing requires strict ordering within groups
|
|
150
|
+
- Independent message groups can be processed in parallel
|
|
151
|
+
- Implementing session-based message processing
|
|
152
|
+
|
|
153
|
+
**Implementation Considerations**:
|
|
154
|
+
- Use session IDs or partition keys to group related messages
|
|
155
|
+
- Process each group sequentially but process groups in parallel
|
|
156
|
+
- Handle message failures within a session appropriately
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Security Patterns
|
|
2
|
+
|
|
3
|
+
## Federated Identity Pattern
|
|
4
|
+
|
|
5
|
+
**Problem**: Applications must manage user authentication and authorization.
|
|
6
|
+
|
|
7
|
+
**Solution**: Delegate authentication to an external identity provider.
|
|
8
|
+
|
|
9
|
+
**When to Use**:
|
|
10
|
+
- Implementing single sign-on (SSO)
|
|
11
|
+
- Reducing authentication complexity
|
|
12
|
+
- Supporting social identity providers
|
|
13
|
+
|
|
14
|
+
**Implementation Considerations**:
|
|
15
|
+
- Use Azure AD, Auth0, or other identity providers
|
|
16
|
+
- Implement OAuth 2.0, OpenID Connect, or SAML
|
|
17
|
+
- Store minimal user data locally
|
|
18
|
+
- Handle identity provider outages gracefully
|
|
19
|
+
- Implement proper token validation
|
|
20
|
+
|
|
21
|
+
## Quarantine Pattern
|
|
22
|
+
|
|
23
|
+
**Problem**: External assets may contain malicious content or vulnerabilities.
|
|
24
|
+
|
|
25
|
+
**Solution**: Ensure that external assets meet a team-agreed quality level before the workload consumes them.
|
|
26
|
+
|
|
27
|
+
**When to Use**:
|
|
28
|
+
- Processing user-uploaded files
|
|
29
|
+
- Consuming external data or packages
|
|
30
|
+
- Implementing zero-trust architectures
|
|
31
|
+
|
|
32
|
+
**Implementation Considerations**:
|
|
33
|
+
- Scan all external content before use (malware, vulnerabilities)
|
|
34
|
+
- Isolate quarantine environment from production
|
|
35
|
+
- Define clear quality gates for release
|
|
36
|
+
- Implement automated scanning and validation
|
|
37
|
+
- Log all quarantine activities for audit
|
|
38
|
+
|
|
39
|
+
## Valet Key Pattern
|
|
40
|
+
|
|
41
|
+
**Problem**: Applications shouldn't proxy all client data access.
|
|
42
|
+
|
|
43
|
+
**Solution**: Use a token or key that provides clients with restricted direct access to a specific resource or service.
|
|
44
|
+
|
|
45
|
+
**When to Use**:
|
|
46
|
+
- Providing direct access to storage without proxying
|
|
47
|
+
- Minimizing data transfer through application tier
|
|
48
|
+
- Implementing time-limited or constrained access
|
|
49
|
+
|
|
50
|
+
**Implementation Considerations**:
|
|
51
|
+
- Generate SAS tokens or pre-signed URLs
|
|
52
|
+
- Set appropriate expiration times
|
|
53
|
+
- Limit permissions (read-only, write-only, specific operations)
|
|
54
|
+
- Implement token revocation if needed
|
|
55
|
+
- Monitor usage of valet keys
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright GitHub, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|