- 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
1. Read `.stop-me.yml` if present, else infer `horizon` from the repo (deploy targets, tenancy columns, contributor count) and say which you assumed.
2. Read `DECISIONS.md` if present. **Anything already logged there is settled — never report it.**
3. 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
4. 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.
Voir sur GitHub