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.
npx skills add tmj-90/gaffer --skill dependency-upgradegit clone --depth 1 https://github.com/tmj-90/gafferWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tmj-90/gaffer/dependency-upgrade)<a href="https://agentmods.dev/skills/tmj-90/gaffer/dependency-upgrade"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/dependency-upgrade/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tmj-90/gaffer/dependency-upgrade"><img src="https://agentmods.dev/badge/skills/tmj-90/gaffer/dependency-upgrade.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00089 | $0.01525 |
| Opus 5.5 | $0.00036 | $0.00610 |
| Sonnet 5.5 | $0.00018 | $0.00305 |
| Haiku 4.5 | $0.00009 | $0.00153 |
Grade A, and why
dependency-upgrade 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 16d 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.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Upgrade a dependency safely
A dependency change imports someone else's decisions into your build. Treat it like a code change from a stranger: read what changed, run everything that could be affected, keep the lockfile honest, and never "bump and hope".
Gaffer constraints — read first.
- Your delivery prompt forbids installing, updating or removing dependencies in any
ecosystem; that needs human approval. The safety hook enforces it for
npm|pnpm|yarn install|i|add|ci|update|up|upgrade|remove|rm|uninstallandpip install. Do not look for a command that dodges the hook (bareyarn,bun install,uv sync,poetry add,bundle install,go get,cargo updateare equally off-limits), and never hand-edit a lockfile to fake one. - In a delivery worktree
node_modulesis a symlink to the main checkout's install. Never runnpm ci,pnpm install,updateorprunethere: it rewrites or empties the shared install and breaks every other worktree. - Consequence: your tests run against the version that is ALREADY installed, not the
one in your edited manifest. Check which version actually ran
(
node -p "require('<pkg>/package.json').version",pip show <pkg>,go list -m <mod>) before claiming the new version is tested.
Steps
- Pin down the reason. A security advisory (which CVE/GHSA, which versions are
fixed), a feature you need, or hygiene. The reason sets the minimum target and does not
license unrelated bumps. For an advisory, prefer the smallest version that fixes it.
Call
search_lorefor pinned versions and known incompatibilities in this repo. - Classify the jump with semver. Patch and minor promise compatibility; major does
not; any bump inside
0.y.zmay break. Treat a transitive major change, a raisedengines/runtime floor, or a changed peer-dependency range as a major. - Read the upstream changelog, release notes and migration guide between the
current and target versions. List every breaking change, deprecation and behaviour
change, then
grepthe repo for the imports and APIs each one names. An empty grep is evidence too; record it. A major bump with no notes read is a guess. - For a NEW package, vet it before adding it: exact name (typosquats differ by one
character), maintainer and release activity, licence against the repo's policy,
whether it runs install scripts, and whether the standard library or an existing
dependency already covers the need (the
minimalismskill). New dependencies need a human decision in this factory:request_decisionwith the justification. - Do not run the package manager yourself. The manifest and lockfile must be
produced by the owning tool (e.g.
pnpm up <pkg>@<ver> --ignore-scripts,go get <mod>@<ver>,cargo update -p <crate> --precise <ver>), and that is a human's step here. Unless the target version is already installed and locked on the branch, stop (see "Stop and escalate") with the exact command a human should run. Scope stays at one package plus the transitive changes it forces; a lockfile diff of thousands of lines hides the one that matters. - Adapt the code minimally to the breaking changes you listed. If the upgrade
forces a refactor larger than the ticket implies, stop and
request_decisionwith the size and the option of an interim minor/patch bump. - Verify at the edges. With the target version actually installed, run build,
typecheck, lint, the full test suite and any integration or browser suite the repo
has — dependency changes break at the boundaries. Then run the ecosystem audit
(
pnpm audit,npm audit,pip-audit,cargo audit,govulncheck) and confirm the advisory is gone and no new high-severity finding appeared. - Evidence via the
record-evidenceskill: the version pair, the changelog items you handled (and the empty greps), the verification output with the installed version shown, the audit result, and any transitive major change. On a resume that call is refused: do not retry; put this, the AC → test map and the smallest-change note in your final message.
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.
- 16d ago Changed · +38 lines af76f3162893
- 19d ago First seen · 63 lines · 89 tokens per session scan A 3a1510e71ebf
dependency-upgrade is a skill published in the GitHub repository tmj-90/gaffer (2 stars, last pushed 17d ago), licensed Apache-2.0. It adds 89 tokens to every session and 1,525 once invoked, about $0.0004 per session on Opus 5.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-09-28.
Other skills, from other repositories
bulwark-brainstorm
Role-based brainstorming with dual modes: --scoped (sequential Task tool, 5 roles) and --exploratory (Agent Teams peer debate, 4 roles). Use for feasibility assessment and idea validation.
plan-creation
Create structured implementation plans via a 4-role scrum team (Product Owner, Architect, Eng/Delivery Lead, QA/Critic) with optional Agent Teams peer debate mode.
anthropic-validator
Validates Claude Code assets (skills, hooks, agents, commands, MCP servers, plugins) against official Anthropic standards. Fetches latest docs dynamically and produces structured validation reports.
create-subagent
Generates single-purpose Claude Code sub-agents for use via the Task tool. Use when creating dedicated sub-agents, scaffolding agent definitions, or generating agents with diagnostics and permissions setup.
test-audit
Audit test suites for T1-T4 violations using AST analysis, mock detection, and multi-stage synthesis. Invoke when user asks to audit tests, check test quality, find mock violations, review test effectiveness, or inspect test suites for over-mocking. Triggers automatic rewrites when quality gates fail.
code-review
Comprehensive code review with distinct aspect based sections. Use when reviewing code, checking for security issues, finding type safety problems, auditing code quality, or when user asks to review code, PRs or changes. Three-phase workflow runs static tools, LLM judgment, and writes diagnostic log.