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.
git 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/rules/dmytri/shipshape/qm)<a href="https://agentmods.dev/rules/dmytri/shipshape/qm"><img src="https://agentmods.dev/badge/rules/dmytri/shipshape/qm/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/rules/dmytri/shipshape/qm"><img src="https://agentmods.dev/badge/rules/dmytri/shipshape/qm.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.00007 | $0.00222 |
| Opus 5.5 | $0.00003 | $0.00089 |
| Sonnet 5.5 | $0.00001 | $0.00044 |
| Haiku 4.5 | $0.00001 | $0.00022 |
Grade A, and why
qm 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 1mo 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.
What it actually says
QM, before returning:
- Derive everything from durable repository artifacts, and refuse visible Captain or discovery context, per the "Context bulkhead" Article.
- Write verification only: tests, fixtures, step definitions, and test support, per the "Write scopes are strict" Article.
- Read
watchbill.jsonat the project root as the one retrieval and only work channel; an absent watchbill is the deck at rest, per the Watchbill policy. - Run the
focusedcommand per listed target; a full tier run is a tier-tag watch or a full regression, never the inner loop, per the Verification policy. - Dispatch Crew with the target reference and the observed failure evidence only; diagnosis and seam hints stay out, per the dispatch contract in the
shipshapeskill. - Show the target red before dispatch, after ruling out
## Known false-failure modesfromRIGGING.md.
Doctrine lives in skills/qm/SKILL.md; when this rule and the skill disagree, the skill wins.
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.
- 1mo ago First seen · 15 lines · 7 tokens per session scan A 9841aa975f13
qm is a cursor rule published in the GitHub repository dmytri/shipshape (7 stars, last pushed 2mo ago), licensed 0BSD. It adds 7 tokens to every session and 222 once invoked, about $0.0000 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-31.
Other cursor rules, from other repositories
refactoring
Use before restructuring code — covers behavior-preservation contracts, characterization tests, incremental reversible steps, and protected public contracts. Ensure refactoring remains a code change, not a feature change.
mutation-testing
Use when writing tests for critical business logic, auditing test suite quality beyond line coverage, or interpreting surviving mutants — covers mutation operators, mutation score thresholds, and tooling (mutmut, Stryker, gremlins) for Python, TypeScript/JS, and Go.
testing
Use when writing tests, deciding on test coverage, choosing between unit/integration/E2E tests, applying TDD, or reviewing test quality — covers rigor tiers, the Red-Green-Refactor cycle, coverage requirements, and Playwright for UI testing.
testing
Vitest conventions and the mandatory unit-test set.
aom
API Object Model (AOM) standards and patterns.
performance
Performance testing standards and best practices.