oopslisted
Install: claude install-skill RubyEyedReaper/Odin-Skills
# OOPS
An incident is worth exactly one thing: the guard it buys. Fixing the symptom and moving on spends
the incident and gets nothing back.
**The deliverable is a check a machine runs — a test, an assertion, a lint or type rule, a hook, or
a CI gate.** Not a resolution, not a note, not a paragraph in a commit message. A rule nobody checks
is wrong by the second change.
## When this fires
- code did the wrong thing, or did something right for the wrong reason
- an assumption was held that was never verified — a file exists, a field is non-null, an API
returns in order, a value is fresh
- validation was missing at a boundary
- an unsafe, destructive or irreversible action ran, or nearly ran
- a review, audit or postmortem produced a "we should always…" with nothing behind it
- a guard was found to pass when it should have failed
**Not for a bug you have not diagnosed yet.** A failing test is a symptom; run
`systematic-debugging` / `diagnosing-bugs` first. OOPS starts once the cause is known — you cannot
guard a mechanism you have not identified.
**When the incident is outside the work in hand**, the guard still belongs here; what is decided
elsewhere is whether it lands in this run or is routed and left — `out-of-scope` scores that, and a
deferral it records names the item or issue the guard now waits on.
## The procedure
### 1. Name the incident — 1–3 sentences, with its artifact
State what happened, and paste the exact thing that shows it: the input, the stack tr