# Debugging

> Debugging Without Tunnel Vision

- Skill: `vchelaru/debugging` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vchelaru/debugging`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vchelaru/debugging/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: vchelaru (https://skillmd.com/u/vchelaru)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vchelaru/debugging

---


# Debugging Without Tunnel Vision

Trying new hypotheses but testing all of them with the same *method* is still tunnel vision, even
though each attempt feels like progress. Cap it: 2 attempts per category below, then switch
categories. (Seen in #3475 — three synthetic unit-test probes for a bug only visible in a real
window.)

## Categories

- **Static/automated** — unit tests, rendering-PNG tests, simplified scenarios
- **Live observation** — run + logs, breakpoints, user visually confirms
- **Historical/comparative** — bisect PRs/functionality, `git log`/`blame`, cross-backend diff
- **Structural isolation** — minimal repro outside the app/framework
- **External verification** — read the actual upstream source, its issue tracker
- **Specialized tooling** — GPU frame capture, other domain debuggers

Self-invoke on the 2nd same-category miss — don't wait for the user to point this out (happened
on #3660: 4 rounds of GL/Skia-semantics patches before switching to live-observation logging).

## Stop immediately if

- A sanity-check of your *own method* fails — the method is invalid, not "try harder within it."
- The symptom only shows in a context your current tool can't observe (e.g. a headless test can't
  see a real window) — switch categories, don't refine the probe.

## Communicate

Narrate switches ("ruled out X, trying Y") instead of going silent. Keep working if confident;
only stop to discuss when genuinely unsure which category to try next.

