Loading...
Loading...
Audits project dependencies for license compliance, maintenance health, security vulnerabilities, and bloat. Analyzes both direct and transitive dependency trees, detects abandoned packages, identifies license conflicts (copyleft, unknown), checks for known CVEs, and finds unused or duplicate dependencies. Triggers on: "audit dependencies", "dependency check", "license check", "dependency health", "abandoned packages", "bloat check", "unused dependencies", "security audit dependencies", "dependency review", "license compliance", "package audit", "supply chain", "dependency risk". Use this skill when reviewing project dependencies for risk.
npx skill4agent add mathews-tom/praxis-skills dependency-audit| File | Contents | Load When |
|---|---|---|
| License compatibility matrix, copyleft detection, commercial-safe licenses | Always |
| Maintenance health indicators, scoring criteria, abandonment detection | Always |
| Identifying unused deps, duplicate functionality, heavy transitive trees | Bloat analysis requested |
| CVE databases, advisory sources, vulnerability severity interpretation | Security audit requested |
pyproject.tomlrequirements.txtpackage.jsonCargo.tomlgo.mod==1.2.3>=1.0,<2.0*uv pip listpip-auditpipdeptreenpm list --allnpm auditcargo treecargo audit| License | Commercial OK | Copyleft | Risk Level |
|---|---|---|---|
| MIT, BSD, ISC, Apache 2.0 | Yes | No | Low |
| LGPL | With care | Weak | Medium |
| GPL-2.0, GPL-3.0 | No (unless GPL project) | Strong | High |
| AGPL | No (unless AGPL project) | Strong + network | Critical |
| Unknown | Cannot determine | Unknown | Critical |
| Indicator | Healthy | Warning | Abandoned |
|---|---|---|---|
| Last release | < 6 months | 6-18 months | > 18 months |
| Commits (90 days) | 10+ | 1-9 | 0 |
| Open issues response | < 2 weeks | 2-8 weeks | > 8 weeks or no response |
| Bus factor | 3+ maintainers | 2 | 1 |
| CI status | Passing | Flaky | Failing or absent |
pip-auditnpm audit| CVSS Score | Severity | Action |
|---|---|---|
| 9.0-10.0 | Critical | Upgrade immediately |
| 7.0-8.9 | High | Upgrade within days |
| 4.0-6.9 | Medium | Upgrade within weeks |
| 0.1-3.9 | Low | Upgrade at convenience |
## Dependency Audit: {Project Name}
### Summary
| Metric | Count |
|--------|-------|
| Direct dependencies | {N} |
| Transitive dependencies | {N} |
| License issues | {N} |
| Maintenance concerns | {N} |
| Security vulnerabilities | {N} |
| Bloat candidates | {N} |
### License Compliance
| Package | Version | License | Compatible | Issue |
|---------|---------|---------|------------|-------|
| {pkg} | {ver} | MIT | Yes | None |
| {pkg} | {ver} | GPL-3.0 | No | Copyleft in proprietary project |
| {pkg} | {ver} | Unknown | Unknown | License not identifiable |
### Maintenance Health
| Package | Last Release | Commits (90d) | Maintainers | Status |
|---------|-------------|---------------|-------------|--------|
| {pkg} | {date} | {N} | {N} | {Healthy/Warning/Abandoned} |
### Security Vulnerabilities
| Package | Version | CVE | Severity | Fix Available | Fixed In |
|---------|---------|-----|----------|---------------|----------|
| {pkg} | {ver} | {CVE-ID} | {severity} | {Yes/No} | {version} |
### Bloat Analysis
| Package | Install Size | Used By | Recommendation |
|---------|-------------|---------|----------------|
| {pkg} | {size} | {usage description} | {Remove/Replace/Keep} |
### Action Items
#### Immediate (Security)
1. Upgrade {pkg} to {version} — fixes {CVE-ID} ({severity})
#### Short-term (License)
1. Review {pkg} GPL usage — may require license change or removal
#### Medium-term (Maintenance)
1. Find alternative to {pkg} — abandoned since {date}
#### Long-term (Bloat)
1. Remove {pkg} — unused in codebase
2. Replace {pkg} with lighter alternative
### Transitive Risk
- {direct-dep} depends on {transitive-dep} which has {issue}| Problem | Resolution |
|---|---|
| No lock file available | Audit based on declared dependencies. Note that transitive analysis is incomplete without a lock file. |
| License metadata missing | Check the package's repository for LICENSE file. Note packages where license cannot be determined. |
| Package registry unavailable | Work from cached metadata and local lockfile data. |
| Too many dependencies to audit manually | Prioritize: production deps first, then direct deps, then transitive deps with known issues. |