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 agentmods add skills/dmytri/shipshape/boatswainnpx skills add dmytri/shipshape --skill boatswaingit clone --depth 1 https://github.com/dmytri/shipshapeWrote 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/dmytri/shipshape/boatswain)<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>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.00048 | $0.03794 |
| Opus 5 | $0.00024 | $0.01897 |
| Sonnet 5 | $0.00010 | $0.00759 |
| Haiku 4.5 | $0.00005 | $0.00379 |
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.
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 aCAPTAIN.mdedit rides the voyage's role-advanced work, stage and commit it content-blind, by path alone, withgit add -- CAPTAIN.md; never open, diff, or grep it. The path MAY ride among the other staged paths of onegit addpathspec 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.mdpathspec 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 statusand 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@captainscenario is protected while it awaits review, and an existing@shipwrightmark 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
lockedpolicy 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.mddocuments 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.
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.
- 5d ago First seen · 119 lines · 48 tokens per session scan A c20ab2726fad
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.
Other skills, from other repositories
BDD/Cucumber Patterns
Behavior-Driven Development skill using Cucumber, covering feature files, step definitions, Gherkin best practices, data tables, scenario outlines, and hooks.
BDD Gherkin Testing Patterns
Behavior-Driven Development with Gherkin syntax, step definitions, scenario outlines, data tables, and living documentation generation.
diff-review
Render the patch-edit run's accumulated changes as a reviewable diff, surface it through a GenUI choice surface, and persist the user's accept / reject decision into the artifact manifest.
mcore-split-pr
Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.
Behat BDD Testing
PHP BDD testing with Behat framework using Gherkin feature files, Mink browser extension, context classes, and Symfony integration for behavior-driven acceptance testing.
Behave BDD Testing
Python BDD testing with Behave framework using Gherkin feature files, step definitions, environment hooks, and Selenium integration for behavior-driven acceptance testing.