debugging-systematically

Diagnose bugs through hypothesis-driven investigation, root cause analysis, and minimal fixes.

Updated Dec 4, 2025
One-click install
npx skills add https://github.com/dallascrilley/dowser --skill debugging-systematically-dallascrilley
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: debugging-systematically
Source: https://github.com/dallascrilley/dowser/tree/main/skills/debugging-systematically
Command: npx skills add https://github.com/dallascrilley/dowser --skill debugging-systematically-dallascrilley

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Debugging often devolves into random guesswork, shotgun fixes, and symptom-patching that wastes time and introduces regressions. This Skill enforces a structured, hypothesis-driven methodology so bugs are reproduced, isolated, and fixed at the root cause with regression tests. ## Core Features & Use Cases - Hypothesis-Driven Investigation: Gather evidence, rank hypotheses, and test each one systematically before touching code. - Three-Phase Process: Reproduce the issue, narrow down via binary search and strategic logging, then apply a minimal verified fix. - Bug Pattern Catalog: Reference common type, state, logic, and integration bug patterns to accelerate diagnosis. - Use Case: A test suite fails intermittently with a race condition. Use this Skill to document reproduction conditions, test hypotheses about initialization order, pinpoint the root cause, and add a regression test. ## Quick Start Help me systematically debug this TypeError that occurs intermittently in my payment processing module.

Frequently Asked Questions about debugging-systematically

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug a bug systematically instead of guessing?▼

Systematic debugging follows three phases: reproduce the issue with minimal steps, narrow down the failure point using binary search and strategic logging, then apply a minimal fix. Document hypotheses and test each one against evidence before changing code.

How to find the root cause of intermittent test failures?▼

Intermittent failures usually indicate race conditions, initialization order issues, or environment differences. Document exact reproduction conditions and frequency, then test hypotheses about state and timing while adding strategic logging at decision points.

What are the most common types of software bugs?▼

Common bug patterns fall into four categories: type-related bugs like null handling and type mismatches, state-related bugs like race conditions and stale data, logic bugs like off-by-one errors, and integration bugs like API contract violations.

Why should bug fixes be minimal instead of refactoring?▼

Minimal fixes reduce the risk of introducing new bugs and keep changes traceable for review. Refactoring during a fix mixes concerns, makes rollback harder, and obscures which change actually resolved the root cause.

When is hypothesis-driven debugging not the right approach?▼

For trivial typos or obvious syntax errors caught by linters, a full investigation framework adds unnecessary overhead. The methodology is most valuable for non-obvious bugs, intermittent failures, and issues spanning multiple components.