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 mikestankavich/claude-ship-workflow --skill cleanupgit clone --depth 1 https://github.com/mikestankavich/claude-ship-workflowWrote 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/mikestankavich/claude-ship-workflow/cleanup)<a href="https://agentmods.dev/skills/mikestankavich/claude-ship-workflow/cleanup"><img src="https://agentmods.dev/badge/skills/mikestankavich/claude-ship-workflow/cleanup/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/mikestankavich/claude-ship-workflow/cleanup"><img src="https://agentmods.dev/badge/skills/mikestankavich/claude-ship-workflow/cleanup.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.00000 | $0.05512 |
| Opus 5 | $0.00000 | $0.02756 |
| Sonnet 5 | $0.00000 | $0.01102 |
| Haiku 4.5 | $0.00000 | $0.00551 |
Grade A, and why
cleanup 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 yesterday.
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 — 392 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Clean up after a merged pull request
Announce at start: "Using csw:cleanup to close out ."
Once the merge is confirmed, branch and worktree cleanup happens without asking. Closing a ticket always asks. Those two rules are not symmetric and the asymmetry is deliberate. Confirming the merge is itself the one precondition cleanup checks before it removes anything — that check is not optional, even though most of the time it passes instantly.
Step 1: Confirm the merge, then note where you are
Before anything is removed, establish that the PR for this branch is actually merged:
gh pr view --json state,mergedAt
If this run was chained straight from csw:merge, the merge is already confirmed there — say so, and this check simply passes; the chained path stays frictionless.
The only thing that authorises deletion is gh pr view reporting state: MERGED. Anything
else is a stop-and-ask: a non-merged state, no PR for this branch, or
the command failing for any reason — no auth, no configured remote, a network error, or
anything else. Command failure is not "no signal, treat it as merged" — it is exactly the same
stop as an explicit non-merged state. No substitute may be used to establish the merge
instead: not git log --merges, not git branch --merged, not reading the PR page. Only
gh pr view reporting state: MERGED counts.
If the check does not clear, stop. Name the branch and what you found — including the raw
error if the command itself failed — and ask whether to clean up anyway. This is the one case
where branch and worktree cleanup asks: git branch -d refuses an unmerged branch on its own,
but nothing stops git worktree remove from deleting the checkout that holds someone's
unlanded work, and the worktree carries no such protection of its own.
Once the merge is confirmed:
git rev-parse --show-toplevel # this worktree's path
git branch --show-current # the branch about to be deleted
csw-config get baseBranch
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.
- yesterday Changed · +82 lines 036ae6c4a28c
- 9d ago First seen · 310 lines · 0 tokens per session scan A 3f7806dc6c17
cleanup is a skill published in the GitHub repository mikestankavich/claude-ship-workflow (3 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 5,512 tokens. 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
sync-claude-md
Sync project CLAUDE.md with codebase evolution, using git history since the file last changed to motivate every proposed update.
linear-flow
Migrate a repo to the dev-trunk/main-release fast-forward model (no merge commits) and load its doctrine. One-shot setup; day-to-day rules live in each repo's CLAUDE.md afterwards.
pr-review
Comprehensive code review for pull requests using parallel multi-agent analysis. Audits CLAUDE.md compliance, checks for bugs, analyzes git history, reviews comments, and filters by confidence score. Use when reviewing a GitHub PR, mentions "code review", "review this PR", or "/code-review".
repos
The governed-repo fleet verbs (/foundry:repos ) over the repos{} registry — clone the not-cloned, fetch the matching, report the rest; never confused with /foundry:fleet, the SESSION ROSTER (one row per active Claude Code session, no repository governed at all). Trigger to bring a fresh clone of the workspace up to…
await-merge
Wait for a PR's checks, merge it with linear history, update the local base branch.
commit-close
Commit the current work with a message that closes a GitHub issue.