deptrust AGENTS.md

Development instructions for deptrust, a Go command-line tool and local MCP server that checks software packages for known vulnerabilities. It covers supported package ecosystems, commands, project structure, and distribution.

In plain words
What is it for?
Working on deptrust code, adding support for another package ecosystem, running its tests, or preparing a release.
Why use it?
It gives contributors one place to understand how the project works and how to build, test, lint, and extend it.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/clidey/deptrust/agents-md
Clone the repo
git clone --depth 1 https://github.com/clidey/deptrust

Made for: Codex, OpenCode.

Per session 1,305 This file is loaded in full into every session.
When invoked 1,305 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01305 $0.01305
Opus 5 $0.00652 $0.00652
Sonnet 5 $0.00261 $0.00261
Haiku 4.5 $0.00130 $0.00130

Measured 2d ago against content hash eaab656ce1dc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

deptrust AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 43 lines

How it starts

The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.

What this is

deptrust is a Go CLI and stdio MCP server that checks package versions for known vulnerabilities across 13 ecosystems (npm, pypi, cargo, go, rubygems, nuget, maven, packagist, pub, cocoapods, hex, hackage, github-actions). It calls public registry and advisory APIs (OSV, GitHub Advisory DB) directly — there is no hosted backend. It also ships as an npm package (@clidey/deptrust) whose bin is a Node installer that downloads the Go binary and registers MCP/skill integrations.

Commands

go build -o deptrust ./cmd/deptrust   # build the binary
go test ./...                         # all tests — NOTE: integration_test.go hits live registries/network
go test ./internal/risk/...           # one package
go test ./internal/app/ -run TestName # one test
./lint.sh                             # golangci-lint with repo config (requires golangci-lint v2.12.2)
gofmt -l .                            # CI fails if this prints any file

CI (.github/workflows/ci.yml) runs gofmt -l, go test ./..., go build, and npm pack --dry-run. There is no -short gating — internal/registry/integration_test.go makes real network calls and runs as part of go test ./....

Architecture

The flow is CLI/MCP entrypoint → app.App orchestrator → registry resolver + vulnerability providers → risk scorer.

  • cmd/deptrust/main.go — CLI argument parsing only. Subcommands: check, suggest, compare, mcp, version. Maps errors to exit codes by string-matching the message (provider→2, not found→3, block→10).
  • internal/app/app.go — the orchestrator (App). CheckPackage resolves the version via the registry, fans out to all vulnerability providers in parallel (goroutines + channel), dedupes advisories by GHSA/CVE id, computes non-CVE signals (recent-release, mutable GitHub Actions tags), then calls risk.Score. SuggestSafeVersion and CompareVersions build on checkResolved. App holds an injectable now func() time.Time for deterministic signal tests.
  • internal/registry/ — one file per ecosystem (npm.go, pypi.go, …), all dispatched from registry.go's Resolve switch. Each returns a VersionInfo (resolved version, latest, full version list, publish timestamps). models.LatestVersion is the sentinel for "latest". Shared helpers in common.go/http.go/errors.go.
  • internal/osv/ and internal/github/ — vulnerability providers. Both implement the vulnerabilityClient interface (Name(), Query()) defined in app.go. Providers may also implement ecosystemAwareProvider (Supports(ecosystem)); unsupported ecosystems are reported as skipped_providers and drive advisory_coverage (full/partial/none/error). When no provider covers an ecosystem, the result is unknown — never treated as safe.
  • internal/risk/risk.go — pure scoring. Maps highest severity to a recommendation: critical/high→block, medium/unknown→review, low/none→allow. Recommendation constants live here and are referenced across packages.
  • internal/models/models.go — shared types, the Ecosystem enum, NormalizeEcosystem (string→enum), and OSVEcosystem (enum→OSV name).
  • internal/mcp/server.go — hand-rolled JSON-RPC stdio MCP server (no SDK). Exposes check_package, suggest_safe_version, compare_versions. compact.go produces a slimmed-down response (counts + highest severity, no advisory bodies) to keep agent context small; the full response is available via the full_response_command field. serverInstructions is the prompt sent to agents on initialize — keep it in sync with the README's MCP section.

Read the full file on GitHub · 43 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 43 lines · 1,305 tokens per session scan A eaab656ce1dc

Subscribe to this mod's changes

deptrust AGENTS.md is an instructions file published in the GitHub repository clidey/deptrust (61 stars, last pushed 13d ago), licensed MIT. It adds 1,305 tokens to every session, about $0.0065 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.