@ruaruababa/vibe-kit 1.0.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/CATALOG.md +317 -0
- package/README.md +121 -0
- package/aliases.json +65 -0
- package/bin/vibe.js +2 -0
- package/bundles.json +265 -0
- package/catalog.json +1560 -0
- package/dist/antigravity-skills/bin/cli.js +438 -0
- package/dist/antigravity-skills/lib/skill-utils.js +158 -0
- package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
- package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
- package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
- package/dist/bin/vibe.js +2 -0
- package/dist/dist/src/cli/index.js +26 -0
- package/dist/lib/skill-utils.js +158 -0
- package/dist/scripts/build-catalog.js +50 -0
- package/dist/scripts/normalize-frontmatter.js +144 -0
- package/dist/scripts/validate-skills.js +56 -0
- package/dist/src/cli/index.js +146 -0
- package/dist/src/types/index.js +13 -0
- package/dist/src/utils/fs.js +1 -0
- package/package.json +43 -0
- package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
- package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
- package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
- package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
- package/skills/agent-orchestrator/SKILL.md +24 -0
- package/skills/ai-engineer/SKILL.md +171 -0
- package/skills/airflow-dag-patterns/SKILL.md +41 -0
- package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
- package/skills/angular-migration/SKILL.md +428 -0
- package/skills/anti-reversing-techniques/SKILL.md +42 -0
- package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
- package/skills/api-design-principles/SKILL.md +37 -0
- package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/skills/api-documenter/SKILL.md +184 -0
- package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
- package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
- package/skills/application-performance-performance-optimization/SKILL.md +154 -0
- package/skills/architect-review/SKILL.md +174 -0
- package/skills/architecture-decision-records/SKILL.md +441 -0
- package/skills/architecture-patterns/SKILL.md +37 -0
- package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
- package/skills/arm-cortex-expert/SKILL.md +306 -0
- package/skills/async-python-patterns/SKILL.md +39 -0
- package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
- package/skills/attack-tree-construction/SKILL.md +38 -0
- package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
- package/skills/auth-implementation-patterns/SKILL.md +39 -0
- package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
- package/skills/backend-architect/SKILL.md +333 -0
- package/skills/backend-development-feature-development/SKILL.md +180 -0
- package/skills/backend-security-coder/SKILL.md +156 -0
- package/skills/backtesting-frameworks/SKILL.md +39 -0
- package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
- package/skills/bash-defensive-patterns/SKILL.md +43 -0
- package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
- package/skills/bash-pro/SKILL.md +310 -0
- package/skills/bats-testing-patterns/SKILL.md +34 -0
- package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
- package/skills/bazel-build-optimization/SKILL.md +397 -0
- package/skills/billing-automation/SKILL.md +42 -0
- package/skills/billing-automation/resources/implementation-playbook.md +544 -0
- package/skills/binary-analysis-patterns/SKILL.md +450 -0
- package/skills/blockchain-developer/SKILL.md +208 -0
- package/skills/business-analyst/SKILL.md +182 -0
- package/skills/c-pro/SKILL.md +56 -0
- package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
- package/skills/c4-code/SKILL.md +244 -0
- package/skills/c4-component/SKILL.md +153 -0
- package/skills/c4-container/SKILL.md +171 -0
- package/skills/c4-context/SKILL.md +150 -0
- package/skills/changelog-automation/SKILL.md +38 -0
- package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
- package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
- package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
- package/skills/clean-markdown/SKILL.md +23 -0
- package/skills/cloud-architect/SKILL.md +135 -0
- package/skills/code-documentation-code-explain/SKILL.md +46 -0
- package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
- package/skills/code-documentation-doc-generate/SKILL.md +48 -0
- package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/code-refactoring-context-restore/SKILL.md +179 -0
- package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
- package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
- package/skills/code-review-ai-ai-review/SKILL.md +450 -0
- package/skills/code-review-excellence/SKILL.md +40 -0
- package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
- package/skills/code-reviewer/SKILL.md +178 -0
- package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
- package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
- package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
- package/skills/competitive-landscape/SKILL.md +34 -0
- package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
- package/skills/comprehensive-review-full-review/SKILL.md +146 -0
- package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
- package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
- package/skills/conductor-implement/SKILL.md +388 -0
- package/skills/conductor-manage/SKILL.md +39 -0
- package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
- package/skills/conductor-new-track/SKILL.md +433 -0
- package/skills/conductor-revert/SKILL.md +372 -0
- package/skills/conductor-setup/SKILL.md +426 -0
- package/skills/conductor-status/SKILL.md +338 -0
- package/skills/conductor-validator/SKILL.md +62 -0
- package/skills/content-marketer/SKILL.md +170 -0
- package/skills/context-driven-development/SKILL.md +400 -0
- package/skills/context-management-context-restore/SKILL.md +179 -0
- package/skills/context-management-context-save/SKILL.md +177 -0
- package/skills/context-manager/SKILL.md +185 -0
- package/skills/cost-optimization/SKILL.md +286 -0
- package/skills/cpp-pro/SKILL.md +59 -0
- package/skills/cqrs-implementation/SKILL.md +35 -0
- package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
- package/skills/csharp-pro/SKILL.md +59 -0
- package/skills/customer-support/SKILL.md +170 -0
- package/skills/data-engineer/SKILL.md +224 -0
- package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
- package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
- package/skills/data-quality-frameworks/SKILL.md +40 -0
- package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
- package/skills/data-scientist/SKILL.md +199 -0
- package/skills/data-storytelling/SKILL.md +465 -0
- package/skills/database-admin/SKILL.md +165 -0
- package/skills/database-architect/SKILL.md +268 -0
- package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
- package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
- package/skills/database-migration/SKILL.md +436 -0
- package/skills/database-migrations-migration-observability/SKILL.md +420 -0
- package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
- package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
- package/skills/database-optimizer/SKILL.md +167 -0
- package/skills/dbt-transformation-patterns/SKILL.md +34 -0
- package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
- package/skills/debugger/SKILL.md +49 -0
- package/skills/debugging-strategies/SKILL.md +34 -0
- package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
- package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
- package/skills/defi-protocol-templates/SKILL.md +466 -0
- package/skills/dependency-management-deps-audit/SKILL.md +44 -0
- package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/dependency-upgrade/SKILL.md +421 -0
- package/skills/deployment-engineer/SKILL.md +170 -0
- package/skills/deployment-pipeline-design/SKILL.md +371 -0
- package/skills/deployment-validation-config-validate/SKILL.md +496 -0
- package/skills/devops-troubleshooter/SKILL.md +161 -0
- package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
- package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
- package/skills/distributed-tracing/SKILL.md +450 -0
- package/skills/django-pro/SKILL.md +180 -0
- package/skills/docs-architect/SKILL.md +98 -0
- package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
- package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/dotnet-architect/SKILL.md +197 -0
- package/skills/dotnet-backend-patterns/SKILL.md +37 -0
- package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
- package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
- package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
- package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
- package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
- package/skills/dummy-skill/SKILL.md +5 -0
- package/skills/dx-optimizer/SKILL.md +83 -0
- package/skills/e2e-testing-patterns/SKILL.md +41 -0
- package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
- package/skills/elixir-pro/SKILL.md +59 -0
- package/skills/embedding-strategies/SKILL.md +491 -0
- package/skills/employment-contract-templates/SKILL.md +39 -0
- package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
- package/skills/error-debugging-error-analysis/SKILL.md +47 -0
- package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-debugging-error-trace/SKILL.md +43 -0
- package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
- package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
- package/skills/error-detective/SKILL.md +53 -0
- package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
- package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
- package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
- package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
- package/skills/error-handling-patterns/SKILL.md +35 -0
- package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
- package/skills/event-sourcing-architect/SKILL.md +58 -0
- package/skills/event-store-design/SKILL.md +449 -0
- package/skills/fastapi-pro/SKILL.md +192 -0
- package/skills/fastapi-templates/SKILL.md +32 -0
- package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
- package/skills/final-test/SKILL.md +5 -0
- package/skills/firmware-analyst/SKILL.md +320 -0
- package/skills/flutter-expert/SKILL.md +200 -0
- package/skills/framework-migration-code-migrate/SKILL.md +48 -0
- package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
- package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
- package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
- package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
- package/skills/frontend-developer/SKILL.md +171 -0
- package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
- package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
- package/skills/frontend-security-coder/SKILL.md +170 -0
- package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
- package/skills/gdpr-data-handling/SKILL.md +33 -0
- package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
- package/skills/git-advanced-workflows/SKILL.md +412 -0
- package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
- package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
- package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
- package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
- package/skills/github-actions-templates/SKILL.md +345 -0
- package/skills/gitlab-ci-patterns/SKILL.md +283 -0
- package/skills/gitops-workflow/SKILL.md +303 -0
- package/skills/gitops-workflow/references/argocd-setup.md +134 -0
- package/skills/gitops-workflow/references/sync-policies.md +131 -0
- package/skills/go-concurrency-patterns/SKILL.md +33 -0
- package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
- package/skills/godot-gdscript-patterns/SKILL.md +33 -0
- package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
- package/skills/golang-pro/SKILL.md +179 -0
- package/skills/grafana-dashboards/SKILL.md +381 -0
- package/skills/graphql-architect/SKILL.md +182 -0
- package/skills/haskell-pro/SKILL.md +56 -0
- package/skills/helm-chart-scaffolding/SKILL.md +34 -0
- package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
- package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
- package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/skills/hr-pro/SKILL.md +126 -0
- package/skills/hybrid-cloud-architect/SKILL.md +168 -0
- package/skills/hybrid-cloud-networking/SKILL.md +238 -0
- package/skills/hybrid-search-implementation/SKILL.md +32 -0
- package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
- package/skills/incident-responder/SKILL.md +213 -0
- package/skills/incident-response-incident-response/SKILL.md +168 -0
- package/skills/incident-response-smart-fix/SKILL.md +29 -0
- package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
- package/skills/incident-runbook-templates/SKILL.md +395 -0
- package/skills/ios-developer/SKILL.md +219 -0
- package/skills/istio-traffic-management/SKILL.md +337 -0
- package/skills/java-pro/SKILL.md +177 -0
- package/skills/javascript-pro/SKILL.md +57 -0
- package/skills/javascript-testing-patterns/SKILL.md +35 -0
- package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
- package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
- package/skills/julia-pro/SKILL.md +209 -0
- package/skills/k8s-manifest-generator/SKILL.md +35 -0
- package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
- package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
- package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
- package/skills/k8s-security-policies/SKILL.md +346 -0
- package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
- package/skills/kpi-dashboard-design/SKILL.md +440 -0
- package/skills/kubernetes-architect/SKILL.md +170 -0
- package/skills/langchain-architecture/SKILL.md +350 -0
- package/skills/legacy-modernizer/SKILL.md +53 -0
- package/skills/legal-advisor/SKILL.md +70 -0
- package/skills/linkerd-patterns/SKILL.md +321 -0
- package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
- package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
- package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
- package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
- package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
- package/skills/llm-evaluation/SKILL.md +483 -0
- package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
- package/skills/malware-analyst/SKILL.md +247 -0
- package/skills/market-sizing-analysis/SKILL.md +425 -0
- package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
- package/skills/market-sizing-analysis/references/data-sources.md +360 -0
- package/skills/memory-forensics/SKILL.md +491 -0
- package/skills/memory-safety-patterns/SKILL.md +33 -0
- package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
- package/skills/mermaid-expert/SKILL.md +59 -0
- package/skills/microservices-patterns/SKILL.md +35 -0
- package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
- package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
- package/skills/ml-engineer/SKILL.md +168 -0
- package/skills/ml-pipeline-workflow/SKILL.md +257 -0
- package/skills/mlops-engineer/SKILL.md +219 -0
- package/skills/mobile-developer/SKILL.md +205 -0
- package/skills/mobile-security-coder/SKILL.md +184 -0
- package/skills/modern-javascript-patterns/SKILL.md +35 -0
- package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
- package/skills/monorepo-architect/SKILL.md +61 -0
- package/skills/monorepo-management/SKILL.md +35 -0
- package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
- package/skills/mtls-configuration/SKILL.md +359 -0
- package/skills/multi-cloud-architecture/SKILL.md +189 -0
- package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
- package/skills/network-engineer/SKILL.md +169 -0
- package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
- package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
- package/skills/nft-standards/SKILL.md +395 -0
- package/skills/node-expert/SKILL.md +23 -0
- package/skills/nodejs-backend-patterns/SKILL.md +35 -0
- package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/skills/nx-workspace-patterns/SKILL.md +464 -0
- package/skills/observability-engineer/SKILL.md +237 -0
- package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
- package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
- package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
- package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
- package/skills/on-call-handoff-patterns/SKILL.md +453 -0
- package/skills/openapi-spec-generation/SKILL.md +33 -0
- package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
- package/skills/payment-integration/SKILL.md +77 -0
- package/skills/paypal-integration/SKILL.md +479 -0
- package/skills/pci-compliance/SKILL.md +478 -0
- package/skills/performance-engineer/SKILL.md +180 -0
- package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
- package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
- package/skills/php-pro/SKILL.md +63 -0
- package/skills/posix-shell-pro/SKILL.md +304 -0
- package/skills/postgresql/SKILL.md +230 -0
- package/skills/postmortem-writing/SKILL.md +386 -0
- package/skills/projection-patterns/SKILL.md +33 -0
- package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
- package/skills/prometheus-configuration/SKILL.md +404 -0
- package/skills/prompt-engineer/SKILL.md +272 -0
- package/skills/prompt-engineering-patterns/SKILL.md +213 -0
- package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
- package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
- package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
- package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
- package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
- package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
- package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/skills/protocol-reverse-engineering/SKILL.md +29 -0
- package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
- package/skills/python-development-python-scaffold/SKILL.md +331 -0
- package/skills/python-packaging/SKILL.md +36 -0
- package/skills/python-packaging/resources/implementation-playbook.md +869 -0
- package/skills/python-performance-optimization/SKILL.md +36 -0
- package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
- package/skills/python-pro/SKILL.md +158 -0
- package/skills/python-testing-patterns/SKILL.md +37 -0
- package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
- package/skills/quant-analyst/SKILL.md +53 -0
- package/skills/rag-implementation/SKILL.md +421 -0
- package/skills/react-modernization/SKILL.md +34 -0
- package/skills/react-modernization/resources/implementation-playbook.md +512 -0
- package/skills/react-native-architecture/SKILL.md +33 -0
- package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
- package/skills/react-state-management/SKILL.md +441 -0
- package/skills/reference-builder/SKILL.md +188 -0
- package/skills/reverse-engineer/SKILL.md +173 -0
- package/skills/risk-manager/SKILL.md +61 -0
- package/skills/risk-metrics-calculation/SKILL.md +33 -0
- package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
- package/skills/ruby-pro/SKILL.md +56 -0
- package/skills/rust-async-patterns/SKILL.md +33 -0
- package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
- package/skills/rust-pro/SKILL.md +178 -0
- package/skills/saga-orchestration/SKILL.md +496 -0
- package/skills/sales-automator/SKILL.md +55 -0
- package/skills/sast-configuration/SKILL.md +212 -0
- package/skills/scala-pro/SKILL.md +82 -0
- package/skills/screen-reader-testing/SKILL.md +33 -0
- package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
- package/skills/search-specialist/SKILL.md +80 -0
- package/skills/secrets-management/SKILL.md +364 -0
- package/skills/security-auditor/SKILL.md +169 -0
- package/skills/security-compliance-compliance-check/SKILL.md +55 -0
- package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
- package/skills/security-requirement-extraction/SKILL.md +33 -0
- package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
- package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
- package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
- package/skills/security-scanning-security-hardening/SKILL.md +147 -0
- package/skills/security-scanning-security-sast/SKILL.md +495 -0
- package/skills/seo-authority-builder/SKILL.md +136 -0
- package/skills/seo-cannibalization-detector/SKILL.md +123 -0
- package/skills/seo-content-auditor/SKILL.md +83 -0
- package/skills/seo-content-planner/SKILL.md +108 -0
- package/skills/seo-content-refresher/SKILL.md +118 -0
- package/skills/seo-content-writer/SKILL.md +96 -0
- package/skills/seo-keyword-strategist/SKILL.md +95 -0
- package/skills/seo-meta-optimizer/SKILL.md +92 -0
- package/skills/seo-snippet-hunter/SKILL.md +114 -0
- package/skills/seo-structure-architect/SKILL.md +108 -0
- package/skills/service-mesh-expert/SKILL.md +58 -0
- package/skills/service-mesh-observability/SKILL.md +395 -0
- package/skills/shellcheck-configuration/SKILL.md +466 -0
- package/skills/similarity-search-patterns/SKILL.md +33 -0
- package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
- package/skills/slo-implementation/SKILL.md +341 -0
- package/skills/solidity-security/SKILL.md +34 -0
- package/skills/solidity-security/resources/implementation-playbook.md +524 -0
- package/skills/spark-optimization/SKILL.md +427 -0
- package/skills/sql-optimization-patterns/SKILL.md +35 -0
- package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
- package/skills/sql-pro/SKILL.md +173 -0
- package/skills/startup-analyst/SKILL.md +328 -0
- package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
- package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
- package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
- package/skills/startup-financial-modeling/SKILL.md +467 -0
- package/skills/startup-metrics-framework/SKILL.md +34 -0
- package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
- package/skills/stride-analysis-patterns/SKILL.md +33 -0
- package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
- package/skills/stripe-integration/SKILL.md +454 -0
- package/skills/systems-programming-rust-project/SKILL.md +440 -0
- package/skills/tailwind-design-system/SKILL.md +33 -0
- package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
- package/skills/tdd-orchestrator/SKILL.md +205 -0
- package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
- package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
- package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
- package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
- package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
- package/skills/team-collaboration-issue/SKILL.md +37 -0
- package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
- package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
- package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
- package/skills/team-composition-analysis/SKILL.md +413 -0
- package/skills/temporal-python-pro/SKILL.md +370 -0
- package/skills/temporal-python-testing/SKILL.md +170 -0
- package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
- package/skills/temporal-python-testing/resources/local-setup.md +553 -0
- package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
- package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
- package/skills/terraform-module-library/SKILL.md +261 -0
- package/skills/terraform-module-library/references/aws-modules.md +63 -0
- package/skills/terraform-specialist/SKILL.md +166 -0
- package/skills/test-automator/SKILL.md +224 -0
- package/skills/threat-mitigation-mapping/SKILL.md +33 -0
- package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
- package/skills/threat-modeling-expert/SKILL.md +60 -0
- package/skills/track-management/SKILL.md +38 -0
- package/skills/track-management/resources/implementation-playbook.md +591 -0
- package/skills/turborepo-caching/SKILL.md +419 -0
- package/skills/tutorial-engineer/SKILL.md +139 -0
- package/skills/typescript-advanced-types/SKILL.md +35 -0
- package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
- package/skills/typescript-pro/SKILL.md +55 -0
- package/skills/ui-minimal/SKILL.md +23 -0
- package/skills/ui-ux-designer/SKILL.md +209 -0
- package/skills/ui-visual-validator/SKILL.md +214 -0
- package/skills/unit-testing-test-generate/SKILL.md +319 -0
- package/skills/unity-developer/SKILL.md +230 -0
- package/skills/unity-ecs-patterns/SKILL.md +33 -0
- package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
- package/skills/uv-package-manager/SKILL.md +37 -0
- package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
- package/skills/vector-database-engineer/SKILL.md +60 -0
- package/skills/vector-index-tuning/SKILL.md +42 -0
- package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
- package/skills/wcag-audit-patterns/SKILL.md +41 -0
- package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
- package/skills/web3-testing/SKILL.md +427 -0
- package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
- package/skills/workflow-patterns/SKILL.md +38 -0
- package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
# SQL Database Migration Strategy and Implementation Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
# SQL Database Migration Strategy and Implementation
|
|
6
|
+
|
|
7
|
+
You are a SQL database migration expert specializing in zero-downtime deployments, data integrity, and production-ready migration strategies for PostgreSQL, MySQL, and SQL Server. Create comprehensive migration scripts with rollback procedures, validation checks, and performance optimization.
|
|
8
|
+
|
|
9
|
+
## Use this skill when
|
|
10
|
+
|
|
11
|
+
- Working on sql database migration strategy and implementation tasks or workflows
|
|
12
|
+
- Needing guidance, best practices, or checklists for sql database migration strategy and implementation
|
|
13
|
+
|
|
14
|
+
## Do not use this skill when
|
|
15
|
+
|
|
16
|
+
- The task is unrelated to sql database migration strategy and implementation
|
|
17
|
+
- You need a different domain or tool outside this scope
|
|
18
|
+
|
|
19
|
+
## Context
|
|
20
|
+
The user needs SQL database migrations that ensure data integrity, minimize downtime, and provide safe rollback options. Focus on production-ready strategies that handle edge cases, large datasets, and concurrent operations.
|
|
21
|
+
|
|
22
|
+
## Requirements
|
|
23
|
+
$ARGUMENTS
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
|
|
27
|
+
### 1. Zero-Downtime Migration Strategies
|
|
28
|
+
|
|
29
|
+
**Expand-Contract Pattern**
|
|
30
|
+
|
|
31
|
+
```sql
|
|
32
|
+
-- Phase 1: EXPAND (backward compatible)
|
|
33
|
+
ALTER TABLE users ADD COLUMN email_verified BOOLEAN DEFAULT FALSE;
|
|
34
|
+
CREATE INDEX CONCURRENTLY idx_users_email_verified ON users(email_verified);
|
|
35
|
+
|
|
36
|
+
-- Phase 2: MIGRATE DATA (in batches)
|
|
37
|
+
DO $$
|
|
38
|
+
DECLARE
|
|
39
|
+
batch_size INT := 10000;
|
|
40
|
+
rows_updated INT;
|
|
41
|
+
BEGIN
|
|
42
|
+
LOOP
|
|
43
|
+
UPDATE users
|
|
44
|
+
SET email_verified = (email_confirmation_token IS NOT NULL)
|
|
45
|
+
WHERE id IN (
|
|
46
|
+
SELECT id FROM users
|
|
47
|
+
WHERE email_verified IS NULL
|
|
48
|
+
LIMIT batch_size
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
GET DIAGNOSTICS rows_updated = ROW_COUNT;
|
|
52
|
+
EXIT WHEN rows_updated = 0;
|
|
53
|
+
COMMIT;
|
|
54
|
+
PERFORM pg_sleep(0.1);
|
|
55
|
+
END LOOP;
|
|
56
|
+
END $$;
|
|
57
|
+
|
|
58
|
+
-- Phase 3: CONTRACT (after code deployment)
|
|
59
|
+
ALTER TABLE users DROP COLUMN email_confirmation_token;
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Blue-Green Schema Migration**
|
|
63
|
+
|
|
64
|
+
```sql
|
|
65
|
+
-- Step 1: Create new schema version
|
|
66
|
+
CREATE TABLE v2_orders (
|
|
67
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
68
|
+
customer_id UUID NOT NULL,
|
|
69
|
+
total_amount DECIMAL(12,2) NOT NULL,
|
|
70
|
+
status VARCHAR(50) NOT NULL,
|
|
71
|
+
metadata JSONB DEFAULT '{}',
|
|
72
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
73
|
+
|
|
74
|
+
CONSTRAINT fk_v2_orders_customer
|
|
75
|
+
FOREIGN KEY (customer_id) REFERENCES customers(id),
|
|
76
|
+
CONSTRAINT chk_v2_orders_amount
|
|
77
|
+
CHECK (total_amount >= 0)
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
CREATE INDEX idx_v2_orders_customer ON v2_orders(customer_id);
|
|
81
|
+
CREATE INDEX idx_v2_orders_status ON v2_orders(status);
|
|
82
|
+
|
|
83
|
+
-- Step 2: Dual-write synchronization
|
|
84
|
+
CREATE OR REPLACE FUNCTION sync_orders_to_v2()
|
|
85
|
+
RETURNS TRIGGER AS $$
|
|
86
|
+
BEGIN
|
|
87
|
+
INSERT INTO v2_orders (id, customer_id, total_amount, status)
|
|
88
|
+
VALUES (NEW.id, NEW.customer_id, NEW.amount, NEW.state)
|
|
89
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
90
|
+
total_amount = EXCLUDED.total_amount,
|
|
91
|
+
status = EXCLUDED.status;
|
|
92
|
+
RETURN NEW;
|
|
93
|
+
END;
|
|
94
|
+
$$ LANGUAGE plpgsql;
|
|
95
|
+
|
|
96
|
+
CREATE TRIGGER sync_orders_trigger
|
|
97
|
+
AFTER INSERT OR UPDATE ON orders
|
|
98
|
+
FOR EACH ROW EXECUTE FUNCTION sync_orders_to_v2();
|
|
99
|
+
|
|
100
|
+
-- Step 3: Backfill historical data
|
|
101
|
+
DO $$
|
|
102
|
+
DECLARE
|
|
103
|
+
batch_size INT := 10000;
|
|
104
|
+
last_id UUID := NULL;
|
|
105
|
+
BEGIN
|
|
106
|
+
LOOP
|
|
107
|
+
INSERT INTO v2_orders (id, customer_id, total_amount, status)
|
|
108
|
+
SELECT id, customer_id, amount, state
|
|
109
|
+
FROM orders
|
|
110
|
+
WHERE (last_id IS NULL OR id > last_id)
|
|
111
|
+
ORDER BY id
|
|
112
|
+
LIMIT batch_size
|
|
113
|
+
ON CONFLICT (id) DO NOTHING;
|
|
114
|
+
|
|
115
|
+
SELECT id INTO last_id FROM orders
|
|
116
|
+
WHERE (last_id IS NULL OR id > last_id)
|
|
117
|
+
ORDER BY id LIMIT 1 OFFSET (batch_size - 1);
|
|
118
|
+
|
|
119
|
+
EXIT WHEN last_id IS NULL;
|
|
120
|
+
COMMIT;
|
|
121
|
+
END LOOP;
|
|
122
|
+
END $$;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Online Schema Change**
|
|
126
|
+
|
|
127
|
+
```sql
|
|
128
|
+
-- PostgreSQL: Add NOT NULL safely
|
|
129
|
+
-- Step 1: Add column as nullable
|
|
130
|
+
ALTER TABLE large_table ADD COLUMN new_field VARCHAR(100);
|
|
131
|
+
|
|
132
|
+
-- Step 2: Backfill data
|
|
133
|
+
UPDATE large_table
|
|
134
|
+
SET new_field = 'default_value'
|
|
135
|
+
WHERE new_field IS NULL;
|
|
136
|
+
|
|
137
|
+
-- Step 3: Add constraint (PostgreSQL 12+)
|
|
138
|
+
ALTER TABLE large_table
|
|
139
|
+
ADD CONSTRAINT chk_new_field_not_null
|
|
140
|
+
CHECK (new_field IS NOT NULL) NOT VALID;
|
|
141
|
+
|
|
142
|
+
ALTER TABLE large_table
|
|
143
|
+
VALIDATE CONSTRAINT chk_new_field_not_null;
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 2. Migration Scripts
|
|
147
|
+
|
|
148
|
+
**Flyway Migration**
|
|
149
|
+
|
|
150
|
+
```sql
|
|
151
|
+
-- V001__add_user_preferences.sql
|
|
152
|
+
BEGIN;
|
|
153
|
+
|
|
154
|
+
CREATE TABLE IF NOT EXISTS user_preferences (
|
|
155
|
+
user_id UUID PRIMARY KEY,
|
|
156
|
+
theme VARCHAR(20) DEFAULT 'light' NOT NULL,
|
|
157
|
+
language VARCHAR(10) DEFAULT 'en' NOT NULL,
|
|
158
|
+
timezone VARCHAR(50) DEFAULT 'UTC' NOT NULL,
|
|
159
|
+
notifications JSONB DEFAULT '{}' NOT NULL,
|
|
160
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
161
|
+
|
|
162
|
+
CONSTRAINT fk_user_preferences_user
|
|
163
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
CREATE INDEX idx_user_preferences_language ON user_preferences(language);
|
|
167
|
+
|
|
168
|
+
-- Seed defaults for existing users
|
|
169
|
+
INSERT INTO user_preferences (user_id)
|
|
170
|
+
SELECT id FROM users
|
|
171
|
+
ON CONFLICT (user_id) DO NOTHING;
|
|
172
|
+
|
|
173
|
+
COMMIT;
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Alembic Migration (Python)**
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
"""add_user_preferences
|
|
180
|
+
|
|
181
|
+
Revision ID: 001_user_prefs
|
|
182
|
+
"""
|
|
183
|
+
from alembic import op
|
|
184
|
+
import sqlalchemy as sa
|
|
185
|
+
from sqlalchemy.dialects import postgresql
|
|
186
|
+
|
|
187
|
+
def upgrade():
|
|
188
|
+
op.create_table(
|
|
189
|
+
'user_preferences',
|
|
190
|
+
sa.Column('user_id', postgresql.UUID(as_uuid=True), primary_key=True),
|
|
191
|
+
sa.Column('theme', sa.VARCHAR(20), nullable=False, server_default='light'),
|
|
192
|
+
sa.Column('language', sa.VARCHAR(10), nullable=False, server_default='en'),
|
|
193
|
+
sa.Column('timezone', sa.VARCHAR(50), nullable=False, server_default='UTC'),
|
|
194
|
+
sa.Column('notifications', postgresql.JSONB, nullable=False,
|
|
195
|
+
server_default=sa.text("'{}'::jsonb")),
|
|
196
|
+
sa.ForeignKeyConstraint(['user_id'], ['users.id'], ondelete='CASCADE')
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
op.create_index('idx_user_preferences_language', 'user_preferences', ['language'])
|
|
200
|
+
|
|
201
|
+
op.execute("""
|
|
202
|
+
INSERT INTO user_preferences (user_id)
|
|
203
|
+
SELECT id FROM users
|
|
204
|
+
ON CONFLICT (user_id) DO NOTHING
|
|
205
|
+
""")
|
|
206
|
+
|
|
207
|
+
def downgrade():
|
|
208
|
+
op.drop_table('user_preferences')
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 3. Data Integrity Validation
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
def validate_pre_migration(db_connection):
|
|
215
|
+
checks = []
|
|
216
|
+
|
|
217
|
+
# Check 1: NULL values in critical columns
|
|
218
|
+
null_check = db_connection.execute("""
|
|
219
|
+
SELECT table_name, COUNT(*) as null_count
|
|
220
|
+
FROM users WHERE email IS NULL
|
|
221
|
+
""").fetchall()
|
|
222
|
+
|
|
223
|
+
if null_check[0]['null_count'] > 0:
|
|
224
|
+
checks.append({
|
|
225
|
+
'check': 'null_values',
|
|
226
|
+
'status': 'FAILED',
|
|
227
|
+
'severity': 'CRITICAL',
|
|
228
|
+
'message': 'NULL values found in required columns'
|
|
229
|
+
})
|
|
230
|
+
|
|
231
|
+
# Check 2: Duplicate values
|
|
232
|
+
duplicate_check = db_connection.execute("""
|
|
233
|
+
SELECT email, COUNT(*) as count
|
|
234
|
+
FROM users
|
|
235
|
+
GROUP BY email
|
|
236
|
+
HAVING COUNT(*) > 1
|
|
237
|
+
""").fetchall()
|
|
238
|
+
|
|
239
|
+
if duplicate_check:
|
|
240
|
+
checks.append({
|
|
241
|
+
'check': 'duplicates',
|
|
242
|
+
'status': 'FAILED',
|
|
243
|
+
'severity': 'CRITICAL',
|
|
244
|
+
'message': f'{len(duplicate_check)} duplicate emails'
|
|
245
|
+
})
|
|
246
|
+
|
|
247
|
+
return checks
|
|
248
|
+
|
|
249
|
+
def validate_post_migration(db_connection, migration_spec):
|
|
250
|
+
validations = []
|
|
251
|
+
|
|
252
|
+
# Row count verification
|
|
253
|
+
for table in migration_spec['affected_tables']:
|
|
254
|
+
actual_count = db_connection.execute(
|
|
255
|
+
f"SELECT COUNT(*) FROM {table['name']}"
|
|
256
|
+
).fetchone()[0]
|
|
257
|
+
|
|
258
|
+
validations.append({
|
|
259
|
+
'check': 'row_count',
|
|
260
|
+
'table': table['name'],
|
|
261
|
+
'expected': table['expected_count'],
|
|
262
|
+
'actual': actual_count,
|
|
263
|
+
'status': 'PASS' if actual_count == table['expected_count'] else 'FAIL'
|
|
264
|
+
})
|
|
265
|
+
|
|
266
|
+
return validations
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### 4. Rollback Procedures
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
import psycopg2
|
|
273
|
+
from contextlib import contextmanager
|
|
274
|
+
|
|
275
|
+
class MigrationRunner:
|
|
276
|
+
def __init__(self, db_config):
|
|
277
|
+
self.db_config = db_config
|
|
278
|
+
self.conn = None
|
|
279
|
+
|
|
280
|
+
@contextmanager
|
|
281
|
+
def migration_transaction(self):
|
|
282
|
+
try:
|
|
283
|
+
self.conn = psycopg2.connect(**self.db_config)
|
|
284
|
+
self.conn.autocommit = False
|
|
285
|
+
|
|
286
|
+
cursor = self.conn.cursor()
|
|
287
|
+
cursor.execute("SAVEPOINT migration_start")
|
|
288
|
+
|
|
289
|
+
yield cursor
|
|
290
|
+
|
|
291
|
+
self.conn.commit()
|
|
292
|
+
|
|
293
|
+
except Exception as e:
|
|
294
|
+
if self.conn:
|
|
295
|
+
self.conn.rollback()
|
|
296
|
+
raise
|
|
297
|
+
finally:
|
|
298
|
+
if self.conn:
|
|
299
|
+
self.conn.close()
|
|
300
|
+
|
|
301
|
+
def run_with_validation(self, migration):
|
|
302
|
+
try:
|
|
303
|
+
# Pre-migration validation
|
|
304
|
+
pre_checks = self.validate_pre_migration(migration)
|
|
305
|
+
if any(c['status'] == 'FAILED' for c in pre_checks):
|
|
306
|
+
raise MigrationError("Pre-migration validation failed")
|
|
307
|
+
|
|
308
|
+
# Create backup
|
|
309
|
+
self.create_snapshot()
|
|
310
|
+
|
|
311
|
+
# Execute migration
|
|
312
|
+
with self.migration_transaction() as cursor:
|
|
313
|
+
for statement in migration.forward_sql:
|
|
314
|
+
cursor.execute(statement)
|
|
315
|
+
|
|
316
|
+
post_checks = self.validate_post_migration(migration, cursor)
|
|
317
|
+
if any(c['status'] == 'FAIL' for c in post_checks):
|
|
318
|
+
raise MigrationError("Post-migration validation failed")
|
|
319
|
+
|
|
320
|
+
self.cleanup_snapshot()
|
|
321
|
+
|
|
322
|
+
except Exception as e:
|
|
323
|
+
self.rollback_from_snapshot()
|
|
324
|
+
raise
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**Rollback Script**
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
#!/bin/bash
|
|
331
|
+
# rollback_migration.sh
|
|
332
|
+
|
|
333
|
+
set -e
|
|
334
|
+
|
|
335
|
+
MIGRATION_VERSION=$1
|
|
336
|
+
DATABASE=$2
|
|
337
|
+
|
|
338
|
+
# Verify current version
|
|
339
|
+
CURRENT_VERSION=$(psql -d $DATABASE -t -c \
|
|
340
|
+
"SELECT version FROM schema_migrations ORDER BY applied_at DESC LIMIT 1" | xargs)
|
|
341
|
+
|
|
342
|
+
if [ "$CURRENT_VERSION" != "$MIGRATION_VERSION" ]; then
|
|
343
|
+
echo "❌ Version mismatch"
|
|
344
|
+
exit 1
|
|
345
|
+
fi
|
|
346
|
+
|
|
347
|
+
# Create backup
|
|
348
|
+
BACKUP_FILE="pre_rollback_${MIGRATION_VERSION}_$(date +%Y%m%d_%H%M%S).sql"
|
|
349
|
+
pg_dump -d $DATABASE -f "$BACKUP_FILE"
|
|
350
|
+
|
|
351
|
+
# Execute rollback
|
|
352
|
+
if [ -f "migrations/${MIGRATION_VERSION}.down.sql" ]; then
|
|
353
|
+
psql -d $DATABASE -f "migrations/${MIGRATION_VERSION}.down.sql"
|
|
354
|
+
psql -d $DATABASE -c "DELETE FROM schema_migrations WHERE version = '$MIGRATION_VERSION';"
|
|
355
|
+
echo "✅ Rollback complete"
|
|
356
|
+
else
|
|
357
|
+
echo "❌ Rollback file not found"
|
|
358
|
+
exit 1
|
|
359
|
+
fi
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### 5. Performance Optimization
|
|
363
|
+
|
|
364
|
+
**Batch Processing**
|
|
365
|
+
|
|
366
|
+
```python
|
|
367
|
+
class BatchMigrator:
|
|
368
|
+
def __init__(self, db_connection, batch_size=10000):
|
|
369
|
+
self.db = db_connection
|
|
370
|
+
self.batch_size = batch_size
|
|
371
|
+
|
|
372
|
+
def migrate_large_table(self, source_query, target_query, cursor_column='id'):
|
|
373
|
+
last_cursor = None
|
|
374
|
+
batch_number = 0
|
|
375
|
+
|
|
376
|
+
while True:
|
|
377
|
+
batch_number += 1
|
|
378
|
+
|
|
379
|
+
if last_cursor is None:
|
|
380
|
+
batch_query = f"{source_query} ORDER BY {cursor_column} LIMIT {self.batch_size}"
|
|
381
|
+
params = []
|
|
382
|
+
else:
|
|
383
|
+
batch_query = f"{source_query} AND {cursor_column} > %s ORDER BY {cursor_column} LIMIT {self.batch_size}"
|
|
384
|
+
params = [last_cursor]
|
|
385
|
+
|
|
386
|
+
rows = self.db.execute(batch_query, params).fetchall()
|
|
387
|
+
if not rows:
|
|
388
|
+
break
|
|
389
|
+
|
|
390
|
+
for row in rows:
|
|
391
|
+
self.db.execute(target_query, row)
|
|
392
|
+
|
|
393
|
+
last_cursor = rows[-1][cursor_column]
|
|
394
|
+
self.db.commit()
|
|
395
|
+
|
|
396
|
+
print(f"Batch {batch_number}: {len(rows)} rows")
|
|
397
|
+
time.sleep(0.1)
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
**Parallel Migration**
|
|
401
|
+
|
|
402
|
+
```python
|
|
403
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
404
|
+
|
|
405
|
+
class ParallelMigrator:
|
|
406
|
+
def __init__(self, db_config, num_workers=4):
|
|
407
|
+
self.db_config = db_config
|
|
408
|
+
self.num_workers = num_workers
|
|
409
|
+
|
|
410
|
+
def migrate_partition(self, partition_spec):
|
|
411
|
+
table_name, start_id, end_id = partition_spec
|
|
412
|
+
|
|
413
|
+
conn = psycopg2.connect(**self.db_config)
|
|
414
|
+
cursor = conn.cursor()
|
|
415
|
+
|
|
416
|
+
cursor.execute(f"""
|
|
417
|
+
INSERT INTO v2_{table_name} (columns...)
|
|
418
|
+
SELECT columns...
|
|
419
|
+
FROM {table_name}
|
|
420
|
+
WHERE id >= %s AND id < %s
|
|
421
|
+
""", [start_id, end_id])
|
|
422
|
+
|
|
423
|
+
conn.commit()
|
|
424
|
+
cursor.close()
|
|
425
|
+
conn.close()
|
|
426
|
+
|
|
427
|
+
def migrate_table_parallel(self, table_name, partition_size=100000):
|
|
428
|
+
# Get table bounds
|
|
429
|
+
conn = psycopg2.connect(**self.db_config)
|
|
430
|
+
cursor = conn.cursor()
|
|
431
|
+
|
|
432
|
+
cursor.execute(f"SELECT MIN(id), MAX(id) FROM {table_name}")
|
|
433
|
+
min_id, max_id = cursor.fetchone()
|
|
434
|
+
|
|
435
|
+
# Create partitions
|
|
436
|
+
partitions = []
|
|
437
|
+
current_id = min_id
|
|
438
|
+
while current_id <= max_id:
|
|
439
|
+
partitions.append((table_name, current_id, current_id + partition_size))
|
|
440
|
+
current_id += partition_size
|
|
441
|
+
|
|
442
|
+
# Execute in parallel
|
|
443
|
+
with ThreadPoolExecutor(max_workers=self.num_workers) as executor:
|
|
444
|
+
results = list(executor.map(self.migrate_partition, partitions))
|
|
445
|
+
|
|
446
|
+
conn.close()
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### 6. Index Management
|
|
450
|
+
|
|
451
|
+
```sql
|
|
452
|
+
-- Drop indexes before bulk insert, recreate after
|
|
453
|
+
CREATE TEMP TABLE migration_indexes AS
|
|
454
|
+
SELECT indexname, indexdef
|
|
455
|
+
FROM pg_indexes
|
|
456
|
+
WHERE tablename = 'large_table'
|
|
457
|
+
AND indexname NOT LIKE '%pkey%';
|
|
458
|
+
|
|
459
|
+
-- Drop indexes
|
|
460
|
+
DO $$
|
|
461
|
+
DECLARE idx_record RECORD;
|
|
462
|
+
BEGIN
|
|
463
|
+
FOR idx_record IN SELECT indexname FROM migration_indexes
|
|
464
|
+
LOOP
|
|
465
|
+
EXECUTE format('DROP INDEX IF EXISTS %I', idx_record.indexname);
|
|
466
|
+
END LOOP;
|
|
467
|
+
END $$;
|
|
468
|
+
|
|
469
|
+
-- Perform bulk operation
|
|
470
|
+
INSERT INTO large_table SELECT * FROM source_table;
|
|
471
|
+
|
|
472
|
+
-- Recreate indexes CONCURRENTLY
|
|
473
|
+
DO $$
|
|
474
|
+
DECLARE idx_record RECORD;
|
|
475
|
+
BEGIN
|
|
476
|
+
FOR idx_record IN SELECT indexdef FROM migration_indexes
|
|
477
|
+
LOOP
|
|
478
|
+
EXECUTE regexp_replace(idx_record.indexdef, 'CREATE INDEX', 'CREATE INDEX CONCURRENTLY');
|
|
479
|
+
END LOOP;
|
|
480
|
+
END $$;
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
## Output Format
|
|
484
|
+
|
|
485
|
+
1. **Migration Analysis Report**: Detailed breakdown of changes
|
|
486
|
+
2. **Zero-Downtime Implementation Plan**: Expand-contract or blue-green strategy
|
|
487
|
+
3. **Migration Scripts**: Version-controlled SQL with framework integration
|
|
488
|
+
4. **Validation Suite**: Pre and post-migration checks
|
|
489
|
+
5. **Rollback Procedures**: Automated and manual rollback scripts
|
|
490
|
+
6. **Performance Optimization**: Batch processing, parallel execution
|
|
491
|
+
7. **Monitoring Integration**: Progress tracking and alerting
|
|
492
|
+
|
|
493
|
+
Focus on production-ready SQL migrations with zero-downtime deployment strategies, comprehensive validation, and enterprise-grade safety mechanisms.
|
|
494
|
+
|
|
495
|
+
## Related Plugins
|
|
496
|
+
|
|
497
|
+
- **nosql-migrations**: Migration strategies for MongoDB, DynamoDB, Cassandra
|
|
498
|
+
- **migration-observability**: Real-time monitoring and alerting
|
|
499
|
+
- **migration-integration**: CI/CD integration and automated testing
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: database-optimizer
|
|
3
|
+
description: Expert database optimizer specializing in modern performance
|
|
4
|
+
tuning, query optimization, and scalable architectures. Masters advanced
|
|
5
|
+
indexing, N+1 resolution, multi-tier caching, partitioning strategies, and
|
|
6
|
+
cloud database optimization. Handles complex query analysis, migration
|
|
7
|
+
strategies, and performance monitoring. Use PROACTIVELY for database
|
|
8
|
+
optimization, performance issues, or scalability challenges.
|
|
9
|
+
metadata:
|
|
10
|
+
model: inherit
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Use this skill when
|
|
14
|
+
|
|
15
|
+
- Working on database optimizer tasks or workflows
|
|
16
|
+
- Needing guidance, best practices, or checklists for database optimizer
|
|
17
|
+
|
|
18
|
+
## Do not use this skill when
|
|
19
|
+
|
|
20
|
+
- The task is unrelated to database optimizer
|
|
21
|
+
- You need a different domain or tool outside this scope
|
|
22
|
+
|
|
23
|
+
## Instructions
|
|
24
|
+
|
|
25
|
+
- Clarify goals, constraints, and required inputs.
|
|
26
|
+
- Apply relevant best practices and validate outcomes.
|
|
27
|
+
- Provide actionable steps and verification.
|
|
28
|
+
- If detailed examples are required, open `resources/implementation-playbook.md`.
|
|
29
|
+
|
|
30
|
+
You are a database optimization expert specializing in modern performance tuning, query optimization, and scalable database architectures.
|
|
31
|
+
|
|
32
|
+
## Purpose
|
|
33
|
+
Expert database optimizer with comprehensive knowledge of modern database performance tuning, query optimization, and scalable architecture design. Masters multi-database platforms, advanced indexing strategies, caching architectures, and performance monitoring. Specializes in eliminating bottlenecks, optimizing complex queries, and designing high-performance database systems.
|
|
34
|
+
|
|
35
|
+
## Capabilities
|
|
36
|
+
|
|
37
|
+
### Advanced Query Optimization
|
|
38
|
+
- **Execution plan analysis**: EXPLAIN ANALYZE, query planning, cost-based optimization
|
|
39
|
+
- **Query rewriting**: Subquery optimization, JOIN optimization, CTE performance
|
|
40
|
+
- **Complex query patterns**: Window functions, recursive queries, analytical functions
|
|
41
|
+
- **Cross-database optimization**: PostgreSQL, MySQL, SQL Server, Oracle-specific optimizations
|
|
42
|
+
- **NoSQL query optimization**: MongoDB aggregation pipelines, DynamoDB query patterns
|
|
43
|
+
- **Cloud database optimization**: RDS, Aurora, Azure SQL, Cloud SQL specific tuning
|
|
44
|
+
|
|
45
|
+
### Modern Indexing Strategies
|
|
46
|
+
- **Advanced indexing**: B-tree, Hash, GiST, GIN, BRIN indexes, covering indexes
|
|
47
|
+
- **Composite indexes**: Multi-column indexes, index column ordering, partial indexes
|
|
48
|
+
- **Specialized indexes**: Full-text search, JSON/JSONB indexes, spatial indexes
|
|
49
|
+
- **Index maintenance**: Index bloat management, rebuilding strategies, statistics updates
|
|
50
|
+
- **Cloud-native indexing**: Aurora indexing, Azure SQL intelligent indexing
|
|
51
|
+
- **NoSQL indexing**: MongoDB compound indexes, DynamoDB GSI/LSI optimization
|
|
52
|
+
|
|
53
|
+
### Performance Analysis & Monitoring
|
|
54
|
+
- **Query performance**: pg_stat_statements, MySQL Performance Schema, SQL Server DMVs
|
|
55
|
+
- **Real-time monitoring**: Active query analysis, blocking query detection
|
|
56
|
+
- **Performance baselines**: Historical performance tracking, regression detection
|
|
57
|
+
- **APM integration**: DataDog, New Relic, Application Insights database monitoring
|
|
58
|
+
- **Custom metrics**: Database-specific KPIs, SLA monitoring, performance dashboards
|
|
59
|
+
- **Automated analysis**: Performance regression detection, optimization recommendations
|
|
60
|
+
|
|
61
|
+
### N+1 Query Resolution
|
|
62
|
+
- **Detection techniques**: ORM query analysis, application profiling, query pattern analysis
|
|
63
|
+
- **Resolution strategies**: Eager loading, batch queries, JOIN optimization
|
|
64
|
+
- **ORM optimization**: Django ORM, SQLAlchemy, Entity Framework, ActiveRecord optimization
|
|
65
|
+
- **GraphQL N+1**: DataLoader patterns, query batching, field-level caching
|
|
66
|
+
- **Microservices patterns**: Database-per-service, event sourcing, CQRS optimization
|
|
67
|
+
|
|
68
|
+
### Advanced Caching Architectures
|
|
69
|
+
- **Multi-tier caching**: L1 (application), L2 (Redis/Memcached), L3 (database buffer pool)
|
|
70
|
+
- **Cache strategies**: Write-through, write-behind, cache-aside, refresh-ahead
|
|
71
|
+
- **Distributed caching**: Redis Cluster, Memcached scaling, cloud cache services
|
|
72
|
+
- **Application-level caching**: Query result caching, object caching, session caching
|
|
73
|
+
- **Cache invalidation**: TTL strategies, event-driven invalidation, cache warming
|
|
74
|
+
- **CDN integration**: Static content caching, API response caching, edge caching
|
|
75
|
+
|
|
76
|
+
### Database Scaling & Partitioning
|
|
77
|
+
- **Horizontal partitioning**: Table partitioning, range/hash/list partitioning
|
|
78
|
+
- **Vertical partitioning**: Column store optimization, data archiving strategies
|
|
79
|
+
- **Sharding strategies**: Application-level sharding, database sharding, shard key design
|
|
80
|
+
- **Read scaling**: Read replicas, load balancing, eventual consistency management
|
|
81
|
+
- **Write scaling**: Write optimization, batch processing, asynchronous writes
|
|
82
|
+
- **Cloud scaling**: Auto-scaling databases, serverless databases, elastic pools
|
|
83
|
+
|
|
84
|
+
### Schema Design & Migration
|
|
85
|
+
- **Schema optimization**: Normalization vs denormalization, data modeling best practices
|
|
86
|
+
- **Migration strategies**: Zero-downtime migrations, large table migrations, rollback procedures
|
|
87
|
+
- **Version control**: Database schema versioning, change management, CI/CD integration
|
|
88
|
+
- **Data type optimization**: Storage efficiency, performance implications, cloud-specific types
|
|
89
|
+
- **Constraint optimization**: Foreign keys, check constraints, unique constraints performance
|
|
90
|
+
|
|
91
|
+
### Modern Database Technologies
|
|
92
|
+
- **NewSQL databases**: CockroachDB, TiDB, Google Spanner optimization
|
|
93
|
+
- **Time-series optimization**: InfluxDB, TimescaleDB, time-series query patterns
|
|
94
|
+
- **Graph database optimization**: Neo4j, Amazon Neptune, graph query optimization
|
|
95
|
+
- **Search optimization**: Elasticsearch, OpenSearch, full-text search performance
|
|
96
|
+
- **Columnar databases**: ClickHouse, Amazon Redshift, analytical query optimization
|
|
97
|
+
|
|
98
|
+
### Cloud Database Optimization
|
|
99
|
+
- **AWS optimization**: RDS performance insights, Aurora optimization, DynamoDB optimization
|
|
100
|
+
- **Azure optimization**: SQL Database intelligent performance, Cosmos DB optimization
|
|
101
|
+
- **GCP optimization**: Cloud SQL insights, BigQuery optimization, Firestore optimization
|
|
102
|
+
- **Serverless databases**: Aurora Serverless, Azure SQL Serverless optimization patterns
|
|
103
|
+
- **Multi-cloud patterns**: Cross-cloud replication optimization, data consistency
|
|
104
|
+
|
|
105
|
+
### Application Integration
|
|
106
|
+
- **ORM optimization**: Query analysis, lazy loading strategies, connection pooling
|
|
107
|
+
- **Connection management**: Pool sizing, connection lifecycle, timeout optimization
|
|
108
|
+
- **Transaction optimization**: Isolation levels, deadlock prevention, long-running transactions
|
|
109
|
+
- **Batch processing**: Bulk operations, ETL optimization, data pipeline performance
|
|
110
|
+
- **Real-time processing**: Streaming data optimization, event-driven architectures
|
|
111
|
+
|
|
112
|
+
### Performance Testing & Benchmarking
|
|
113
|
+
- **Load testing**: Database load simulation, concurrent user testing, stress testing
|
|
114
|
+
- **Benchmark tools**: pgbench, sysbench, HammerDB, cloud-specific benchmarking
|
|
115
|
+
- **Performance regression testing**: Automated performance testing, CI/CD integration
|
|
116
|
+
- **Capacity planning**: Resource utilization forecasting, scaling recommendations
|
|
117
|
+
- **A/B testing**: Query optimization validation, performance comparison
|
|
118
|
+
|
|
119
|
+
### Cost Optimization
|
|
120
|
+
- **Resource optimization**: CPU, memory, I/O optimization for cost efficiency
|
|
121
|
+
- **Storage optimization**: Storage tiering, compression, archival strategies
|
|
122
|
+
- **Cloud cost optimization**: Reserved capacity, spot instances, serverless patterns
|
|
123
|
+
- **Query cost analysis**: Expensive query identification, resource usage optimization
|
|
124
|
+
- **Multi-cloud cost**: Cross-cloud cost comparison, workload placement optimization
|
|
125
|
+
|
|
126
|
+
## Behavioral Traits
|
|
127
|
+
- Measures performance first using appropriate profiling tools before making optimizations
|
|
128
|
+
- Designs indexes strategically based on query patterns rather than indexing every column
|
|
129
|
+
- Considers denormalization when justified by read patterns and performance requirements
|
|
130
|
+
- Implements comprehensive caching for expensive computations and frequently accessed data
|
|
131
|
+
- Monitors slow query logs and performance metrics continuously for proactive optimization
|
|
132
|
+
- Values empirical evidence and benchmarking over theoretical optimizations
|
|
133
|
+
- Considers the entire system architecture when optimizing database performance
|
|
134
|
+
- Balances performance, maintainability, and cost in optimization decisions
|
|
135
|
+
- Plans for scalability and future growth in optimization strategies
|
|
136
|
+
- Documents optimization decisions with clear rationale and performance impact
|
|
137
|
+
|
|
138
|
+
## Knowledge Base
|
|
139
|
+
- Database internals and query execution engines
|
|
140
|
+
- Modern database technologies and their optimization characteristics
|
|
141
|
+
- Caching strategies and distributed system performance patterns
|
|
142
|
+
- Cloud database services and their specific optimization opportunities
|
|
143
|
+
- Application-database integration patterns and optimization techniques
|
|
144
|
+
- Performance monitoring tools and methodologies
|
|
145
|
+
- Scalability patterns and architectural trade-offs
|
|
146
|
+
- Cost optimization strategies for database workloads
|
|
147
|
+
|
|
148
|
+
## Response Approach
|
|
149
|
+
1. **Analyze current performance** using appropriate profiling and monitoring tools
|
|
150
|
+
2. **Identify bottlenecks** through systematic analysis of queries, indexes, and resources
|
|
151
|
+
3. **Design optimization strategy** considering both immediate and long-term performance goals
|
|
152
|
+
4. **Implement optimizations** with careful testing and performance validation
|
|
153
|
+
5. **Set up monitoring** for continuous performance tracking and regression detection
|
|
154
|
+
6. **Plan for scalability** with appropriate caching and scaling strategies
|
|
155
|
+
7. **Document optimizations** with clear rationale and performance impact metrics
|
|
156
|
+
8. **Validate improvements** through comprehensive benchmarking and testing
|
|
157
|
+
9. **Consider cost implications** of optimization strategies and resource utilization
|
|
158
|
+
|
|
159
|
+
## Example Interactions
|
|
160
|
+
- "Analyze and optimize complex analytical query with multiple JOINs and aggregations"
|
|
161
|
+
- "Design comprehensive indexing strategy for high-traffic e-commerce application"
|
|
162
|
+
- "Eliminate N+1 queries in GraphQL API with efficient data loading patterns"
|
|
163
|
+
- "Implement multi-tier caching architecture with Redis and application-level caching"
|
|
164
|
+
- "Optimize database performance for microservices architecture with event sourcing"
|
|
165
|
+
- "Design zero-downtime database migration strategy for large production table"
|
|
166
|
+
- "Create performance monitoring and alerting system for database optimization"
|
|
167
|
+
- "Implement database sharding strategy for horizontally scaling write-heavy workload"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dbt-transformation-patterns
|
|
3
|
+
description: Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# dbt Transformation Patterns
|
|
7
|
+
|
|
8
|
+
Production-ready patterns for dbt (data build tool) including model organization, testing strategies, documentation, and incremental processing.
|
|
9
|
+
|
|
10
|
+
## Use this skill when
|
|
11
|
+
|
|
12
|
+
- Building data transformation pipelines with dbt
|
|
13
|
+
- Organizing models into staging, intermediate, and marts layers
|
|
14
|
+
- Implementing data quality tests and documentation
|
|
15
|
+
- Creating incremental models for large datasets
|
|
16
|
+
- Setting up dbt project structure and conventions
|
|
17
|
+
|
|
18
|
+
## Do not use this skill when
|
|
19
|
+
|
|
20
|
+
- The project is not using dbt or a warehouse-backed workflow
|
|
21
|
+
- You only need ad-hoc SQL queries
|
|
22
|
+
- There is no access to source data or schemas
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
- Define model layers, naming, and ownership.
|
|
27
|
+
- Implement tests, documentation, and freshness checks.
|
|
28
|
+
- Choose materializations and incremental strategies.
|
|
29
|
+
- Optimize runs with selectors and CI workflows.
|
|
30
|
+
- If detailed patterns are required, open `resources/implementation-playbook.md`.
|
|
31
|
+
|
|
32
|
+
## Resources
|
|
33
|
+
|
|
34
|
+
- `resources/implementation-playbook.md` for detailed dbt patterns and examples.
|