What problem does it solve? When a bug cannot be solved by reading code alone—such as frozen counters, failed browser connections, empty traffic captures, or broken WebSocket updates—this Skill provides a methodical, hypothesis-driven process for observing runtime behavior with targeted logging instead of guessing. ## Core Features & Use Cases - DEBUG() Logging Utility: Uses a shared DEBUG() function from @interceptor/shared (server) or @/lib/debug (client) with lazy factory arguments so expensive computations only run when logging is enabled. - Iterative Narrowing Workflow: Guides a six-step loop—hypothesize, add 2-4 targeted logs, reproduce and read logs, narrow or widen scope, clean up, and clear log files. - Use Case: When an SSE counter freezes because a dedup comparison sets lastJson before the check, add DEBUG() calls in tick() and broadcast(), read the log at /tmp/interceptor-debug/, identify the faulty comparison, fix it, and remove the temporary logs. ## Quick Start Ask Claude to debug the frozen SSE counter by adding targeted DEBUG() logs, reproducing the issue, and reading the debug log output.