Dependency audit
Skill The-AI-Directory-Company/agents-and-skills/skills/dependency-audit
70+ AI agent templates and 55+ skill definitions for Claude Code, Cursor, Windsurf, and other AI coding tools. Community-maintained, MIT licensed. Follows the Agent Skills specification.
npx -y skills add The-AI-Directory-Company/agents-and-skills --skill dependency-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Audit project dependencies for security vulnerabilities, license compliance, outdated versions, and supply-chain risks. Produces a prioritized triage report with update recommendations and risk mitigation steps.
SKILL.md
6.6 KB, as published. Nobody here has run it
Dependency Audit
Before you start
Gather the following from the user. If anything is missing, ask before proceeding:
- What is the project? — Repository path or URL
- What package manager? — npm, yarn, pnpm, pip, cargo, go modules, maven, etc.
- What environment? — Production app, internal tool, library published to a registry
- What is the license policy? — Allowed licenses (e.g., MIT, Apache-2.0) and banned licenses (e.g., GPL-3.0 for proprietary projects)
- What is the risk tolerance? — Zero critical vulns allowed, or acceptable thresholds per severity
- Is there a lockfile? — Presence and freshness of
package-lock.json,yarn.lock,Cargo.lock, etc.
Audit procedure
1. Inventory Dependencies
Generate a complete dependency list with versions:
- Direct dependencies: Listed in the manifest file (package.json, requirements.txt, Cargo.toml)
- Transitive dependencies: Resolved from the lockfile — these are the majority of your attack surface
- Dev-only dependencies: Separate from production deps — lower risk but still relevant for CI supply-chain attacks
Record total counts: direct, transitive, dev-only. Flag projects with more than 500 transitive dependencies as high-complexity.
2. Security Vulnerability Scan
Run the ecosystem's built-in audit tool:
- npm/yarn/pnpm:
npm audit,yarn audit,pnpm audit - pip:
pip-auditorsafety check - cargo:
cargo audit - go:
govulncheck ./...
For each vulnerability found, record: package name, installed version, severity (critical/high/medium/low), CVE ID, fixed version, and whether the vulnerable code path is reachable.
3. License Compliance Check
Extract the license for every dependency (direct and transitive):
- Use
license-checker(npm),pip-licenses(Python),cargo-license(Rust), or equivalent - Flag any dependency with: no declared license, a copyleft license in a proprietary project, a license not on the approved list
- Check for license conflicts — e.g., combining LGPL and Apache-2.0 has specific requirements
Produce a license summary table: license type, count of packages, compliance status.
4. Outdated Version Analysis
Check how far behind each dependency is from its latest version:
- Run
npm outdated,pip list --outdated,cargo outdated, or equivalent - Classify each outdated package: patch behind (low risk), minor behind (medium), major behind (high, likely breaking changes)
- Flag dependencies that are unmaintained: no release in 12+ months, archived repository, or no response to open security issues
5. Supply-Chain Risk Assessment
Evaluate supply-chain risks for direct dependencies:
- Maintainer count: Single-maintainer packages are higher risk for abandonment or account compromise
- Download/usage trends: Sudden drops may indicate a fork or deprecation
- Typosquatting: Verify package names match the intended library — check for similar-named malicious packages
- Install scripts: Flag packages with
preinstall/postinstallscripts that execute arbitrary code - Dependency depth: Flag packages that pull in 50+ transitive dependencies for a simple task
6. Prioritized Triage Report
Rank all findings by severity and actionability:
| Priority | Finding | Category | Action | Effort |
|---|---|---|---|---|
| P0 | lodash 4.17.15 — prototype pollution (CVE-2021-23337) | Security | Update to 4.17.21 | Low |
| P1 | colors 1.4.0 — maintainer sabotage incident | Supply-chain | Pin to 1.3.0 or replace | Medium |
| P2 | GPL-3.0 dep in proprietary project | License | Replace with MIT alternative | High |
| P3 | express 4.x — major version 5.x available | Outdated | Evaluate migration | High |
- P0: Critical/high security vulns with a fix available — update immediately
- P1: Supply-chain risks or license violations — address this sprint
- P2: High-severity outdated deps or medium vulns — schedule within the quarter
- P3: Minor version lag or low-severity findings — backlog
7. Remediation Steps
For each P0/P1 finding, provide specific remediation:
- Exact command to update (e.g.,
npm install [email protected]) - Whether the update requires code changes (breaking API differences)
- If no fix exists: workaround, alternative package, or version pinning strategy
- For license issues: list 2-3 alternative packages with compatible licenses
Quality checklist
Before delivering the audit report, verify:
- All direct and transitive dependencies are inventoried with version numbers
- Vulnerability scan ran against the lockfile, not just the manifest
- Every vulnerability includes CVE ID, severity, and fix version
- License compliance checked against the project's stated policy
- Outdated packages classified by how far behind they are
- Supply-chain risks assessed for at least all direct dependencies
- Findings are prioritized by severity and effort, not listed in discovery order
- P0/P1 items include specific remediation commands
Common mistakes
- Auditing the manifest without a lockfile. The manifest says
^4.0.0but the lockfile resolves to4.0.1which has a known vuln. Always audit the lockfile. - Ignoring transitive dependencies. Most vulnerabilities are in transitive deps you never explicitly chose. The audit must cover the full dependency tree.
- Treating all vulnerabilities equally. A critical RCE in a production dependency is not the same as a low-severity ReDoS in a dev-only test helper. Triage by reachability and environment.
- Skipping license checks. A GPL-3.0 transitive dependency in a proprietary SaaS can create legal exposure. License compliance is not optional.
- Updating everything at once. Batch updates hide which change broke something. Update P0 items individually, run tests after each, then batch lower-priority updates.
- Ignoring unmaintained packages. A dependency with no commits in two years will not get security patches. Plan a replacement before the vulnerability arrives.