| name | dependency_audit |
| description | Audits project dependencies for security vulnerabilities, license conflicts, and maintenance status. Invoke when checking dependency health, before major releases, or during security reviews. |
SKILL: Dependency Health Audit
🎯 Objective
Maintain a secure, maintainable, and legally compliant dependency tree. Identify risks from outdated packages, vulnerable libraries, and license incompatibilities.
🧠 Core Principle: Proactive Risk Management
Dependencies are attack vectors and maintenance burdens. Regular audits prevent supply chain attacks and reduce technical debt accumulation.
📊 Severity Legend
CRITICAL — Known exploited/critical CVE, or malicious package. Remove or patch now.
HIGH — High-severity CVE or unmaintained package on a critical path.
MEDIUM — License conflict, abandoned non-critical package, or duplicate.
LOW — Optimization opportunity (bundle size, consolidation).
OK — Verified healthy.
✅ Verification Discipline
Use real tooling and data, never recall. Vulnerability claims must trace to an advisory ID (CVE/GHSA/OSV). License claims must trace to the package's actual license field/file. If a tool is unavailable in the environment, say so rather than inventing results.
Tooling by ecosystem:
- Node:
npm audit --json, npm outdated, osv-scanner
- Python:
pip-audit, safety check
- Go:
govulncheck ./...
- Rust:
cargo audit
- Multi:
osv-scanner, trivy fs
🛠️ Execution Pipeline
1. INVENTORY_COLLECTION
Goal: Know exactly what is in the tree.
2. VULNERABILITY_SCAN
Goal: Find known CVEs, worst-first.
How to verify: Run the ecosystem scanner and cite the advisory ID + fixed version for every finding. Distinguish runtime exposure from dev-only (a dev-only CVE is usually lower priority).
3. MAINTENANCE_STATUS
Goal: Avoid betting on abandoned code.
4. LICENSE_COMPLIANCE
Goal: Ship legally.
Quick reference: MIT/BSD/Apache-2.0 are permissive and generally safe. GPL/AGPL are strong copyleft — flag for legal review if the project ships as proprietary/SaaS. "UNLICENSED" or missing license = treat as MEDIUM until clarified.
5. DUPLICATE_DETECTION
Goal: Trim redundancy and version conflicts.
6. SIZE_IMPACT_ANALYSIS
Goal: Keep the footprint honest.
7. UPDATE_RISK_ASSESSMENT
Goal: Sequence upgrades by risk/reward.
8. ALTERNATIVE_EVALUATION
Goal: Replace problem packages with justified swaps.
📤 Output Directives
Output format: [SEVERITY] package@version: Issue (advisory ID). Recommended action.
Group by: Critical Security, High Security, Maintenance Risk, License Conflict, Optimization Opportunity.
Example output:
CRITICAL SECURITY
[CRITICAL] lodash@4.17.4: Prototype pollution (CVE-2019-10744). Upgrade to >=4.17.12.
HIGH SECURITY
[HIGH] minimist@0.0.8: Prototype pollution (CVE-2020-7598). Upgrade to >=1.2.6.
MAINTENANCE RISK
[MEDIUM] left-pad@1.0.0: No commits in 4 years, single maintainer. Replace with String.prototype.padStart.
LICENSE CONFLICT
[MEDIUM] some-lib@2.1.0: AGPL-3.0 conflicts with proprietary distribution. Legal review required.