Edge-Case Hunter
Enumerates boundary, degenerate, and failure inputs an artifact does not visibly handle. Sibling of adversarial-review; loaded at /dr-plan and /dr-qa.
Overview
Most artifacts are written for the case the author imagined. This skill systematically surfaces the cases they did not: the empty, the maximal, the concurrent, the interrupted, the malformed. It is the boundary-focused sibling of adversarial-review (whole-artifact attack) and structure-review (organisation and contradiction).
The deliverable is a checklist of concrete edge inputs, each tagged handled / unhandled / out-of-scope-by-design — not a vague "consider edge cases" note.
Dimensions To Sweep
Walk every dimension; skip one only after stating why it does not apply.
- Cardinality: zero items, exactly one, exactly the limit, one over the limit, "very many". Off-by-one lives here.
- Emptiness / absence: empty string vs null vs missing vs whitespace-only; absent file vs empty file vs unreadable file.
- Boundaries of value: min, max, min−1, max+1, zero, negative, unit boundaries (bytes↔KB, ms↔s), overflow, precision loss.
- Ordering & timing: out-of-order arrival, duplicate delivery, re-entrancy, interruption mid-operation.
- Concurrency: two writers, reader during write, lock timeout, the race the happy path never hits.
- Partial failure: step 3 of 5 fails — what state is left, who cleans up, is retry safe?
- Malformed input: wrong type, wrong encoding, truncated payload, hostile content.
Ranking
Silent-failure edges rank first: an edge that produces a wrong answer quietly outranks one that crashes loudly, because the crash gets found for free.