deps-doctor
May 16, 2026 · View on GitHub
Each scenario shows: a synthetic audit input, the exact command, and the unified report deps-doctor produces.
Scenario 1 — npm + pip + cargo + go (the polyglot case)
Setup: You're working on a service that has package.json, pyproject.toml, Cargo.toml, AND go.mod. All four audit tools are installed.
Command:
python3 scripts/doctor.py --format md
Sample output:
## deps-doctor report
### npm — 1 high, 1 moderate
- **GHSA-wf5p-g6vw-rhxx** in `axios@<1.6.0` → fixed in `1.6.0` (high)
- **GHSA-jf85-cpcp-j695** in `lodash@<4.17.21` → fixed in `4.17.21` (moderate)
### pip — clean
### cargo — clean
### go — _skipped: govulncheck not installed_
Three signals in one report: real advisories (npm), clean ecosystems (pip, cargo), and missing tooling (go) — explicitly marked, never silently passed.
Scenario 2 — filter by severity
You only want to look at the high+ stuff before the standup:
python3 scripts/doctor.py --severity high
Suppresses anything below high in the report. The four levels are low | moderate | high | critical.
Scenario 3 — single ecosystem
Working in a monorepo and only care about Python today?
python3 scripts/doctor.py --ecosystem pip --format md
Skips the npm / cargo / go detection entirely.
Scenario 4 — missing tools are surfaced, not hidden
The most important guarantee of deps-doctor: it does NOT silently return clean when the audit binary is missing.
# In a repo with package.json but no npm installed:
python3 scripts/doctor.py --ecosystem npm --format md
## deps-doctor report
### npm — _skipped: tool not installed_
This is the safe failure mode. CI scripts can grep skipped: to fail or warn on missing tooling.
Sample input fixture
sample-npm-audit.json — a minimal npm audit --json payload showing the input shape deps-doctor parses. Useful for testing your own integrations.