npm-publish

npm-publish is a skill for Claude Code from rtorcato/repo-tooling. It costs 129 tokens per session (1,080 once invoked), scanned A, original, MIT.

A release guide for JavaScript packages in repositories that use shared repo tooling. It explains how automated release systems create versions, tags, changelogs, GitHub releases, and npm publications after a merge.

In plain words
What is it for?
Use it when publishing an npm package, increasing its version, tagging a release, or checking how releases work in the repository.
Why use it?
It prevents manual release commands from conflicting with the repository's automation and producing incorrect versions or duplicate releases.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the repo-tooling plugin — 7 skills shipped together

Good fit Use it when publishing an npm package, increasing its version, tagging a release, or checking how releases work in the repository.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/rtorcato/repo-tooling/npm-publish
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.

Any agent
npx skills add rtorcato/repo-tooling --skill npm-publish
Clone the repo
git clone --depth 1 https://github.com/rtorcato/repo-tooling

Made for: Claude Code.

Or install repo-tooling, the plugin that ships this one along with the rest of its 7 skills.

Wrote 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.

agentmods badge for npm-publish

README.md
[![agentmods](https://agentmods.dev/badge/skills/rtorcato/repo-tooling/npm-publish/github.svg)](https://agentmods.dev/skills/rtorcato/repo-tooling/npm-publish)
Your own site
<a href="https://agentmods.dev/skills/rtorcato/repo-tooling/npm-publish"><img src="https://agentmods.dev/badge/skills/rtorcato/repo-tooling/npm-publish/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.

agentmods 80×15 button for npm-publish

Your own site · 80×15
<a href="https://agentmods.dev/skills/rtorcato/repo-tooling/npm-publish"><img src="https://agentmods.dev/badge/skills/rtorcato/repo-tooling/npm-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 129 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,080 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00129 $0.01080
Opus 5 $0.00064 $0.00540
Sonnet 5 $0.00026 $0.00216
Haiku 4.5 $0.00013 $0.00108

Measured 10d ago against content hash 4199e90a6589, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

npm-publish 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 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.

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.

skills/npm-publish/SKILL.md · 96 lines

How it starts

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

npm-publish

A repo set up by @rtorcato/repo-tooling releases through automation on merge to main — one of semantic-release, Changesets, or Release Please. Versioning, the git tag, the GitHub release, the CHANGELOG, and the npm publish all come from that pipeline. There is no manual release step under any of them.

The rule

Never run any of these — they fight the automation and corrupt the version line:

  • npm publish / pnpm publish
  • npm version (or editing "version" in package.json)
  • git tag / pushing tags
  • hand-editing CHANGELOG.md
  • merging the "Version Packages" PR (Changesets) or the release PR (Release Please) — that merge is the publish, so it is the human's release decision, not yours

This holds for all three tools. Only the "what to do instead" differs, so first work out which tool the repo uses.

Which release tool is this repo on?

Check the repo root, in this order — these are the same signals the CLI's doctor check uses (usesChangesets / checkSemanticRelease in src/languages/js/checks.ts):

Signal Tool
.changeset/config.json exists Changesets
release-please-config.json exists Release Please
.releaserc* / release.config.* exists, or a "release" key in package.json semantic-release

Or just ask the tooling: npx @rtorcato/repo-tooling doctor --json reports the semantic-release check as ok with a detail naming the tool actually in use.

If more than one is configured that's drift, not a choice — stop and flag it.

What to do instead, per tool

semantic-release

The bump is derived from the commit history, so the commit type is the release decision:

  • fix: → patch
  • feat: → minor
  • feat!: / BREAKING CHANGE: → major
  • chore: / docs: / refactor: / test:no release

To ship a change: give it the right commit type and merge to main.

Changesets

The bump is declared in a changeset file, not inferred from commits. A PR with no changeset publishes nothing, silently — so this is a required step, not an optional one:

Read the full file on GitHub · 96 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. 10d ago First seen · 96 lines · 129 tokens per session scan A 4199e90a6589

Subscribe to this mod's changes

npm-publish is a skill published in the GitHub repository rtorcato/repo-tooling (2 stars, last pushed 9d ago), licensed MIT. It adds 129 tokens to every session and 1,080 once invoked, about $0.0006 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-31.