Borrowing it
Nothing to install: this file belongs to thunder-id/thunderid. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/thunder-id/thunderid/main/.agent/skills/fix-npm-vulnerability/SKILL.mdgit clone --depth 1 https://github.com/thunder-id/thunderidWrote 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/thunder-id/thunderid/fix-npm-vulnerability)<a href="https://agentmods.dev/skills/thunder-id/thunderid/fix-npm-vulnerability"><img src="https://agentmods.dev/badge/skills/thunder-id/thunderid/fix-npm-vulnerability/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/thunder-id/thunderid/fix-npm-vulnerability"><img src="https://agentmods.dev/badge/skills/thunder-id/thunderid/fix-npm-vulnerability.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00055 | $0.02522 |
| Opus 5.5 | $0.00022 | $0.01009 |
| Sonnet 5.5 | $0.00011 | $0.00504 |
| Haiku 4.5 | $0.00006 | $0.00252 |
Grade A, and why
fix-npm-vulnerability 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 5d 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 — 276 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fix npm Vulnerability
You are resolving a security advisory in a pnpm monorepo.
Step 0 — Gather the advisory details
Ask the user for one or both of:
What vulnerability do you want to fix? Provide a CVE ID (e.g.
CVE-2026-44705), GHSA slug (e.g.GHSA-w7jw-789q-3m8p), or vulnerable package name. Optionally paste thepnpm auditoutput line for it.
Wait for the answer before proceeding.
Step 1 — Locate the workspace root
Find the directory containing pnpm-workspace.yaml, starting from the current directory and walking up:
dir=$(pwd); while [ "$dir" != "/" ]; do [ -f "$dir/pnpm-workspace.yaml" ] && echo "$dir" && break; dir=$(dirname "$dir"); done
If nothing is found, ask the user to navigate to the monorepo root first.
All subsequent commands run from this root.
Step 2 — Get the full audit picture
pnpm audit --json 2>/dev/null | jq '.advisories // .vulnerabilities // .' 2>/dev/null | head -400
Identify for each advisory matching the user's input:
vulnerablePackage— the transitive package that contains the flawpatchedVersions— the version range that fixes it (e.g.>=4.0.6)via— the dependency chain showing which head (direct workspace) dep pulls it inadvisoryId— CVE or GHSA identifierseverity— high / critical
Step 3 — Traverse the dependency chain
Use pnpm why to confirm the full chain from the workspace to the vulnerable package:
pnpm why <vulnerable-package> 2>&1 | head -60
This shows every head dep that transitively depends on it. Record:
- The head package(s) (direct workspace deps) pulling in the vulnerable version
- The current version of those head packages
Step 4 — Check if updating the head dep resolves the issue
For each head package, inspect what version of the vulnerable package its latest release ships:
# Latest available version of the head dep
npm info <head-package> version
# Its full dependency tree for the vulnerable package
npm info <head-package>@latest dependencies --json 2>/dev/null | jq '.<vulnerable-package> // "not direct"'
# If it's deeper, check peer dependencies too
npm info <head-package>@latest peerDependencies --json
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.
- 5d ago Changed · +27 lines f548d10cf43d
- 1mo ago First seen · 249 lines · 55 tokens per session scan A 67856943ebd6
fix-npm-vulnerability is a skill published in the GitHub repository thunder-id/thunderid (594 stars, last pushed yesterday), licensed Apache-2.0. It adds 55 tokens to every session and 2,522 once invoked, about $0.0002 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-03.
Other skills, from other repositories
coding-directives
Implement or review caddy-security Go code, Caddy modules, parsers, lifecycle, and HTTP delegation. Use for app/plugin boundaries, authcrunch integration, errors, logging, and code conventions.
jwt
Development guide for the jwt JSON Web Token library for Go (github.com/kataras/jwt). Use this skill when signing or verifying JWTs, choosing a signing algorithm (HMAC, RSA, RSA-PSS, ECDSA, EdDSA), reading or validating standard or custom claims, setting expiry and clock-skew tolerance, rotating keys with a kid-based…
oh-my-posh
Install, configure, or troubleshoot Oh My Posh/ohmyposh: shell init, themes, segments, Nerd Font icons, and prompt setup on PowerShell, zsh, bash, or fish.
conventional-commit
Rules for writing Conventional Commits messages in this project. MUST be invoked every time a commit is created.
migrate-goldmark-extension-v1-to-v2
Migrate goldmark extension from goldmark v1 to v2.
testing-and-ci
Choose and run unit, E2E, Caddyfile fixture, automation, and CI checks for caddy-security. Use for coverage requirements, test evidence, failures, and report workflows; official OP conformance remains opt-in.