mcp-wallet-signer: Skill for Claude Code

.claude/skills/publish/SKILL.md

publish is a skill for Claude Code from nikicat/mcp-wallet-signer. It costs 27 tokens per session (2,507 once invoked), scanned C, original, MIT.

A release workflow for publishing packages from a monorepo, a repository that contains multiple related packages. It bumps the version, builds the selected package, publishes to its supported registries, and creates a GitHub release.

In plain words
What is it for?
Use it to release mcp-wallet-signer, browser-evm-signer, or browser-tron-signer with a patch, minor, or major version change.
Why use it?
It organizes the release steps and prevents internal-only packages from being published as consumer packages.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter.

This is nikicat/mcp-wallet-signer's own configuration. It tells Claude Code how to work on mcp-wallet-signer itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything mcp-wallet-signer configures →

Reuse

Borrowing it

Nothing to install: this file belongs to nikicat/mcp-wallet-signer. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/nikicat/mcp-wallet-signer/master/.claude/skills/publish/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/nikicat/mcp-wallet-signer

Made for: Claude Code.

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 publish

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

Your own site · 80×15
<a href="https://agentmods.dev/skills/nikicat/mcp-wallet-signer/publish"><img src="https://agentmods.dev/badge/skills/nikicat/mcp-wallet-signer/publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 27 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,507 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 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.00027 $0.02507
Opus 5 $0.00014 $0.01254
Sonnet 5 $0.00005 $0.00501
Haiku 4.5 $0.00003 $0.00251

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

Security

Grade C, and why

publish scanned grade C with 2 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 11d 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.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

curl -s "https://jsr.io/<jsr-name>/meta.json" | python3 -c "import sys, json; print(list(json.load(sys.stdin).get('versions', {}).keys()))"

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s "https://jsr.io/<jsr-name>/meta.json" | python3 -c "import sys, json; print(list(json.load(sys.stdin).get('versions', {}).keys()))"
.claude/skills/publish/SKILL.md · 158 lines

How it starts

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

Publish a package from this monorepo via GitHub release. The publish workflow always publishes to all supported registries for the package (see table below) — there is no way to select individual registries.

Arguments are optional and positional — any can be omitted:

  • package: mcp-wallet-signer, browser-evm-signer, or browser-tron-signer
  • bump: patch, minor, or major

Note: wallet-signer-core is an internal-only monorepo package — it's inlined into both chain packages by dnt, so no consumer would install it directly from npm. Don't publish it.

Inferring missing arguments

When arguments are omitted, infer them from context:

  1. Package: Run git diff HEAD~3 --stat -- packages/ to find which package(s) changed recently. If exactly one, use it. If ambiguous, ask the user.
  2. Bump: Recommend based on the diff (see step 2 below). Ask for confirmation.

Package details

Package Dir Version field in deno.jsonc npm name JSR name Supported registries
mcp-wallet-signer packages/mcp-wallet-signer npm.version mcp-wallet-signer npm
browser-evm-signer packages/browser-evm-signer top-level version browser-evm-signer @nikicat/browser-evm-signer npm, jsr
browser-tron-signer packages/browser-tron-signer top-level version browser-tron-signer @nikicat/browser-tron-signer npm, jsr

First publish of a new package

New npm packages need a one-time manual bootstrap before the GitHub-Actions OIDC flow works. For the very first publish of a new package:

  1. Build locally: cd packages/<dir> && deno task build:npm
  2. From the user's shell: cd packages/<dir>/npm && npm login && npm publish --provenance --access public (interactive — user runs)
  3. JSR (if applicable): cd packages/<dir> && deno publish --allow-dirty
  4. Tag the commit and push, but skip creating a GitHub release for this initial version — the publish workflow would otherwise fire on release: created and fail because the version is already on the registry.
  5. Authorize the GitHub workflow on each registry — do this immediately, even though the next release may be weeks away:
    • npm Trusted Publisher (https://www.npmjs.com/package/&lt;npm-name&gt;/access → "Trusted Publishers"): add provider GitHub Actions, owner nikicat, repo mcp-wallet-signer, workflow publish.yml, environment blank. Without this, the workflow's npm publish --provenance fails with ENEEDAUTHsecrets.NPM_TOKEN is unset in this repo on purpose; the workflow relies entirely on OIDC.
    • JSR linked repo (https://jsr.io/&lt;jsr-name&gt;/settings → "GitHub repository"): set to nikicat/mcp-wallet-signer. Without this, deno publish --allow-dirty fails with actorNotAuthorized. Authorization is per-package — granting it for one package does not carry over to a sibling under the same scope.
  6. The next version bump (≥ 0.x.y+1) goes through the normal workflow flow below.

Read the full file on GitHub · 158 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. 11d ago First seen · 158 lines · 27 tokens per session scan C 6cae12a6746d

Subscribe to this mod's changes

publish is a skill published in the GitHub repository nikicat/mcp-wallet-signer (3 stars, last pushed 1mo ago), licensed MIT. It adds 27 tokens to every session and 2,507 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.