gate-isolatelisted
Install: claude install-skill danielimad/SKILLS
# Gate·Isolate·Prove — debug to truth, no trial-and-error
The procedure that lands the ACCURATE fix by making every conclusion a measured fact, never a source-read guess. Composes two laws: **instrument the boundary, don't reason from source** + **validate in isolation**.
> Standing order: a fix that can't reduce to an observation you can point to is a guess. Plausible-but-wrong is the enemy — each plausible theory costs a full fix cycle. One measurement ends the search.
## G1 — Gate the surface
Reproduce, then bound where the bug can live. Which route / tab / component / query / layer? **Rule out the false sources first** (framework? DB? proxy/CDN? hydration? network? your own logic?) so you don't fix the wrong layer. State facts / unknowns / assumptions, labelled. Don't dig until the surface is narrowed.
## G2 — Instrument the boundary
Hook the exact seam where your code meets the opaque layer and read what crosses it. Pick the probe by symptom:
- **Server crash / 500 / opaque error** → the runtime **logs** (Vercel, Supabase, app). Grep the thrown message. HTML where you expected JSON = a proxy/CF challenge.
- **Blank / broken / partial render** → **CDP** attached to the *real* browser (not a fresh incognito): `Runtime.exceptionThrown`, `Runtime.consoleAPICalled` errors, `Network.responseReceived` status, and a DOM read of the ACTUAL panel node's `textContent` (not `body.innerText`, which collapses to chrome).
- **Slow query** → **`EXPLAIN (ANALYZE, BUFFERS)`** on the R