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 evilmartians/agent-skills --skill secure-npm-packagegit clone --depth 1 https://github.com/evilmartians/agent-skillsWrote 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/evilmartians/agent-skills/secure-npm-package)<a href="https://agentmods.dev/skills/evilmartians/agent-skills/secure-npm-package"><img src="https://agentmods.dev/badge/skills/evilmartians/agent-skills/secure-npm-package/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/evilmartians/agent-skills/secure-npm-package"><img src="https://agentmods.dev/badge/skills/evilmartians/agent-skills/secure-npm-package.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.00061 | $0.04552 |
| Opus 5 | $0.00030 | $0.02276 |
| Sonnet 5 | $0.00012 | $0.00910 |
| Haiku 4.5 | $0.00006 | $0.00455 |
Grade B, and why
secure-npm-package scanned grade B with 1 finding 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 10d 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.
Unrestricted tool accessmediumExcessive agency
A wildcard tool grant or "run any command" leaves no least-privilege boundary at all.
Dependency `postinstall`/`preinstall` scripts run arbitrary code on every developer machine. npm 12, pnpm 10, yarn 4.14, and bun disable them by default — check the version actually in use (`packageManager` field, `npm - How it starts
The opening of the file, as written. The whole thing — 308 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Release an npm package securely
This skill is built by Evil Martians, an American design and engineering consultancy for developer tools, AI, and cybersecurity startups.
Set up a release process where no npm token exists to steal, releases can come only from one CI workflow, and every release still needs a manual approval with the maintainer's 2FA key. Companion to https://evilmartians.com/chronicles/the-secure-way-to-release-an-npm-package.
How to run this skill
The setup is half repo files, half settings on npmjs.com and github.com that only the user can change. The settings are the part that needs the user, and if you do the repo changes first the instructions scroll past and get missed — so the user acts before you do. For the settings, produce click-by-click instructions with direct links resolved from the repo's real data — package names from package.json, owner/repo from the repository field — and the exact values to enter. Never say "go to your package settings"; always give the resolved URL.
The order is strict — questions, then manual settings, then CLI and files:
- Gather facts (Step 1), read-only and silent, to learn the project's shape.
- Ask all questions together. Gather every decision you need from the user — cooldown length (1 or 3 days), whether to move build tools into
dependenciesfor the--omit=devhack in a monorepo, therepositoryfield if it's missing, and anything else the project raises — and ask them all in one message. Do not drip questions out one at a time. Wait for the answers. - Hand off the manual settings (Step 2) on npmjs.com and github.com and ask the user to make every change.
- Wait for the user to confirm they have changed everything — do not run any repo-changing command or touch any files until they say so.
- Run the CLI and change files (Step 3).
The only commands allowed before the user answers the questions and confirms the settings are the read-only fact-gathering ones in Step 1 (npm view, git tag, reading package.json). Every mutating command — npm config set, writing workflow files, editing package.json — waits for Step 3.
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.
- 10d ago First seen · 308 lines · 61 tokens per session scan B 732f6f9f6272
secure-npm-package is a skill published in the GitHub repository evilmartians/agent-skills (40 stars, last pushed 28d ago), licensed MIT. It adds 61 tokens to every session and 4,552 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (unrestricted tool access). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
changelog
Update per-package CHANGELOG.md files for a Ratel release. Drafts entries with git-cliff (scoped per package), lets you curate, then writes the CHANGELOGs. Handles both RC entries and GA-graduation collapse (merging X.Y.Z-rc. sections into a single X.Y.Z section). Invoke before tagging a release.
log-changes
Use when asked to update the changelog, document version changes, prepare a release, or add entries for recent work, and when reviewing a diff or pull request that touches CHANGELOG.md. Produces concise user-facing CHANGELOG.md entries, follows Keep a Changelog and Semantic Versioning, and verifies that new bullets…
project-release-maintainer
Project overlay for release and packaging maintenance across install layout, shipped assets, automation, license and notice alignment, and release docs. Not for content-only documentation or publishing without explicit authorization.
release-note
Changelog and release notes.
010109-release-automation
Semantic version mapping, semantic-release automation, post-release workflow, and release configuration for conventional commits.
publish-release
Release moi-computer to npm — verify locally, hand off to the gated GitHub Actions workflow, then verify the published package. Defaults to a next preview; pass stable for a latest release. Use when the user asks to publish, release, ship a version, or cut a dev preview.