Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
.claude/skills/mkurman-systematic-debugging/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-03 | ✓→✓ | = Same ✓ | -4% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 7% | 0% |
--|---------| | "Issue is simple, don't need process" | Simple issues have root causes too. Process is fast for simple bugs. | | "Emergency, no time for process" | Systematic debugging is FASTER than guess-and-check thrashing. | | "Just try this first, then investigate" | First fix sets the pattern. Do it right from the start. | | "I'll write test after confirming fix works" | Untested fixes don't stick. Test first proves it. | | "Multiple fixes at once saves time" | Can't isolate what worked. Causes new bugs. | | "Reference too long, I'll adapt the pattern" | Partial understanding guarantees bugs. Read it completely. | | "I see the problem, let me fix it" | Seeing symptoms ≠ understanding root cause. | | "One more fix attempt" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |
| Phase | Key Activities | Success Criteria | |-------|---------------|------------------| | 1. Root Cause | Read errors, reproduce, check changes, gather evidence | Understand WHAT and WHY | | 2. Pattern | Find working examples, compare | Identify differences | | 3. Hypothesis | Form theory, test minimally | Confirmed or new hypothesis | | 4. Implementation | Create test, fix, verify | Bug resolved, tests pass |
If systematic investigation reveals issue is truly environmental, timing-dependent, or external:
But: 95% of "no root cause" cases are incomplete investigation.
These techniques are part of systematic debugging and available in this directory:
root-cause-tracing.md - Trace bugs backward through call stack to find original triggerdefense-in-depth.md - Add validation at multiple layers after finding root causecondition-based-waiting.md - Replace arbitrary timeouts with condition pollingRelated skills:
From debugging sessions:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 16,918 | 15,804 | -7% | 1 | 1 | 0% | 2,628 | 2,964 | +13% | 0 | 0 | — |
case-02 | fail→fail | 20,019 | 16,228 | -19% | 1 | 1 | 0% | 2,908 | 2,962 | +2% | 0 | 0 | — |
case-03 | pass→pass | 15,415 | 10,091 | -35% | 1 | 1 | 0% | 2,239 | 2,144 | -4% | 0 | 0 | — |
case-04 | pass→pass | 13,916 | 10,500 | -25% | 1 | 1 | 0% | 1,906 | 2,039 | +7% | 0 | 0 | — |
case-05 | pass→pass | 10,228 | 5,472 | -46% | 1 | 1 | 0% | 1,544 | 1,518 | -2% | 0 | 0 | — |
case-06 | fail→pass | 12,814 | 8,241 | -36% | 1 | 1 | 0% | 1,747 | 1,769 | +1% | 0 | 0 | — |
case-07 | fail→pass | 18,816 | 10,183 | -46% | 1 | 1 | 0% | 2,294 | 2,152 | -6% | 0 | 0 | — |
case-08 | pass→pass | 11,516 | 8,846 | -23% | 1 | 1 | 0% | 1,825 | 1,897 | +4% | 0 | 0 | — |
case-09 | pass→pass | 16,360 | 10,614 | -35% | 1 | 1 | 0% | 2,501 | 2,451 | -2% | 0 | 0 | — |
case-10 | pass→pass | 12,511 | 10,462 | -16% | 1 | 1 | 0% | 2,153 | 2,258 | +5% | 0 | 0 | — |
case-11 | pass→pass | 16,581 | 12,099 | -27% | 1 | 1 | 0% | 2,497 | 2,350 | -6% | 0 | 0 | — |
case-12 | pass→pass | 15,063 | 10,403 | -31% | 1 | 1 | 0% | 2,519 | 2,187 | -13% | 0 | 0 | — |
case-13 | pass→pass | 17,384 | 10,883 | -37% | 1 | 1 | 0% | 2,705 | 2,167 | -20% | 0 | 0 | — |
case-14 | pass→pass | 13,596 | 11,825 | -13% | 1 | 1 | 0% | 1,936 | 2,351 | +21% | 0 | 0 | — |
case-15 | pass→pass | 12,349 | 7,276 | -41% | 1 | 1 | 0% | 1,877 | 1,685 | -10% | 0 | 0 | — |
case-16 | pass→pass | 13,742 | 9,062 | -34% | 1 | 1 | 0% | 2,187 | 1,914 | -12% | 0 | 0 | — |
case-17 | pass→pass | 16,513 | 9,888 | -40% | 1 | 1 | 0% | 1,994 | 2,031 | +2% | 0 | 0 | — |
case-18 | fail→fail | 13,310 | 9,464 | -29% | 1 | 1 | 0% | 1,928 | 1,979 | +3% | 0 | 0 | — |
case-19 | pass→pass | 8,514 | 6,640 | -22% | 1 | 1 | 0% | 1,249 | 1,547 | +24% | 0 | 0 | — |
case-20 | pass→pass | 39,129 | 16,473 | -58% | 1 | 1 | 0% | 3,342 | 3,153 | -6% | 0 | 0 | — |
case-21 | pass→pass | 24,237 | 41,553 | +71% | 1 | 1 | 0% | 4,194 | 4,698 | +12% | 0 | 0 | — |
case-22 | pass→pass | 26,396 | 21,437 | -19% | 1 | 1 | 0% | 4,559 | 4,567 | +0% | 0 | 0 | — |
case-23 | pass→pass | 11,885 | 8,551 | -28% | 1 | 1 | 0% | 2,219 | 2,088 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +13 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.