Marketplace dependency-audit-assistant
Reviews package dependencies for security vulnerabilities, outdated versions, and license compliance. Use when user asks about dependencies, security audits, or before releases.
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/crazydubya/dependency-audit-assistant" ~/.claude/skills/aiskillstore-marketplace-dependency-audit-assistant && rm -rf "$T"
skills/crazydubya/dependency-audit-assistant/SKILL.mdDependency Audit Assistant
This skill helps audit project dependencies for security vulnerabilities, outdated packages, and license compliance issues.
When to Use This Skill
- User requests a dependency audit or security check
- Before major releases or deployments
- User asks about outdated packages or vulnerabilities
- License compliance review needed
- User mentions "npm audit", "security", "dependencies", or "vulnerabilities"
Instructions
1. Detect Package Manager
Identify which package manager(s) the project uses:
JavaScript/Node.js:
- npm:
+package.jsonpackage-lock.json - Yarn:
+package.jsonyarn.lock - pnpm:
+package.jsonpnpm-lock.yaml
Python:
- pip:
orrequirements.txtsetup.py - Poetry:
+pyproject.tomlpoetry.lock - Pipenv:
+PipfilePipfile.lock
Ruby:
- Bundler:
+GemfileGemfile.lock
Java:
- Maven:
pom.xml - Gradle:
orbuild.gradlebuild.gradle.kts
Go:
- Go modules:
+go.modgo.sum
Rust:
- Cargo:
+Cargo.tomlCargo.lock
PHP:
- Composer:
+composer.jsoncomposer.lock
Use Glob to find these files.
2. Run Security Audit
Execute the appropriate audit command based on package manager:
npm:
npm audit --json or npm audit
Yarn: yarn audit --json or yarn audit
pnpm: pnpm audit --json
pip: pip-audit or safety check
Poetry: poetry check
Bundler: bundle audit check --update
Maven: mvn dependency:tree + OWASP Dependency Check
Go: go list -m all + govulncheck
Cargo: cargo audit
Composer: composer audit
Parse the output to identify:
- Number of vulnerabilities by severity (critical, high, moderate, low)
- Affected packages and versions
- Available fixes (updates or patches)
- CVE identifiers
3. Check for Outdated Packages
Identify packages that have newer versions available:
npm:
npm outdated --json
Yarn: yarn outdated --json
pip: pip list --outdated
Poetry: poetry show --outdated
Bundler: bundle outdated
Cargo: cargo outdated
Go: go list -u -m all
Categorize updates:
- Patch updates (1.0.0 → 1.0.1): Bug fixes, safe to update
- Minor updates (1.0.0 → 1.1.0): New features, usually safe
- Major updates (1.0.0 → 2.0.0): Breaking changes, needs testing
4. License Compliance Check
Review licenses of all dependencies:
Steps:
- Extract licenses from package metadata
- Identify license types (MIT, Apache-2.0, GPL, etc.)
- Flag potentially problematic licenses (GPL, AGPL in commercial projects)
- Check for unlicensed or unknown licenses
- Reference the license compatibility matrix in
reference/licenses.md
Tools:
- npm:
ornpx license-checker --jsonnpm-license-crawler - Python:
pip-licenses - Ruby:
license_finder - Go:
go-licenses
License categories:
- Permissive: MIT, Apache-2.0, BSD - Usually safe
- Weak copyleft: LGPL, MPL - Requires review
- Strong copyleft: GPL, AGPL - May restrict commercial use
- Unknown: Missing or custom licenses - Needs investigation
5. Analyze Dependency Tree
Understand the dependency structure:
Direct vs Transitive:
- Direct: Listed in package.json/requirements.txt
- Transitive: Dependencies of dependencies
Identify issues:
- Duplicate packages at different versions
- Deep dependency trees (potential for conflicts)
- Abandoned packages (no updates in >2 years)
- High-risk transitive dependencies
Commands:
- npm:
npm ls --all - Yarn:
yarn why <package> - pip:
pipdeptree - Maven:
mvn dependency:tree
6. Priority Vulnerabilities
Prioritize vulnerabilities based on:
Severity levels:
- Critical: Remote code execution, privilege escalation
- High: SQL injection, XSS, authentication bypass
- Moderate: DoS, information disclosure
- Low: Minor issues, edge cases
Exploitability:
- Known exploits in the wild
- PoC (Proof of Concept) available
- Requires special conditions
Exposure:
- Production dependencies vs dev dependencies
- Direct dependencies vs deep transitive dependencies
- Code paths actually used in the application
7. Generate Recommendations
For each issue found, provide:
Vulnerabilities:
Package: lodash@4.17.15 Severity: High CVE: CVE-2020-8203 Issue: Prototype pollution Recommendation: Upgrade to lodash@4.17.21 or higher Command: npm install lodash@4.17.21
Outdated packages:
Package: react@16.14.0 Current: 16.14.0 Latest: 18.2.0 Type: Major update Recommendation: Test thoroughly before upgrading (breaking changes) Notes: Review migration guide at https://react.dev/blog/2022/03/08/react-18-upgrade-guide
License issues:
Package: some-gpl-library@1.0.0 License: GPL-3.0 Issue: GPL license may conflict with proprietary code Recommendation: Find alternative with permissive license or consult legal Alternatives: [list of similar packages with MIT/Apache licenses]
8. Update Strategy
Suggest an update approach:
Safe updates (automated):
- Patch updates with no breaking changes
- Security fixes for vulnerabilities
- Update:
ornpm updatenpm audit fix
Careful updates (manual testing):
- Minor version bumps
- Major updates to well-maintained packages
- Update individually and test
Research needed:
- Major breaking changes
- Abandoned packages (find alternatives)
- License conflicts
9. Generate Summary Report
Provide a comprehensive audit summary:
Dependency Audit Report ======================= Overview: - Total dependencies: 150 (120 direct, 30 transitive) - Vulnerabilities: 5 (1 high, 3 moderate, 1 low) - Outdated packages: 23 - License issues: 2 Security Vulnerabilities: [List by severity with fix recommendations] Outdated Packages: [Categorized by update type: patch/minor/major] License Compliance: [List of licenses with any concerns] Recommended Actions: 1. [Immediate] Fix high-severity vulnerabilities 2. [Soon] Update packages with moderate vulnerabilities 3. [Review] Address license compliance issues 4. [Optional] Update outdated packages to latest Commands to run: npm audit fix # Fix vulnerabilities automatically npm update # Update to latest compatible versions
10. Continuous Monitoring
Suggest ongoing practices:
- Automated audits: Run in CI/CD pipeline
- Dependabot/Renovate: Auto-create PRs for updates
- Regular reviews: Monthly or quarterly audits
- Security alerts: Enable GitHub/GitLab security alerts
- Lock files: Commit lock files for reproducible builds
Best Practices
- Fix vulnerabilities promptly: Especially high/critical severity
- Test updates: Even patch updates can cause issues
- Read changelogs: Understand what changed before updating
- Use lock files: Ensure consistent installations across environments
- Minimize dependencies: Fewer deps = smaller attack surface
- Review new additions: Audit before adding new dependencies
- Stay current: Regular updates are easier than large jumps
- Document decisions: Why certain packages are pinned or not updated
Security Best Practices
- Never commit secrets in dependencies or env files
- Review dependency source code for popular/critical packages
- Use private registries for internal packages
- Enable 2FA on package registry accounts
- Use SRI (Subresource Integrity) for CDN resources
- Scan container images if using Docker
Supporting Files
: Extract and check license informationscripts/check-licenses.sh
: License compatibility matrixreference/licenses.md
: Common vulnerability patternsreference/common-vulnerabilities.md
Common Commands Reference
npm:
npm audit # Show vulnerabilities npm audit fix # Auto-fix vulnerabilities npm audit fix --force # Force major updates npm outdated # Check for outdated packages npm update # Update to latest compatible
Yarn:
yarn audit # Show vulnerabilities yarn upgrade-interactive # Interactive update yarn outdated # Check for outdated
pip:
pip-audit # Audit vulnerabilities pip list --outdated # Check outdated pip install --upgrade # Update package
Poetry:
poetry check # Check lock file poetry show --outdated # Show outdated poetry update # Update packages
Cargo:
cargo audit # Audit vulnerabilities cargo outdated # Check outdated cargo update # Update packages