File contents dot-skills Debugging Best Practices
Comprehensive debugging methodology guide for software engineers, containing 54 rules across 10 categories prioritized by impact. Based on research from Andreas Zeller's "Why Programs Fail" and academic debugging curricula.
When to Apply
Reference these guidelines when:
Investigating a bug or unexpected behavior
Debugging code during development
Code produces wrong results or crashes
Performance issues need root cause analysis
Triaging incoming bug reports and prioritizing fixes
Conducting root cause analysis for incidents
Reviewing debugging approaches or code for common bug patterns
Rule Categories by Priority
Priority
Category
Impact
Prefix
1
Problem Definition
CRITICAL
prob-
2
Hypothesis-Driven Search
CRITICAL
hypo-
3
Observation Techniques
HIGH
obs-
4
Root Cause Analysis
HIGH
rca-
5
Tool Mastery
MEDIUM-HIGH
tool-
6
Bug Triage and Classification
MEDIUM
triage-
7
Common Bug Patterns
MEDIUM
pattern-
8
Fix Verification
MEDIUM
verify-
9
Anti-Patterns
MEDIUM
anti-
10
Prevention & Learning
LOW-MEDIUM
prev-
Quick Reference
1. Problem Definition (CRITICAL)
prob-reproduce-before-debug - Reproduce the bug before investigating
prob-minimal-reproduction - Create minimal reproduction cases
prob-document-symptoms - Document symptoms precisely
prob-separate-symptoms-causes - Separate symptoms from causes
prob-state-expected-actual - State expected vs actual behavior
prob-recent-changes - Check recent changes first
2. Hypothesis-Driven Search (CRITICAL)
hypo-scientific-method - Apply the scientific method
hypo-binary-search - Use binary search to localize bugs
hypo-one-change-at-time - Test one hypothesis at a time
hypo-where-not-what - Find WHERE before asking WHAT
hypo-rule-out-obvious - Rule out obvious causes first
hypo-rubber-duck - Explain the problem aloud
3. Observation Techniques (HIGH)
obs-strategic-logging - Use strategic logging
obs-log-inputs-outputs - Log function inputs and outputs
obs-breakpoint-strategy - Use breakpoints strategically
obs-stack-trace-reading - Read stack traces bottom to top
obs-watch-expressions - Use watch expressions for state
obs-trace-data-flow - Trace data flow through system
4. Root Cause Analysis (HIGH)
rca-five-whys - Use the 5 Whys technique
rca-fault-propagation - Trace fault propagation chains
rca-last-known-good - Find the last known good state
rca-question-assumptions - Question your assumptions
rca-examine-boundaries - Examine system boundaries
5. Tool Mastery (MEDIUM-HIGH)
tool-conditional-breakpoints - Use conditional breakpoints
tool-logpoints - Use logpoints instead of modifying code
tool-step-commands - Master step over/into/out
tool-call-stack-navigation - Navigate the call stack
tool-memory-inspection - Inspect memory and object state
tool-exception-breakpoints - Use exception breakpoints
6. Bug Triage and Classification (MEDIUM)
triage-severity-vs-priority - Separate severity from priority
triage-user-impact-assessment - Assess user impact before prioritizing
triage-reproducibility-matters - Factor reproducibility into triage
triage-quick-wins-first - Identify and ship quick wins first
triage-duplicate-detection - Detect and link duplicate bug reports
7. Common Bug Patterns (MEDIUM)
pattern-null-pointer - Recognize null pointer patterns
pattern-off-by-one - Spot off-by-one errors
pattern-race-condition - Identify race condition symptoms
pattern-memory-leak - Detect memory leak patterns
pattern-type-coercion - Watch for type coercion bugs
pattern-async-await-errors - Catch async/await error handling mistakes
pattern-timezone-issues - Recognize timezone and date bugs
8. Fix Verification (MEDIUM)
verify-reproduce-fix - Verify with original reproduction
verify-regression-check - Check for regressions
verify-understand-why-fix-works - Understand why fix works
verify-add-test - Add test to prevent recurrence
9. Anti-Patterns (MEDIUM)
anti-shotgun-debugging - Avoid shotgun debugging
anti-quick-patch - Avoid quick patches without understanding
anti-tunnel-vision - Avoid tunnel vision on initial hypothesis
anti-debug-fatigue - Recognize debugging fatigue
anti-blame-tool - Don't blame the tool too quickly
10. Prevention & Learning (LOW-MEDIUM)
prev-document-solution - Document bug solutions
prev-postmortem - Conduct blameless postmortems
prev-defensive-coding - Add defensive code at boundaries
prev-improve-error-messages - Improve error messages
How to Use
Read individual reference files for detailed explanations and code examples:
Section definitions - Category structure and impact levels
Rule template - Template for adding new rules
Example rules: prob-reproduce-before-debug, hypo-binary-search
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md
1 --- 2 name: debug 3 description: dot-skills Debugging Best Practices 4 --- 5 # dot-skills Debugging Best Practices 6 7 Comprehensive debugging methodology guide for software engineers, containing 54 rules across 10 categories prioritized by impact. Based on research from Andreas Zeller's "Why Programs Fail" and academic debugging curricula. 8 9 ## When to Apply 10 11 Reference these guidelines when: 12 - Investigating a bug or unexpected behavior 13 - Debugging code during development 14 - Code produces wrong results or crashes 15 - Performance issues need root cause analysis 16 - Triaging incoming bug reports and prioritizing fixes 17 - Conducting root cause analysis for incidents 18 - Reviewing debugging approaches or code for common bug patterns 19 20 ## Rule Categories by Priority 21 22 | Priority | Category | Impact | Prefix | 23 |----------|----------|--------|--------| 24 | 1 | Problem Definition | CRITICAL | `prob-` | 25 | 2 | Hypothesis-Driven Search | CRITICAL | `hypo-` | 26 | 3 | Observation Techniques | HIGH | `obs-` | 27 | 4 | Root Cause Analysis | HIGH | `rca-` | 28 | 5 | Tool Mastery | MEDIUM-HIGH | `tool-` | 29 | 6 | Bug Triage and Classification | MEDIUM | `triage-` | 30 | 7 | Common Bug Patterns | MEDIUM | `pattern-` | 31 | 8 | Fix Verification | MEDIUM | `verify-` | 32 | 9 | Anti-Patterns | MEDIUM | `anti-` | 33 | 10 | Prevention & Learning | LOW-MEDIUM | `prev-` | 34 35 ## Quick Reference 36 37 ### 1. Problem Definition (CRITICAL) 38 39 - `prob-reproduce-before-debug` - Reproduce the bug before investigating 40 - `prob-minimal-reproduction` - Create minimal reproduction cases 41 - `prob-document-symptoms` - Document symptoms precisely 42 - `prob-separate-symptoms-causes` - Separate symptoms from causes 43 - `prob-state-expected-actual` - State expected vs actual behavior 44 - `prob-recent-changes` - Check recent changes first 45 46 ### 2. Hypothesis-Driven Search (CRITICAL) 47 48 - `hypo-scientific-method` - Apply the scientific method 49 - `hypo-binary-search` - Use binary search to localize bugs 50 - `hypo-one-change-at-time` - Test one hypothesis at a time 51 - `hypo-where-not-what` - Find WHERE before asking WHAT 52 - `hypo-rule-out-obvious` - Rule out obvious causes first 53 - `hypo-rubber-duck` - Explain the problem aloud 54 55 ### 3. Observation Techniques (HIGH) 56 57 - `obs-strategic-logging` - Use strategic logging 58 - `obs-log-inputs-outputs` - Log function inputs and outputs 59 - `obs-breakpoint-strategy` - Use breakpoints strategically 60 - `obs-stack-trace-reading` - Read stack traces bottom to top 61 - `obs-watch-expressions` - Use watch expressions for state 62 - `obs-trace-data-flow` - Trace data flow through system 63 64 ### 4. Root Cause Analysis (HIGH) 65 66 - `rca-five-whys` - Use the 5 Whys technique 67 - `rca-fault-propagation` - Trace fault propagation chains 68 - `rca-last-known-good` - Find the last known good state 69 - `rca-question-assumptions` - Question your assumptions 70 - `rca-examine-boundaries` - Examine system boundaries 71 72 ### 5. Tool Mastery (MEDIUM-HIGH) 73 74 - `tool-conditional-breakpoints` - Use conditional breakpoints 75 - `tool-logpoints` - Use logpoints instead of modifying code 76 - `tool-step-commands` - Master step over/into/out 77 - `tool-call-stack-navigation` - Navigate the call stack 78 - `tool-memory-inspection` - Inspect memory and object state 79 - `tool-exception-breakpoints` - Use exception breakpoints 80 81 ### 6. Bug Triage and Classification (MEDIUM) 82 83 - `triage-severity-vs-priority` - Separate severity from priority 84 - `triage-user-impact-assessment` - Assess user impact before prioritizing 85 - `triage-reproducibility-matters` - Factor reproducibility into triage 86 - `triage-quick-wins-first` - Identify and ship quick wins first 87 - `triage-duplicate-detection` - Detect and link duplicate bug reports 88 89 ### 7. Common Bug Patterns (MEDIUM) 90 91 - `pattern-null-pointer` - Recognize null pointer patterns 92 - `pattern-off-by-one` - Spot off-by-one errors 93 - `pattern-race-condition` - Identify race condition symptoms 94 - `pattern-memory-leak` - Detect memory leak patterns 95 - `pattern-type-coercion` - Watch for type coercion bugs 96 - `pattern-async-await-errors` - Catch async/await error handling mistakes 97 - `pattern-timezone-issues` - Recognize timezone and date bugs 98 99 ### 8. Fix Verification (MEDIUM) 100 101 - `verify-reproduce-fix` - Verify with original reproduction 102 - `verify-regression-check` - Check for regressions 103 - `verify-understand-why-fix-works` - Understand why fix works 104 - `verify-add-test` - Add test to prevent recurrence 105 106 ### 9. Anti-Patterns (MEDIUM) 107 108 - `anti-shotgun-debugging` - Avoid shotgun debugging 109 - `anti-quick-patch` - Avoid quick patches without understanding 110 - `anti-tunnel-vision` - Avoid tunnel vision on initial hypothesis 111 - `anti-debug-fatigue` - Recognize debugging fatigue 112 - `anti-blame-tool` - Don't blame the tool too quickly 113 114 ### 10. Prevention & Learning (LOW-MEDIUM) 115 116 - `prev-document-solution` - Document bug solutions 117 - `prev-postmortem` - Conduct blameless postmortems 118 - `prev-defensive-coding` - Add defensive code at boundaries 119 - `prev-improve-error-messages` - Improve error messages 120 121 ## How to Use 122 123 Read individual reference files for detailed explanations and code examples: 124 125 - [Section definitions](references/_sections.md) - Category structure and impact levels 126 - [Rule template](assets/templates/_template.md) - Template for adding new rules 127 - Example rules: [prob-reproduce-before-debug](references/prob-reproduce-before-debug.md), [hypo-binary-search](references/hypo-binary-search.md) 128 129 ## Full Compiled Document 130 131 For the complete guide with all rules expanded: [AGENTS.md](AGENTS.md)
ComeOnOliver/skillshub/tree/main/skills/pproenca/dot-skills/debug commit aba0aa2267
Frequently asked questions How do I install the Debug skill? Run npx skillmds@latest add comeonoliver/debug in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Debug skill do? dot-skills Debugging Best Practices It is listed under Coding & Dev Tools on SkillMD.
Is Debug safe to use? This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Debug? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Debug free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Debug? ComeOnOliver (@comeonoliver) published this skill. Their other Agent Skills are listed on their SkillMD profile.