bump-transitive

Surgically bump a vulnerable transitive dependency to its latest patch per major using pnpm.overrides, then clean up without leaving override traces in package.json.

Skill for Claude CodeCodex

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 skills/mendix/web-widgets/bump-transitive
Any agent
npx skills add mendix/web-widgets --skill bump-transitive
Clone the repo
git clone --depth 1 https://github.com/mendix/web-widgets

Made for: Claude Code, Codex.

Per session 37 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 855 The whole file, excluding the scripts and references it only reads on demand.
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.00037 $0.00855
Opus 5 $0.00018 $0.00428
Sonnet 5 $0.00007 $0.00171
Haiku 4.5 $0.00004 $0.00085

Measured today against content hash 9779a5b172a3, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

bump-transitive 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 today.

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/skills/bump-transitive/SKILL.md · 104 lines

How it starts

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

Fix Vulnerable Transitive Dependency

Use when a security advisory identifies a vulnerable transitive package (one not directly in any package.json) and you need to force it to a safe version across the monorepo without bumping unrelated packages.

The user will provide the package name and the fixed versions from the advisory.

Process

1. Discover all versions in use

Run pnpm why -r to see every resolved version and the full dependency chain explaining why each exists:

pnpm why -r <package>

Each top-level line (<package>@x.y.z) is a distinct version in the graph. The tree below it shows which packages pull it in — useful for understanding whether a version can be collapsed or must stay separate.

To extract just the version list:

pnpm why -r <package> | grep '^<package>@'

2. Find latest safe version per major

For each major currently in the lockfile, find the latest available version on npm:

npm view <package> versions --json | node -e "
const v = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
const majors = {};
v.forEach(ver => {
  const m = parseInt(ver.split('.')[0]);
  if (!majors[m]) majors[m] = [];
  majors[m].push(ver);
});
Object.entries(majors).forEach(([m, vers]) => {
  console.log('Major', m, '— latest:', vers[vers.length-1]);
});
"

Cross-reference with the advisory's "Fixed in" versions — use whichever is higher.

3. Add overrides to root package.json

In the pnpm.overrides section of the root package.json, add one entry per major using the @major selector syntax:

"pnpm": {
  "overrides": {
    "<package>@1": "1.x.y",
    "<package>@2": "2.x.y",
    "<package>@5": "5.x.y"
  }
}

Only add majors that are actually present in the lockfile.

4. First pnpm install — update the lockfile

pnpm install

This writes the pinned versions into pnpm-lock.yaml.

5. Remove the overrides from package.json

Delete the entries added in step 3. The lockfile now has the correct versions recorded and will enforce them on its own.

Read the full file on GitHub · 104 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. today First seen · 104 lines · 37 tokens per session scan A 9779a5b172a3

Subscribe to this mod's changes

bump-transitive is a skill published in the GitHub repository mendix/web-widgets (40 stars, last pushed yesterday), licensed Apache-2.0. It adds 37 tokens to every session and 855 once invoked, about $0.0002 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-09-01.