hermes

Vet a dependency before adding it

Checks a third-party package for supply-chain risk, maintenance health, license fit and real need before it is added or upgraded. Use when a PR adds a new dependency or bumps one.

context

Every dependency runs with the project's privileges and brings its own dependencies along. Typosquats, hijacked maintainer accounts, malicious install scripts and abandoned packages with open vulnerabilities are common ways into a codebase. A short check before adding a package is far cheaper than removing it after an incident.

task

Vet . Only if [PURPOSE] is given: The project needs it for: Only if [LICENSE_POLICY] is given: License policy:

  1. Identity: confirm the exact name against the registry and the source repository it links to. Flag names one edit away from a popular package, a registry entry with no source link, or a source repo that does not match the published package.
  2. Install-time behaviour: check for install, preinstall or postinstall scripts, native builds, binary downloads, and any network or file system access at import time.
  3. Maintenance: latest release date, release cadence, number of active maintainers, recent ownership or maintainer changes, open security advisories, and whether known vulnerabilities are fixed in the requested version.
  4. Footprint: number of transitive dependencies it adds and anything risky among them. In a repo, compare against the lockfile to see what is new.
  5. License: the package's license and any transitive license that conflicts with the policy.
  6. Need: whether the project already has a dependency or standard library feature that does the job, and how much code the package saves.

Use your tools to look things up. For every fact, say where it came from (registry page, advisory database, repository). If you cannot reach a source, write "not checked" for that item instead of guessing.

constraints
  • Never state download counts, dates, versions, advisories or maintainer facts from memory. Only report what you looked up in this session, with its source.
  • Do not install, import or run the package to test it.
  • Judge the specific version requested, not the package in general.
  • A verdict of reject needs at least one concrete reason from the evidence.
  • Separate what you verified from what you inferred. Mark inferences as such.
  • When you do not know, say "I don't know" once and state what would settle it.
output format

Verdict

One line: adopt, adopt-with-conditions (state them, for example "pin to 2.3.1"), or reject, plus the main reason.

Evidence

| Check | Finding | Source | One row each for identity, install scripts, maintenance, advisories, footprint, license and need. Use "not checked" where you could not verify.

Risks

Bullets, most serious first. "None found" if empty.

Alternatives

Up to three: a standard library feature, an existing dependency, or a better-maintained package, each with one line on the trade-off. "None needed" if the package is a good fit.

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
Software engineer, Security engineer, Tech lead / staff engineer
needs
repo-read, web
risk
network
version
v1.0.0 · experimental
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install vet-dependency --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill vet-dependency -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

pairs well with

All of Security
PersonaSecurity

Security 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-auditor
PromptSecurity

Review 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-security
PromptSecurity

Respond 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-secret
PromptSecurity

Review 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-security
PromptSecurity

Review 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-policy
PromptSecurity

Threat 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