aigroup-workflow 2.1.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex/AGENTS.md +1 -1
- package/CLAUDE.md +1 -4
- package/README.md +333 -333
- package/cli/commands/init.mjs +20 -6
- package/cli/utils/scaffold.mjs +39 -9
- package/docs/red-flags.md +1 -1
- package/docs/rules/coding-style.md +21 -1
- package/docs/rules/entropy.md +1 -1
- package/docs/rules/performance.md +1 -1
- package/docs/workflow-pipeline.md +1 -0
- package/manifests/install-modules.json +223 -133
- package/package.json +39 -39
- package/scripts/orchestration/lib/orchestrator.cjs +34 -0
- package/scripts/orchestration/session.cjs +24 -1
- package/skills/ai-ml/fine-tuning-expert/SKILL.md +162 -0
- package/skills/ai-ml/fine-tuning-expert/references/dataset-preparation.md +540 -0
- package/skills/ai-ml/fine-tuning-expert/references/deployment-optimization.md +673 -0
- package/skills/ai-ml/fine-tuning-expert/references/evaluation-metrics.md +597 -0
- package/skills/ai-ml/fine-tuning-expert/references/hyperparameter-tuning.md +565 -0
- package/skills/ai-ml/fine-tuning-expert/references/lora-peft.md +347 -0
- package/skills/ai-ml/ml-pipeline/SKILL.md +159 -0
- package/skills/ai-ml/ml-pipeline/references/experiment-tracking.md +833 -0
- package/skills/ai-ml/ml-pipeline/references/feature-engineering.md +631 -0
- package/skills/ai-ml/ml-pipeline/references/model-validation.md +978 -0
- package/skills/ai-ml/ml-pipeline/references/pipeline-orchestration.md +907 -0
- package/skills/ai-ml/ml-pipeline/references/training-pipelines.md +782 -0
- package/skills/ai-ml/rag-architect/SKILL.md +194 -0
- package/skills/ai-ml/rag-architect/references/chunking-strategies.md +878 -0
- package/skills/ai-ml/rag-architect/references/embedding-models.md +561 -0
- package/skills/ai-ml/rag-architect/references/rag-evaluation.md +833 -0
- package/skills/ai-ml/rag-architect/references/retrieval-optimization.md +795 -0
- package/skills/ai-ml/rag-architect/references/vector-databases.md +589 -0
- package/skills/ai-ml/spark-engineer/SKILL.md +148 -0
- package/skills/ai-ml/spark-engineer/references/partitioning-caching.md +543 -0
- package/skills/ai-ml/spark-engineer/references/performance-tuning.md +544 -0
- package/skills/ai-ml/spark-engineer/references/rdd-operations.md +599 -0
- package/skills/ai-ml/spark-engineer/references/spark-sql-dataframes.md +474 -0
- package/skills/ai-ml/spark-engineer/references/streaming-patterns.md +786 -0
- package/skills/backend/api-designer/SKILL.md +217 -0
- package/skills/backend/api-designer/references/error-handling.md +541 -0
- package/skills/backend/api-designer/references/openapi.md +824 -0
- package/skills/backend/api-designer/references/pagination.md +494 -0
- package/skills/backend/api-designer/references/rest-patterns.md +335 -0
- package/skills/backend/api-designer/references/versioning.md +391 -0
- package/skills/backend/architecture-designer/SKILL.md +117 -0
- package/skills/backend/architecture-designer/references/adr-template.md +116 -0
- package/skills/backend/architecture-designer/references/architecture-patterns.md +111 -0
- package/skills/backend/architecture-designer/references/database-selection.md +102 -0
- package/skills/backend/architecture-designer/references/nfr-checklist.md +112 -0
- package/skills/backend/architecture-designer/references/system-design.md +100 -0
- package/skills/backend/code-documenter/SKILL.md +147 -0
- package/skills/backend/code-documenter/references/api-docs-fastapi-django.md +166 -0
- package/skills/backend/code-documenter/references/api-docs-nestjs-express.md +220 -0
- package/skills/backend/code-documenter/references/coverage-reports.md +125 -0
- package/skills/backend/code-documenter/references/documentation-systems.md +333 -0
- package/skills/backend/code-documenter/references/interactive-api-docs.md +531 -0
- package/skills/backend/code-documenter/references/python-docstrings.md +121 -0
- package/skills/backend/code-documenter/references/typescript-jsdoc.md +145 -0
- package/skills/backend/code-documenter/references/user-guides-tutorials.md +530 -0
- package/skills/backend/debugging-wizard/SKILL.md +105 -0
- package/skills/backend/debugging-wizard/references/common-patterns.md +132 -0
- package/skills/backend/debugging-wizard/references/debugging-tools.md +140 -0
- package/skills/backend/debugging-wizard/references/quick-fixes.md +177 -0
- package/skills/backend/debugging-wizard/references/strategies.md +142 -0
- package/skills/backend/debugging-wizard/references/systematic-debugging.md +367 -0
- package/skills/backend/feature-forge/SKILL.md +98 -0
- package/skills/backend/feature-forge/references/acceptance-criteria.md +104 -0
- package/skills/backend/feature-forge/references/ears-syntax.md +99 -0
- package/skills/backend/feature-forge/references/interview-questions.md +150 -0
- package/skills/backend/feature-forge/references/pre-discovery-subagents.md +54 -0
- package/skills/backend/feature-forge/references/specification-template.md +103 -0
- package/skills/backend/fullstack-guardian/SKILL.md +105 -0
- package/skills/backend/fullstack-guardian/references/api-design-standards.md +307 -0
- package/skills/backend/fullstack-guardian/references/architecture-decisions.md +350 -0
- package/skills/backend/fullstack-guardian/references/backend-patterns.md +237 -0
- package/skills/backend/fullstack-guardian/references/common-patterns.md +134 -0
- package/skills/backend/fullstack-guardian/references/deliverables-checklist.md +354 -0
- package/skills/backend/fullstack-guardian/references/design-template.md +91 -0
- package/skills/backend/fullstack-guardian/references/error-handling.md +135 -0
- package/skills/backend/fullstack-guardian/references/frontend-patterns.md +340 -0
- package/skills/backend/fullstack-guardian/references/integration-patterns.md +333 -0
- package/skills/backend/fullstack-guardian/references/security-checklist.md +106 -0
- package/skills/backend/graphql-architect/SKILL.md +146 -0
- package/skills/backend/graphql-architect/references/federation.md +418 -0
- package/skills/backend/graphql-architect/references/migration-from-rest.md +1141 -0
- package/skills/backend/graphql-architect/references/resolvers.md +425 -0
- package/skills/backend/graphql-architect/references/schema-design.md +393 -0
- package/skills/backend/graphql-architect/references/security.md +569 -0
- package/skills/backend/graphql-architect/references/subscriptions.md +510 -0
- package/skills/backend/legacy-modernizer/SKILL.md +137 -0
- package/skills/backend/legacy-modernizer/references/legacy-testing.md +381 -0
- package/skills/backend/legacy-modernizer/references/migration-strategies.md +423 -0
- package/skills/backend/legacy-modernizer/references/refactoring-patterns.md +395 -0
- package/skills/backend/legacy-modernizer/references/strangler-fig-pattern.md +281 -0
- package/skills/backend/legacy-modernizer/references/system-assessment.md +487 -0
- package/skills/backend/microservices-architect/SKILL.md +164 -0
- package/skills/backend/microservices-architect/references/communication.md +499 -0
- package/skills/backend/microservices-architect/references/data.md +721 -0
- package/skills/backend/microservices-architect/references/decomposition.md +344 -0
- package/skills/backend/microservices-architect/references/observability.md +805 -0
- package/skills/backend/microservices-architect/references/patterns.md +603 -0
- package/skills/database/database-optimizer/SKILL.md +147 -0
- package/skills/database/database-optimizer/references/index-strategies.md +331 -0
- package/skills/database/database-optimizer/references/monitoring-analysis.md +501 -0
- package/skills/database/database-optimizer/references/mysql-tuning.md +452 -0
- package/skills/database/database-optimizer/references/postgresql-tuning.md +413 -0
- package/skills/database/database-optimizer/references/query-optimization.md +251 -0
- package/skills/database/postgres-pro/SKILL.md +152 -0
- package/skills/database/postgres-pro/references/extensions.md +404 -0
- package/skills/database/postgres-pro/references/jsonb.md +321 -0
- package/skills/database/postgres-pro/references/maintenance.md +481 -0
- package/skills/database/postgres-pro/references/performance.md +265 -0
- package/skills/database/postgres-pro/references/replication.md +446 -0
- package/skills/database/sql-pro/SKILL.md +129 -0
- package/skills/database/sql-pro/references/database-design.md +402 -0
- package/skills/database/sql-pro/references/dialect-differences.md +419 -0
- package/skills/database/sql-pro/references/optimization.md +384 -0
- package/skills/database/sql-pro/references/query-patterns.md +285 -0
- package/skills/database/sql-pro/references/window-functions.md +328 -0
- package/skills/dotnet/csharp-developer/SKILL.md +125 -0
- package/skills/dotnet/csharp-developer/references/aspnet-core.md +394 -0
- package/skills/dotnet/csharp-developer/references/blazor.md +553 -0
- package/skills/dotnet/csharp-developer/references/entity-framework.md +409 -0
- package/skills/dotnet/csharp-developer/references/modern-csharp.md +248 -0
- package/skills/dotnet/csharp-developer/references/performance.md +498 -0
- package/skills/dotnet/dotnet-core-expert/SKILL.md +138 -0
- package/skills/dotnet/dotnet-core-expert/references/authentication.md +546 -0
- package/skills/dotnet/dotnet-core-expert/references/clean-architecture.md +455 -0
- package/skills/dotnet/dotnet-core-expert/references/cloud-native.md +548 -0
- package/skills/dotnet/dotnet-core-expert/references/entity-framework.md +440 -0
- package/skills/dotnet/dotnet-core-expert/references/minimal-apis.md +319 -0
- package/skills/frontend/angular-architect/SKILL.md +152 -0
- package/skills/frontend/angular-architect/references/components.md +297 -0
- package/skills/frontend/angular-architect/references/ngrx.md +401 -0
- package/skills/frontend/angular-architect/references/routing.md +361 -0
- package/skills/frontend/angular-architect/references/rxjs.md +319 -0
- package/skills/frontend/angular-architect/references/testing.md +405 -0
- package/skills/frontend/flutter-expert/SKILL.md +138 -0
- package/skills/frontend/flutter-expert/references/bloc-state.md +259 -0
- package/skills/frontend/flutter-expert/references/gorouter-navigation.md +119 -0
- package/skills/frontend/flutter-expert/references/performance.md +99 -0
- package/skills/frontend/flutter-expert/references/project-structure.md +118 -0
- package/skills/frontend/flutter-expert/references/riverpod-state.md +130 -0
- package/skills/frontend/flutter-expert/references/widget-patterns.md +123 -0
- package/skills/frontend/nextjs-developer/SKILL.md +143 -0
- package/skills/frontend/nextjs-developer/references/app-router.md +311 -0
- package/skills/frontend/nextjs-developer/references/data-fetching.md +482 -0
- package/skills/frontend/nextjs-developer/references/deployment.md +545 -0
- package/skills/frontend/nextjs-developer/references/server-actions.md +462 -0
- package/skills/frontend/nextjs-developer/references/server-components.md +384 -0
- package/skills/frontend/react-expert/SKILL.md +149 -0
- package/skills/frontend/react-expert/references/hooks-patterns.md +162 -0
- package/skills/frontend/react-expert/references/migration-class-to-modern.md +1119 -0
- package/skills/frontend/react-expert/references/performance.md +168 -0
- package/skills/frontend/react-expert/references/react-19-features.md +174 -0
- package/skills/frontend/react-expert/references/server-components.md +143 -0
- package/skills/frontend/react-expert/references/state-management.md +171 -0
- package/skills/frontend/react-expert/references/testing-react.md +174 -0
- package/skills/frontend/react-native-expert/SKILL.md +185 -0
- package/skills/frontend/react-native-expert/references/expo-router.md +187 -0
- package/skills/frontend/react-native-expert/references/list-optimization.md +204 -0
- package/skills/frontend/react-native-expert/references/platform-handling.md +188 -0
- package/skills/frontend/react-native-expert/references/project-structure.md +171 -0
- package/skills/frontend/react-native-expert/references/storage-hooks.md +173 -0
- package/skills/frontend/vue-expert/SKILL.md +98 -0
- package/skills/frontend/vue-expert/references/build-tooling.md +480 -0
- package/skills/frontend/vue-expert/references/components.md +448 -0
- package/skills/frontend/vue-expert/references/composition-api.md +299 -0
- package/skills/frontend/vue-expert/references/mobile-hybrid.md +636 -0
- package/skills/frontend/vue-expert/references/nuxt.md +669 -0
- package/skills/frontend/vue-expert/references/state-management.md +449 -0
- package/skills/frontend/vue-expert/references/typescript.md +584 -0
- package/skills/frontend/vue-expert-js/SKILL.md +167 -0
- package/skills/frontend/vue-expert-js/references/component-architecture.md +219 -0
- package/skills/frontend/vue-expert-js/references/composables-patterns.md +183 -0
- package/skills/frontend/vue-expert-js/references/jsdoc-typing.md +535 -0
- package/skills/frontend/vue-expert-js/references/state-management.md +249 -0
- package/skills/frontend/vue-expert-js/references/testing-patterns.md +237 -0
- package/skills/go-rust-cpp/cpp-pro/SKILL.md +115 -0
- package/skills/go-rust-cpp/cpp-pro/references/build-tooling.md +440 -0
- package/skills/go-rust-cpp/cpp-pro/references/concurrency.md +437 -0
- package/skills/go-rust-cpp/cpp-pro/references/memory-performance.md +397 -0
- package/skills/go-rust-cpp/cpp-pro/references/modern-cpp.md +304 -0
- package/skills/go-rust-cpp/cpp-pro/references/templates.md +357 -0
- package/skills/go-rust-cpp/golang-pro/SKILL.md +122 -0
- package/skills/go-rust-cpp/golang-pro/references/concurrency.md +329 -0
- package/skills/go-rust-cpp/golang-pro/references/generics.md +442 -0
- package/skills/go-rust-cpp/golang-pro/references/interfaces.md +432 -0
- package/skills/go-rust-cpp/golang-pro/references/project-structure.md +477 -0
- package/skills/go-rust-cpp/golang-pro/references/testing.md +451 -0
- package/skills/go-rust-cpp/rust-engineer/SKILL.md +167 -0
- package/skills/go-rust-cpp/rust-engineer/references/async.md +458 -0
- package/skills/go-rust-cpp/rust-engineer/references/error-handling.md +334 -0
- package/skills/go-rust-cpp/rust-engineer/references/ownership.md +278 -0
- package/skills/go-rust-cpp/rust-engineer/references/testing.md +470 -0
- package/skills/go-rust-cpp/rust-engineer/references/traits.md +413 -0
- package/skills/infra/cli-developer/SKILL.md +113 -0
- package/skills/infra/cli-developer/references/design-patterns.md +221 -0
- package/skills/infra/cli-developer/references/go-cli.md +540 -0
- package/skills/infra/cli-developer/references/node-cli.md +383 -0
- package/skills/infra/cli-developer/references/python-cli.md +422 -0
- package/skills/infra/cli-developer/references/ux-patterns.md +448 -0
- package/skills/infra/cloud-architect/SKILL.md +216 -0
- package/skills/infra/cloud-architect/references/aws.md +394 -0
- package/skills/infra/cloud-architect/references/azure.md +562 -0
- package/skills/infra/cloud-architect/references/cost.md +582 -0
- package/skills/infra/cloud-architect/references/gcp.md +633 -0
- package/skills/infra/cloud-architect/references/multi-cloud.md +483 -0
- package/skills/infra/devops-engineer/SKILL.md +144 -0
- package/skills/infra/devops-engineer/references/deployment-strategies.md +241 -0
- package/skills/infra/devops-engineer/references/docker-patterns.md +113 -0
- package/skills/infra/devops-engineer/references/github-actions.md +139 -0
- package/skills/infra/devops-engineer/references/incident-response.md +331 -0
- package/skills/infra/devops-engineer/references/kubernetes.md +154 -0
- package/skills/infra/devops-engineer/references/platform-engineering.md +417 -0
- package/skills/infra/devops-engineer/references/release-automation.md +527 -0
- package/skills/infra/devops-engineer/references/terraform-iac.md +141 -0
- package/skills/infra/kubernetes-specialist/SKILL.md +241 -0
- package/skills/infra/kubernetes-specialist/references/configuration.md +452 -0
- package/skills/infra/kubernetes-specialist/references/cost-optimization.md +458 -0
- package/skills/infra/kubernetes-specialist/references/custom-operators.md +563 -0
- package/skills/infra/kubernetes-specialist/references/gitops.md +530 -0
- package/skills/infra/kubernetes-specialist/references/helm-charts.md +912 -0
- package/skills/infra/kubernetes-specialist/references/multi-cluster.md +507 -0
- package/skills/infra/kubernetes-specialist/references/networking.md +447 -0
- package/skills/infra/kubernetes-specialist/references/service-mesh.md +459 -0
- package/skills/infra/kubernetes-specialist/references/storage.md +535 -0
- package/skills/infra/kubernetes-specialist/references/troubleshooting.md +414 -0
- package/skills/infra/kubernetes-specialist/references/workloads.md +377 -0
- package/skills/infra/mcp-developer/SKILL.md +143 -0
- package/skills/infra/mcp-developer/references/protocol.md +244 -0
- package/skills/infra/mcp-developer/references/python-sdk.md +367 -0
- package/skills/infra/mcp-developer/references/resources.md +554 -0
- package/skills/infra/mcp-developer/references/tools.md +480 -0
- package/skills/infra/mcp-developer/references/typescript-sdk.md +350 -0
- package/skills/infra/monitoring-expert/SKILL.md +176 -0
- package/skills/infra/monitoring-expert/references/alerting-rules.md +141 -0
- package/skills/infra/monitoring-expert/references/application-profiling.md +331 -0
- package/skills/infra/monitoring-expert/references/capacity-planning.md +344 -0
- package/skills/infra/monitoring-expert/references/dashboards.md +126 -0
- package/skills/infra/monitoring-expert/references/opentelemetry.md +123 -0
- package/skills/infra/monitoring-expert/references/performance-testing.md +269 -0
- package/skills/infra/monitoring-expert/references/prometheus-metrics.md +136 -0
- package/skills/infra/monitoring-expert/references/structured-logging.md +142 -0
- package/skills/infra/sre-engineer/SKILL.md +181 -0
- package/skills/infra/sre-engineer/references/automation-toil.md +492 -0
- package/skills/infra/sre-engineer/references/error-budget-policy.md +334 -0
- package/skills/infra/sre-engineer/references/incident-chaos.md +576 -0
- package/skills/infra/sre-engineer/references/monitoring-alerting.md +424 -0
- package/skills/infra/sre-engineer/references/slo-sli-management.md +238 -0
- package/skills/infra/terraform-engineer/SKILL.md +143 -0
- package/skills/infra/terraform-engineer/references/best-practices.md +583 -0
- package/skills/infra/terraform-engineer/references/module-patterns.md +297 -0
- package/skills/infra/terraform-engineer/references/providers.md +452 -0
- package/skills/infra/terraform-engineer/references/state-management.md +371 -0
- package/skills/infra/terraform-engineer/references/testing.md +486 -0
- package/skills/infra/websocket-engineer/SKILL.md +168 -0
- package/skills/infra/websocket-engineer/references/alternatives.md +391 -0
- package/skills/infra/websocket-engineer/references/patterns.md +400 -0
- package/skills/infra/websocket-engineer/references/protocol.md +195 -0
- package/skills/infra/websocket-engineer/references/scaling.md +333 -0
- package/skills/infra/websocket-engineer/references/security.md +474 -0
- package/skills/java/java-architect/SKILL.md +132 -0
- package/skills/java/java-architect/references/jpa-optimization.md +393 -0
- package/skills/java/java-architect/references/reactive-webflux.md +356 -0
- package/skills/java/java-architect/references/spring-boot-setup.md +269 -0
- package/skills/java/java-architect/references/spring-security.md +445 -0
- package/skills/java/java-architect/references/testing-patterns.md +500 -0
- package/skills/java/kotlin-specialist/SKILL.md +147 -0
- package/skills/java/kotlin-specialist/references/android-compose.md +419 -0
- package/skills/java/kotlin-specialist/references/coroutines-flow.md +276 -0
- package/skills/java/kotlin-specialist/references/dsl-idioms.md +421 -0
- package/skills/java/kotlin-specialist/references/ktor-server.md +426 -0
- package/skills/java/kotlin-specialist/references/multiplatform-kmp.md +380 -0
- package/skills/java/spring-boot-engineer/SKILL.md +195 -0
- package/skills/java/spring-boot-engineer/references/cloud.md +498 -0
- package/skills/java/spring-boot-engineer/references/data.md +381 -0
- package/skills/java/spring-boot-engineer/references/security.md +459 -0
- package/skills/java/spring-boot-engineer/references/testing.md +545 -0
- package/skills/java/spring-boot-engineer/references/web.md +295 -0
- package/skills/javascript/javascript-pro/SKILL.md +132 -0
- package/skills/javascript/javascript-pro/references/async-patterns.md +334 -0
- package/skills/javascript/javascript-pro/references/browser-apis.md +398 -0
- package/skills/javascript/javascript-pro/references/modern-syntax.md +272 -0
- package/skills/javascript/javascript-pro/references/modules.md +357 -0
- package/skills/javascript/javascript-pro/references/node-essentials.md +471 -0
- package/skills/javascript/nestjs-expert/SKILL.md +206 -0
- package/skills/javascript/nestjs-expert/references/authentication.md +166 -0
- package/skills/javascript/nestjs-expert/references/controllers-routing.md +111 -0
- package/skills/javascript/nestjs-expert/references/dtos-validation.md +153 -0
- package/skills/javascript/nestjs-expert/references/migration-from-express.md +1237 -0
- package/skills/javascript/nestjs-expert/references/services-di.md +140 -0
- package/skills/javascript/nestjs-expert/references/testing-patterns.md +186 -0
- package/skills/javascript/typescript-pro/SKILL.md +145 -0
- package/skills/javascript/typescript-pro/references/advanced-types.md +259 -0
- package/skills/javascript/typescript-pro/references/configuration.md +445 -0
- package/skills/javascript/typescript-pro/references/patterns.md +484 -0
- package/skills/javascript/typescript-pro/references/type-guards.md +352 -0
- package/skills/javascript/typescript-pro/references/utility-types.md +329 -0
- package/skills/php/laravel-specialist/SKILL.md +262 -0
- package/skills/php/laravel-specialist/references/eloquent.md +351 -0
- package/skills/php/laravel-specialist/references/livewire.md +512 -0
- package/skills/php/laravel-specialist/references/queues.md +423 -0
- package/skills/php/laravel-specialist/references/routing.md +362 -0
- package/skills/php/laravel-specialist/references/testing.md +522 -0
- package/skills/php/php-pro/SKILL.md +206 -0
- package/skills/php/php-pro/references/async-patterns.md +412 -0
- package/skills/php/php-pro/references/laravel-patterns.md +377 -0
- package/skills/php/php-pro/references/modern-php-features.md +323 -0
- package/skills/php/php-pro/references/symfony-patterns.md +466 -0
- package/skills/php/php-pro/references/testing-quality.md +466 -0
- package/skills/python/django-expert/SKILL.md +162 -0
- package/skills/python/django-expert/references/authentication.md +145 -0
- package/skills/python/django-expert/references/drf-serializers.md +148 -0
- package/skills/python/django-expert/references/models-orm.md +151 -0
- package/skills/python/django-expert/references/testing-django.md +204 -0
- package/skills/python/django-expert/references/viewsets-views.md +153 -0
- package/skills/python/fastapi-expert/SKILL.md +185 -0
- package/skills/python/fastapi-expert/references/async-sqlalchemy.md +146 -0
- package/skills/python/fastapi-expert/references/authentication.md +159 -0
- package/skills/python/fastapi-expert/references/endpoints-routing.md +142 -0
- package/skills/python/fastapi-expert/references/migration-from-django.md +997 -0
- package/skills/python/fastapi-expert/references/pydantic-v2.md +135 -0
- package/skills/python/fastapi-expert/references/testing-async.md +159 -0
- package/skills/python/pandas-pro/SKILL.md +178 -0
- package/skills/python/pandas-pro/references/aggregation-groupby.md +545 -0
- package/skills/python/pandas-pro/references/data-cleaning.md +500 -0
- package/skills/python/pandas-pro/references/dataframe-operations.md +420 -0
- package/skills/python/pandas-pro/references/merging-joining.md +596 -0
- package/skills/python/pandas-pro/references/performance-optimization.md +597 -0
- package/skills/python/python-pro/SKILL.md +177 -0
- package/skills/python/python-pro/references/async-patterns.md +356 -0
- package/skills/python/python-pro/references/packaging.md +460 -0
- package/skills/python/python-pro/references/standard-library.md +378 -0
- package/skills/python/python-pro/references/testing.md +404 -0
- package/skills/python/python-pro/references/type-system.md +290 -0
- package/skills/quality/chaos-engineer/SKILL.md +182 -0
- package/skills/quality/chaos-engineer/references/chaos-tools.md +511 -0
- package/skills/quality/chaos-engineer/references/experiment-design.md +229 -0
- package/skills/quality/chaos-engineer/references/game-days.md +434 -0
- package/skills/quality/chaos-engineer/references/infrastructure-chaos.md +348 -0
- package/skills/quality/chaos-engineer/references/kubernetes-chaos.md +432 -0
- package/skills/quality/code-reviewer/SKILL.md +119 -0
- package/skills/quality/code-reviewer/references/common-issues.md +142 -0
- package/skills/quality/code-reviewer/references/feedback-examples.md +144 -0
- package/skills/quality/code-reviewer/references/receiving-feedback.md +238 -0
- package/skills/quality/code-reviewer/references/report-template.md +109 -0
- package/skills/quality/code-reviewer/references/review-checklist.md +88 -0
- package/skills/quality/code-reviewer/references/spec-compliance-review.md +258 -0
- package/skills/quality/playwright-expert/SKILL.md +169 -0
- package/skills/quality/playwright-expert/references/api-mocking.md +140 -0
- package/skills/quality/playwright-expert/references/configuration.md +155 -0
- package/skills/quality/playwright-expert/references/debugging-flaky.md +150 -0
- package/skills/quality/playwright-expert/references/page-object-model.md +152 -0
- package/skills/quality/playwright-expert/references/selectors-locators.md +119 -0
- package/skills/quality/secure-code-guardian/SKILL.md +191 -0
- package/skills/quality/secure-code-guardian/references/authentication.md +136 -0
- package/skills/quality/secure-code-guardian/references/input-validation.md +146 -0
- package/skills/quality/secure-code-guardian/references/owasp-prevention.md +135 -0
- package/skills/quality/secure-code-guardian/references/security-headers.md +133 -0
- package/skills/quality/secure-code-guardian/references/xss-csrf.md +157 -0
- package/skills/quality/security-reviewer/SKILL.md +103 -0
- package/skills/quality/security-reviewer/references/infrastructure-security.md +268 -0
- package/skills/quality/security-reviewer/references/penetration-testing.md +268 -0
- package/skills/quality/security-reviewer/references/report-template.md +170 -0
- package/skills/quality/security-reviewer/references/sast-tools.md +117 -0
- package/skills/quality/security-reviewer/references/secret-scanning.md +125 -0
- package/skills/quality/security-reviewer/references/vulnerability-patterns.md +152 -0
- package/skills/quality/tdd-guide/assets/sample_coverage_report.lcov +0 -0
- package/skills/quality/test-master/SKILL.md +94 -0
- package/skills/quality/test-master/references/automation-frameworks.md +294 -0
- package/skills/quality/test-master/references/e2e-testing.md +128 -0
- package/skills/quality/test-master/references/integration-testing.md +120 -0
- package/skills/quality/test-master/references/performance-testing.md +118 -0
- package/skills/quality/test-master/references/qa-methodology.md +247 -0
- package/skills/quality/test-master/references/security-testing.md +127 -0
- package/skills/quality/test-master/references/tdd-iron-laws.md +174 -0
- package/skills/quality/test-master/references/test-reports.md +104 -0
- package/skills/quality/test-master/references/testing-anti-patterns.md +231 -0
- package/skills/quality/test-master/references/unit-testing.md +113 -0
- package/skills/ruby/rails-expert/SKILL.md +154 -0
- package/skills/ruby/rails-expert/references/active-record.md +244 -0
- package/skills/ruby/rails-expert/references/api-development.md +401 -0
- package/skills/ruby/rails-expert/references/background-jobs.md +272 -0
- package/skills/ruby/rails-expert/references/hotwire-turbo.md +228 -0
- package/skills/ruby/rails-expert/references/rspec-testing.md +367 -0
- package/skills/swift/swift-expert/SKILL.md +163 -0
- package/skills/swift/swift-expert/references/async-concurrency.md +360 -0
- package/skills/swift/swift-expert/references/memory-performance.md +377 -0
- package/skills/swift/swift-expert/references/protocol-oriented.md +354 -0
- package/skills/swift/swift-expert/references/swiftui-patterns.md +291 -0
- package/skills/swift/swift-expert/references/testing-patterns.md +399 -0
- package/skills/workflow/brainstorming/SKILL.md +164 -0
- package/skills/workflow/brainstorming/scripts/helper.js +88 -0
- package/skills/workflow/brainstorming/scripts/start-server.sh +148 -0
- package/skills/workflow/brainstorming/scripts/stop-server.sh +56 -0
- package/skills/workflow/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/workflow/brainstorming/visual-companion.md +287 -0
- package/skills/workflow/documentation/SKILL.md +45 -0
- package/skills/workflow/entropy-management/SKILL.md +115 -0
- package/skills/workflow/executing-plans/SKILL.md +70 -0
- package/skills/workflow/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/workflow/receiving-code-review/SKILL.md +213 -0
- package/skills/workflow/requesting-code-review/SKILL.md +105 -0
- package/skills/workflow/requesting-code-review/code-reviewer.md +146 -0
- package/skills/workflow/requirement-engineering/SKILL.md +111 -0
- package/skills/workflow/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/workflow/systematic-debugging/SKILL.md +296 -0
- package/skills/workflow/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/workflow/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/workflow/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/workflow/systematic-debugging/find-polluter.sh +63 -0
- package/skills/workflow/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/workflow/systematic-debugging/test-academic.md +14 -0
- package/skills/workflow/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/workflow/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/workflow/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/workflow/using-git-worktrees/SKILL.md +218 -0
- package/skills/workflow/verification-before-completion/SKILL.md +139 -0
- package/skills/workflow/writing-plans/SKILL.md +151 -0
- package/skills/workflow/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/workflow/writing-skills/SKILL.md +655 -0
- package/skills/workflow/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -0
- package/skills/workflow/writing-skills/persuasion-principles.md +187 -0
- package/skills/workflow/writing-skills/render-graphs.js +168 -0
- package/skills/workflow/writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/angular-architect/SKILL.md +0 -152
- package/skills/angular-architect/references/components.md +0 -297
- package/skills/angular-architect/references/ngrx.md +0 -401
- package/skills/angular-architect/references/routing.md +0 -361
- package/skills/angular-architect/references/rxjs.md +0 -319
- package/skills/angular-architect/references/testing.md +0 -405
- package/skills/api-designer/SKILL.md +0 -217
- package/skills/api-designer/references/error-handling.md +0 -541
- package/skills/api-designer/references/openapi.md +0 -824
- package/skills/api-designer/references/pagination.md +0 -494
- package/skills/api-designer/references/rest-patterns.md +0 -335
- package/skills/api-designer/references/versioning.md +0 -391
- package/skills/architecture-designer/SKILL.md +0 -117
- package/skills/architecture-designer/references/adr-template.md +0 -116
- package/skills/architecture-designer/references/architecture-patterns.md +0 -111
- package/skills/architecture-designer/references/database-selection.md +0 -102
- package/skills/architecture-designer/references/nfr-checklist.md +0 -112
- package/skills/architecture-designer/references/system-design.md +0 -100
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/visual-companion.md +0 -287
- package/skills/chaos-engineer/SKILL.md +0 -182
- package/skills/chaos-engineer/references/chaos-tools.md +0 -511
- package/skills/chaos-engineer/references/experiment-design.md +0 -229
- package/skills/chaos-engineer/references/game-days.md +0 -434
- package/skills/chaos-engineer/references/infrastructure-chaos.md +0 -348
- package/skills/chaos-engineer/references/kubernetes-chaos.md +0 -432
- package/skills/cli-developer/SKILL.md +0 -113
- package/skills/cli-developer/references/design-patterns.md +0 -221
- package/skills/cli-developer/references/go-cli.md +0 -540
- package/skills/cli-developer/references/node-cli.md +0 -383
- package/skills/cli-developer/references/python-cli.md +0 -422
- package/skills/cli-developer/references/ux-patterns.md +0 -448
- package/skills/cloud-architect/SKILL.md +0 -216
- package/skills/cloud-architect/references/aws.md +0 -394
- package/skills/cloud-architect/references/azure.md +0 -562
- package/skills/cloud-architect/references/cost.md +0 -582
- package/skills/cloud-architect/references/gcp.md +0 -633
- package/skills/cloud-architect/references/multi-cloud.md +0 -483
- package/skills/code-documenter/SKILL.md +0 -147
- package/skills/code-documenter/references/api-docs-fastapi-django.md +0 -166
- package/skills/code-documenter/references/api-docs-nestjs-express.md +0 -220
- package/skills/code-documenter/references/coverage-reports.md +0 -125
- package/skills/code-documenter/references/documentation-systems.md +0 -333
- package/skills/code-documenter/references/interactive-api-docs.md +0 -531
- package/skills/code-documenter/references/python-docstrings.md +0 -121
- package/skills/code-documenter/references/typescript-jsdoc.md +0 -145
- package/skills/code-documenter/references/user-guides-tutorials.md +0 -530
- package/skills/code-reviewer/SKILL.md +0 -119
- package/skills/code-reviewer/references/common-issues.md +0 -142
- package/skills/code-reviewer/references/feedback-examples.md +0 -144
- package/skills/code-reviewer/references/receiving-feedback.md +0 -238
- package/skills/code-reviewer/references/report-template.md +0 -109
- package/skills/code-reviewer/references/review-checklist.md +0 -88
- package/skills/code-reviewer/references/spec-compliance-review.md +0 -258
- package/skills/cpp-pro/SKILL.md +0 -115
- package/skills/cpp-pro/references/build-tooling.md +0 -440
- package/skills/cpp-pro/references/concurrency.md +0 -437
- package/skills/cpp-pro/references/memory-performance.md +0 -397
- package/skills/cpp-pro/references/modern-cpp.md +0 -304
- package/skills/cpp-pro/references/templates.md +0 -357
- package/skills/csharp-developer/SKILL.md +0 -125
- package/skills/csharp-developer/references/aspnet-core.md +0 -394
- package/skills/csharp-developer/references/blazor.md +0 -553
- package/skills/csharp-developer/references/entity-framework.md +0 -409
- package/skills/csharp-developer/references/modern-csharp.md +0 -248
- package/skills/csharp-developer/references/performance.md +0 -498
- package/skills/database-optimizer/SKILL.md +0 -147
- package/skills/database-optimizer/references/index-strategies.md +0 -331
- package/skills/database-optimizer/references/monitoring-analysis.md +0 -501
- package/skills/database-optimizer/references/mysql-tuning.md +0 -452
- package/skills/database-optimizer/references/postgresql-tuning.md +0 -413
- package/skills/database-optimizer/references/query-optimization.md +0 -251
- package/skills/debugging-wizard/SKILL.md +0 -105
- package/skills/debugging-wizard/references/common-patterns.md +0 -132
- package/skills/debugging-wizard/references/debugging-tools.md +0 -140
- package/skills/debugging-wizard/references/quick-fixes.md +0 -177
- package/skills/debugging-wizard/references/strategies.md +0 -142
- package/skills/debugging-wizard/references/systematic-debugging.md +0 -367
- package/skills/devops-engineer/SKILL.md +0 -144
- package/skills/devops-engineer/references/deployment-strategies.md +0 -241
- package/skills/devops-engineer/references/docker-patterns.md +0 -113
- package/skills/devops-engineer/references/github-actions.md +0 -139
- package/skills/devops-engineer/references/incident-response.md +0 -331
- package/skills/devops-engineer/references/kubernetes.md +0 -154
- package/skills/devops-engineer/references/platform-engineering.md +0 -417
- package/skills/devops-engineer/references/release-automation.md +0 -527
- package/skills/devops-engineer/references/terraform-iac.md +0 -141
- package/skills/django-expert/SKILL.md +0 -162
- package/skills/django-expert/references/authentication.md +0 -145
- package/skills/django-expert/references/drf-serializers.md +0 -148
- package/skills/django-expert/references/models-orm.md +0 -151
- package/skills/django-expert/references/testing-django.md +0 -204
- package/skills/django-expert/references/viewsets-views.md +0 -153
- package/skills/documentation/SKILL.md +0 -45
- package/skills/dotnet-core-expert/SKILL.md +0 -138
- package/skills/dotnet-core-expert/references/authentication.md +0 -546
- package/skills/dotnet-core-expert/references/clean-architecture.md +0 -455
- package/skills/dotnet-core-expert/references/cloud-native.md +0 -548
- package/skills/dotnet-core-expert/references/entity-framework.md +0 -440
- package/skills/dotnet-core-expert/references/minimal-apis.md +0 -319
- package/skills/entropy-management/SKILL.md +0 -115
- package/skills/executing-plans/SKILL.md +0 -70
- package/skills/fastapi-expert/SKILL.md +0 -185
- package/skills/fastapi-expert/references/async-sqlalchemy.md +0 -146
- package/skills/fastapi-expert/references/authentication.md +0 -159
- package/skills/fastapi-expert/references/endpoints-routing.md +0 -142
- package/skills/fastapi-expert/references/migration-from-django.md +0 -997
- package/skills/fastapi-expert/references/pydantic-v2.md +0 -135
- package/skills/fastapi-expert/references/testing-async.md +0 -159
- package/skills/feature-forge/SKILL.md +0 -98
- package/skills/feature-forge/references/acceptance-criteria.md +0 -104
- package/skills/feature-forge/references/ears-syntax.md +0 -99
- package/skills/feature-forge/references/interview-questions.md +0 -150
- package/skills/feature-forge/references/pre-discovery-subagents.md +0 -54
- package/skills/feature-forge/references/specification-template.md +0 -103
- package/skills/fine-tuning-expert/SKILL.md +0 -162
- package/skills/fine-tuning-expert/references/dataset-preparation.md +0 -540
- package/skills/fine-tuning-expert/references/deployment-optimization.md +0 -673
- package/skills/fine-tuning-expert/references/evaluation-metrics.md +0 -597
- package/skills/fine-tuning-expert/references/hyperparameter-tuning.md +0 -565
- package/skills/fine-tuning-expert/references/lora-peft.md +0 -347
- package/skills/finishing-a-development-branch/SKILL.md +0 -200
- package/skills/flutter-expert/SKILL.md +0 -138
- package/skills/flutter-expert/references/bloc-state.md +0 -259
- package/skills/flutter-expert/references/gorouter-navigation.md +0 -119
- package/skills/flutter-expert/references/performance.md +0 -99
- package/skills/flutter-expert/references/project-structure.md +0 -118
- package/skills/flutter-expert/references/riverpod-state.md +0 -130
- package/skills/flutter-expert/references/widget-patterns.md +0 -123
- package/skills/fullstack-guardian/SKILL.md +0 -105
- package/skills/fullstack-guardian/references/api-design-standards.md +0 -307
- package/skills/fullstack-guardian/references/architecture-decisions.md +0 -350
- package/skills/fullstack-guardian/references/backend-patterns.md +0 -237
- package/skills/fullstack-guardian/references/common-patterns.md +0 -134
- package/skills/fullstack-guardian/references/deliverables-checklist.md +0 -354
- package/skills/fullstack-guardian/references/design-template.md +0 -91
- package/skills/fullstack-guardian/references/error-handling.md +0 -135
- package/skills/fullstack-guardian/references/frontend-patterns.md +0 -340
- package/skills/fullstack-guardian/references/integration-patterns.md +0 -333
- package/skills/fullstack-guardian/references/security-checklist.md +0 -106
- package/skills/golang-pro/SKILL.md +0 -122
- package/skills/golang-pro/references/concurrency.md +0 -329
- package/skills/golang-pro/references/generics.md +0 -442
- package/skills/golang-pro/references/interfaces.md +0 -432
- package/skills/golang-pro/references/project-structure.md +0 -477
- package/skills/golang-pro/references/testing.md +0 -451
- package/skills/graphql-architect/SKILL.md +0 -146
- package/skills/graphql-architect/references/federation.md +0 -418
- package/skills/graphql-architect/references/migration-from-rest.md +0 -1141
- package/skills/graphql-architect/references/resolvers.md +0 -425
- package/skills/graphql-architect/references/schema-design.md +0 -393
- package/skills/graphql-architect/references/security.md +0 -569
- package/skills/graphql-architect/references/subscriptions.md +0 -510
- package/skills/java-architect/SKILL.md +0 -132
- package/skills/java-architect/references/jpa-optimization.md +0 -393
- package/skills/java-architect/references/reactive-webflux.md +0 -356
- package/skills/java-architect/references/spring-boot-setup.md +0 -269
- package/skills/java-architect/references/spring-security.md +0 -445
- package/skills/java-architect/references/testing-patterns.md +0 -500
- package/skills/javascript-pro/SKILL.md +0 -132
- package/skills/javascript-pro/references/async-patterns.md +0 -334
- package/skills/javascript-pro/references/browser-apis.md +0 -398
- package/skills/javascript-pro/references/modern-syntax.md +0 -272
- package/skills/javascript-pro/references/modules.md +0 -357
- package/skills/javascript-pro/references/node-essentials.md +0 -471
- package/skills/kotlin-specialist/SKILL.md +0 -147
- package/skills/kotlin-specialist/references/android-compose.md +0 -419
- package/skills/kotlin-specialist/references/coroutines-flow.md +0 -276
- package/skills/kotlin-specialist/references/dsl-idioms.md +0 -421
- package/skills/kotlin-specialist/references/ktor-server.md +0 -426
- package/skills/kotlin-specialist/references/multiplatform-kmp.md +0 -380
- package/skills/kubernetes-specialist/SKILL.md +0 -241
- package/skills/kubernetes-specialist/references/configuration.md +0 -452
- package/skills/kubernetes-specialist/references/cost-optimization.md +0 -458
- package/skills/kubernetes-specialist/references/custom-operators.md +0 -563
- package/skills/kubernetes-specialist/references/gitops.md +0 -530
- package/skills/kubernetes-specialist/references/helm-charts.md +0 -912
- package/skills/kubernetes-specialist/references/multi-cluster.md +0 -507
- package/skills/kubernetes-specialist/references/networking.md +0 -447
- package/skills/kubernetes-specialist/references/service-mesh.md +0 -459
- package/skills/kubernetes-specialist/references/storage.md +0 -535
- package/skills/kubernetes-specialist/references/troubleshooting.md +0 -414
- package/skills/kubernetes-specialist/references/workloads.md +0 -377
- package/skills/laravel-specialist/SKILL.md +0 -262
- package/skills/laravel-specialist/references/eloquent.md +0 -351
- package/skills/laravel-specialist/references/livewire.md +0 -512
- package/skills/laravel-specialist/references/queues.md +0 -423
- package/skills/laravel-specialist/references/routing.md +0 -362
- package/skills/laravel-specialist/references/testing.md +0 -522
- package/skills/legacy-modernizer/SKILL.md +0 -137
- package/skills/legacy-modernizer/references/legacy-testing.md +0 -381
- package/skills/legacy-modernizer/references/migration-strategies.md +0 -423
- package/skills/legacy-modernizer/references/refactoring-patterns.md +0 -395
- package/skills/legacy-modernizer/references/strangler-fig-pattern.md +0 -281
- package/skills/legacy-modernizer/references/system-assessment.md +0 -487
- package/skills/mcp-developer/SKILL.md +0 -143
- package/skills/mcp-developer/references/protocol.md +0 -244
- package/skills/mcp-developer/references/python-sdk.md +0 -367
- package/skills/mcp-developer/references/resources.md +0 -554
- package/skills/mcp-developer/references/tools.md +0 -480
- package/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/skills/microservices-architect/SKILL.md +0 -164
- package/skills/microservices-architect/references/communication.md +0 -499
- package/skills/microservices-architect/references/data.md +0 -721
- package/skills/microservices-architect/references/decomposition.md +0 -344
- package/skills/microservices-architect/references/observability.md +0 -805
- package/skills/microservices-architect/references/patterns.md +0 -603
- package/skills/ml-pipeline/SKILL.md +0 -159
- package/skills/ml-pipeline/references/experiment-tracking.md +0 -833
- package/skills/ml-pipeline/references/feature-engineering.md +0 -631
- package/skills/ml-pipeline/references/model-validation.md +0 -978
- package/skills/ml-pipeline/references/pipeline-orchestration.md +0 -907
- package/skills/ml-pipeline/references/training-pipelines.md +0 -782
- package/skills/monitoring-expert/SKILL.md +0 -176
- package/skills/monitoring-expert/references/alerting-rules.md +0 -141
- package/skills/monitoring-expert/references/application-profiling.md +0 -331
- package/skills/monitoring-expert/references/capacity-planning.md +0 -344
- package/skills/monitoring-expert/references/dashboards.md +0 -126
- package/skills/monitoring-expert/references/opentelemetry.md +0 -123
- package/skills/monitoring-expert/references/performance-testing.md +0 -269
- package/skills/monitoring-expert/references/prometheus-metrics.md +0 -136
- package/skills/monitoring-expert/references/structured-logging.md +0 -142
- package/skills/nestjs-expert/SKILL.md +0 -206
- package/skills/nestjs-expert/references/authentication.md +0 -166
- package/skills/nestjs-expert/references/controllers-routing.md +0 -111
- package/skills/nestjs-expert/references/dtos-validation.md +0 -153
- package/skills/nestjs-expert/references/migration-from-express.md +0 -1237
- package/skills/nestjs-expert/references/services-di.md +0 -140
- package/skills/nestjs-expert/references/testing-patterns.md +0 -186
- package/skills/nextjs-developer/SKILL.md +0 -143
- package/skills/nextjs-developer/references/app-router.md +0 -311
- package/skills/nextjs-developer/references/data-fetching.md +0 -482
- package/skills/nextjs-developer/references/deployment.md +0 -545
- package/skills/nextjs-developer/references/server-actions.md +0 -462
- package/skills/nextjs-developer/references/server-components.md +0 -384
- package/skills/pandas-pro/SKILL.md +0 -178
- package/skills/pandas-pro/references/aggregation-groupby.md +0 -545
- package/skills/pandas-pro/references/data-cleaning.md +0 -500
- package/skills/pandas-pro/references/dataframe-operations.md +0 -420
- package/skills/pandas-pro/references/merging-joining.md +0 -596
- package/skills/pandas-pro/references/performance-optimization.md +0 -597
- package/skills/php-pro/SKILL.md +0 -206
- package/skills/php-pro/references/async-patterns.md +0 -412
- package/skills/php-pro/references/laravel-patterns.md +0 -377
- package/skills/php-pro/references/modern-php-features.md +0 -323
- package/skills/php-pro/references/symfony-patterns.md +0 -466
- package/skills/php-pro/references/testing-quality.md +0 -466
- package/skills/playwright-expert/SKILL.md +0 -169
- package/skills/playwright-expert/references/api-mocking.md +0 -140
- package/skills/playwright-expert/references/configuration.md +0 -155
- package/skills/playwright-expert/references/debugging-flaky.md +0 -150
- package/skills/playwright-expert/references/page-object-model.md +0 -152
- package/skills/playwright-expert/references/selectors-locators.md +0 -119
- package/skills/postgres-pro/SKILL.md +0 -152
- package/skills/postgres-pro/references/extensions.md +0 -404
- package/skills/postgres-pro/references/jsonb.md +0 -321
- package/skills/postgres-pro/references/maintenance.md +0 -481
- package/skills/postgres-pro/references/performance.md +0 -265
- package/skills/postgres-pro/references/replication.md +0 -446
- package/skills/python-pro/SKILL.md +0 -177
- package/skills/python-pro/references/async-patterns.md +0 -356
- package/skills/python-pro/references/packaging.md +0 -460
- package/skills/python-pro/references/standard-library.md +0 -378
- package/skills/python-pro/references/testing.md +0 -404
- package/skills/python-pro/references/type-system.md +0 -290
- package/skills/rag-architect/SKILL.md +0 -194
- package/skills/rag-architect/references/chunking-strategies.md +0 -878
- package/skills/rag-architect/references/embedding-models.md +0 -561
- package/skills/rag-architect/references/rag-evaluation.md +0 -833
- package/skills/rag-architect/references/retrieval-optimization.md +0 -795
- package/skills/rag-architect/references/vector-databases.md +0 -589
- package/skills/rails-expert/SKILL.md +0 -154
- package/skills/rails-expert/references/active-record.md +0 -244
- package/skills/rails-expert/references/api-development.md +0 -401
- package/skills/rails-expert/references/background-jobs.md +0 -272
- package/skills/rails-expert/references/hotwire-turbo.md +0 -228
- package/skills/rails-expert/references/rspec-testing.md +0 -367
- package/skills/react-expert/SKILL.md +0 -149
- package/skills/react-expert/references/hooks-patterns.md +0 -162
- package/skills/react-expert/references/migration-class-to-modern.md +0 -1119
- package/skills/react-expert/references/performance.md +0 -168
- package/skills/react-expert/references/react-19-features.md +0 -174
- package/skills/react-expert/references/server-components.md +0 -143
- package/skills/react-expert/references/state-management.md +0 -171
- package/skills/react-expert/references/testing-react.md +0 -174
- package/skills/react-native-expert/SKILL.md +0 -185
- package/skills/react-native-expert/references/expo-router.md +0 -187
- package/skills/react-native-expert/references/list-optimization.md +0 -204
- package/skills/react-native-expert/references/platform-handling.md +0 -188
- package/skills/react-native-expert/references/project-structure.md +0 -171
- package/skills/react-native-expert/references/storage-hooks.md +0 -173
- package/skills/receiving-code-review/SKILL.md +0 -213
- package/skills/requesting-code-review/SKILL.md +0 -105
- package/skills/requesting-code-review/code-reviewer.md +0 -146
- package/skills/requirement-engineering/SKILL.md +0 -111
- package/skills/rust-engineer/SKILL.md +0 -167
- package/skills/rust-engineer/references/async.md +0 -458
- package/skills/rust-engineer/references/error-handling.md +0 -334
- package/skills/rust-engineer/references/ownership.md +0 -278
- package/skills/rust-engineer/references/testing.md +0 -470
- package/skills/rust-engineer/references/traits.md +0 -413
- package/skills/secure-code-guardian/SKILL.md +0 -191
- package/skills/secure-code-guardian/references/authentication.md +0 -136
- package/skills/secure-code-guardian/references/input-validation.md +0 -146
- package/skills/secure-code-guardian/references/owasp-prevention.md +0 -135
- package/skills/secure-code-guardian/references/security-headers.md +0 -133
- package/skills/secure-code-guardian/references/xss-csrf.md +0 -157
- package/skills/security-reviewer/SKILL.md +0 -103
- package/skills/security-reviewer/references/infrastructure-security.md +0 -268
- package/skills/security-reviewer/references/penetration-testing.md +0 -268
- package/skills/security-reviewer/references/report-template.md +0 -170
- package/skills/security-reviewer/references/sast-tools.md +0 -117
- package/skills/security-reviewer/references/secret-scanning.md +0 -125
- package/skills/security-reviewer/references/vulnerability-patterns.md +0 -152
- package/skills/spark-engineer/SKILL.md +0 -148
- package/skills/spark-engineer/references/partitioning-caching.md +0 -543
- package/skills/spark-engineer/references/performance-tuning.md +0 -544
- package/skills/spark-engineer/references/rdd-operations.md +0 -599
- package/skills/spark-engineer/references/spark-sql-dataframes.md +0 -474
- package/skills/spark-engineer/references/streaming-patterns.md +0 -786
- package/skills/spring-boot-engineer/SKILL.md +0 -195
- package/skills/spring-boot-engineer/references/cloud.md +0 -498
- package/skills/spring-boot-engineer/references/data.md +0 -381
- package/skills/spring-boot-engineer/references/security.md +0 -459
- package/skills/spring-boot-engineer/references/testing.md +0 -545
- package/skills/spring-boot-engineer/references/web.md +0 -295
- package/skills/sql-pro/SKILL.md +0 -129
- package/skills/sql-pro/references/database-design.md +0 -402
- package/skills/sql-pro/references/dialect-differences.md +0 -419
- package/skills/sql-pro/references/optimization.md +0 -384
- package/skills/sql-pro/references/query-patterns.md +0 -285
- package/skills/sql-pro/references/window-functions.md +0 -328
- package/skills/sre-engineer/SKILL.md +0 -181
- package/skills/sre-engineer/references/automation-toil.md +0 -492
- package/skills/sre-engineer/references/error-budget-policy.md +0 -334
- package/skills/sre-engineer/references/incident-chaos.md +0 -576
- package/skills/sre-engineer/references/monitoring-alerting.md +0 -424
- package/skills/sre-engineer/references/slo-sli-management.md +0 -238
- package/skills/swift-expert/SKILL.md +0 -163
- package/skills/swift-expert/references/async-concurrency.md +0 -360
- package/skills/swift-expert/references/memory-performance.md +0 -377
- package/skills/swift-expert/references/protocol-oriented.md +0 -354
- package/skills/swift-expert/references/swiftui-patterns.md +0 -291
- package/skills/swift-expert/references/testing-patterns.md +0 -399
- package/skills/systematic-debugging/CREATION-LOG.md +0 -119
- package/skills/systematic-debugging/SKILL.md +0 -296
- package/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/systematic-debugging/find-polluter.sh +0 -63
- package/skills/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/systematic-debugging/test-academic.md +0 -14
- package/skills/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/tdd-guide/assets/sample_coverage_report.lcov +0 -56
- package/skills/terraform-engineer/SKILL.md +0 -143
- package/skills/terraform-engineer/references/best-practices.md +0 -583
- package/skills/terraform-engineer/references/module-patterns.md +0 -297
- package/skills/terraform-engineer/references/providers.md +0 -452
- package/skills/terraform-engineer/references/state-management.md +0 -371
- package/skills/terraform-engineer/references/testing.md +0 -486
- package/skills/test-master/SKILL.md +0 -94
- package/skills/test-master/references/automation-frameworks.md +0 -294
- package/skills/test-master/references/e2e-testing.md +0 -128
- package/skills/test-master/references/integration-testing.md +0 -120
- package/skills/test-master/references/performance-testing.md +0 -118
- package/skills/test-master/references/qa-methodology.md +0 -247
- package/skills/test-master/references/security-testing.md +0 -127
- package/skills/test-master/references/tdd-iron-laws.md +0 -174
- package/skills/test-master/references/test-reports.md +0 -104
- package/skills/test-master/references/testing-anti-patterns.md +0 -231
- package/skills/test-master/references/unit-testing.md +0 -113
- package/skills/typescript-pro/SKILL.md +0 -145
- package/skills/typescript-pro/references/advanced-types.md +0 -259
- package/skills/typescript-pro/references/configuration.md +0 -445
- package/skills/typescript-pro/references/patterns.md +0 -484
- package/skills/typescript-pro/references/type-guards.md +0 -352
- package/skills/typescript-pro/references/utility-types.md +0 -329
- package/skills/using-git-worktrees/SKILL.md +0 -218
- package/skills/verification-before-completion/SKILL.md +0 -139
- package/skills/vue-expert/SKILL.md +0 -98
- package/skills/vue-expert/references/build-tooling.md +0 -480
- package/skills/vue-expert/references/components.md +0 -448
- package/skills/vue-expert/references/composition-api.md +0 -299
- package/skills/vue-expert/references/mobile-hybrid.md +0 -636
- package/skills/vue-expert/references/nuxt.md +0 -669
- package/skills/vue-expert/references/state-management.md +0 -449
- package/skills/vue-expert/references/typescript.md +0 -584
- package/skills/vue-expert-js/SKILL.md +0 -167
- package/skills/vue-expert-js/references/component-architecture.md +0 -219
- package/skills/vue-expert-js/references/composables-patterns.md +0 -183
- package/skills/vue-expert-js/references/jsdoc-typing.md +0 -535
- package/skills/vue-expert-js/references/state-management.md +0 -249
- package/skills/vue-expert-js/references/testing-patterns.md +0 -237
- package/skills/websocket-engineer/SKILL.md +0 -168
- package/skills/websocket-engineer/references/alternatives.md +0 -391
- package/skills/websocket-engineer/references/patterns.md +0 -400
- package/skills/websocket-engineer/references/protocol.md +0 -195
- package/skills/websocket-engineer/references/scaling.md +0 -333
- package/skills/websocket-engineer/references/security.md +0 -474
- package/skills/writing-plans/SKILL.md +0 -151
- package/skills/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/skills/writing-skills/SKILL.md +0 -655
- package/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/skills/writing-skills/persuasion-principles.md +0 -187
- package/skills/writing-skills/render-graphs.js +0 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +0 -384
- /package/skills/{design-commands → frontend/design-commands}/design.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/handoff.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/prototype.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/spec.md +0 -0
- /package/skills/{design-commands → frontend/design-commands}/style.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/SKILL.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/frontend_best_practices.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/nextjs_optimization_guide.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/references/react_patterns.md +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/bundle_analyzer.py +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/component_generator.py +0 -0
- /package/skills/{senior-frontend → frontend/senior-frontend}/scripts/frontend_scaffolder.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/SKILL.md +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/charts.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/colors.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/icons.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/landing.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/products.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/react-performance.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/astro.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/flutter.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/html-tailwind.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/jetpack-compose.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nextjs.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nuxt-ui.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/nuxtjs.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/react-native.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/react.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/shadcn.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/svelte.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/swiftui.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/stacks/vue.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/styles.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/typography.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/ui-reasoning.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/ux-guidelines.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/data/web-interface.csv +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/core.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/design_system.py +0 -0
- /package/skills/{ui-ux-pro-max → frontend/ui-ux-pro-max}/scripts/search.py +0 -0
- /package/skills/{competitive-analysis → product/competitive-analysis}/SKILL.md +0 -0
- /package/skills/{meeting-notes → product/meeting-notes}/SKILL.md +0 -0
- /package/skills/{prd-template → product/prd-template}/SKILL.md +0 -0
- /package/skills/{stakeholder-update → product/stakeholder-update}/SKILL.md +0 -0
- /package/skills/{user-research-synthesis → product/user-research-synthesis}/SKILL.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/README.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/SKILL.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/qa_best_practices.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/test_automation_patterns.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/references/testing_strategies.md +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/coverage_analyzer.py +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/e2e_test_scaffolder.py +0 -0
- /package/skills/{senior-qa → quality/senior-qa}/scripts/test_suite_generator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/HOW_TO_USE.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/README.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/SKILL.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/expected_output.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/sample_input_python.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/assets/sample_input_typescript.json +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/ci-integration.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/framework-guide.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/references/tdd-best-practices.md +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/coverage_analyzer.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/fixture_generator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/format_detector.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/framework_adapter.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/metrics_calculator.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/output_formatter.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/tdd_workflow.py +0 -0
- /package/skills/{tdd-guide → quality/tdd-guide}/scripts/test_generator.py +0 -0
- /package/skills/{brainstorming → workflow/brainstorming}/scripts/frame-template.html +0 -0
- /package/skills/{brainstorming → workflow/brainstorming}/scripts/server.cjs +0 -0
|
@@ -1,498 +0,0 @@
|
|
|
1
|
-
# Performance Optimization
|
|
2
|
-
|
|
3
|
-
## Span<T> and Memory<T>
|
|
4
|
-
|
|
5
|
-
```csharp
|
|
6
|
-
// Traditional string manipulation (allocates)
|
|
7
|
-
public string ProcessStringOld(string input)
|
|
8
|
-
{
|
|
9
|
-
return input.Substring(0, 10).ToUpper();
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// Using Span<T> (zero allocation)
|
|
13
|
-
public string ProcessStringNew(ReadOnlySpan<char> input)
|
|
14
|
-
{
|
|
15
|
-
Span<char> buffer = stackalloc char[10];
|
|
16
|
-
input[..10].ToUpperInvariant(buffer);
|
|
17
|
-
return new string(buffer);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Parsing with Span<T>
|
|
21
|
-
public int ParseNumber(ReadOnlySpan<char> text)
|
|
22
|
-
{
|
|
23
|
-
return int.Parse(text);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// Stack allocation for small arrays
|
|
27
|
-
public void ProcessSmallArray()
|
|
28
|
-
{
|
|
29
|
-
Span<int> numbers = stackalloc int[10];
|
|
30
|
-
for (int i = 0; i < numbers.Length; i++)
|
|
31
|
-
{
|
|
32
|
-
numbers[i] = i * 2;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Working with byte data
|
|
37
|
-
public void ProcessBytes(ReadOnlySpan<byte> data)
|
|
38
|
-
{
|
|
39
|
-
// Direct memory access, no allocations
|
|
40
|
-
for (int i = 0; i < data.Length; i++)
|
|
41
|
-
{
|
|
42
|
-
var byte = data[i];
|
|
43
|
-
// Process byte
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## ArrayPool for Buffer Reuse
|
|
49
|
-
|
|
50
|
-
```csharp
|
|
51
|
-
using System.Buffers;
|
|
52
|
-
|
|
53
|
-
public class BufferProcessor
|
|
54
|
-
{
|
|
55
|
-
public async Task ProcessLargeDataAsync(Stream stream, CancellationToken ct)
|
|
56
|
-
{
|
|
57
|
-
// Rent array from pool
|
|
58
|
-
var buffer = ArrayPool<byte>.Shared.Rent(4096);
|
|
59
|
-
|
|
60
|
-
try
|
|
61
|
-
{
|
|
62
|
-
int bytesRead;
|
|
63
|
-
while ((bytesRead = await stream.ReadAsync(buffer, ct)) > 0)
|
|
64
|
-
{
|
|
65
|
-
// Process buffer[0..bytesRead]
|
|
66
|
-
ProcessChunk(buffer.AsSpan(0, bytesRead));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
finally
|
|
70
|
-
{
|
|
71
|
-
// Always return to pool
|
|
72
|
-
ArrayPool<byte>.Shared.Return(buffer);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private void ProcessChunk(ReadOnlySpan<byte> chunk)
|
|
77
|
-
{
|
|
78
|
-
// Processing logic
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Async Best Practices
|
|
84
|
-
|
|
85
|
-
```csharp
|
|
86
|
-
// Use ValueTask for frequently synchronous paths
|
|
87
|
-
public class CacheService
|
|
88
|
-
{
|
|
89
|
-
private readonly Dictionary<string, string> _cache = new();
|
|
90
|
-
|
|
91
|
-
public ValueTask<string?> GetAsync(string key)
|
|
92
|
-
{
|
|
93
|
-
// If cached, return synchronously without allocation
|
|
94
|
-
if (_cache.TryGetValue(key, out var value))
|
|
95
|
-
return ValueTask.FromResult<string?>(value);
|
|
96
|
-
|
|
97
|
-
// Otherwise, async path
|
|
98
|
-
return LoadFromDatabaseAsync(key);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
private async ValueTask<string?> LoadFromDatabaseAsync(string key)
|
|
102
|
-
{
|
|
103
|
-
var value = await _database.GetAsync(key);
|
|
104
|
-
_cache[key] = value;
|
|
105
|
-
return value;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// ConfigureAwait(false) in libraries
|
|
110
|
-
public async Task<Data> GetDataAsync()
|
|
111
|
-
{
|
|
112
|
-
var response = await _httpClient.GetAsync("api/data")
|
|
113
|
-
.ConfigureAwait(false);
|
|
114
|
-
return await response.Content.ReadFromJsonAsync<Data>()
|
|
115
|
-
.ConfigureAwait(false);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Avoid async void except for event handlers
|
|
119
|
-
public async void ButtonClick(object sender, EventArgs e) // OK for events
|
|
120
|
-
{
|
|
121
|
-
try
|
|
122
|
-
{
|
|
123
|
-
await ProcessClickAsync();
|
|
124
|
-
}
|
|
125
|
-
catch (Exception ex)
|
|
126
|
-
{
|
|
127
|
-
_logger.LogError(ex, "Error processing click");
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Cancellation token support
|
|
132
|
-
public async Task<List<Product>> GetProductsAsync(CancellationToken ct = default)
|
|
133
|
-
{
|
|
134
|
-
return await _dbContext.Products
|
|
135
|
-
.AsNoTracking()
|
|
136
|
-
.ToListAsync(ct);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Parallel async operations
|
|
140
|
-
public async Task<(User user, Orders orders, Profile profile)> GetUserDataAsync(int userId)
|
|
141
|
-
{
|
|
142
|
-
var userTask = _userService.GetAsync(userId);
|
|
143
|
-
var ordersTask = _orderService.GetByUserAsync(userId);
|
|
144
|
-
var profileTask = _profileService.GetAsync(userId);
|
|
145
|
-
|
|
146
|
-
await Task.WhenAll(userTask, ordersTask, profileTask);
|
|
147
|
-
|
|
148
|
-
return (await userTask, await ordersTask, await profileTask);
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Object Pooling
|
|
153
|
-
|
|
154
|
-
```csharp
|
|
155
|
-
using Microsoft.Extensions.ObjectPool;
|
|
156
|
-
|
|
157
|
-
// Define pooled object policy
|
|
158
|
-
public class StringBuilderPooledObjectPolicy : PooledObjectPolicy<StringBuilder>
|
|
159
|
-
{
|
|
160
|
-
public override StringBuilder Create() => new StringBuilder();
|
|
161
|
-
|
|
162
|
-
public override bool Return(StringBuilder obj)
|
|
163
|
-
{
|
|
164
|
-
obj.Clear();
|
|
165
|
-
return obj.Capacity <= 4096; // Don't pool if too large
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Register in DI
|
|
170
|
-
builder.Services.AddSingleton<ObjectPoolProvider, DefaultObjectPoolProvider>();
|
|
171
|
-
builder.Services.AddSingleton(serviceProvider =>
|
|
172
|
-
{
|
|
173
|
-
var provider = serviceProvider.GetRequiredService<ObjectPoolProvider>();
|
|
174
|
-
return provider.Create(new StringBuilderPooledObjectPolicy());
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// Usage
|
|
178
|
-
public class MessageFormatter(ObjectPool<StringBuilder> pool)
|
|
179
|
-
{
|
|
180
|
-
public string FormatMessage(string template, params object[] args)
|
|
181
|
-
{
|
|
182
|
-
var builder = pool.Get();
|
|
183
|
-
try
|
|
184
|
-
{
|
|
185
|
-
builder.AppendFormat(template, args);
|
|
186
|
-
return builder.ToString();
|
|
187
|
-
}
|
|
188
|
-
finally
|
|
189
|
-
{
|
|
190
|
-
pool.Return(builder);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Benchmarking with BenchmarkDotNet
|
|
197
|
-
|
|
198
|
-
```csharp
|
|
199
|
-
using BenchmarkDotNet.Attributes;
|
|
200
|
-
using BenchmarkDotNet.Running;
|
|
201
|
-
|
|
202
|
-
[MemoryDiagnoser]
|
|
203
|
-
[SimpleJob(warmupCount: 3, iterationCount: 5)]
|
|
204
|
-
public class StringBenchmarks
|
|
205
|
-
{
|
|
206
|
-
private const string Input = "Hello, World!";
|
|
207
|
-
|
|
208
|
-
[Benchmark(Baseline = true)]
|
|
209
|
-
public string UsingSubstring()
|
|
210
|
-
{
|
|
211
|
-
return Input.Substring(0, 5).ToUpper();
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
[Benchmark]
|
|
215
|
-
public string UsingSpan()
|
|
216
|
-
{
|
|
217
|
-
ReadOnlySpan<char> span = Input.AsSpan(0, 5);
|
|
218
|
-
return span.ToString().ToUpper();
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
[Benchmark]
|
|
222
|
-
public string UsingSpanWithStackAlloc()
|
|
223
|
-
{
|
|
224
|
-
ReadOnlySpan<char> input = Input;
|
|
225
|
-
Span<char> buffer = stackalloc char[5];
|
|
226
|
-
input[..5].ToUpperInvariant(buffer);
|
|
227
|
-
return new string(buffer);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Program.cs
|
|
232
|
-
class Program
|
|
233
|
-
{
|
|
234
|
-
static void Main(string[] args)
|
|
235
|
-
{
|
|
236
|
-
var summary = BenchmarkRunner.Run<StringBenchmarks>();
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
## Collection Performance
|
|
242
|
-
|
|
243
|
-
```csharp
|
|
244
|
-
// Use appropriate collection types
|
|
245
|
-
public class CollectionExamples
|
|
246
|
-
{
|
|
247
|
-
// Fast lookups: Dictionary over List
|
|
248
|
-
private readonly Dictionary<int, Product> _productsById = new();
|
|
249
|
-
|
|
250
|
-
// HashSet for unique items
|
|
251
|
-
private readonly HashSet<string> _processedIds = new();
|
|
252
|
-
|
|
253
|
-
// Frozen collections for readonly data (.NET 8)
|
|
254
|
-
private static readonly FrozenDictionary<string, int> StatusCodes =
|
|
255
|
-
new Dictionary<string, int>
|
|
256
|
-
{
|
|
257
|
-
["Active"] = 1,
|
|
258
|
-
["Inactive"] = 0
|
|
259
|
-
}.ToFrozenDictionary();
|
|
260
|
-
|
|
261
|
-
// Pre-size collections when count is known
|
|
262
|
-
public List<Product> CreateProducts(int count)
|
|
263
|
-
{
|
|
264
|
-
var products = new List<Product>(count); // Pre-allocate
|
|
265
|
-
for (int i = 0; i < count; i++)
|
|
266
|
-
{
|
|
267
|
-
products.Add(new Product { Id = i });
|
|
268
|
-
}
|
|
269
|
-
return products;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// Use spans for array operations
|
|
273
|
-
public int SumArray(int[] numbers)
|
|
274
|
-
{
|
|
275
|
-
return Sum(numbers.AsSpan());
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
private static int Sum(ReadOnlySpan<int> numbers)
|
|
279
|
-
{
|
|
280
|
-
int total = 0;
|
|
281
|
-
foreach (var n in numbers)
|
|
282
|
-
total += n;
|
|
283
|
-
return total;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
## LINQ Optimization
|
|
289
|
-
|
|
290
|
-
```csharp
|
|
291
|
-
public class LinqOptimizations
|
|
292
|
-
{
|
|
293
|
-
// Avoid multiple enumerations
|
|
294
|
-
public void BadExample(IEnumerable<int> numbers)
|
|
295
|
-
{
|
|
296
|
-
if (numbers.Any())
|
|
297
|
-
{
|
|
298
|
-
var first = numbers.First(); // Enumerates again
|
|
299
|
-
var count = numbers.Count(); // Enumerates again
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
public void GoodExample(IEnumerable<int> numbers)
|
|
304
|
-
{
|
|
305
|
-
var list = numbers.ToList(); // Enumerate once
|
|
306
|
-
if (list.Count > 0)
|
|
307
|
-
{
|
|
308
|
-
var first = list[0];
|
|
309
|
-
var count = list.Count;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
// Use appropriate LINQ methods
|
|
314
|
-
public bool HasActiveUsers(List<User> users)
|
|
315
|
-
{
|
|
316
|
-
return users.Any(u => u.IsActive); // Better than Count() > 0
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
// Avoid unnecessary ToList()
|
|
320
|
-
public IEnumerable<Product> GetExpensiveProducts(IEnumerable<Product> products)
|
|
321
|
-
{
|
|
322
|
-
return products.Where(p => p.Price > 100); // Deferred execution
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// Use Select for projections early
|
|
326
|
-
public List<string> GetProductNames(IEnumerable<Product> products)
|
|
327
|
-
{
|
|
328
|
-
return products
|
|
329
|
-
.Where(p => p.IsActive)
|
|
330
|
-
.Select(p => p.Name) // Project early
|
|
331
|
-
.ToList();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
## Response Caching and Compression
|
|
337
|
-
|
|
338
|
-
```csharp
|
|
339
|
-
// Program.cs
|
|
340
|
-
builder.Services.AddResponseCaching();
|
|
341
|
-
builder.Services.AddResponseCompression(options =>
|
|
342
|
-
{
|
|
343
|
-
options.EnableForHttps = true;
|
|
344
|
-
options.Providers.Add<BrotliCompressionProvider>();
|
|
345
|
-
options.Providers.Add<GzipCompressionProvider>();
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
app.UseResponseCompression();
|
|
349
|
-
app.UseResponseCaching();
|
|
350
|
-
|
|
351
|
-
// Endpoint with caching
|
|
352
|
-
app.MapGet("/api/products", async (ProductService service) =>
|
|
353
|
-
{
|
|
354
|
-
var products = await service.GetAllAsync();
|
|
355
|
-
return Results.Ok(products);
|
|
356
|
-
})
|
|
357
|
-
.CacheOutput(policy => policy.Expire(TimeSpan.FromMinutes(5)));
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
## Database Query Optimization
|
|
361
|
-
|
|
362
|
-
```csharp
|
|
363
|
-
public class OptimizedQueries(AppDbContext context)
|
|
364
|
-
{
|
|
365
|
-
// Use AsNoTracking for read-only queries
|
|
366
|
-
public async Task<List<ProductDto>> GetProductsAsync(CancellationToken ct)
|
|
367
|
-
{
|
|
368
|
-
return await context.Products
|
|
369
|
-
.AsNoTracking()
|
|
370
|
-
.Select(p => new ProductDto
|
|
371
|
-
{
|
|
372
|
-
Id = p.Id,
|
|
373
|
-
Name = p.Name,
|
|
374
|
-
Price = p.Price
|
|
375
|
-
})
|
|
376
|
-
.ToListAsync(ct);
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
// Avoid N+1 queries with Include
|
|
380
|
-
public async Task<List<Order>> GetOrdersWithItemsAsync(CancellationToken ct)
|
|
381
|
-
{
|
|
382
|
-
return await context.Orders
|
|
383
|
-
.Include(o => o.OrderItems)
|
|
384
|
-
.ThenInclude(oi => oi.Product)
|
|
385
|
-
.AsNoTracking()
|
|
386
|
-
.ToListAsync(ct);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
// Use compiled queries for repeated queries
|
|
390
|
-
private static readonly Func<AppDbContext, int, Task<Product?>> GetProductById =
|
|
391
|
-
EF.CompileAsyncQuery((AppDbContext ctx, int id) =>
|
|
392
|
-
ctx.Products.FirstOrDefault(p => p.Id == id));
|
|
393
|
-
|
|
394
|
-
public Task<Product?> GetProductOptimizedAsync(int id)
|
|
395
|
-
{
|
|
396
|
-
return GetProductById(context, id);
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// Pagination
|
|
400
|
-
public async Task<PagedResult<ProductDto>> GetPagedAsync(
|
|
401
|
-
int page,
|
|
402
|
-
int pageSize,
|
|
403
|
-
CancellationToken ct)
|
|
404
|
-
{
|
|
405
|
-
var query = context.Products.AsNoTracking();
|
|
406
|
-
|
|
407
|
-
var total = await query.CountAsync(ct);
|
|
408
|
-
|
|
409
|
-
var items = await query
|
|
410
|
-
.OrderBy(p => p.Name)
|
|
411
|
-
.Skip((page - 1) * pageSize)
|
|
412
|
-
.Take(pageSize)
|
|
413
|
-
.Select(p => new ProductDto
|
|
414
|
-
{
|
|
415
|
-
Id = p.Id,
|
|
416
|
-
Name = p.Name,
|
|
417
|
-
Price = p.Price
|
|
418
|
-
})
|
|
419
|
-
.ToListAsync(ct);
|
|
420
|
-
|
|
421
|
-
return new PagedResult<ProductDto>(items, total, page, pageSize);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
## Source Generators and AOT
|
|
427
|
-
|
|
428
|
-
```csharp
|
|
429
|
-
// Prepare for Native AOT
|
|
430
|
-
using System.Text.Json.Serialization;
|
|
431
|
-
|
|
432
|
-
[JsonSerializable(typeof(ProductDto))]
|
|
433
|
-
[JsonSerializable(typeof(List<ProductDto>))]
|
|
434
|
-
internal partial class AppJsonSerializerContext : JsonSerializerContext
|
|
435
|
-
{
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
// Usage in API
|
|
439
|
-
app.MapGet("/api/products", async (ProductService service) =>
|
|
440
|
-
{
|
|
441
|
-
var products = await service.GetAllAsync();
|
|
442
|
-
return Results.Json(products, AppJsonSerializerContext.Default.ListProductDto);
|
|
443
|
-
});
|
|
444
|
-
|
|
445
|
-
// .csproj for AOT
|
|
446
|
-
<PropertyGroup>
|
|
447
|
-
<PublishAot>true</PublishAot>
|
|
448
|
-
<InvariantGlobalization>true</InvariantGlobalization>
|
|
449
|
-
<JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault>
|
|
450
|
-
</PropertyGroup>
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
## Memory Profiling Tips
|
|
454
|
-
|
|
455
|
-
```csharp
|
|
456
|
-
// Avoid boxing value types
|
|
457
|
-
public void AvoidBoxing()
|
|
458
|
-
{
|
|
459
|
-
// Bad: boxing
|
|
460
|
-
object obj = 42;
|
|
461
|
-
|
|
462
|
-
// Good: use generics
|
|
463
|
-
void Print<T>(T value) => Console.WriteLine(value);
|
|
464
|
-
Print(42); // No boxing
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
// Use structs for small, immutable data
|
|
468
|
-
public readonly struct Point(int x, int y)
|
|
469
|
-
{
|
|
470
|
-
public int X { get; } = x;
|
|
471
|
-
public int Y { get; } = y;
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
// Avoid string concatenation in loops
|
|
475
|
-
public string BuildString(List<string> items)
|
|
476
|
-
{
|
|
477
|
-
var builder = new StringBuilder();
|
|
478
|
-
foreach (var item in items)
|
|
479
|
-
{
|
|
480
|
-
builder.Append(item);
|
|
481
|
-
}
|
|
482
|
-
return builder.ToString();
|
|
483
|
-
}
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
## Quick Reference
|
|
487
|
-
|
|
488
|
-
| Optimization | Use Case | Benefit |
|
|
489
|
-
|-------------|----------|---------|
|
|
490
|
-
| `Span<T>` | Array/string operations | Zero allocation |
|
|
491
|
-
| `ArrayPool<T>` | Temporary buffers | Reduce GC pressure |
|
|
492
|
-
| `ValueTask<T>` | Frequently sync paths | Lower allocation |
|
|
493
|
-
| `ConfigureAwait(false)` | Libraries | Avoid context capture |
|
|
494
|
-
| Frozen collections | Static readonly data | Faster lookups |
|
|
495
|
-
| `AsNoTracking()` | Read-only queries | Better EF performance |
|
|
496
|
-
| Object pooling | Heavy objects | Reuse instances |
|
|
497
|
-
| Response caching | Static responses | Reduce server load |
|
|
498
|
-
| Native AOT | Startup time critical | Faster cold start |
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: database-optimizer
|
|
3
|
-
description: Optimizes database queries and improves performance across PostgreSQL and MySQL systems. Use when investigating slow queries, analyzing execution plans, or optimizing database performance. Invoke for index design, query rewrites, configuration tuning, partitioning strategies, lock contention resolution.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: https://github.com/Jeffallan
|
|
7
|
-
version: "1.1.1"
|
|
8
|
-
domain: infrastructure
|
|
9
|
-
triggers: database optimization, slow query, query performance, database tuning, index optimization, execution plan, EXPLAIN ANALYZE, database performance, PostgreSQL optimization, MySQL optimization
|
|
10
|
-
role: specialist
|
|
11
|
-
scope: optimization
|
|
12
|
-
output-format: analysis-and-code
|
|
13
|
-
related-skills: devops-engineer, postgres-pro, graphql-architect
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Database Optimizer
|
|
17
|
-
|
|
18
|
-
Senior database optimizer with expertise in performance tuning, query optimization, and scalability across multiple database systems.
|
|
19
|
-
|
|
20
|
-
## When to Use This Skill
|
|
21
|
-
|
|
22
|
-
- Analyzing slow queries and execution plans
|
|
23
|
-
- Designing optimal index strategies
|
|
24
|
-
- Tuning database configuration parameters
|
|
25
|
-
- Optimizing schema design and partitioning
|
|
26
|
-
- Reducing lock contention and deadlocks
|
|
27
|
-
- Improving cache hit rates and memory usage
|
|
28
|
-
|
|
29
|
-
## Core Workflow
|
|
30
|
-
|
|
31
|
-
1. **Analyze Performance** — Capture baseline metrics and run `EXPLAIN ANALYZE` before any changes
|
|
32
|
-
2. **Identify Bottlenecks** — Find inefficient queries, missing indexes, config issues
|
|
33
|
-
3. **Design Solutions** — Create index strategies, query rewrites, schema improvements
|
|
34
|
-
4. **Implement Changes** — Apply optimizations incrementally with monitoring; validate each change before proceeding to the next
|
|
35
|
-
5. **Validate Results** — Re-run `EXPLAIN ANALYZE`, compare costs, measure wall-clock improvement, document changes
|
|
36
|
-
|
|
37
|
-
> ⚠️ Always test changes in non-production first. Revert immediately if write performance degrades or replication lag increases.
|
|
38
|
-
|
|
39
|
-
## Reference Guide
|
|
40
|
-
|
|
41
|
-
Load detailed guidance based on context:
|
|
42
|
-
|
|
43
|
-
| Topic | Reference | Load When |
|
|
44
|
-
|-------|-----------|-----------|
|
|
45
|
-
| Query Optimization | `references/query-optimization.md` | Analyzing slow queries, execution plans |
|
|
46
|
-
| Index Strategies | `references/index-strategies.md` | Designing indexes, covering indexes |
|
|
47
|
-
| PostgreSQL Tuning | `references/postgresql-tuning.md` | PostgreSQL-specific optimizations |
|
|
48
|
-
| MySQL Tuning | `references/mysql-tuning.md` | MySQL-specific optimizations |
|
|
49
|
-
| Monitoring & Analysis | `references/monitoring-analysis.md` | Performance metrics, diagnostics |
|
|
50
|
-
|
|
51
|
-
## Common Operations & Examples
|
|
52
|
-
|
|
53
|
-
### Identify Top Slow Queries (PostgreSQL)
|
|
54
|
-
```sql
|
|
55
|
-
-- Requires pg_stat_statements extension
|
|
56
|
-
SELECT query,
|
|
57
|
-
calls,
|
|
58
|
-
round(total_exec_time::numeric, 2) AS total_ms,
|
|
59
|
-
round(mean_exec_time::numeric, 2) AS mean_ms,
|
|
60
|
-
round(stddev_exec_time::numeric, 2) AS stddev_ms,
|
|
61
|
-
rows
|
|
62
|
-
FROM pg_stat_statements
|
|
63
|
-
ORDER BY mean_exec_time DESC
|
|
64
|
-
LIMIT 20;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Capture an Execution Plan
|
|
68
|
-
```sql
|
|
69
|
-
-- Use BUFFERS to expose cache hit vs. disk read ratio
|
|
70
|
-
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
|
|
71
|
-
SELECT o.id, c.name
|
|
72
|
-
FROM orders o
|
|
73
|
-
JOIN customers c ON c.id = o.customer_id
|
|
74
|
-
WHERE o.status = 'pending'
|
|
75
|
-
AND o.created_at > now() - interval '7 days';
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Reading EXPLAIN Output — Key Patterns to Find
|
|
79
|
-
|
|
80
|
-
| Pattern | Symptom | Typical Remedy |
|
|
81
|
-
|---------|---------|----------------|
|
|
82
|
-
| `Seq Scan` on large table | High row estimate, no filter selectivity | Add B-tree index on filter column |
|
|
83
|
-
| `Nested Loop` with large outer set | Exponential row growth in inner loop | Consider Hash Join; index inner join key |
|
|
84
|
-
| `cost=... rows=1` but actual rows=50000 | Stale statistics | Run `ANALYZE <table>;` |
|
|
85
|
-
| `Buffers: hit=10 read=90000` | Low buffer cache hit rate | Increase `shared_buffers`; add covering index |
|
|
86
|
-
| `Sort Method: external merge` | Sort spilling to disk | Increase `work_mem` for the session |
|
|
87
|
-
|
|
88
|
-
### Create a Covering Index
|
|
89
|
-
```sql
|
|
90
|
-
-- Covers the filter AND the projected columns, eliminating a heap fetch
|
|
91
|
-
CREATE INDEX CONCURRENTLY idx_orders_status_created_covering
|
|
92
|
-
ON orders (status, created_at)
|
|
93
|
-
INCLUDE (customer_id, total_amount);
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Validate Improvement
|
|
97
|
-
```sql
|
|
98
|
-
-- Before optimization: save plan & timing
|
|
99
|
-
EXPLAIN (ANALYZE, BUFFERS) <query>; -- note "Execution Time: X ms"
|
|
100
|
-
|
|
101
|
-
-- After optimization: compare
|
|
102
|
-
EXPLAIN (ANALYZE, BUFFERS) <query>; -- target meaningful reduction in cost & time
|
|
103
|
-
|
|
104
|
-
-- Confirm index is actually used
|
|
105
|
-
SELECT indexname, idx_scan, idx_tup_read, idx_tup_fetch
|
|
106
|
-
FROM pg_stat_user_indexes
|
|
107
|
-
WHERE relname = 'orders';
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### MySQL: Find Slow Queries
|
|
111
|
-
```sql
|
|
112
|
-
-- Inspect slow query log candidates
|
|
113
|
-
SELECT * FROM performance_schema.events_statements_summary_by_digest
|
|
114
|
-
ORDER BY SUM_TIMER_WAIT DESC
|
|
115
|
-
LIMIT 20;
|
|
116
|
-
|
|
117
|
-
-- Execution plan
|
|
118
|
-
EXPLAIN FORMAT=JSON
|
|
119
|
-
SELECT * FROM orders WHERE status = 'pending' AND created_at > NOW() - INTERVAL 7 DAY;
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Constraints
|
|
123
|
-
|
|
124
|
-
### MUST DO
|
|
125
|
-
- Capture `EXPLAIN (ANALYZE, BUFFERS)` output **before** optimizing — this is the baseline
|
|
126
|
-
- Measure performance before and after every change
|
|
127
|
-
- Create indexes with `CONCURRENTLY` (PostgreSQL) to avoid table locks
|
|
128
|
-
- Test in non-production; roll back if write performance or replication lag worsens
|
|
129
|
-
- Document all optimization decisions with before/after metrics
|
|
130
|
-
- Run `ANALYZE` after bulk data changes to refresh statistics
|
|
131
|
-
|
|
132
|
-
### MUST NOT DO
|
|
133
|
-
- Apply optimizations without a measured baseline
|
|
134
|
-
- Create redundant or unused indexes
|
|
135
|
-
- Make multiple changes simultaneously (impossible to attribute impact)
|
|
136
|
-
- Ignore write amplification caused by new indexes
|
|
137
|
-
- Neglect `VACUUM` / statistics maintenance
|
|
138
|
-
|
|
139
|
-
## Output Templates
|
|
140
|
-
|
|
141
|
-
When optimizing database performance, provide:
|
|
142
|
-
1. Performance analysis with baseline metrics (query time, cost, buffer hit ratio)
|
|
143
|
-
2. Identified bottlenecks and root causes (with EXPLAIN evidence)
|
|
144
|
-
3. Optimization strategy with specific changes
|
|
145
|
-
4. Implementation SQL / config changes
|
|
146
|
-
5. Validation queries to measure improvement
|
|
147
|
-
6. Monitoring recommendations
|