@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,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-scanning-security-dependencies
|
|
3
|
+
description: "You are a security expert specializing in dependency vulnerability analysis, SBOM generation, and supply chain security. Scan project dependencies across ecosystems to identify vulnerabilities, assess risks, and recommend remediation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dependency Vulnerability Scanning
|
|
7
|
+
|
|
8
|
+
You are a security expert specializing in dependency vulnerability analysis, SBOM generation, and supply chain security. Scan project dependencies across multiple ecosystems to identify vulnerabilities, assess risks, and provide automated remediation strategies.
|
|
9
|
+
|
|
10
|
+
## Use this skill when
|
|
11
|
+
|
|
12
|
+
- Auditing dependencies for vulnerabilities or license risks
|
|
13
|
+
- Generating SBOMs for compliance or supply chain visibility
|
|
14
|
+
- Planning remediation for outdated or vulnerable packages
|
|
15
|
+
- Standardizing dependency scanning across ecosystems
|
|
16
|
+
|
|
17
|
+
## Do not use this skill when
|
|
18
|
+
|
|
19
|
+
- You only need runtime security testing
|
|
20
|
+
- There is no dependency manifest or lockfile
|
|
21
|
+
- The environment blocks running security scanners
|
|
22
|
+
|
|
23
|
+
## Context
|
|
24
|
+
The user needs comprehensive dependency security analysis to identify vulnerable packages, outdated dependencies, and license compliance issues. Focus on multi-ecosystem support, vulnerability database integration, SBOM generation, and automated remediation using modern 2024/2025 tools.
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
## Instructions
|
|
30
|
+
|
|
31
|
+
- Clarify goals, constraints, and required inputs.
|
|
32
|
+
- Apply relevant best practices and validate outcomes.
|
|
33
|
+
- Provide actionable steps and verification.
|
|
34
|
+
- If detailed examples are required, open `resources/implementation-playbook.md`.
|
|
35
|
+
|
|
36
|
+
## Safety
|
|
37
|
+
|
|
38
|
+
- Avoid running auto-fix or upgrade steps without approval.
|
|
39
|
+
- Treat dependency changes as release-impacting and test accordingly.
|
|
40
|
+
|
|
41
|
+
## Resources
|
|
42
|
+
|
|
43
|
+
- `resources/implementation-playbook.md` for detailed patterns and examples.
|
|
@@ -0,0 +1,544 @@
|
|
|
1
|
+
# Dependency Vulnerability Scanning Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
# Dependency Vulnerability Scanning
|
|
6
|
+
|
|
7
|
+
You are a security expert specializing in dependency vulnerability analysis, SBOM generation, and supply chain security. Scan project dependencies across multiple ecosystems to identify vulnerabilities, assess risks, and provide automated remediation strategies.
|
|
8
|
+
|
|
9
|
+
## Use this skill when
|
|
10
|
+
|
|
11
|
+
- Auditing dependencies for vulnerabilities or license risks
|
|
12
|
+
- Generating SBOMs for compliance or supply chain visibility
|
|
13
|
+
- Planning remediation for outdated or vulnerable packages
|
|
14
|
+
- Standardizing dependency scanning across ecosystems
|
|
15
|
+
|
|
16
|
+
## Do not use this skill when
|
|
17
|
+
|
|
18
|
+
- You only need runtime security testing
|
|
19
|
+
- There is no dependency manifest or lockfile
|
|
20
|
+
- The environment blocks running security scanners
|
|
21
|
+
|
|
22
|
+
## Safety
|
|
23
|
+
|
|
24
|
+
- Avoid running auto-fix or upgrade steps without approval.
|
|
25
|
+
- Treat dependency changes as release-impacting and test accordingly.
|
|
26
|
+
|
|
27
|
+
## Context
|
|
28
|
+
The user needs comprehensive dependency security analysis to identify vulnerable packages, outdated dependencies, and license compliance issues. Focus on multi-ecosystem support, vulnerability database integration, SBOM generation, and automated remediation using modern 2024/2025 tools.
|
|
29
|
+
|
|
30
|
+
## Requirements
|
|
31
|
+
$ARGUMENTS
|
|
32
|
+
|
|
33
|
+
## Instructions
|
|
34
|
+
|
|
35
|
+
### 1. Multi-Ecosystem Dependency Scanner
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
import subprocess
|
|
39
|
+
import json
|
|
40
|
+
import requests
|
|
41
|
+
from pathlib import Path
|
|
42
|
+
from typing import Dict, List, Any
|
|
43
|
+
from dataclasses import dataclass
|
|
44
|
+
from datetime import datetime
|
|
45
|
+
|
|
46
|
+
@dataclass
|
|
47
|
+
class Vulnerability:
|
|
48
|
+
package: str
|
|
49
|
+
version: str
|
|
50
|
+
vulnerability_id: str
|
|
51
|
+
severity: str
|
|
52
|
+
cve: List[str]
|
|
53
|
+
cvss_score: float
|
|
54
|
+
fixed_versions: List[str]
|
|
55
|
+
source: str
|
|
56
|
+
|
|
57
|
+
class DependencyScanner:
|
|
58
|
+
def __init__(self, project_path: str):
|
|
59
|
+
self.project_path = Path(project_path)
|
|
60
|
+
self.ecosystem_scanners = {
|
|
61
|
+
'npm': self.scan_npm,
|
|
62
|
+
'pip': self.scan_python,
|
|
63
|
+
'go': self.scan_go,
|
|
64
|
+
'cargo': self.scan_rust
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
def detect_ecosystems(self) -> List[str]:
|
|
68
|
+
ecosystem_files = {
|
|
69
|
+
'npm': ['package.json', 'package-lock.json'],
|
|
70
|
+
'pip': ['requirements.txt', 'pyproject.toml'],
|
|
71
|
+
'go': ['go.mod'],
|
|
72
|
+
'cargo': ['Cargo.toml']
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
detected = []
|
|
76
|
+
for ecosystem, patterns in ecosystem_files.items():
|
|
77
|
+
if any(list(self.project_path.glob(f"**/{p}")) for p in patterns):
|
|
78
|
+
detected.append(ecosystem)
|
|
79
|
+
return detected
|
|
80
|
+
|
|
81
|
+
def scan_all_dependencies(self) -> Dict[str, Any]:
|
|
82
|
+
ecosystems = self.detect_ecosystems()
|
|
83
|
+
results = {
|
|
84
|
+
'timestamp': datetime.now().isoformat(),
|
|
85
|
+
'ecosystems': {},
|
|
86
|
+
'vulnerabilities': [],
|
|
87
|
+
'summary': {
|
|
88
|
+
'total_vulnerabilities': 0,
|
|
89
|
+
'critical': 0,
|
|
90
|
+
'high': 0,
|
|
91
|
+
'medium': 0,
|
|
92
|
+
'low': 0
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
for ecosystem in ecosystems:
|
|
97
|
+
scanner = self.ecosystem_scanners.get(ecosystem)
|
|
98
|
+
if scanner:
|
|
99
|
+
ecosystem_results = scanner()
|
|
100
|
+
results['ecosystems'][ecosystem] = ecosystem_results
|
|
101
|
+
results['vulnerabilities'].extend(ecosystem_results.get('vulnerabilities', []))
|
|
102
|
+
|
|
103
|
+
self._update_summary(results)
|
|
104
|
+
results['remediation_plan'] = self.generate_remediation_plan(results['vulnerabilities'])
|
|
105
|
+
results['sbom'] = self.generate_sbom(results['ecosystems'])
|
|
106
|
+
|
|
107
|
+
return results
|
|
108
|
+
|
|
109
|
+
def scan_npm(self) -> Dict[str, Any]:
|
|
110
|
+
results = {
|
|
111
|
+
'ecosystem': 'npm',
|
|
112
|
+
'vulnerabilities': []
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
try:
|
|
116
|
+
npm_result = subprocess.run(
|
|
117
|
+
['npm', 'audit', '--json'],
|
|
118
|
+
cwd=self.project_path,
|
|
119
|
+
capture_output=True,
|
|
120
|
+
text=True,
|
|
121
|
+
timeout=120
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
if npm_result.stdout:
|
|
125
|
+
audit_data = json.loads(npm_result.stdout)
|
|
126
|
+
for vuln_id, vuln in audit_data.get('vulnerabilities', {}).items():
|
|
127
|
+
results['vulnerabilities'].append({
|
|
128
|
+
'package': vuln.get('name', vuln_id),
|
|
129
|
+
'version': vuln.get('range', ''),
|
|
130
|
+
'vulnerability_id': vuln_id,
|
|
131
|
+
'severity': vuln.get('severity', 'UNKNOWN').upper(),
|
|
132
|
+
'cve': vuln.get('cves', []),
|
|
133
|
+
'fixed_in': vuln.get('fixAvailable', {}).get('version', 'N/A'),
|
|
134
|
+
'source': 'npm_audit'
|
|
135
|
+
})
|
|
136
|
+
except Exception as e:
|
|
137
|
+
results['error'] = str(e)
|
|
138
|
+
|
|
139
|
+
return results
|
|
140
|
+
|
|
141
|
+
def scan_python(self) -> Dict[str, Any]:
|
|
142
|
+
results = {
|
|
143
|
+
'ecosystem': 'python',
|
|
144
|
+
'vulnerabilities': []
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
try:
|
|
148
|
+
safety_result = subprocess.run(
|
|
149
|
+
['safety', 'check', '--json'],
|
|
150
|
+
cwd=self.project_path,
|
|
151
|
+
capture_output=True,
|
|
152
|
+
text=True,
|
|
153
|
+
timeout=120
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
if safety_result.stdout:
|
|
157
|
+
safety_data = json.loads(safety_result.stdout)
|
|
158
|
+
for vuln in safety_data:
|
|
159
|
+
results['vulnerabilities'].append({
|
|
160
|
+
'package': vuln.get('package_name', ''),
|
|
161
|
+
'version': vuln.get('analyzed_version', ''),
|
|
162
|
+
'vulnerability_id': vuln.get('vulnerability_id', ''),
|
|
163
|
+
'severity': 'HIGH',
|
|
164
|
+
'fixed_in': vuln.get('fixed_version', ''),
|
|
165
|
+
'source': 'safety'
|
|
166
|
+
})
|
|
167
|
+
except Exception as e:
|
|
168
|
+
results['error'] = str(e)
|
|
169
|
+
|
|
170
|
+
return results
|
|
171
|
+
|
|
172
|
+
def scan_go(self) -> Dict[str, Any]:
|
|
173
|
+
results = {
|
|
174
|
+
'ecosystem': 'go',
|
|
175
|
+
'vulnerabilities': []
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
try:
|
|
179
|
+
govuln_result = subprocess.run(
|
|
180
|
+
['govulncheck', '-json', './...'],
|
|
181
|
+
cwd=self.project_path,
|
|
182
|
+
capture_output=True,
|
|
183
|
+
text=True,
|
|
184
|
+
timeout=180
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
if govuln_result.stdout:
|
|
188
|
+
for line in govuln_result.stdout.strip().split('\n'):
|
|
189
|
+
if line:
|
|
190
|
+
vuln_data = json.loads(line)
|
|
191
|
+
if vuln_data.get('finding'):
|
|
192
|
+
finding = vuln_data['finding']
|
|
193
|
+
results['vulnerabilities'].append({
|
|
194
|
+
'package': finding.get('osv', ''),
|
|
195
|
+
'vulnerability_id': finding.get('osv', ''),
|
|
196
|
+
'severity': 'HIGH',
|
|
197
|
+
'source': 'govulncheck'
|
|
198
|
+
})
|
|
199
|
+
except Exception as e:
|
|
200
|
+
results['error'] = str(e)
|
|
201
|
+
|
|
202
|
+
return results
|
|
203
|
+
|
|
204
|
+
def scan_rust(self) -> Dict[str, Any]:
|
|
205
|
+
results = {
|
|
206
|
+
'ecosystem': 'rust',
|
|
207
|
+
'vulnerabilities': []
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
try:
|
|
211
|
+
audit_result = subprocess.run(
|
|
212
|
+
['cargo', 'audit', '--json'],
|
|
213
|
+
cwd=self.project_path,
|
|
214
|
+
capture_output=True,
|
|
215
|
+
text=True,
|
|
216
|
+
timeout=120
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
if audit_result.stdout:
|
|
220
|
+
audit_data = json.loads(audit_result.stdout)
|
|
221
|
+
for vuln in audit_data.get('vulnerabilities', {}).get('list', []):
|
|
222
|
+
advisory = vuln.get('advisory', {})
|
|
223
|
+
results['vulnerabilities'].append({
|
|
224
|
+
'package': vuln.get('package', {}).get('name', ''),
|
|
225
|
+
'version': vuln.get('package', {}).get('version', ''),
|
|
226
|
+
'vulnerability_id': advisory.get('id', ''),
|
|
227
|
+
'severity': 'HIGH',
|
|
228
|
+
'source': 'cargo_audit'
|
|
229
|
+
})
|
|
230
|
+
except Exception as e:
|
|
231
|
+
results['error'] = str(e)
|
|
232
|
+
|
|
233
|
+
return results
|
|
234
|
+
|
|
235
|
+
def _update_summary(self, results: Dict[str, Any]):
|
|
236
|
+
vulnerabilities = results['vulnerabilities']
|
|
237
|
+
results['summary']['total_vulnerabilities'] = len(vulnerabilities)
|
|
238
|
+
|
|
239
|
+
for vuln in vulnerabilities:
|
|
240
|
+
severity = vuln.get('severity', '').upper()
|
|
241
|
+
if severity == 'CRITICAL':
|
|
242
|
+
results['summary']['critical'] += 1
|
|
243
|
+
elif severity == 'HIGH':
|
|
244
|
+
results['summary']['high'] += 1
|
|
245
|
+
elif severity == 'MEDIUM':
|
|
246
|
+
results['summary']['medium'] += 1
|
|
247
|
+
elif severity == 'LOW':
|
|
248
|
+
results['summary']['low'] += 1
|
|
249
|
+
|
|
250
|
+
def generate_remediation_plan(self, vulnerabilities: List[Dict]) -> Dict[str, Any]:
|
|
251
|
+
plan = {
|
|
252
|
+
'immediate_actions': [],
|
|
253
|
+
'short_term': [],
|
|
254
|
+
'automation_scripts': {}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
critical_high = [v for v in vulnerabilities if v.get('severity', '').upper() in ['CRITICAL', 'HIGH']]
|
|
258
|
+
|
|
259
|
+
for vuln in critical_high[:20]:
|
|
260
|
+
plan['immediate_actions'].append({
|
|
261
|
+
'package': vuln.get('package', ''),
|
|
262
|
+
'current_version': vuln.get('version', ''),
|
|
263
|
+
'fixed_version': vuln.get('fixed_in', 'latest'),
|
|
264
|
+
'severity': vuln.get('severity', ''),
|
|
265
|
+
'priority': 1
|
|
266
|
+
})
|
|
267
|
+
|
|
268
|
+
plan['automation_scripts'] = {
|
|
269
|
+
'npm_fix': 'npm audit fix && npm update',
|
|
270
|
+
'pip_fix': 'pip-audit --fix && safety check',
|
|
271
|
+
'go_fix': 'go get -u ./... && go mod tidy',
|
|
272
|
+
'cargo_fix': 'cargo update && cargo audit'
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
return plan
|
|
276
|
+
|
|
277
|
+
def generate_sbom(self, ecosystems: Dict[str, Any]) -> Dict[str, Any]:
|
|
278
|
+
sbom = {
|
|
279
|
+
'bomFormat': 'CycloneDX',
|
|
280
|
+
'specVersion': '1.5',
|
|
281
|
+
'version': 1,
|
|
282
|
+
'metadata': {
|
|
283
|
+
'timestamp': datetime.now().isoformat()
|
|
284
|
+
},
|
|
285
|
+
'components': []
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
for ecosystem_name, ecosystem_data in ecosystems.items():
|
|
289
|
+
for vuln in ecosystem_data.get('vulnerabilities', []):
|
|
290
|
+
sbom['components'].append({
|
|
291
|
+
'type': 'library',
|
|
292
|
+
'name': vuln.get('package', ''),
|
|
293
|
+
'version': vuln.get('version', ''),
|
|
294
|
+
'purl': f"pkg:{ecosystem_name}/{vuln.get('package', '')}@{vuln.get('version', '')}"
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
return sbom
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### 2. Vulnerability Prioritization
|
|
301
|
+
|
|
302
|
+
```python
|
|
303
|
+
class VulnerabilityPrioritizer:
|
|
304
|
+
def calculate_priority_score(self, vulnerability: Dict) -> float:
|
|
305
|
+
cvss_score = vulnerability.get('cvss_score', 0) or 0
|
|
306
|
+
exploitability = 1.0 if vulnerability.get('exploit_available') else 0.5
|
|
307
|
+
fix_available = 1.0 if vulnerability.get('fixed_in') else 0.3
|
|
308
|
+
|
|
309
|
+
priority_score = (
|
|
310
|
+
cvss_score * 0.4 +
|
|
311
|
+
exploitability * 2.0 +
|
|
312
|
+
fix_available * 1.0
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
return round(priority_score, 2)
|
|
316
|
+
|
|
317
|
+
def prioritize_vulnerabilities(self, vulnerabilities: List[Dict]) -> List[Dict]:
|
|
318
|
+
for vuln in vulnerabilities:
|
|
319
|
+
vuln['priority_score'] = self.calculate_priority_score(vuln)
|
|
320
|
+
|
|
321
|
+
return sorted(vulnerabilities, key=lambda x: x['priority_score'], reverse=True)
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### 3. CI/CD Integration
|
|
325
|
+
|
|
326
|
+
```yaml
|
|
327
|
+
name: Dependency Security Scan
|
|
328
|
+
|
|
329
|
+
on:
|
|
330
|
+
push:
|
|
331
|
+
branches: [main]
|
|
332
|
+
schedule:
|
|
333
|
+
- cron: '0 2 * * *'
|
|
334
|
+
|
|
335
|
+
jobs:
|
|
336
|
+
scan-dependencies:
|
|
337
|
+
runs-on: ubuntu-latest
|
|
338
|
+
|
|
339
|
+
strategy:
|
|
340
|
+
matrix:
|
|
341
|
+
ecosystem: [npm, python, go]
|
|
342
|
+
|
|
343
|
+
steps:
|
|
344
|
+
- uses: actions/checkout@v4
|
|
345
|
+
|
|
346
|
+
- name: NPM Audit
|
|
347
|
+
if: matrix.ecosystem == 'npm'
|
|
348
|
+
run: |
|
|
349
|
+
npm ci
|
|
350
|
+
npm audit --json > npm-audit.json || true
|
|
351
|
+
npm audit --audit-level=moderate
|
|
352
|
+
|
|
353
|
+
- name: Python Safety
|
|
354
|
+
if: matrix.ecosystem == 'python'
|
|
355
|
+
run: |
|
|
356
|
+
pip install safety pip-audit
|
|
357
|
+
safety check --json --output safety.json || true
|
|
358
|
+
pip-audit --format=json --output=pip-audit.json || true
|
|
359
|
+
|
|
360
|
+
- name: Go Vulnerability Check
|
|
361
|
+
if: matrix.ecosystem == 'go'
|
|
362
|
+
run: |
|
|
363
|
+
go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
364
|
+
govulncheck -json ./... > govulncheck.json || true
|
|
365
|
+
|
|
366
|
+
- name: Upload Results
|
|
367
|
+
uses: actions/upload-artifact@v4
|
|
368
|
+
with:
|
|
369
|
+
name: scan-${{ matrix.ecosystem }}
|
|
370
|
+
path: '*.json'
|
|
371
|
+
|
|
372
|
+
- name: Check Thresholds
|
|
373
|
+
run: |
|
|
374
|
+
CRITICAL=$(grep -o '"severity":"CRITICAL"' *.json 2>/dev/null | wc -l || echo 0)
|
|
375
|
+
if [ "$CRITICAL" -gt 0 ]; then
|
|
376
|
+
echo "❌ Found $CRITICAL critical vulnerabilities!"
|
|
377
|
+
exit 1
|
|
378
|
+
fi
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### 4. Automated Updates
|
|
382
|
+
|
|
383
|
+
```bash
|
|
384
|
+
#!/bin/bash
|
|
385
|
+
# automated-dependency-update.sh
|
|
386
|
+
|
|
387
|
+
set -euo pipefail
|
|
388
|
+
|
|
389
|
+
ECOSYSTEM="$1"
|
|
390
|
+
UPDATE_TYPE="${2:-patch}"
|
|
391
|
+
|
|
392
|
+
update_npm() {
|
|
393
|
+
npm audit --audit-level=moderate || true
|
|
394
|
+
|
|
395
|
+
if [ "$UPDATE_TYPE" = "patch" ]; then
|
|
396
|
+
npm update --save
|
|
397
|
+
elif [ "$UPDATE_TYPE" = "minor" ]; then
|
|
398
|
+
npx npm-check-updates -u --target minor
|
|
399
|
+
npm install
|
|
400
|
+
fi
|
|
401
|
+
|
|
402
|
+
npm test
|
|
403
|
+
npm audit --audit-level=moderate
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
update_python() {
|
|
407
|
+
pip install --upgrade pip
|
|
408
|
+
pip-audit --fix
|
|
409
|
+
safety check
|
|
410
|
+
pytest
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
update_go() {
|
|
414
|
+
go get -u ./...
|
|
415
|
+
go mod tidy
|
|
416
|
+
govulncheck ./...
|
|
417
|
+
go test ./...
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
case "$ECOSYSTEM" in
|
|
421
|
+
npm) update_npm ;;
|
|
422
|
+
python) update_python ;;
|
|
423
|
+
go) update_go ;;
|
|
424
|
+
*)
|
|
425
|
+
echo "Unknown ecosystem: $ECOSYSTEM"
|
|
426
|
+
exit 1
|
|
427
|
+
;;
|
|
428
|
+
esac
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### 5. Reporting
|
|
432
|
+
|
|
433
|
+
```python
|
|
434
|
+
class VulnerabilityReporter:
|
|
435
|
+
def generate_markdown_report(self, scan_results: Dict[str, Any]) -> str:
|
|
436
|
+
report = f"""# Dependency Vulnerability Report
|
|
437
|
+
|
|
438
|
+
**Generated:** {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
|
|
439
|
+
|
|
440
|
+
## Executive Summary
|
|
441
|
+
|
|
442
|
+
- **Total Vulnerabilities:** {scan_results['summary']['total_vulnerabilities']}
|
|
443
|
+
- **Critical:** {scan_results['summary']['critical']} 🔴
|
|
444
|
+
- **High:** {scan_results['summary']['high']} 🟠
|
|
445
|
+
- **Medium:** {scan_results['summary']['medium']} 🟡
|
|
446
|
+
- **Low:** {scan_results['summary']['low']} 🟢
|
|
447
|
+
|
|
448
|
+
## Critical & High Severity
|
|
449
|
+
|
|
450
|
+
"""
|
|
451
|
+
|
|
452
|
+
critical_high = [v for v in scan_results['vulnerabilities']
|
|
453
|
+
if v.get('severity', '').upper() in ['CRITICAL', 'HIGH']]
|
|
454
|
+
|
|
455
|
+
for vuln in critical_high[:20]:
|
|
456
|
+
report += f"""
|
|
457
|
+
### {vuln.get('package', 'Unknown')} - {vuln.get('vulnerability_id', '')}
|
|
458
|
+
|
|
459
|
+
- **Severity:** {vuln.get('severity', 'UNKNOWN')}
|
|
460
|
+
- **Current Version:** {vuln.get('version', '')}
|
|
461
|
+
- **Fixed In:** {vuln.get('fixed_in', 'N/A')}
|
|
462
|
+
- **CVE:** {', '.join(vuln.get('cve', []))}
|
|
463
|
+
|
|
464
|
+
"""
|
|
465
|
+
|
|
466
|
+
return report
|
|
467
|
+
|
|
468
|
+
def generate_sarif(self, scan_results: Dict[str, Any]) -> Dict[str, Any]:
|
|
469
|
+
return {
|
|
470
|
+
"version": "2.1.0",
|
|
471
|
+
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
|
|
472
|
+
"runs": [{
|
|
473
|
+
"tool": {
|
|
474
|
+
"driver": {
|
|
475
|
+
"name": "Dependency Scanner",
|
|
476
|
+
"version": "1.0.0"
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"results": [
|
|
480
|
+
{
|
|
481
|
+
"ruleId": vuln.get('vulnerability_id', 'unknown'),
|
|
482
|
+
"level": self._map_severity(vuln.get('severity', '')),
|
|
483
|
+
"message": {
|
|
484
|
+
"text": f"{vuln.get('package', '')} has known vulnerability"
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
for vuln in scan_results['vulnerabilities']
|
|
488
|
+
]
|
|
489
|
+
}]
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
def _map_severity(self, severity: str) -> str:
|
|
493
|
+
mapping = {
|
|
494
|
+
'CRITICAL': 'error',
|
|
495
|
+
'HIGH': 'error',
|
|
496
|
+
'MEDIUM': 'warning',
|
|
497
|
+
'LOW': 'note'
|
|
498
|
+
}
|
|
499
|
+
return mapping.get(severity.upper(), 'warning')
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## Best Practices
|
|
503
|
+
|
|
504
|
+
1. **Regular Scanning**: Run dependency scans daily via scheduled CI/CD
|
|
505
|
+
2. **Prioritize by CVSS**: Focus on high CVSS scores and exploit availability
|
|
506
|
+
3. **Staged Updates**: Auto-update patch versions, manual for major versions
|
|
507
|
+
4. **Test Coverage**: Always run full test suite after updates
|
|
508
|
+
5. **SBOM Generation**: Maintain up-to-date Software Bill of Materials
|
|
509
|
+
6. **License Compliance**: Check for restrictive licenses
|
|
510
|
+
7. **Rollback Strategy**: Create backup branches before major updates
|
|
511
|
+
|
|
512
|
+
## Tool Installation
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
# Python
|
|
516
|
+
pip install safety pip-audit pipenv pip-licenses
|
|
517
|
+
|
|
518
|
+
# JavaScript
|
|
519
|
+
npm install -g snyk npm-check-updates
|
|
520
|
+
|
|
521
|
+
# Go
|
|
522
|
+
go install golang.org/x/vuln/cmd/govulncheck@latest
|
|
523
|
+
|
|
524
|
+
# Rust
|
|
525
|
+
cargo install cargo-audit
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
## Usage Examples
|
|
529
|
+
|
|
530
|
+
```bash
|
|
531
|
+
# Scan all dependencies
|
|
532
|
+
python dependency_scanner.py scan --path .
|
|
533
|
+
|
|
534
|
+
# Generate SBOM
|
|
535
|
+
python dependency_scanner.py sbom --format cyclonedx
|
|
536
|
+
|
|
537
|
+
# Auto-fix vulnerabilities
|
|
538
|
+
./automated-dependency-update.sh npm patch
|
|
539
|
+
|
|
540
|
+
# CI/CD integration
|
|
541
|
+
python dependency_scanner.py scan --fail-on critical,high
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
Focus on automated vulnerability detection, risk assessment, and remediation across all major package ecosystems.
|