Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audits project dependencies for known vulnerabilities, outdated packages, and unused modules. Triggered when a user asks to check for vulnerabilities, audit dependencies, or run a security scan on installed packages. Produces a severity-sorted findings table with one-liner fix commands and cross-references Sonatype for recommended versions.
.claude/skills/0xjitsu-dep-audit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 21% | 0% |
Scan project dependencies for vulnerabilities, outdated packages, and unused modules.
bashnpm audit --json
Parse the JSON output and extract:
Use the Sonatype MCP tool getRecommendedComponentVersions for each vulnerable package to get:
Group by severity: critical > high > moderate > low.
Present as a markdown table sorted by severity:
| # | Severity | Package | Current | Fixed | CVSS | Vulnerability | Fix Command |
|---|----------|----------------|---------|----------|------|----------------------------|--------------------------------------|
| 1 | critical | lodash | 4.17.15 | 4.17.21 | 9.8 | Prototype Pollution (CVE-…)| `npm install lodash@4.17.21` |
| 2 | high | axios | 0.21.0 | 0.21.2 | 7.5 | SSRF via redirect (CVE-…) | `npm install axios@0.21.2` |
| 3 | moderate | minimatch | 3.0.4 | 3.0.5 | 5.3 | ReDoS (CVE-…) | `npm install minimatch@3.0.5` |
| 4 | low | debug | 2.6.8 | 2.6.9 | 3.1 | Regular Expression DoS | `npm install debug@2.6.9` |Include a summary line:
Found X vulnerabilities: Y critical, Z high, W moderate, V lowbashnpm audit fix
Report what was fixed and what remains.
bash# Only run after explicit user approval npm audit fix --force
Warn the user: "This may upgrade packages to new major versions with breaking changes. Review the changes before proceeding."
bashnpm outdated --json
Present as a table:
| Package | Current | Wanted | Latest | Type |
|------------|---------|--------|--------|------------|
| react | 18.2.0 | 18.3.1 | 19.1.0 | dependency |
| typescript | 5.3.3 | 5.4.5 | 5.8.2 | devDep |If depcheck is installed:
bashnpx depcheck --json
List unused dependencies and missing dependencies (imported but not in package.json).
If not installed, check manually by grepping for import/require statements against package.json entries.
npm audit fix --force without user confirmation — it can introduce breaking changespackage-lock.json or bun.lockb, ensure fixes maintain lock consistencyworkspaces exist in package.json, run audit at root and note which workspace is affected| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,408 | 4,778 | -67% | 1 | 1 | 0% | 1,486 | 1,139 | -23% | 0 | 0 | — |
case-02 | fail→fail | 11,977 | 17,164 | +43% | 1 | 1 | 0% | 1,532 | 2,964 | +93% | 0 | 0 | — |
case-03 | fail→fail | 12,282 | 14,377 | +17% | 1 | 1 | 0% | 1,058 | 1,162 | +10% | 0 | 0 | — |
case-04 | pass→pass | 13,155 | 12,606 | -4% | 1 | 1 | 0% | 2,683 | 3,440 | +28% | 0 | 0 | — |
case-05 | pass→pass | 14,133 | 11,307 | -20% | 1 | 1 | 0% | 2,831 | 3,129 | +11% | 0 | 0 | — |
case-06 | pass→pass | 11,403 | 8,266 | -28% | 1 | 1 | 0% | 1,770 | 2,420 | +37% | 0 | 0 | — |
case-07 | fail→pass | 12,104 | 6,302 | -48% | 1 | 1 | 0% | 2,220 | 2,095 | -6% | 0 | 0 | — |
case-08 | fail→fail | 7,401 | 1,682 | -77% | 1 | 1 | 0% | 1,309 | 1,178 | -10% | 0 | 0 | — |
case-09 | pass→fail | 14,098 | 3,252 | -77% | 1 | 1 | 0% | 1,550 | 1,494 | -4% | 0 | 0 | — |
case-10 | fail→pass | 9,352 | 2,742 | -71% | 1 | 1 | 0% | 1,424 | 1,404 | -1% | 0 | 0 | — |
case-11 | fail→fail | 7,468 | 2,564 | -66% | 1 | 1 | 0% | 1,327 | 1,307 | -2% | 0 | 0 | — |
case-12 | fail→pass | 11,204 | 9,569 | -15% | 1 | 1 | 0% | 1,799 | 2,480 | +38% | 0 | 0 | — |
case-13 | pass→pass | 9,360 | 4,969 | -47% | 1 | 1 | 0% | 1,555 | 1,743 | +12% | 0 | 0 | — |
case-14 | pass→pass | 6,394 | 14,570 | +128% | 1 | 1 | 0% | 1,332 | 1,523 | +14% | 0 | 0 | — |
case-15 | pass→pass | 10,025 | 2,821 | -72% | 1 | 1 | 0% | 1,691 | 1,382 | -18% | 0 | 0 | — |
case-16 | fail→pass | 5,692 | 3,186 | -44% | 1 | 1 | 0% | 933 | 1,444 | +55% | 0 | 0 | — |
case-17 | pass→pass | 18,254 | 9,634 | -47% | 1 | 1 | 0% | 2,770 | 2,670 | -4% | 0 | 0 | — |
case-18 | pass→pass | 11,366 | 4,602 | -60% | 1 | 1 | 0% | 1,821 | 1,728 | -5% | 0 | 0 | — |
case-19 | fail→pass | 15,370 | 13,362 | -13% | 1 | 1 | 0% | 2,750 | 3,322 | +21% | 0 | 0 | — |
case-20 | pass→pass | 11,158 | 9,604 | -14% | 1 | 1 | 0% | 2,049 | 2,614 | +28% | 0 | 0 | — |
case-21 | fail→fail | 13,236 | 5,144 | -61% | 1 | 1 | 0% | 2,108 | 1,766 | -16% | 0 | 0 | — |
case-22 | fail→pass | 9,767 | 2,184 | -78% | 1 | 1 | 0% | 2,060 | 1,302 | -37% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/3/2026 | +18% |
Other measured skills in the registry, with their headline benchmark lift.