| name | stop-me-check |
| description | Retroactively scan an existing repository for decisions stop-me would have blocked. Use for "/stop-me-check", "check this repo for irreversible decisions", "audit this repo", or a first look at a codebase you did not write. |
stop-me-check
Run the stop-me gates backwards over code that already exists. Report only what would have failed all three.
Method
- Read
.stop-me.yml if present, else infer horizon from the repo (deploy targets, tenancy columns, contributor count) and say which you assumed.
- Read
DECISIONS.md if present. Anything already logged there is settled — never report it.
- Sweep the irreversible surfaces from the stop-me skill — that list lives there and only there; never keep a second copy here. For each, gather evidence before you claim anything:
migrations/ — drops, renames, narrowing types, missing down-path
- money paths — charge/refund/quota, and whether an idempotency key and a test exist
- secrets — literals in tracked files;
git log -S for the commit that introduced them
- auth — password hashing, token expiry, permission checks on write paths
- tenancy — tables missing a tenant column that siblings have
- published shapes — unversioned endpoints,
any on exported types, CLI flags
- deletes —
DELETE/drop/rm -rf without a restore path
- data not collected — events and audit rows with no actor or timestamp
- Rank by blast radius, not by count.
Output
stop-me check · <repo> · horizon: <h> (<inferred|from .stop-me.yml>)
<n> findings on irreversible surfaces
🛑 <file:line> — <one line>
[evidence] <what you actually read>
[cost] <what undoing this now requires>
...
Clean: <surfaces you checked and found nothing on>
End with the Clean: line every time. A list of what you checked and cleared is what makes the findings above it believable.
Rules
- Cite
file:line for every finding. No citation, no finding.
- Report what the code does, never what the author was thinking.
- Reversible problems are not findings. A slow query, an ugly name, a missing type on an internal function — all silence.
- Zero findings is a real result. Print the
Clean: line and stop. Do not pad.