@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,766 @@
|
|
|
1
|
+
# Dependency Audit and Security Analysis Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
## Instructions
|
|
6
|
+
|
|
7
|
+
### 1. Dependency Discovery
|
|
8
|
+
|
|
9
|
+
Scan and inventory all project dependencies:
|
|
10
|
+
|
|
11
|
+
**Multi-Language Detection**
|
|
12
|
+
```python
|
|
13
|
+
import os
|
|
14
|
+
import json
|
|
15
|
+
import toml
|
|
16
|
+
import yaml
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
class DependencyDiscovery:
|
|
20
|
+
def __init__(self, project_path):
|
|
21
|
+
self.project_path = Path(project_path)
|
|
22
|
+
self.dependency_files = {
|
|
23
|
+
'npm': ['package.json', 'package-lock.json', 'yarn.lock'],
|
|
24
|
+
'python': ['requirements.txt', 'Pipfile', 'Pipfile.lock', 'pyproject.toml', 'poetry.lock'],
|
|
25
|
+
'ruby': ['Gemfile', 'Gemfile.lock'],
|
|
26
|
+
'java': ['pom.xml', 'build.gradle', 'build.gradle.kts'],
|
|
27
|
+
'go': ['go.mod', 'go.sum'],
|
|
28
|
+
'rust': ['Cargo.toml', 'Cargo.lock'],
|
|
29
|
+
'php': ['composer.json', 'composer.lock'],
|
|
30
|
+
'dotnet': ['*.csproj', 'packages.config', 'project.json']
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
def discover_all_dependencies(self):
|
|
34
|
+
"""
|
|
35
|
+
Discover all dependencies across different package managers
|
|
36
|
+
"""
|
|
37
|
+
dependencies = {}
|
|
38
|
+
|
|
39
|
+
# NPM/Yarn dependencies
|
|
40
|
+
if (self.project_path / 'package.json').exists():
|
|
41
|
+
dependencies['npm'] = self._parse_npm_dependencies()
|
|
42
|
+
|
|
43
|
+
# Python dependencies
|
|
44
|
+
if (self.project_path / 'requirements.txt').exists():
|
|
45
|
+
dependencies['python'] = self._parse_requirements_txt()
|
|
46
|
+
elif (self.project_path / 'Pipfile').exists():
|
|
47
|
+
dependencies['python'] = self._parse_pipfile()
|
|
48
|
+
elif (self.project_path / 'pyproject.toml').exists():
|
|
49
|
+
dependencies['python'] = self._parse_pyproject_toml()
|
|
50
|
+
|
|
51
|
+
# Go dependencies
|
|
52
|
+
if (self.project_path / 'go.mod').exists():
|
|
53
|
+
dependencies['go'] = self._parse_go_mod()
|
|
54
|
+
|
|
55
|
+
return dependencies
|
|
56
|
+
|
|
57
|
+
def _parse_npm_dependencies(self):
|
|
58
|
+
"""
|
|
59
|
+
Parse NPM package.json and lock files
|
|
60
|
+
"""
|
|
61
|
+
with open(self.project_path / 'package.json', 'r') as f:
|
|
62
|
+
package_json = json.load(f)
|
|
63
|
+
|
|
64
|
+
deps = {}
|
|
65
|
+
|
|
66
|
+
# Direct dependencies
|
|
67
|
+
for dep_type in ['dependencies', 'devDependencies', 'peerDependencies']:
|
|
68
|
+
if dep_type in package_json:
|
|
69
|
+
for name, version in package_json[dep_type].items():
|
|
70
|
+
deps[name] = {
|
|
71
|
+
'version': version,
|
|
72
|
+
'type': dep_type,
|
|
73
|
+
'direct': True
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# Parse lock file for exact versions
|
|
77
|
+
if (self.project_path / 'package-lock.json').exists():
|
|
78
|
+
with open(self.project_path / 'package-lock.json', 'r') as f:
|
|
79
|
+
lock_data = json.load(f)
|
|
80
|
+
self._parse_npm_lock(lock_data, deps)
|
|
81
|
+
|
|
82
|
+
return deps
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Dependency Tree Analysis**
|
|
86
|
+
```python
|
|
87
|
+
def build_dependency_tree(dependencies):
|
|
88
|
+
"""
|
|
89
|
+
Build complete dependency tree including transitive dependencies
|
|
90
|
+
"""
|
|
91
|
+
tree = {
|
|
92
|
+
'root': {
|
|
93
|
+
'name': 'project',
|
|
94
|
+
'version': '1.0.0',
|
|
95
|
+
'dependencies': {}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
def add_dependencies(node, deps, visited=None):
|
|
100
|
+
if visited is None:
|
|
101
|
+
visited = set()
|
|
102
|
+
|
|
103
|
+
for dep_name, dep_info in deps.items():
|
|
104
|
+
if dep_name in visited:
|
|
105
|
+
# Circular dependency detected
|
|
106
|
+
node['dependencies'][dep_name] = {
|
|
107
|
+
'circular': True,
|
|
108
|
+
'version': dep_info['version']
|
|
109
|
+
}
|
|
110
|
+
continue
|
|
111
|
+
|
|
112
|
+
visited.add(dep_name)
|
|
113
|
+
|
|
114
|
+
node['dependencies'][dep_name] = {
|
|
115
|
+
'version': dep_info['version'],
|
|
116
|
+
'type': dep_info.get('type', 'runtime'),
|
|
117
|
+
'dependencies': {}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
# Recursively add transitive dependencies
|
|
121
|
+
if 'dependencies' in dep_info:
|
|
122
|
+
add_dependencies(
|
|
123
|
+
node['dependencies'][dep_name],
|
|
124
|
+
dep_info['dependencies'],
|
|
125
|
+
visited.copy()
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
add_dependencies(tree['root'], dependencies)
|
|
129
|
+
return tree
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 2. Vulnerability Scanning
|
|
133
|
+
|
|
134
|
+
Check dependencies against vulnerability databases:
|
|
135
|
+
|
|
136
|
+
**CVE Database Check**
|
|
137
|
+
```python
|
|
138
|
+
import requests
|
|
139
|
+
from datetime import datetime
|
|
140
|
+
|
|
141
|
+
class VulnerabilityScanner:
|
|
142
|
+
def __init__(self):
|
|
143
|
+
self.vulnerability_apis = {
|
|
144
|
+
'npm': 'https://registry.npmjs.org/-/npm/v1/security/advisories/bulk',
|
|
145
|
+
'pypi': 'https://pypi.org/pypi/{package}/json',
|
|
146
|
+
'rubygems': 'https://rubygems.org/api/v1/gems/{package}.json',
|
|
147
|
+
'maven': 'https://ossindex.sonatype.org/api/v3/component-report'
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
def scan_vulnerabilities(self, dependencies):
|
|
151
|
+
"""
|
|
152
|
+
Scan dependencies for known vulnerabilities
|
|
153
|
+
"""
|
|
154
|
+
vulnerabilities = []
|
|
155
|
+
|
|
156
|
+
for package_name, package_info in dependencies.items():
|
|
157
|
+
vulns = self._check_package_vulnerabilities(
|
|
158
|
+
package_name,
|
|
159
|
+
package_info['version'],
|
|
160
|
+
package_info.get('ecosystem', 'npm')
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
if vulns:
|
|
164
|
+
vulnerabilities.extend(vulns)
|
|
165
|
+
|
|
166
|
+
return self._analyze_vulnerabilities(vulnerabilities)
|
|
167
|
+
|
|
168
|
+
def _check_package_vulnerabilities(self, name, version, ecosystem):
|
|
169
|
+
"""
|
|
170
|
+
Check specific package for vulnerabilities
|
|
171
|
+
"""
|
|
172
|
+
if ecosystem == 'npm':
|
|
173
|
+
return self._check_npm_vulnerabilities(name, version)
|
|
174
|
+
elif ecosystem == 'pypi':
|
|
175
|
+
return self._check_python_vulnerabilities(name, version)
|
|
176
|
+
elif ecosystem == 'maven':
|
|
177
|
+
return self._check_java_vulnerabilities(name, version)
|
|
178
|
+
|
|
179
|
+
def _check_npm_vulnerabilities(self, name, version):
|
|
180
|
+
"""
|
|
181
|
+
Check NPM package vulnerabilities
|
|
182
|
+
"""
|
|
183
|
+
# Using npm audit API
|
|
184
|
+
response = requests.post(
|
|
185
|
+
'https://registry.npmjs.org/-/npm/v1/security/advisories/bulk',
|
|
186
|
+
json={name: [version]}
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
vulnerabilities = []
|
|
190
|
+
if response.status_code == 200:
|
|
191
|
+
data = response.json()
|
|
192
|
+
if name in data:
|
|
193
|
+
for advisory in data[name]:
|
|
194
|
+
vulnerabilities.append({
|
|
195
|
+
'package': name,
|
|
196
|
+
'version': version,
|
|
197
|
+
'severity': advisory['severity'],
|
|
198
|
+
'title': advisory['title'],
|
|
199
|
+
'cve': advisory.get('cves', []),
|
|
200
|
+
'description': advisory['overview'],
|
|
201
|
+
'recommendation': advisory['recommendation'],
|
|
202
|
+
'patched_versions': advisory['patched_versions'],
|
|
203
|
+
'published': advisory['created']
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
return vulnerabilities
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Severity Analysis**
|
|
210
|
+
```python
|
|
211
|
+
def analyze_vulnerability_severity(vulnerabilities):
|
|
212
|
+
"""
|
|
213
|
+
Analyze and prioritize vulnerabilities by severity
|
|
214
|
+
"""
|
|
215
|
+
severity_scores = {
|
|
216
|
+
'critical': 9.0,
|
|
217
|
+
'high': 7.0,
|
|
218
|
+
'moderate': 4.0,
|
|
219
|
+
'low': 1.0
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
analysis = {
|
|
223
|
+
'total': len(vulnerabilities),
|
|
224
|
+
'by_severity': {
|
|
225
|
+
'critical': [],
|
|
226
|
+
'high': [],
|
|
227
|
+
'moderate': [],
|
|
228
|
+
'low': []
|
|
229
|
+
},
|
|
230
|
+
'risk_score': 0,
|
|
231
|
+
'immediate_action_required': []
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
for vuln in vulnerabilities:
|
|
235
|
+
severity = vuln['severity'].lower()
|
|
236
|
+
analysis['by_severity'][severity].append(vuln)
|
|
237
|
+
|
|
238
|
+
# Calculate risk score
|
|
239
|
+
base_score = severity_scores.get(severity, 0)
|
|
240
|
+
|
|
241
|
+
# Adjust score based on factors
|
|
242
|
+
if vuln.get('exploit_available', False):
|
|
243
|
+
base_score *= 1.5
|
|
244
|
+
if vuln.get('publicly_disclosed', True):
|
|
245
|
+
base_score *= 1.2
|
|
246
|
+
if 'remote_code_execution' in vuln.get('description', '').lower():
|
|
247
|
+
base_score *= 2.0
|
|
248
|
+
|
|
249
|
+
vuln['risk_score'] = base_score
|
|
250
|
+
analysis['risk_score'] += base_score
|
|
251
|
+
|
|
252
|
+
# Flag immediate action items
|
|
253
|
+
if severity in ['critical', 'high'] or base_score > 8.0:
|
|
254
|
+
analysis['immediate_action_required'].append({
|
|
255
|
+
'package': vuln['package'],
|
|
256
|
+
'severity': severity,
|
|
257
|
+
'action': f"Update to {vuln['patched_versions']}"
|
|
258
|
+
})
|
|
259
|
+
|
|
260
|
+
# Sort by risk score
|
|
261
|
+
for severity in analysis['by_severity']:
|
|
262
|
+
analysis['by_severity'][severity].sort(
|
|
263
|
+
key=lambda x: x.get('risk_score', 0),
|
|
264
|
+
reverse=True
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
return analysis
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 3. License Compliance
|
|
271
|
+
|
|
272
|
+
Analyze dependency licenses for compatibility:
|
|
273
|
+
|
|
274
|
+
**License Detection**
|
|
275
|
+
```python
|
|
276
|
+
class LicenseAnalyzer:
|
|
277
|
+
def __init__(self):
|
|
278
|
+
self.license_compatibility = {
|
|
279
|
+
'MIT': ['MIT', 'BSD', 'Apache-2.0', 'ISC'],
|
|
280
|
+
'Apache-2.0': ['Apache-2.0', 'MIT', 'BSD'],
|
|
281
|
+
'GPL-3.0': ['GPL-3.0', 'GPL-2.0'],
|
|
282
|
+
'BSD-3-Clause': ['BSD-3-Clause', 'MIT', 'Apache-2.0'],
|
|
283
|
+
'proprietary': []
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
self.license_restrictions = {
|
|
287
|
+
'GPL-3.0': 'Copyleft - requires source code disclosure',
|
|
288
|
+
'AGPL-3.0': 'Strong copyleft - network use requires source disclosure',
|
|
289
|
+
'proprietary': 'Cannot be used without explicit license',
|
|
290
|
+
'unknown': 'License unclear - legal review required'
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
def analyze_licenses(self, dependencies, project_license='MIT'):
|
|
294
|
+
"""
|
|
295
|
+
Analyze license compatibility
|
|
296
|
+
"""
|
|
297
|
+
issues = []
|
|
298
|
+
license_summary = {}
|
|
299
|
+
|
|
300
|
+
for package_name, package_info in dependencies.items():
|
|
301
|
+
license_type = package_info.get('license', 'unknown')
|
|
302
|
+
|
|
303
|
+
# Track license usage
|
|
304
|
+
if license_type not in license_summary:
|
|
305
|
+
license_summary[license_type] = []
|
|
306
|
+
license_summary[license_type].append(package_name)
|
|
307
|
+
|
|
308
|
+
# Check compatibility
|
|
309
|
+
if not self._is_compatible(project_license, license_type):
|
|
310
|
+
issues.append({
|
|
311
|
+
'package': package_name,
|
|
312
|
+
'license': license_type,
|
|
313
|
+
'issue': f'Incompatible with project license {project_license}',
|
|
314
|
+
'severity': 'high',
|
|
315
|
+
'recommendation': self._get_license_recommendation(
|
|
316
|
+
license_type,
|
|
317
|
+
project_license
|
|
318
|
+
)
|
|
319
|
+
})
|
|
320
|
+
|
|
321
|
+
# Check for restrictive licenses
|
|
322
|
+
if license_type in self.license_restrictions:
|
|
323
|
+
issues.append({
|
|
324
|
+
'package': package_name,
|
|
325
|
+
'license': license_type,
|
|
326
|
+
'issue': self.license_restrictions[license_type],
|
|
327
|
+
'severity': 'medium',
|
|
328
|
+
'recommendation': 'Review usage and ensure compliance'
|
|
329
|
+
})
|
|
330
|
+
|
|
331
|
+
return {
|
|
332
|
+
'summary': license_summary,
|
|
333
|
+
'issues': issues,
|
|
334
|
+
'compliance_status': 'FAIL' if issues else 'PASS'
|
|
335
|
+
}
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
**License Report**
|
|
339
|
+
```markdown
|
|
340
|
+
## License Compliance Report
|
|
341
|
+
|
|
342
|
+
### Summary
|
|
343
|
+
- **Project License**: MIT
|
|
344
|
+
- **Total Dependencies**: 245
|
|
345
|
+
- **License Issues**: 3
|
|
346
|
+
- **Compliance Status**: ⚠️ REVIEW REQUIRED
|
|
347
|
+
|
|
348
|
+
### License Distribution
|
|
349
|
+
| License | Count | Packages |
|
|
350
|
+
|---------|-------|----------|
|
|
351
|
+
| MIT | 180 | express, lodash, ... |
|
|
352
|
+
| Apache-2.0 | 45 | aws-sdk, ... |
|
|
353
|
+
| BSD-3-Clause | 15 | ... |
|
|
354
|
+
| GPL-3.0 | 3 | [ISSUE] package1, package2, package3 |
|
|
355
|
+
| Unknown | 2 | [ISSUE] mystery-lib, old-package |
|
|
356
|
+
|
|
357
|
+
### Compliance Issues
|
|
358
|
+
|
|
359
|
+
#### High Severity
|
|
360
|
+
1. **GPL-3.0 Dependencies**
|
|
361
|
+
- Packages: package1, package2, package3
|
|
362
|
+
- Issue: GPL-3.0 is incompatible with MIT license
|
|
363
|
+
- Risk: May require open-sourcing your entire project
|
|
364
|
+
- Recommendation:
|
|
365
|
+
- Replace with MIT/Apache licensed alternatives
|
|
366
|
+
- Or change project license to GPL-3.0
|
|
367
|
+
|
|
368
|
+
#### Medium Severity
|
|
369
|
+
2. **Unknown Licenses**
|
|
370
|
+
- Packages: mystery-lib, old-package
|
|
371
|
+
- Issue: Cannot determine license compatibility
|
|
372
|
+
- Risk: Potential legal exposure
|
|
373
|
+
- Recommendation:
|
|
374
|
+
- Contact package maintainers
|
|
375
|
+
- Review source code for license information
|
|
376
|
+
- Consider replacing with known alternatives
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### 4. Outdated Dependencies
|
|
380
|
+
|
|
381
|
+
Identify and prioritize dependency updates:
|
|
382
|
+
|
|
383
|
+
**Version Analysis**
|
|
384
|
+
```python
|
|
385
|
+
def analyze_outdated_dependencies(dependencies):
|
|
386
|
+
"""
|
|
387
|
+
Check for outdated dependencies
|
|
388
|
+
"""
|
|
389
|
+
outdated = []
|
|
390
|
+
|
|
391
|
+
for package_name, package_info in dependencies.items():
|
|
392
|
+
current_version = package_info['version']
|
|
393
|
+
latest_version = fetch_latest_version(package_name, package_info['ecosystem'])
|
|
394
|
+
|
|
395
|
+
if is_outdated(current_version, latest_version):
|
|
396
|
+
# Calculate how outdated
|
|
397
|
+
version_diff = calculate_version_difference(current_version, latest_version)
|
|
398
|
+
|
|
399
|
+
outdated.append({
|
|
400
|
+
'package': package_name,
|
|
401
|
+
'current': current_version,
|
|
402
|
+
'latest': latest_version,
|
|
403
|
+
'type': version_diff['type'], # major, minor, patch
|
|
404
|
+
'releases_behind': version_diff['count'],
|
|
405
|
+
'age_days': get_version_age(package_name, current_version),
|
|
406
|
+
'breaking_changes': version_diff['type'] == 'major',
|
|
407
|
+
'update_effort': estimate_update_effort(version_diff),
|
|
408
|
+
'changelog': fetch_changelog(package_name, current_version, latest_version)
|
|
409
|
+
})
|
|
410
|
+
|
|
411
|
+
return prioritize_updates(outdated)
|
|
412
|
+
|
|
413
|
+
def prioritize_updates(outdated_deps):
|
|
414
|
+
"""
|
|
415
|
+
Prioritize updates based on multiple factors
|
|
416
|
+
"""
|
|
417
|
+
for dep in outdated_deps:
|
|
418
|
+
score = 0
|
|
419
|
+
|
|
420
|
+
# Security updates get highest priority
|
|
421
|
+
if dep.get('has_security_fix', False):
|
|
422
|
+
score += 100
|
|
423
|
+
|
|
424
|
+
# Major version updates
|
|
425
|
+
if dep['type'] == 'major':
|
|
426
|
+
score += 20
|
|
427
|
+
elif dep['type'] == 'minor':
|
|
428
|
+
score += 10
|
|
429
|
+
else:
|
|
430
|
+
score += 5
|
|
431
|
+
|
|
432
|
+
# Age factor
|
|
433
|
+
if dep['age_days'] > 365:
|
|
434
|
+
score += 30
|
|
435
|
+
elif dep['age_days'] > 180:
|
|
436
|
+
score += 20
|
|
437
|
+
elif dep['age_days'] > 90:
|
|
438
|
+
score += 10
|
|
439
|
+
|
|
440
|
+
# Number of releases behind
|
|
441
|
+
score += min(dep['releases_behind'] * 2, 20)
|
|
442
|
+
|
|
443
|
+
dep['priority_score'] = score
|
|
444
|
+
dep['priority'] = 'critical' if score > 80 else 'high' if score > 50 else 'medium'
|
|
445
|
+
|
|
446
|
+
return sorted(outdated_deps, key=lambda x: x['priority_score'], reverse=True)
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
### 5. Dependency Size Analysis
|
|
450
|
+
|
|
451
|
+
Analyze bundle size impact:
|
|
452
|
+
|
|
453
|
+
**Bundle Size Impact**
|
|
454
|
+
```javascript
|
|
455
|
+
// Analyze NPM package sizes
|
|
456
|
+
const analyzeBundleSize = async (dependencies) => {
|
|
457
|
+
const sizeAnalysis = {
|
|
458
|
+
totalSize: 0,
|
|
459
|
+
totalGzipped: 0,
|
|
460
|
+
packages: [],
|
|
461
|
+
recommendations: []
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
for (const [packageName, info] of Object.entries(dependencies)) {
|
|
465
|
+
try {
|
|
466
|
+
// Fetch package stats
|
|
467
|
+
const response = await fetch(
|
|
468
|
+
`https://bundlephobia.com/api/size?package=${packageName}@${info.version}`
|
|
469
|
+
);
|
|
470
|
+
const data = await response.json();
|
|
471
|
+
|
|
472
|
+
const packageSize = {
|
|
473
|
+
name: packageName,
|
|
474
|
+
version: info.version,
|
|
475
|
+
size: data.size,
|
|
476
|
+
gzip: data.gzip,
|
|
477
|
+
dependencyCount: data.dependencyCount,
|
|
478
|
+
hasJSNext: data.hasJSNext,
|
|
479
|
+
hasSideEffects: data.hasSideEffects
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
sizeAnalysis.packages.push(packageSize);
|
|
483
|
+
sizeAnalysis.totalSize += data.size;
|
|
484
|
+
sizeAnalysis.totalGzipped += data.gzip;
|
|
485
|
+
|
|
486
|
+
// Size recommendations
|
|
487
|
+
if (data.size > 1000000) { // 1MB
|
|
488
|
+
sizeAnalysis.recommendations.push({
|
|
489
|
+
package: packageName,
|
|
490
|
+
issue: 'Large bundle size',
|
|
491
|
+
size: `${(data.size / 1024 / 1024).toFixed(2)} MB`,
|
|
492
|
+
suggestion: 'Consider lighter alternatives or lazy loading'
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
} catch (error) {
|
|
496
|
+
console.error(`Failed to analyze ${packageName}:`, error);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// Sort by size
|
|
501
|
+
sizeAnalysis.packages.sort((a, b) => b.size - a.size);
|
|
502
|
+
|
|
503
|
+
// Add top offenders
|
|
504
|
+
sizeAnalysis.topOffenders = sizeAnalysis.packages.slice(0, 10);
|
|
505
|
+
|
|
506
|
+
return sizeAnalysis;
|
|
507
|
+
};
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### 6. Supply Chain Security
|
|
511
|
+
|
|
512
|
+
Check for dependency hijacking and typosquatting:
|
|
513
|
+
|
|
514
|
+
**Supply Chain Checks**
|
|
515
|
+
```python
|
|
516
|
+
def check_supply_chain_security(dependencies):
|
|
517
|
+
"""
|
|
518
|
+
Perform supply chain security checks
|
|
519
|
+
"""
|
|
520
|
+
security_issues = []
|
|
521
|
+
|
|
522
|
+
for package_name, package_info in dependencies.items():
|
|
523
|
+
# Check for typosquatting
|
|
524
|
+
typo_check = check_typosquatting(package_name)
|
|
525
|
+
if typo_check['suspicious']:
|
|
526
|
+
security_issues.append({
|
|
527
|
+
'type': 'typosquatting',
|
|
528
|
+
'package': package_name,
|
|
529
|
+
'severity': 'high',
|
|
530
|
+
'similar_to': typo_check['similar_packages'],
|
|
531
|
+
'recommendation': 'Verify package name spelling'
|
|
532
|
+
})
|
|
533
|
+
|
|
534
|
+
# Check maintainer changes
|
|
535
|
+
maintainer_check = check_maintainer_changes(package_name)
|
|
536
|
+
if maintainer_check['recent_changes']:
|
|
537
|
+
security_issues.append({
|
|
538
|
+
'type': 'maintainer_change',
|
|
539
|
+
'package': package_name,
|
|
540
|
+
'severity': 'medium',
|
|
541
|
+
'details': maintainer_check['changes'],
|
|
542
|
+
'recommendation': 'Review recent package changes'
|
|
543
|
+
})
|
|
544
|
+
|
|
545
|
+
# Check for suspicious patterns
|
|
546
|
+
if contains_suspicious_patterns(package_info):
|
|
547
|
+
security_issues.append({
|
|
548
|
+
'type': 'suspicious_behavior',
|
|
549
|
+
'package': package_name,
|
|
550
|
+
'severity': 'high',
|
|
551
|
+
'patterns': package_info['suspicious_patterns'],
|
|
552
|
+
'recommendation': 'Audit package source code'
|
|
553
|
+
})
|
|
554
|
+
|
|
555
|
+
return security_issues
|
|
556
|
+
|
|
557
|
+
def check_typosquatting(package_name):
|
|
558
|
+
"""
|
|
559
|
+
Check if package name might be typosquatting
|
|
560
|
+
"""
|
|
561
|
+
common_packages = [
|
|
562
|
+
'react', 'express', 'lodash', 'axios', 'webpack',
|
|
563
|
+
'babel', 'jest', 'typescript', 'eslint', 'prettier'
|
|
564
|
+
]
|
|
565
|
+
|
|
566
|
+
for legit_package in common_packages:
|
|
567
|
+
distance = levenshtein_distance(package_name.lower(), legit_package)
|
|
568
|
+
if 0 < distance <= 2: # Close but not exact match
|
|
569
|
+
return {
|
|
570
|
+
'suspicious': True,
|
|
571
|
+
'similar_packages': [legit_package],
|
|
572
|
+
'distance': distance
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
return {'suspicious': False}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
### 7. Automated Remediation
|
|
579
|
+
|
|
580
|
+
Generate automated fixes:
|
|
581
|
+
|
|
582
|
+
**Update Scripts**
|
|
583
|
+
```bash
|
|
584
|
+
#!/bin/bash
|
|
585
|
+
# Auto-update dependencies with security fixes
|
|
586
|
+
|
|
587
|
+
echo "🔒 Security Update Script"
|
|
588
|
+
echo "========================"
|
|
589
|
+
|
|
590
|
+
# NPM/Yarn updates
|
|
591
|
+
if [ -f "package.json" ]; then
|
|
592
|
+
echo "📦 Updating NPM dependencies..."
|
|
593
|
+
|
|
594
|
+
# Audit and auto-fix
|
|
595
|
+
npm audit fix --force
|
|
596
|
+
|
|
597
|
+
# Update specific vulnerable packages
|
|
598
|
+
npm update package1@^2.0.0 package2@~3.1.0
|
|
599
|
+
|
|
600
|
+
# Run tests
|
|
601
|
+
npm test
|
|
602
|
+
|
|
603
|
+
if [ $? -eq 0 ]; then
|
|
604
|
+
echo "✅ NPM updates successful"
|
|
605
|
+
else
|
|
606
|
+
echo "❌ Tests failed, reverting..."
|
|
607
|
+
git checkout package-lock.json
|
|
608
|
+
fi
|
|
609
|
+
fi
|
|
610
|
+
|
|
611
|
+
# Python updates
|
|
612
|
+
if [ -f "requirements.txt" ]; then
|
|
613
|
+
echo "🐍 Updating Python dependencies..."
|
|
614
|
+
|
|
615
|
+
# Create backup
|
|
616
|
+
cp requirements.txt requirements.txt.backup
|
|
617
|
+
|
|
618
|
+
# Update vulnerable packages
|
|
619
|
+
pip-compile --upgrade-package package1 --upgrade-package package2
|
|
620
|
+
|
|
621
|
+
# Test installation
|
|
622
|
+
pip install -r requirements.txt --dry-run
|
|
623
|
+
|
|
624
|
+
if [ $? -eq 0 ]; then
|
|
625
|
+
echo "✅ Python updates successful"
|
|
626
|
+
else
|
|
627
|
+
echo "❌ Update failed, reverting..."
|
|
628
|
+
mv requirements.txt.backup requirements.txt
|
|
629
|
+
fi
|
|
630
|
+
fi
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**Pull Request Generation**
|
|
634
|
+
```python
|
|
635
|
+
def generate_dependency_update_pr(updates):
|
|
636
|
+
"""
|
|
637
|
+
Generate PR with dependency updates
|
|
638
|
+
"""
|
|
639
|
+
pr_body = f"""
|
|
640
|
+
## 🔒 Dependency Security Update
|
|
641
|
+
|
|
642
|
+
This PR updates {len(updates)} dependencies to address security vulnerabilities and outdated packages.
|
|
643
|
+
|
|
644
|
+
### Security Fixes ({sum(1 for u in updates if u['has_security'])})
|
|
645
|
+
|
|
646
|
+
| Package | Current | Updated | Severity | CVE |
|
|
647
|
+
|---------|---------|---------|----------|-----|
|
|
648
|
+
"""
|
|
649
|
+
|
|
650
|
+
for update in updates:
|
|
651
|
+
if update['has_security']:
|
|
652
|
+
pr_body += f"| {update['package']} | {update['current']} | {update['target']} | {update['severity']} | {', '.join(update['cves'])} |\n"
|
|
653
|
+
|
|
654
|
+
pr_body += """
|
|
655
|
+
|
|
656
|
+
### Other Updates
|
|
657
|
+
|
|
658
|
+
| Package | Current | Updated | Type | Age |
|
|
659
|
+
|---------|---------|---------|------|-----|
|
|
660
|
+
"""
|
|
661
|
+
|
|
662
|
+
for update in updates:
|
|
663
|
+
if not update['has_security']:
|
|
664
|
+
pr_body += f"| {update['package']} | {update['current']} | {update['target']} | {update['type']} | {update['age_days']} days |\n"
|
|
665
|
+
|
|
666
|
+
pr_body += """
|
|
667
|
+
|
|
668
|
+
### Testing
|
|
669
|
+
- [ ] All tests pass
|
|
670
|
+
- [ ] No breaking changes identified
|
|
671
|
+
- [ ] Bundle size impact reviewed
|
|
672
|
+
|
|
673
|
+
### Review Checklist
|
|
674
|
+
- [ ] Security vulnerabilities addressed
|
|
675
|
+
- [ ] License compliance maintained
|
|
676
|
+
- [ ] No unexpected dependencies added
|
|
677
|
+
- [ ] Performance impact assessed
|
|
678
|
+
|
|
679
|
+
cc @security-team
|
|
680
|
+
"""
|
|
681
|
+
|
|
682
|
+
return {
|
|
683
|
+
'title': f'chore(deps): Security update for {len(updates)} dependencies',
|
|
684
|
+
'body': pr_body,
|
|
685
|
+
'branch': f'deps/security-update-{datetime.now().strftime("%Y%m%d")}',
|
|
686
|
+
'labels': ['dependencies', 'security']
|
|
687
|
+
}
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
### 8. Monitoring and Alerts
|
|
691
|
+
|
|
692
|
+
Set up continuous dependency monitoring:
|
|
693
|
+
|
|
694
|
+
**GitHub Actions Workflow**
|
|
695
|
+
```yaml
|
|
696
|
+
name: Dependency Audit
|
|
697
|
+
|
|
698
|
+
on:
|
|
699
|
+
schedule:
|
|
700
|
+
- cron: '0 0 * * *' # Daily
|
|
701
|
+
push:
|
|
702
|
+
paths:
|
|
703
|
+
- 'package*.json'
|
|
704
|
+
- 'requirements.txt'
|
|
705
|
+
- 'Gemfile*'
|
|
706
|
+
- 'go.mod'
|
|
707
|
+
workflow_dispatch:
|
|
708
|
+
|
|
709
|
+
jobs:
|
|
710
|
+
security-audit:
|
|
711
|
+
runs-on: ubuntu-latest
|
|
712
|
+
|
|
713
|
+
steps:
|
|
714
|
+
- uses: actions/checkout@v3
|
|
715
|
+
|
|
716
|
+
- name: Run NPM Audit
|
|
717
|
+
if: hashFiles('package.json')
|
|
718
|
+
run: |
|
|
719
|
+
npm audit --json > npm-audit.json
|
|
720
|
+
if [ $(jq '.vulnerabilities.total' npm-audit.json) -gt 0 ]; then
|
|
721
|
+
echo "::error::Found $(jq '.vulnerabilities.total' npm-audit.json) vulnerabilities"
|
|
722
|
+
exit 1
|
|
723
|
+
fi
|
|
724
|
+
|
|
725
|
+
- name: Run Python Safety Check
|
|
726
|
+
if: hashFiles('requirements.txt')
|
|
727
|
+
run: |
|
|
728
|
+
pip install safety
|
|
729
|
+
safety check --json > safety-report.json
|
|
730
|
+
|
|
731
|
+
- name: Check Licenses
|
|
732
|
+
run: |
|
|
733
|
+
npx license-checker --json > licenses.json
|
|
734
|
+
python scripts/check_license_compliance.py
|
|
735
|
+
|
|
736
|
+
- name: Create Issue for Critical Vulnerabilities
|
|
737
|
+
if: failure()
|
|
738
|
+
uses: actions/github-script@v6
|
|
739
|
+
with:
|
|
740
|
+
script: |
|
|
741
|
+
const audit = require('./npm-audit.json');
|
|
742
|
+
const critical = audit.vulnerabilities.critical;
|
|
743
|
+
|
|
744
|
+
if (critical > 0) {
|
|
745
|
+
github.rest.issues.create({
|
|
746
|
+
owner: context.repo.owner,
|
|
747
|
+
repo: context.repo.repo,
|
|
748
|
+
title: `🚨 ${critical} critical vulnerabilities found`,
|
|
749
|
+
body: 'Dependency audit found critical vulnerabilities. See workflow run for details.',
|
|
750
|
+
labels: ['security', 'dependencies', 'critical']
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
## Output Format
|
|
756
|
+
|
|
757
|
+
1. **Executive Summary**: High-level risk assessment and action items
|
|
758
|
+
2. **Vulnerability Report**: Detailed CVE analysis with severity ratings
|
|
759
|
+
3. **License Compliance**: Compatibility matrix and legal risks
|
|
760
|
+
4. **Update Recommendations**: Prioritized list with effort estimates
|
|
761
|
+
5. **Supply Chain Analysis**: Typosquatting and hijacking risks
|
|
762
|
+
6. **Remediation Scripts**: Automated update commands and PR generation
|
|
763
|
+
7. **Size Impact Report**: Bundle size analysis and optimization tips
|
|
764
|
+
8. **Monitoring Setup**: CI/CD integration for continuous scanning
|
|
765
|
+
|
|
766
|
+
Focus on actionable insights that help maintain secure, compliant, and efficient dependency management.
|