@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,755 @@
|
|
|
1
|
+
# Dependency Upgrade Strategy Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
# Dependency Upgrade Strategy
|
|
6
|
+
|
|
7
|
+
You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration paths for breaking changes.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
The user needs to upgrade project dependencies safely, handling breaking changes, ensuring compatibility, and maintaining stability. Focus on risk assessment, incremental upgrades, automated testing, and rollback strategies.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
$ARGUMENTS
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
17
|
+
### 1. Dependency Update Analysis
|
|
18
|
+
|
|
19
|
+
Assess current dependency state and upgrade needs:
|
|
20
|
+
|
|
21
|
+
**Comprehensive Dependency Audit**
|
|
22
|
+
```python
|
|
23
|
+
import json
|
|
24
|
+
import subprocess
|
|
25
|
+
from datetime import datetime, timedelta
|
|
26
|
+
from packaging import version
|
|
27
|
+
|
|
28
|
+
class DependencyAnalyzer:
|
|
29
|
+
def analyze_update_opportunities(self):
|
|
30
|
+
"""
|
|
31
|
+
Analyze all dependencies for update opportunities
|
|
32
|
+
"""
|
|
33
|
+
analysis = {
|
|
34
|
+
'dependencies': self._analyze_dependencies(),
|
|
35
|
+
'update_strategy': self._determine_strategy(),
|
|
36
|
+
'risk_assessment': self._assess_risks(),
|
|
37
|
+
'priority_order': self._prioritize_updates()
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return analysis
|
|
41
|
+
|
|
42
|
+
def _analyze_dependencies(self):
|
|
43
|
+
"""Analyze each dependency"""
|
|
44
|
+
deps = {}
|
|
45
|
+
|
|
46
|
+
# NPM analysis
|
|
47
|
+
if self._has_npm():
|
|
48
|
+
npm_output = subprocess.run(
|
|
49
|
+
['npm', 'outdated', '--json'],
|
|
50
|
+
capture_output=True,
|
|
51
|
+
text=True
|
|
52
|
+
)
|
|
53
|
+
if npm_output.stdout:
|
|
54
|
+
npm_data = json.loads(npm_output.stdout)
|
|
55
|
+
for pkg, info in npm_data.items():
|
|
56
|
+
deps[pkg] = {
|
|
57
|
+
'current': info['current'],
|
|
58
|
+
'wanted': info['wanted'],
|
|
59
|
+
'latest': info['latest'],
|
|
60
|
+
'type': info.get('type', 'dependencies'),
|
|
61
|
+
'ecosystem': 'npm',
|
|
62
|
+
'update_type': self._categorize_update(
|
|
63
|
+
info['current'],
|
|
64
|
+
info['latest']
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
# Python analysis
|
|
69
|
+
if self._has_python():
|
|
70
|
+
pip_output = subprocess.run(
|
|
71
|
+
['pip', 'list', '--outdated', '--format=json'],
|
|
72
|
+
capture_output=True,
|
|
73
|
+
text=True
|
|
74
|
+
)
|
|
75
|
+
if pip_output.stdout:
|
|
76
|
+
pip_data = json.loads(pip_output.stdout)
|
|
77
|
+
for pkg_info in pip_data:
|
|
78
|
+
deps[pkg_info['name']] = {
|
|
79
|
+
'current': pkg_info['version'],
|
|
80
|
+
'latest': pkg_info['latest_version'],
|
|
81
|
+
'ecosystem': 'pip',
|
|
82
|
+
'update_type': self._categorize_update(
|
|
83
|
+
pkg_info['version'],
|
|
84
|
+
pkg_info['latest_version']
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return deps
|
|
89
|
+
|
|
90
|
+
def _categorize_update(self, current_ver, latest_ver):
|
|
91
|
+
"""Categorize update by semver"""
|
|
92
|
+
try:
|
|
93
|
+
current = version.parse(current_ver)
|
|
94
|
+
latest = version.parse(latest_ver)
|
|
95
|
+
|
|
96
|
+
if latest.major > current.major:
|
|
97
|
+
return 'major'
|
|
98
|
+
elif latest.minor > current.minor:
|
|
99
|
+
return 'minor'
|
|
100
|
+
elif latest.micro > current.micro:
|
|
101
|
+
return 'patch'
|
|
102
|
+
else:
|
|
103
|
+
return 'none'
|
|
104
|
+
except:
|
|
105
|
+
return 'unknown'
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 2. Breaking Change Detection
|
|
109
|
+
|
|
110
|
+
Identify potential breaking changes:
|
|
111
|
+
|
|
112
|
+
**Breaking Change Scanner**
|
|
113
|
+
```python
|
|
114
|
+
class BreakingChangeDetector:
|
|
115
|
+
def detect_breaking_changes(self, package_name, current_version, target_version):
|
|
116
|
+
"""
|
|
117
|
+
Detect breaking changes between versions
|
|
118
|
+
"""
|
|
119
|
+
breaking_changes = {
|
|
120
|
+
'api_changes': [],
|
|
121
|
+
'removed_features': [],
|
|
122
|
+
'changed_behavior': [],
|
|
123
|
+
'migration_required': False,
|
|
124
|
+
'estimated_effort': 'low'
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
# Fetch changelog
|
|
128
|
+
changelog = self._fetch_changelog(package_name, current_version, target_version)
|
|
129
|
+
|
|
130
|
+
# Parse for breaking changes
|
|
131
|
+
breaking_patterns = [
|
|
132
|
+
r'BREAKING CHANGE:',
|
|
133
|
+
r'BREAKING:',
|
|
134
|
+
r'removed',
|
|
135
|
+
r'deprecated',
|
|
136
|
+
r'no longer',
|
|
137
|
+
r'renamed',
|
|
138
|
+
r'moved to',
|
|
139
|
+
r'replaced by'
|
|
140
|
+
]
|
|
141
|
+
|
|
142
|
+
for pattern in breaking_patterns:
|
|
143
|
+
matches = re.finditer(pattern, changelog, re.IGNORECASE)
|
|
144
|
+
for match in matches:
|
|
145
|
+
context = self._extract_context(changelog, match.start())
|
|
146
|
+
breaking_changes['api_changes'].append(context)
|
|
147
|
+
|
|
148
|
+
# Check for specific patterns
|
|
149
|
+
if package_name == 'react':
|
|
150
|
+
breaking_changes.update(self._check_react_breaking_changes(
|
|
151
|
+
current_version, target_version
|
|
152
|
+
))
|
|
153
|
+
elif package_name == 'webpack':
|
|
154
|
+
breaking_changes.update(self._check_webpack_breaking_changes(
|
|
155
|
+
current_version, target_version
|
|
156
|
+
))
|
|
157
|
+
|
|
158
|
+
# Estimate migration effort
|
|
159
|
+
breaking_changes['estimated_effort'] = self._estimate_effort(breaking_changes)
|
|
160
|
+
|
|
161
|
+
return breaking_changes
|
|
162
|
+
|
|
163
|
+
def _check_react_breaking_changes(self, current, target):
|
|
164
|
+
"""React-specific breaking changes"""
|
|
165
|
+
changes = {
|
|
166
|
+
'api_changes': [],
|
|
167
|
+
'migration_required': False
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
# React 15 to 16
|
|
171
|
+
if current.startswith('15') and target.startswith('16'):
|
|
172
|
+
changes['api_changes'].extend([
|
|
173
|
+
'PropTypes moved to separate package',
|
|
174
|
+
'React.createClass deprecated',
|
|
175
|
+
'String refs deprecated'
|
|
176
|
+
])
|
|
177
|
+
changes['migration_required'] = True
|
|
178
|
+
|
|
179
|
+
# React 16 to 17
|
|
180
|
+
elif current.startswith('16') and target.startswith('17'):
|
|
181
|
+
changes['api_changes'].extend([
|
|
182
|
+
'Event delegation changes',
|
|
183
|
+
'No event pooling',
|
|
184
|
+
'useEffect cleanup timing changes'
|
|
185
|
+
])
|
|
186
|
+
|
|
187
|
+
# React 17 to 18
|
|
188
|
+
elif current.startswith('17') and target.startswith('18'):
|
|
189
|
+
changes['api_changes'].extend([
|
|
190
|
+
'Automatic batching',
|
|
191
|
+
'Stricter StrictMode',
|
|
192
|
+
'Suspense changes',
|
|
193
|
+
'New root API'
|
|
194
|
+
])
|
|
195
|
+
changes['migration_required'] = True
|
|
196
|
+
|
|
197
|
+
return changes
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 3. Migration Guide Generation
|
|
201
|
+
|
|
202
|
+
Create detailed migration guides:
|
|
203
|
+
|
|
204
|
+
**Migration Guide Generator**
|
|
205
|
+
```python
|
|
206
|
+
def generate_migration_guide(package_name, current_version, target_version, breaking_changes):
|
|
207
|
+
"""
|
|
208
|
+
Generate step-by-step migration guide
|
|
209
|
+
"""
|
|
210
|
+
guide = f"""
|
|
211
|
+
# Migration Guide: {package_name} {current_version} → {target_version}
|
|
212
|
+
|
|
213
|
+
## Overview
|
|
214
|
+
This guide will help you upgrade {package_name} from version {current_version} to {target_version}.
|
|
215
|
+
|
|
216
|
+
**Estimated time**: {estimate_migration_time(breaking_changes)}
|
|
217
|
+
**Risk level**: {assess_risk_level(breaking_changes)}
|
|
218
|
+
**Breaking changes**: {len(breaking_changes['api_changes'])}
|
|
219
|
+
|
|
220
|
+
## Pre-Migration Checklist
|
|
221
|
+
|
|
222
|
+
- [ ] Current test suite passing
|
|
223
|
+
- [ ] Backup created / Git commit point marked
|
|
224
|
+
- [ ] Dependencies compatibility checked
|
|
225
|
+
- [ ] Team notified of upgrade
|
|
226
|
+
|
|
227
|
+
## Migration Steps
|
|
228
|
+
|
|
229
|
+
### Step 1: Update Dependencies
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Create a new branch
|
|
233
|
+
git checkout -b upgrade/{package_name}-{target_version}
|
|
234
|
+
|
|
235
|
+
# Update package
|
|
236
|
+
npm install {package_name}@{target_version}
|
|
237
|
+
|
|
238
|
+
# Update peer dependencies if needed
|
|
239
|
+
{generate_peer_deps_commands(package_name, target_version)}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Step 2: Address Breaking Changes
|
|
243
|
+
|
|
244
|
+
{generate_breaking_change_fixes(breaking_changes)}
|
|
245
|
+
|
|
246
|
+
### Step 3: Update Code Patterns
|
|
247
|
+
|
|
248
|
+
{generate_code_updates(package_name, current_version, target_version)}
|
|
249
|
+
|
|
250
|
+
### Step 4: Run Codemods (if available)
|
|
251
|
+
|
|
252
|
+
{generate_codemod_commands(package_name, target_version)}
|
|
253
|
+
|
|
254
|
+
### Step 5: Test & Verify
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Run linter to catch issues
|
|
258
|
+
npm run lint
|
|
259
|
+
|
|
260
|
+
# Run tests
|
|
261
|
+
npm test
|
|
262
|
+
|
|
263
|
+
# Run type checking
|
|
264
|
+
npm run type-check
|
|
265
|
+
|
|
266
|
+
# Manual testing checklist
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
{generate_test_checklist(package_name, breaking_changes)}
|
|
270
|
+
|
|
271
|
+
### Step 6: Performance Validation
|
|
272
|
+
|
|
273
|
+
{generate_performance_checks(package_name)}
|
|
274
|
+
|
|
275
|
+
## Rollback Plan
|
|
276
|
+
|
|
277
|
+
If issues arise, follow these steps to rollback:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# Revert package version
|
|
281
|
+
git checkout package.json package-lock.json
|
|
282
|
+
npm install
|
|
283
|
+
|
|
284
|
+
# Or use the backup branch
|
|
285
|
+
git checkout main
|
|
286
|
+
git branch -D upgrade/{package_name}-{target_version}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Common Issues & Solutions
|
|
290
|
+
|
|
291
|
+
{generate_common_issues(package_name, target_version)}
|
|
292
|
+
|
|
293
|
+
## Resources
|
|
294
|
+
|
|
295
|
+
- [Official Migration Guide]({get_official_guide_url(package_name, target_version)})
|
|
296
|
+
- [Changelog]({get_changelog_url(package_name, target_version)})
|
|
297
|
+
- [Community Discussions]({get_community_url(package_name)})
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
return guide
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### 4. Incremental Upgrade Strategy
|
|
304
|
+
|
|
305
|
+
Plan safe incremental upgrades:
|
|
306
|
+
|
|
307
|
+
**Incremental Upgrade Planner**
|
|
308
|
+
```python
|
|
309
|
+
class IncrementalUpgrader:
|
|
310
|
+
def plan_incremental_upgrade(self, package_name, current, target):
|
|
311
|
+
"""
|
|
312
|
+
Plan incremental upgrade path
|
|
313
|
+
"""
|
|
314
|
+
# Get all versions between current and target
|
|
315
|
+
all_versions = self._get_versions_between(package_name, current, target)
|
|
316
|
+
|
|
317
|
+
# Identify safe stopping points
|
|
318
|
+
safe_versions = self._identify_safe_versions(all_versions)
|
|
319
|
+
|
|
320
|
+
# Create upgrade path
|
|
321
|
+
upgrade_path = self._create_upgrade_path(current, target, safe_versions)
|
|
322
|
+
|
|
323
|
+
plan = f"""
|
|
324
|
+
## Incremental Upgrade Plan: {package_name}
|
|
325
|
+
|
|
326
|
+
### Current State
|
|
327
|
+
- Version: {current}
|
|
328
|
+
- Target: {target}
|
|
329
|
+
- Total steps: {len(upgrade_path)}
|
|
330
|
+
|
|
331
|
+
### Upgrade Path
|
|
332
|
+
|
|
333
|
+
"""
|
|
334
|
+
for i, step in enumerate(upgrade_path, 1):
|
|
335
|
+
plan += f"""
|
|
336
|
+
#### Step {i}: Upgrade to {step['version']}
|
|
337
|
+
|
|
338
|
+
**Risk Level**: {step['risk_level']}
|
|
339
|
+
**Breaking Changes**: {step['breaking_changes']}
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
# Upgrade command
|
|
343
|
+
npm install {package_name}@{step['version']}
|
|
344
|
+
|
|
345
|
+
# Test command
|
|
346
|
+
npm test -- --updateSnapshot
|
|
347
|
+
|
|
348
|
+
# Verification
|
|
349
|
+
npm run integration-tests
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
**Key Changes**:
|
|
353
|
+
{self._summarize_changes(step)}
|
|
354
|
+
|
|
355
|
+
**Testing Focus**:
|
|
356
|
+
{self._get_test_focus(step)}
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
"""
|
|
360
|
+
|
|
361
|
+
return plan
|
|
362
|
+
|
|
363
|
+
def _identify_safe_versions(self, versions):
|
|
364
|
+
"""Identify safe intermediate versions"""
|
|
365
|
+
safe_versions = []
|
|
366
|
+
|
|
367
|
+
for v in versions:
|
|
368
|
+
# Safe versions are typically:
|
|
369
|
+
# - Last patch of each minor version
|
|
370
|
+
# - Versions with long stability period
|
|
371
|
+
# - Versions before major API changes
|
|
372
|
+
if (self._is_last_patch(v, versions) or
|
|
373
|
+
self._has_stability_period(v) or
|
|
374
|
+
self._is_pre_breaking_change(v)):
|
|
375
|
+
safe_versions.append(v)
|
|
376
|
+
|
|
377
|
+
return safe_versions
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### 5. Automated Testing Strategy
|
|
381
|
+
|
|
382
|
+
Ensure upgrades don't break functionality:
|
|
383
|
+
|
|
384
|
+
**Upgrade Test Suite**
|
|
385
|
+
```javascript
|
|
386
|
+
// upgrade-tests.js
|
|
387
|
+
const { runUpgradeTests } = require('./upgrade-test-framework');
|
|
388
|
+
|
|
389
|
+
async function testDependencyUpgrade(packageName, targetVersion) {
|
|
390
|
+
const testSuite = {
|
|
391
|
+
preUpgrade: async () => {
|
|
392
|
+
// Capture baseline
|
|
393
|
+
const baseline = {
|
|
394
|
+
unitTests: await runTests('unit'),
|
|
395
|
+
integrationTests: await runTests('integration'),
|
|
396
|
+
e2eTests: await runTests('e2e'),
|
|
397
|
+
performance: await capturePerformanceMetrics(),
|
|
398
|
+
bundleSize: await measureBundleSize()
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
return baseline;
|
|
402
|
+
},
|
|
403
|
+
|
|
404
|
+
postUpgrade: async (baseline) => {
|
|
405
|
+
// Run same tests after upgrade
|
|
406
|
+
const results = {
|
|
407
|
+
unitTests: await runTests('unit'),
|
|
408
|
+
integrationTests: await runTests('integration'),
|
|
409
|
+
e2eTests: await runTests('e2e'),
|
|
410
|
+
performance: await capturePerformanceMetrics(),
|
|
411
|
+
bundleSize: await measureBundleSize()
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
// Compare results
|
|
415
|
+
const comparison = compareResults(baseline, results);
|
|
416
|
+
|
|
417
|
+
return {
|
|
418
|
+
passed: comparison.passed,
|
|
419
|
+
failures: comparison.failures,
|
|
420
|
+
regressions: comparison.regressions,
|
|
421
|
+
improvements: comparison.improvements
|
|
422
|
+
};
|
|
423
|
+
},
|
|
424
|
+
|
|
425
|
+
smokeTests: [
|
|
426
|
+
async () => {
|
|
427
|
+
// Critical path testing
|
|
428
|
+
await testCriticalUserFlows();
|
|
429
|
+
},
|
|
430
|
+
async () => {
|
|
431
|
+
// API compatibility
|
|
432
|
+
await testAPICompatibility();
|
|
433
|
+
},
|
|
434
|
+
async () => {
|
|
435
|
+
// Build process
|
|
436
|
+
await testBuildProcess();
|
|
437
|
+
}
|
|
438
|
+
]
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
return runUpgradeTests(testSuite);
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### 6. Compatibility Matrix
|
|
446
|
+
|
|
447
|
+
Check compatibility across dependencies:
|
|
448
|
+
|
|
449
|
+
**Compatibility Checker**
|
|
450
|
+
```python
|
|
451
|
+
def generate_compatibility_matrix(dependencies):
|
|
452
|
+
"""
|
|
453
|
+
Generate compatibility matrix for dependencies
|
|
454
|
+
"""
|
|
455
|
+
matrix = {}
|
|
456
|
+
|
|
457
|
+
for dep_name, dep_info in dependencies.items():
|
|
458
|
+
matrix[dep_name] = {
|
|
459
|
+
'current': dep_info['current'],
|
|
460
|
+
'target': dep_info['latest'],
|
|
461
|
+
'compatible_with': check_compatibility(dep_name, dep_info['latest']),
|
|
462
|
+
'conflicts': find_conflicts(dep_name, dep_info['latest']),
|
|
463
|
+
'peer_requirements': get_peer_requirements(dep_name, dep_info['latest'])
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
# Generate report
|
|
467
|
+
report = """
|
|
468
|
+
## Dependency Compatibility Matrix
|
|
469
|
+
|
|
470
|
+
| Package | Current | Target | Compatible With | Conflicts | Action Required |
|
|
471
|
+
|---------|---------|--------|-----------------|-----------|-----------------|
|
|
472
|
+
"""
|
|
473
|
+
|
|
474
|
+
for pkg, info in matrix.items():
|
|
475
|
+
compatible = '✅' if not info['conflicts'] else '⚠️'
|
|
476
|
+
conflicts = ', '.join(info['conflicts']) if info['conflicts'] else 'None'
|
|
477
|
+
action = 'Safe to upgrade' if not info['conflicts'] else 'Resolve conflicts first'
|
|
478
|
+
|
|
479
|
+
report += f"| {pkg} | {info['current']} | {info['target']} | {compatible} | {conflicts} | {action} |\n"
|
|
480
|
+
|
|
481
|
+
return report
|
|
482
|
+
|
|
483
|
+
def check_compatibility(package_name, version):
|
|
484
|
+
"""Check what this package is compatible with"""
|
|
485
|
+
# Check package.json or requirements.txt
|
|
486
|
+
peer_deps = get_peer_dependencies(package_name, version)
|
|
487
|
+
compatible_packages = []
|
|
488
|
+
|
|
489
|
+
for peer_pkg, peer_version_range in peer_deps.items():
|
|
490
|
+
if is_installed(peer_pkg):
|
|
491
|
+
current_peer_version = get_installed_version(peer_pkg)
|
|
492
|
+
if satisfies_version_range(current_peer_version, peer_version_range):
|
|
493
|
+
compatible_packages.append(f"{peer_pkg}@{current_peer_version}")
|
|
494
|
+
|
|
495
|
+
return compatible_packages
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### 7. Rollback Strategy
|
|
499
|
+
|
|
500
|
+
Implement safe rollback procedures:
|
|
501
|
+
|
|
502
|
+
**Rollback Manager**
|
|
503
|
+
```bash
|
|
504
|
+
#!/bin/bash
|
|
505
|
+
# rollback-dependencies.sh
|
|
506
|
+
|
|
507
|
+
# Create rollback point
|
|
508
|
+
create_rollback_point() {
|
|
509
|
+
echo "📌 Creating rollback point..."
|
|
510
|
+
|
|
511
|
+
# Save current state
|
|
512
|
+
cp package.json package.json.backup
|
|
513
|
+
cp package-lock.json package-lock.json.backup
|
|
514
|
+
|
|
515
|
+
# Git tag
|
|
516
|
+
git tag -a "pre-upgrade-$(date +%Y%m%d-%H%M%S)" -m "Pre-upgrade snapshot"
|
|
517
|
+
|
|
518
|
+
# Database snapshot if needed
|
|
519
|
+
if [ -f "database-backup.sh" ]; then
|
|
520
|
+
./database-backup.sh
|
|
521
|
+
fi
|
|
522
|
+
|
|
523
|
+
echo "✅ Rollback point created"
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
# Perform rollback
|
|
527
|
+
rollback() {
|
|
528
|
+
echo "🔄 Performing rollback..."
|
|
529
|
+
|
|
530
|
+
# Restore package files
|
|
531
|
+
mv package.json.backup package.json
|
|
532
|
+
mv package-lock.json.backup package-lock.json
|
|
533
|
+
|
|
534
|
+
# Reinstall dependencies
|
|
535
|
+
rm -rf node_modules
|
|
536
|
+
npm ci
|
|
537
|
+
|
|
538
|
+
# Run post-rollback tests
|
|
539
|
+
npm test
|
|
540
|
+
|
|
541
|
+
echo "✅ Rollback complete"
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
# Verify rollback
|
|
545
|
+
verify_rollback() {
|
|
546
|
+
echo "🔍 Verifying rollback..."
|
|
547
|
+
|
|
548
|
+
# Check critical functionality
|
|
549
|
+
npm run test:critical
|
|
550
|
+
|
|
551
|
+
# Check service health
|
|
552
|
+
curl -f http://localhost:3000/health || exit 1
|
|
553
|
+
|
|
554
|
+
echo "✅ Rollback verified"
|
|
555
|
+
}
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### 8. Batch Update Strategy
|
|
559
|
+
|
|
560
|
+
Handle multiple updates efficiently:
|
|
561
|
+
|
|
562
|
+
**Batch Update Planner**
|
|
563
|
+
```python
|
|
564
|
+
def plan_batch_updates(dependencies):
|
|
565
|
+
"""
|
|
566
|
+
Plan efficient batch updates
|
|
567
|
+
"""
|
|
568
|
+
# Group by update type
|
|
569
|
+
groups = {
|
|
570
|
+
'patch': [],
|
|
571
|
+
'minor': [],
|
|
572
|
+
'major': [],
|
|
573
|
+
'security': []
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
for dep, info in dependencies.items():
|
|
577
|
+
if info.get('has_security_vulnerability'):
|
|
578
|
+
groups['security'].append(dep)
|
|
579
|
+
else:
|
|
580
|
+
groups[info['update_type']].append(dep)
|
|
581
|
+
|
|
582
|
+
# Create update batches
|
|
583
|
+
batches = []
|
|
584
|
+
|
|
585
|
+
# Batch 1: Security updates (immediate)
|
|
586
|
+
if groups['security']:
|
|
587
|
+
batches.append({
|
|
588
|
+
'priority': 'CRITICAL',
|
|
589
|
+
'name': 'Security Updates',
|
|
590
|
+
'packages': groups['security'],
|
|
591
|
+
'strategy': 'immediate',
|
|
592
|
+
'testing': 'full'
|
|
593
|
+
})
|
|
594
|
+
|
|
595
|
+
# Batch 2: Patch updates (safe)
|
|
596
|
+
if groups['patch']:
|
|
597
|
+
batches.append({
|
|
598
|
+
'priority': 'HIGH',
|
|
599
|
+
'name': 'Patch Updates',
|
|
600
|
+
'packages': groups['patch'],
|
|
601
|
+
'strategy': 'grouped',
|
|
602
|
+
'testing': 'smoke'
|
|
603
|
+
})
|
|
604
|
+
|
|
605
|
+
# Batch 3: Minor updates (careful)
|
|
606
|
+
if groups['minor']:
|
|
607
|
+
batches.append({
|
|
608
|
+
'priority': 'MEDIUM',
|
|
609
|
+
'name': 'Minor Updates',
|
|
610
|
+
'packages': groups['minor'],
|
|
611
|
+
'strategy': 'incremental',
|
|
612
|
+
'testing': 'regression'
|
|
613
|
+
})
|
|
614
|
+
|
|
615
|
+
# Batch 4: Major updates (planned)
|
|
616
|
+
if groups['major']:
|
|
617
|
+
batches.append({
|
|
618
|
+
'priority': 'LOW',
|
|
619
|
+
'name': 'Major Updates',
|
|
620
|
+
'packages': groups['major'],
|
|
621
|
+
'strategy': 'individual',
|
|
622
|
+
'testing': 'comprehensive'
|
|
623
|
+
})
|
|
624
|
+
|
|
625
|
+
return generate_batch_plan(batches)
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
### 9. Framework-Specific Upgrades
|
|
629
|
+
|
|
630
|
+
Handle framework upgrades:
|
|
631
|
+
|
|
632
|
+
**Framework Upgrade Guides**
|
|
633
|
+
```python
|
|
634
|
+
framework_upgrades = {
|
|
635
|
+
'angular': {
|
|
636
|
+
'upgrade_command': 'ng update',
|
|
637
|
+
'pre_checks': [
|
|
638
|
+
'ng update @angular/core@{version} --dry-run',
|
|
639
|
+
'npm audit',
|
|
640
|
+
'ng lint'
|
|
641
|
+
],
|
|
642
|
+
'post_upgrade': [
|
|
643
|
+
'ng update @angular/cli',
|
|
644
|
+
'npm run test',
|
|
645
|
+
'npm run e2e'
|
|
646
|
+
],
|
|
647
|
+
'common_issues': {
|
|
648
|
+
'ivy_renderer': 'Enable Ivy in tsconfig.json',
|
|
649
|
+
'strict_mode': 'Update TypeScript configurations',
|
|
650
|
+
'deprecated_apis': 'Use Angular migration schematics'
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
'react': {
|
|
654
|
+
'upgrade_command': 'npm install react@{version} react-dom@{version}',
|
|
655
|
+
'codemods': [
|
|
656
|
+
'npx react-codemod rename-unsafe-lifecycles',
|
|
657
|
+
'npx react-codemod error-boundaries'
|
|
658
|
+
],
|
|
659
|
+
'verification': [
|
|
660
|
+
'npm run build',
|
|
661
|
+
'npm test -- --coverage',
|
|
662
|
+
'npm run analyze-bundle'
|
|
663
|
+
]
|
|
664
|
+
},
|
|
665
|
+
'vue': {
|
|
666
|
+
'upgrade_command': 'npm install vue@{version}',
|
|
667
|
+
'migration_tool': 'npx @vue/migration-tool',
|
|
668
|
+
'breaking_changes': {
|
|
669
|
+
'2_to_3': [
|
|
670
|
+
'Composition API',
|
|
671
|
+
'Multiple root elements',
|
|
672
|
+
'Teleport component',
|
|
673
|
+
'Fragments'
|
|
674
|
+
]
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### 10. Post-Upgrade Monitoring
|
|
681
|
+
|
|
682
|
+
Monitor application after upgrades:
|
|
683
|
+
|
|
684
|
+
```javascript
|
|
685
|
+
// post-upgrade-monitoring.js
|
|
686
|
+
const monitoring = {
|
|
687
|
+
metrics: {
|
|
688
|
+
performance: {
|
|
689
|
+
'page_load_time': { threshold: 3000, unit: 'ms' },
|
|
690
|
+
'api_response_time': { threshold: 500, unit: 'ms' },
|
|
691
|
+
'memory_usage': { threshold: 512, unit: 'MB' }
|
|
692
|
+
},
|
|
693
|
+
errors: {
|
|
694
|
+
'error_rate': { threshold: 0.01, unit: '%' },
|
|
695
|
+
'console_errors': { threshold: 0, unit: 'count' }
|
|
696
|
+
},
|
|
697
|
+
bundle: {
|
|
698
|
+
'size': { threshold: 5, unit: 'MB' },
|
|
699
|
+
'gzip_size': { threshold: 1.5, unit: 'MB' }
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
|
|
703
|
+
checkHealth: async function() {
|
|
704
|
+
const results = {};
|
|
705
|
+
|
|
706
|
+
for (const [category, metrics] of Object.entries(this.metrics)) {
|
|
707
|
+
results[category] = {};
|
|
708
|
+
|
|
709
|
+
for (const [metric, config] of Object.entries(metrics)) {
|
|
710
|
+
const value = await this.measureMetric(metric);
|
|
711
|
+
results[category][metric] = {
|
|
712
|
+
value,
|
|
713
|
+
threshold: config.threshold,
|
|
714
|
+
unit: config.unit,
|
|
715
|
+
status: value <= config.threshold ? 'PASS' : 'FAIL'
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
return results;
|
|
721
|
+
},
|
|
722
|
+
|
|
723
|
+
generateReport: function(results) {
|
|
724
|
+
let report = '## Post-Upgrade Health Check\n\n';
|
|
725
|
+
|
|
726
|
+
for (const [category, metrics] of Object.entries(results)) {
|
|
727
|
+
report += `### ${category}\n\n`;
|
|
728
|
+
report += '| Metric | Value | Threshold | Status |\n';
|
|
729
|
+
report += '|--------|-------|-----------|--------|\n';
|
|
730
|
+
|
|
731
|
+
for (const [metric, data] of Object.entries(metrics)) {
|
|
732
|
+
const status = data.status === 'PASS' ? '✅' : '❌';
|
|
733
|
+
report += `| ${metric} | ${data.value}${data.unit} | ${data.threshold}${data.unit} | ${status} |\n`;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
report += '\n';
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
return report;
|
|
740
|
+
}
|
|
741
|
+
};
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
## Output Format
|
|
745
|
+
|
|
746
|
+
1. **Upgrade Overview**: Summary of available updates with risk assessment
|
|
747
|
+
2. **Priority Matrix**: Ordered list of updates by importance and safety
|
|
748
|
+
3. **Migration Guides**: Step-by-step guides for each major upgrade
|
|
749
|
+
4. **Compatibility Report**: Dependency compatibility analysis
|
|
750
|
+
5. **Test Strategy**: Automated tests for validating upgrades
|
|
751
|
+
6. **Rollback Plan**: Clear procedures for reverting if needed
|
|
752
|
+
7. **Monitoring Dashboard**: Post-upgrade health metrics
|
|
753
|
+
8. **Timeline**: Realistic schedule for implementing upgrades
|
|
754
|
+
|
|
755
|
+
Focus on safe, incremental upgrades that maintain system stability while keeping dependencies current and secure.
|