Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add ratacat/claude-skills --skill "debugging"
Install specific skill from multi-skill repository
# Description
Systematic debugging that identifies root causes rather than treating symptoms. Uses sequential thinking for complex analysis, web search for research, and structured investigation to avoid circular reasoning and whack-a-mole fixes.
# SKILL.md
name: debugging
description: Systematic debugging that identifies root causes rather than treating symptoms. Uses sequential thinking for complex analysis, web search for research, and structured investigation to avoid circular reasoning and whack-a-mole fixes.
Debugging
Quickstart
- Capture exact repro, scope, and recent changes
- Isolate components/files; trace path to failure
- Research exact error; check official docs
- Compare failing vs working patterns; form a testable hypothesis
- Verify with minimal test; apply minimal fix across all instances; validate
When to Use This Skill
Use debugging when:
- A bug has no obvious cause or has been "fixed" before but returned
- Error messages are unclear or misleading
- Multiple attempted fixes have failed
- The issue might affect multiple locations in the codebase
- Understanding the root cause is critical for proper resolution
Skip this skill for:
- Simple syntax errors with obvious fixes
- Trivial typos or missing imports
- Well-understood, isolated bugs with clear solutions
Core Anti-Patterns to Avoid
Based on documented failures in AI debugging, explicitly avoid:
- Circular Reasoning: Never propose the same fix twice without learning why it failed
- Premature Victory: Always verify fixes were actually implemented and work
- Pattern Amnesia: Maintain awareness of established code patterns throughout the session
- Context Overload: Use the 50% rule - restart conversation when context reaches 50%
- Symptom Chasing: Resist fixing error messages without understanding root causes
- Implementation Before Understanding: Never jump to code changes before examining existing patterns
UNDERSTAND (10-step checklist)
- Understand: capture exact repro, scope, and recent changes
- Narrow: isolate components/files; trace path to failure
- Discover: research exact error (WebSearch β Parallel Search, Context7:get-library-docs)
- Examine: compare against known-good patterns in the codebase
- Reason: use SequentialThinking:process_thought and 5 Whys to reach root cause
- Synthesize: write a falsifiable hypothesis with predictions
- Test: add logs/tests to confirm the mechanism
- Apply: minimal fix for root cause, across all occurrences, following patterns
- Note: record insights, warnings, decisions
- Document: update comments/docs/tests as needed
Progress Tracking with TodoWrite
Use TodoWrite to track debugging progress through the UNDERSTAND checklist:
-
At start: Create todos for each applicable step:
β U - Capture exact repro and scope β N - Isolate failing component β D - Research error message β E - Compare with working patterns β R - Root cause analysis (5 Whys) β S - Write falsifiable hypothesis β T - Verify with minimal test β A - Apply fix across all occurrences β N - Record insights β D - Update docs/tests -
During debugging: Mark steps in_progress β completed as you work through them
-
When stuck: TodoWrite makes it visible which step is blocked - helps identify if you're skipping steps or going in circles
-
Skip steps only if: Bug is simple enough that checklist is overkill (see "Skip this skill for" above)
Tool Decision Tree
- Know exact text/symbol? β grep
- Need conceptual/semantic location? β codebase_search
- Need full file context? β read_file
- Unfamiliar error/behavior? β Context7:get-library-docs, then WebSearch β Parallel Search
- Complex multi-hypothesis analysis? β SequentialThinking:process_thought
Context Management
- Restart at ~50% context usage to avoid degraded reasoning
- Before restart: summarize facts, hypothesis, ruled-outs, next step
- Start a fresh chat with just that summary; continue
Decision Framework
IF same fix proposed twice β Stop; use SequentialThinking:process_thought
IF error is unclear β Research via WebSearch β Parallel Search; verify with docs
IF area is unfamiliar β Explore with codebase_search; don't guess
IF fix seems too easy β Confirm it addresses root cause (not symptom)
IF context is cluttered β Restart at 50% with summary
IF multiple hypotheses exist β Evaluate explicitly (evidence for/against)
IF similar code works β Find and diff via codebase_search/read_file
IF declaring success β Show changed lines; test fail-before/pass-after
IF fix spans multiple files β Search and patch all occurrences
IF library behavior assumed β Check Context7:get-library-docs
Quality Checks Before Finishing
Before declaring a bug fixed, verify:
- [ ] Root cause identified and documented
- [ ] Fix addresses cause, not symptom
- [ ] All occurrences fixed (searched project-wide)
- [ ] Follows existing code patterns
- [ ] Original symptom eliminated
- [ ] No regressions introduced
- [ ] Tests/logs verify under relevant conditions
- [ ] Docs/tests updated (comments, docs, regression tests)
References
reference/root-cause-framework.mdreference/antipatterns.md
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.