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 davidtheproduct/claude-ship-skills --skill ship-prgit clone --depth 1 https://github.com/davidtheproduct/claude-ship-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/davidtheproduct/claude-ship-skills/ship-pr)<a href="https://agentmods.dev/skills/davidtheproduct/claude-ship-skills/ship-pr"><img src="https://agentmods.dev/badge/skills/davidtheproduct/claude-ship-skills/ship-pr/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/davidtheproduct/claude-ship-skills/ship-pr"><img src="https://agentmods.dev/badge/skills/davidtheproduct/claude-ship-skills/ship-pr.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.00135 | $0.01815 |
| Opus 5 | $0.00068 | $0.00907 |
| Sonnet 5 | $0.00027 | $0.00363 |
| Haiku 4.5 | $0.00014 | $0.00181 |
Grade A, and why
ship-pr 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 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.
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 — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ship PR
A repo-agnostic worktree -> branch -> PR -> squash-merge -> cleanup workflow. Works in any git repo with an origin remote and gh configured; the scripts detect the package manager and default branch rather than assuming pnpm/Turborepo/main.
This is the atomic unit of the ship stack: parallel-ship and epic-ship both call this skill internally (per fanned-out agent and per phase respectively). Invoke it directly for anything that is one PR-sized change.
Naming note: if a repo you work in defines its own project-level
ship-prskill (tuned to that repo's quirks), rename this personal-level copy (e.g.ship-pr-global) - in Claude Code's skill resolution, a personal-level skill overrides a project-level one of the same name, so an identical name would silently shadow the tuned version.
Step 1: Pick the branch type
| Change scope | Prefix |
|---|---|
Docs only (markdown, docs/**) |
docs/ |
| New behavior | feat/ |
| Bug correction (behavior existed, broke) | fix/ |
| Tooling/refactor, no behavior change | chore/ |
| Production is broken right now | hotfix/ |
If unsure between feat/ and fix/: did this behavior exist and work correctly before? Correcting it is fix/. Adding something new is feat/.
Step 2: Worktree -> implement -> verify -> ship -> merge -> cleanup
- Worktree:
bash ${CLAUDE_SKILL_DIR}/scripts/worktree-new.sh <prefix>/<slug>. Run from anywhere inside the target repo. It fetches the remote default branch (detected locally viarefs/remotes/origin/HEAD, falling back to agit remote show originnetwork call only if that's unset, then tomain), creates.worktrees/<slug>/at the repo root (added to.gitignoreautomatically if missing), installs dependencies with whatever package manager the repo's lockfile indicates, and copies untracked.env*files from the repo root if present. - Implement: do the actual work. Implement directly rather than just writing a plan, unless the user asked for a plan. For large files (200+ lines), make incremental targeted edits rather than rewriting the whole file in one shot.
- Verify - do not skip, do not just document it: check
package.json(or the repo's equivalent -Makefile,Cargo.toml, etc.) for what's actually available and run it:- A build script (
build,compile) if present. - A typecheck script (
typecheck,tsc, ortsc --noEmitdirectly) if the repo is TypeScript. - The test suite (
test). - Lint (
lint) if configured. - UI/visual change: run the app, take a screenshot, and actually look at it (use a screenshot-verification skill if you have one).
- Deps added/updated: install with
--frozen-lockfile/ci(not a plain install) to catch a drifted lockfile the way CI would. - Markdown touched: the skill-scoped hook on this skill greps added lines in every touched
.mdfile for em-dashes beforegit push/gh pr createand blocks if it finds any. Note this checks the diff, not the whole file - if this repo's CI whole-file-scans touched markdown (verify by checking the CI config), pre-existing em-dashes you didn't write can still fail CI even though this hook passed. - If the repo has branch protection requiring CI to pass, wait for it. If it doesn't (check repo settings or just try merging), CI is a second-opinion signal - don't sit and wait on a slow/queued run when the manual checks above already cover it.
- A build script (
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 11d ago First seen · 74 lines · 135 tokens per session scan A a404ee063d25
ship-pr is a skill published in the GitHub repository davidtheproduct/claude-ship-skills (2 stars, last pushed 1mo ago), licensed MIT. It adds 135 tokens to every session and 1,815 once invoked, about $0.0007 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.
Other skills, from other repositories
release-skills
A release workflow for preparing and publishing a new version of a software project. A release is a named version that may include updated version files, release notes, tags, or a GitHub Release.
version-release
Choose and apply the correct semantic version bump for this repository. Use for every user-visible release, before merge when a change set should ship as patch, minor, or major, and whenever package/plugin/desktop version metadata must stay synchronized.
changelog-gen
A changelog generator that turns Git history into a version-by-version record of project changes. A changelog is a readable summary of new features, fixes, breaking changes, documentation, and other updates.
publish
Publish oh-my-opencode to npm by triggering the GitHub Actions publish workflow and verifying its artifacts. Ship-only: never runs pre-publish-review or re-reviews merged code unless the user explicitly asks. Argument: . Triggers: publish, release, deploy, npm publish.
pre-publish-review
Nuclear-grade 12-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (orchestrator manual QA plus one gate reviewer) for holistic review, and 1 oracle for overall release…
release
CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create the GitHub release. Use when shipping a new plugin version. NOT distributed.