systematic-debugging

Diagnose bugs through a four-phase root cause investigation process before proposing fixes.

Updated Jul 30, 2026
One-click install
npx skills add https://github.com/johsquaree/claude-basic-docs --skill systematic-debugging-johsquaree
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: systematic-debugging
Source: https://github.com/johsquaree/claude-basic-docs/tree/main/.claude/skills/systematic-debugging
Command: npx skills add https://github.com/johsquaree/claude-basic-docs --skill systematic-debugging-johsquaree

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? When facing bugs, test failures, or unexpected behavior, it is tempting to apply quick symptom fixes that mask the real issue and cause recurring failures. This Skill enforces a disciplined four-phase debugging methodology that finds the actual root cause before any fix is attempted. ## Core Features & Use Cases - Four-Phase Process: Root cause investigation, pattern analysis, hypothesis testing, and implementation, with mandatory completion of each phase before proceeding. - Supporting Techniques: Includes root cause tracing through call stacks, defense-in-depth validation at multiple layers, and condition-based waiting to replace flaky arbitrary timeouts in tests. - Pressure Resistance: Explicit anti-patterns, red flags, and rationalization tables that prevent shortcut fixes under time pressure, plus a rule to question the architecture after three failed fixes. - Use Case: A test fails intermittently in CI. Instead of adding longer sleep delays, you trace the data flow backward, find the actual race condition, write a failing test, and fix the source with validation at each layer. ## Quick Start Use the systematic-debugging skill to investigate this test failure and find its root cause before suggesting any fix.

Frequently Asked Questions about systematic-debugging

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

FAQPage Schema
How do I find the root cause of a bug instead of fixing symptoms?

Follow a four-phase process: investigate the root cause by reading errors and reproducing the issue, analyze patterns against working examples, form and test a single hypothesis, then implement one fix with a failing test. Never propose fixes before completing the investigation phase.

How to fix flaky tests caused by arbitrary timeouts?

Replace setTimeout or sleep calls with condition-based waiting that polls for the actual condition you care about, such as an event appearing or state changing. Poll every 10ms with a clear timeout error, which eliminates race conditions and typically speeds up test execution.

What should I do when multiple fix attempts keep failing?

Stop after three failed fixes and question the architecture rather than attempting a fourth fix. Repeated failures where each fix reveals new problems elsewhere indicate a fundamentally wrong pattern, so discuss architectural refactoring before continuing.

How do I find which test is polluting shared state or creating files?

Use the find-polluter.sh bisection script, which runs each test file individually and checks whether the unwanted file or directory appears. It stops at the first polluting test and reports the file so you can investigate it directly.

When is it acceptable to skip systematic debugging for simple bugs?

Never. Simple bugs have root causes too, and the process is fast for simple issues. Skipping investigation leads to symptom fixes that cause recurring failures and rework, which is slower than systematic debugging.