Triage dependency vulnerabilities
Triages dependency scan findings by reachability and exploitability, gives the upgrade path, and justifies anything safe to defer. Use when a scanner reports more than the team can fix at once.
Scanners rank by CVSS base score, which ignores whether your code can reach the vulnerable function, whether the package ships to production at all, and whether anyone is exploiting it. Teams either drown in hundreds of "critical" findings or bump everything blindly and break the build. Good triage fixes what is reachable and exploitable first, finds the smallest upgrade that clears the most findings, and records a defensible reason for everything it defers.
Triage this scan: Only if [MANIFEST] is given: Manifest and usage notes:
- Deduplicate: group findings by package and installed version, since one vulnerable version often appears through several paths.
- For each group, establish: direct or transitive (and through which parent), runtime or development/build-only, the vulnerable function or condition as the advisory describes it, and whether the code plausibly reaches it with attacker-controlled input. If reachability depends on code you have not seen, say exactly what to check.
- Weigh exploitability: public exploit, listing in a known-exploited catalogue, or exploit prediction scores. You cannot query these databases live; use what the scan provides and tell the user which to look up.
- Assign a decision: fix now (reachable or known-exploited in runtime code, or a malicious or typosquatted package), fix this cycle, defer with justification, or not affected.
- Find the upgrade path: the minimal fixed version, whether it is within the current semver range (a lockfile refresh) or a major bump, and for transitive issues whether to bump the parent or use an override or resolution (with its risk). If no fix exists, give a mitigation or an alternative package.
- Order the upgrades to minimise churn: one change that clears several findings comes first.
- Do not invent advisory details, CVSS scores or fixed versions that are not in the scan. When the scan lacks them, name the advisory to look up.
- Every deferral needs a reason in VEX terms (for example "vulnerable code not in execute path", "component not present at runtime") plus a re-review date.
- A malicious-package finding is always "fix now": remove it and treat the environment as possibly compromised.
- Read the relevant code before making a claim about it. Do not guess what a file, function or config contains.
- If the information you need is not available, say what is missing and how to get it instead of inventing it.
Summary
Counts: fix now, fix this cycle, deferred, not affected.
Triage
A table: package, installed version, advisory, severity (scanner), runtime or dev, reachable (yes/no/unknown), decision, fixed version.
Upgrade plan
Numbered commands or manifest edits in order, each with the findings it clears and its breaking-change risk.
Deferred
Each deferral with its VEX justification and re-review date.
Verify
Re-run the scanner, run the tests, and check the specific behaviours that a major bump could change.
1 required value still a placeholder; the assistant will ask for it.
details
- kind
- Prompt: a task you run by name to get one finished thing back
- domain
- Software engineering
- category
- Security
- level
- Intermediate
- made for
- Security engineer, Software engineer, Open-source maintainer
- risk
- read-only
- version
- v1.0.0 · incubating
- reviewed
- 2026-10-02
- works in
- Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai
use in
npx @hermes-hq/hodios install audit-dependencies --target claude-codenpx skills add hermes-hq/hodios-dist --skill audit-dependencies -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-software-engineering@hodiosThe plugin brings every entry in this domain at once.
pairs well with
All of SecuritySecurity auditor
Reviews code for exploitable weaknesses and reports only issues with a concrete attack path. Use as a reviewer persona or subagent for security-sensitive changes.
security-auditorRespond to a leaked secret
Produces an ordered response plan for an exposed key, token or password - revoke and rotate, audit use, clean up copies, notify and prevent. Use right after a secret is committed, logged or shared.
respond-to-leaked-secretReview an API against the OWASP API Top 10
Reviews an API design or implementation against the OWASP API Security Top 10, from object-level authorization and mass assignment to rate limits and SSRF, with attack paths and fixes.
review-api-securityReview a cloud IAM policy
Reviews AWS, GCP or Azure IAM policies for over-broad permissions, privilege-escalation paths, wildcard resources and missing conditions, and proposes least-privilege versions.
review-cloud-iam-policyReview a pull request for security
Reviews a diff for exploitable vulnerabilities and reports only findings with a concrete attack path. Use before merging changes to input handling, auth, data access or dependencies.
review-pr-for-securityThreat model a feature
Builds a threat model for one feature or change, mapping data flows and trust boundaries to ranked threats and mitigations. Use during design, before the code is written or merged.
threat-model-feature