Borrowing it
Nothing to install: this file belongs to jswest/bartleby. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jswest/bartleby/main/.agents/skills/ship/SKILL.mdgit clone --depth 1 https://github.com/jswest/bartlebyWrote 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/jswest/bartleby/ship)<a href="https://agentmods.dev/skills/jswest/bartleby/ship"><img src="https://agentmods.dev/badge/skills/jswest/bartleby/ship/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/jswest/bartleby/ship"><img src="https://agentmods.dev/badge/skills/jswest/bartleby/ship.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Tool Misuse · line 60 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
- high Tool Misuse · line 331 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00122 | $0.07129 |
| Opus 5.5 | $0.00049 | $0.02852 |
| Sonnet 5.5 | $0.00024 | $0.01426 |
| Haiku 4.5 | $0.00012 | $0.00713 |
Grade A, and why
ship 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 2mo 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 — 480 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ship — land issue-branches onto a target, tested and reviewed
One idea underneath everything: take one or more issue-branches, land them
onto a target branch (opening the issue→target PR for each), and — if the
target isn't main and it's finished — promote it with a target→main PR.
A single issue onto main is the simple case: a set of one, no promotion. An
omnibus is the general case: a parent issue whose native GitHub sub-issues
are the set, assembled on an omnibus branch, then promoted.
The cast
| Role | Owns | Where | Tier |
|---|---|---|---|
| director | plan, dispatch, triage, assemble, promote | the session (you) — but omnibus work runs in its own director worktree, never the shared checkout | strong |
| players | implement one issue — code, test, self-tidy, commit, PR | subagents, in parallel, each its own sibling worktree | cheap |
| critics | review the work — one fused leaf critic (both briefs) for a leaf; a correctness critic and a cross-cutting simplicity critic for an assembled omnibus | subagents the director spools | strong |
The director runs the show — plan, dispatch, triage, assemble, promote — and never grinds: the implementation churn (big reads, test loops, edits) lives in players' throwaway contexts, so the session stays lean. Players and critics are subagents the director launches.
Worktree isolation covers the director too — not just players. Each player gets its own sibling worktree (§The players), but so does the director on the omnibus path: the merge-train checks out the omnibus branch and merges sub-PRs into it, and doing that in the shared main checkout means two concurrent omnibus directors fight over one HEAD — the working tree's branch appears to move "on its own." So the omnibus director runs in its own director worktree (§3.1) and never touches the main checkout. A leaf director stays in the main checkout: its operations are brief (no long-lived branch checkout) — but it must hold the main checkout's branch steady, never switching it out from under a concurrent run.
What ships with it
1 file 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.
- 2mo ago First seen · 480 lines · 122 tokens per session scan A 80e877f8eebe
ship is a skill published in the GitHub repository jswest/bartleby (12 stars, last pushed 1mo ago), licensed MIT. It adds 122 tokens to every session and 7,129 once invoked, about $0.0005 per session on Opus 5.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-30.
ship compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| shipjswest/bartleby | Skill | 12 | 1mo ago | MIT | A | 122 | Claude Code |
| release-announcementpaperclipai/paperclip | Skill | 111k | yesterday | MIT | A | 42 | Claude Code, Codex |
| releasethedotmack/claude-mem | Skill | 114k | yesterday | Apache-2.0 | A | 13 | Claude Code |
| release-notesphuryn/pm-skills | Skill | 28k | 8d ago | MIT | A | 57 | Claude Code |
| multi-agent-release-managerchromium/chromium | Skill | 25k | yesterday | BSD-3-Clause | A | 27 | Claude Code, Codex |
| pack-submitaeonfun/aeon | Skill | 788 | yesterday | MIT | A | 27 | Claude Code, Codex |
| updater_guidesiddsachar/row-bot | Skill | 1.7k | yesterday | Apache-2.0 | A | 22 | Claude Code, Codex |