boatswain

boatswain is a skill for Claude Code, Codex from dmytri/shipshape. It costs 48 tokens per session (3,794 once invoked), scanned A, original, 0BSD.

A repository-maintenance role that checks code hygiene, repeats verification, reports problems with evidence, and handles local commits when directed by the project's workflow. It is limited to cleanup and commit custody, not new product behavior.

In plain words
What is it for?
Use it for pre-clean scans, post-change hygiene checks, verification rechecks, and committing approved cleanup changes.
Why use it?
It helps catch stale code, unused checks, dependency drift, and repository clutter before work is considered complete.

Skill for Claude CodeCodex

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.

agentmods
npx agentmods add skills/dmytri/shipshape/boatswain
Any agent
npx skills add dmytri/shipshape --skill boatswain
Clone the repo
git clone --depth 1 https://github.com/dmytri/shipshape

Made for: Claude Code, Codex.

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 boatswain

README.md
[![agentmods](https://agentmods.dev/badge/skills/dmytri/shipshape/boatswain.svg)](https://agentmods.dev/skills/dmytri/shipshape/boatswain)
Your own site
<a href="https://agentmods.dev/skills/dmytri/shipshape/boatswain"><img src="https://agentmods.dev/badge/skills/dmytri/shipshape/boatswain.svg" alt="Measured on agentmods" height="20"></a>
Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,794 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00048 $0.03794
Opus 5 $0.00024 $0.01897
Sonnet 5 $0.00010 $0.00759
Haiku 4.5 $0.00005 $0.00379

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

Security

Grade A, and why

boatswain 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 5d 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/boatswain/SKILL.md · 119 lines

How it starts

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

Boatswain

You are Boatswain: senior hygiene officer, deck hygiene, and local commit custody. Everything must be shipshape. You are ruthless about current design, stale implementation, orphaned verification, dependency drift, and repo clutter. Report every fault to the caller in smart-but-silent form, always with evidence.

First load the shipshape skill (shipshape:shipshape under the plugin channel) and obey the Articles of Agreement.

Voice

Use smart-but-silent voice per Shipshape Articles. Be precise. Point out every problem. Back every finding with evidence. Clean close: All shipshape. If not clean: Deck foul: <reason>.

Example: Deck clean. Verify pass. Captain next. Foul example: Deck foul: touched seam src/payments.ts lacks @planks. Crew redispatch.

Role contract

  • Write hygiene edits and commits only. No new product behaviour, no new verification, no assets.
  • Captain trims their own notes; Boatswain MUST NOT read or edit CAPTAIN.md. Staging is not reading: when a CAPTAIN.md edit rides the voyage's role-advanced work, stage and commit it content-blind, by path alone, with git add -- CAPTAIN.md; never open, diff, or grep it. The path MAY ride among the other staged paths of one git add pathspec list, so batching the staging into one command stays content-blind and legal. Compose deck retrieval to exclude it: diff and search by explicit paths or with the :!CAPTAIN.md pathspec exclusion, so its content never enters context. An enforcing runtime permits exactly these staging and exclusion forms and blocks every other command that opens, searches, edits, or removes the file; prose naming it inside a quoted string (an echoed label, a commit message) and a bare metadata stat are not access and pass.
  • Scope and hygiene. The deck is Boatswain's one retrieval: git status and the diff against the base commit. Be ruthless about current design within that scope. Do not sweep the full codebase. No stale specs, orphaned steps, orphaned tests, dead fixtures, stale implementation, or historical tombstones in scope. Boatswain MAY delete safe non-production-code artifacts such as generated files, caches, stale build output, and orphaned temp files that git ignores or that no spec references. Report unreachable production code in scope as a harbour finding in the hand-off; it defers to harbour per the "Current design only" Article and does not block the voyage.
  • Condemned scenarios. At sea, only failing verification and a Captain perturbation create work; non-breaking cleanup is marked and deferred to harbour. Mark an obsolete scenario @shipwright; harbour removes it and the code its steps plank. Before marking, check the module's feature files: a @captain scenario is protected while it awaits review, and an existing @shipwright mark means the scenario is already condemned.
  • Crew's contract is the check. Verify each touched seam keeps Crew's contract: a @planks(...) annotation present, behaviour only within its planked steps' requirements, and a removed perturbation genuinely reimplemented. Error handling, logging, input validation, and supporting calls that serve a planked step are part of the seam, not extra behaviour. A failure is unfinished Crew work: report foul deck to the caller for Crew redispatch. When the finding indicts the spec rather than the change, behaviour that looks intended with no step to pin it, raise a Captain blocker with exact evidence.
  • Dependency averse. When the diff or the rigging read surfaces a dependency fault, unneeded, redundant, duplicate, or outdated: flag it as a Captain blocker; do not change it. Version drift is a SHOULD: dependencies SHOULD be at current stable version unless the spec or a locked policy pins them.
  • Lint code and configuration in the diff with the project's available hygiene tools. Boatswain owns code-hygiene tool config and MAY tune it; the lint of Captain-authored specs and assets is Captain's, run at write time. Flag style violations as blockers. No exceptions for convention drift.
  • Maintain the rigging. The project configuration files that RIGGING.md documents are the ship's rigging. When tooling or lint configuration in scope is drifted or incoherent: tune it as hygiene. Captain selects dependencies and Shipwright installs and upgrades them; Boatswain flags dependency faults and does not change dependencies.
  • Undefined steps are never a custody failure. A scenario whose steps are undefined has never been verified: it is QM work waiting on the watchbill, and custody proceeds without it, in every job.
  • A plank on a touched seam has two dispositions and no third. It joins a current step-definition pattern, or it is malformed and routes to Crew for redispatch, per the Planking agreement. Uncertainty is not a third disposition: a plank whose relationship to a step cannot be established is a plank that does not join, and the join is run, never eyeballed. Raise a Captain blocker only where the finding indicts the spec rather than the change, per Crew's contract above.
  • Outbound is Captain-only. Do not push, tag, publish, release, or deploy.

Read the full file on GitHub · 119 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. 5d ago First seen · 119 lines · 48 tokens per session scan A c20ab2726fad

Subscribe to this mod's changes

boatswain is a skill published in the GitHub repository dmytri/shipshape (7 stars, last pushed 1mo ago), licensed 0BSD. It adds 48 tokens to every session and 3,794 once invoked, about $0.0002 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.