bug-detective
Skill35 starsChanged 2 months agoMITView on GitHub
Investigates software failures, exceptions, and errors by tracing execution, reproducing the problem, and testing the suspected cause. Use when the user reports a crash, a traceback, an unexpected result, says 'this code throws an error', 'why does this fail', or asks to debug a failing function.
- Deletes or force-pushes
6 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- milad-ahmd/agent-skillstheir own version, first seen Nov 1, 2026
- Vepricov/claude-brainlabword for word, first seen Nov 1, 2026
- kharlamenkodev/skillstheir own version, first seen Oct 13, 2026
- bkywksj/knowledge-basetheir own version, first seen Oct 8, 2026
- Galaxy-Dawn/claude-scholaredited, first seen Apr 15, 2026
- Clay-HHK/claude-skillsedited, first seen Mar 5, 2026
Other versions6 projects use a version of this.
Word for word · 1
- Vepricov/claude-brainlab★ 35100% same
Edited · 2
- Galaxy-Dawn/claude-scholar★ 5.9k95% same
- Clay-HHK/claude-skills★ 193% same
Wrote their own version · 3
- bkywksj/knowledge-base★ 340same name
- milad-ahmd/agent-skills★ 5same name
- kharlamenkodev/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository68 other files it gives its agents.
- rules/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- academic-plottingSkill
- agent-identifierSkill
- architecture-designSkill
- astar-paper-reviewSkill
- call-notesSkill
- cavemanSkill
- citation-verificationSkill
- code-ingestSkill
- code-librarySkill
- code-review-excellenceSkill
- command-developmentSkill
- create-projectSkill
- daily-codingSkill
- defuddleSkill
- diagnoseSkill
- doc-coauthoringSkill
- experiment-runsSkill
- frontend-designSkill
- git-guardrails-claude-codeSkill
- git-workflowSkill
- google-workspace-mcpSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- handoff-to-jarvisSkill
- hook-developmentSkill
- improve-codebase-architectureSkill
- json-canvasSkill
- kaggle-learnerSkill
- lab-knowledgeSkill
- latex-conference-template-organizerSkill
- mcp-integrationSkill
- ml-paper-writingSkill
- obsidian-basesSkill
- obsidian-cliSkill
- obsidian-experiment-logSkill
- obsidian-markdownSkill
- operon-obsidian-setupSkill
- paper-ingestSkill
- paper-searchSkill
- paper-to-socialSkill
- paper-venue-formattingSkill
- pdf-readerSkill
- planning-with-filesSkill
- plugin-structureSkill
- presentationSkill
- presenter-modeSkill
- prototypeSkill
- research-cycleSkill
- research-ideationSkill
- restore-sessionSkill
- results-analysisSkill
- results-reportSkill
- reverse-outline-flow-checkSkill
- review-responseSkill
- setup-pre-commitSkill
- skill-developmentSkill
- tddSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Before starting to debug, clarify the following information:
- Distinctive: line 61
Use the following methods to locate the issue:
- Distinctive: line 68
Add print/logging statements at key locations
- Distinctive: line 73
Use debugger breakpoint functionality
- Distinctive: line 101
No new errors have been introduced
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bug Detective
A systematic debugging workflow for investigating and resolving code errors, exceptions, and failures. Provides structured debugging methods and common error pattern recognition.
Core Philosophy
Debugging is a scientific problem-solving process that requires:
- Understand the problem - Clearly define symptoms and expected behavior
- Gather evidence - Collect error messages, logs, stack traces
- Form hypotheses - Infer possible causes based on evidence
- Verify hypotheses - Confirm or eliminate causes through experiments
- Resolve the issue - Apply fixes and verify
Debugging Workflow
Step 1: Understand the Problem
Before starting to debug, clarify the following information:
Required information to collect:
- Complete error message content
- Exact location of the error (filename and line number)
- Reproduction steps (how to trigger the error)
- Expected behavior vs actual behavior
- Environment info (OS, versions, dependencies)
Question template:
1. What is the exact error message?
2. Which file and line does the error occur at?
3. How can this issue be reproduced? Provide detailed steps.
4. What was the expected result? What actually happened?
5. What recent changes might have introduced this issue?Step 2: Analyze Error Type
Choose a debugging strategy based on error type:
| Error Type | Characteristics | Debugging Method |
| Syntax Error | Code cannot be parsed | Check syntax, bracket matching, quotes |
| Import Error | ModuleNotFoundError | Check module installation, path config |
| Type Error | TypeError | Check data types, type conversions |
| Attribute Error | AttributeError | Check if object attribute exists |
| Key Error | KeyError | Check if dictionary key exists |
| Index Error | IndexError | Check list/array index range |
| Null Reference | NoneType/NullPointerException | Check if variable is None |
| Network Error | ConnectionError/Timeout | Check network connection, URL, timeout settings |
| Permission Error | PermissionError | Check file permissions, user permissions |
| Resource Error | FileNotFoundError | Check if file path exists |
Step 3: Locate the Problem Source
Use the following methods to locate the issue:
1. Binary Search Method
- Comment out half the code, check if the problem persists
- Progressively narrow the scope until the problematic code is found
2. Log Tracing
- Add print/logging statements at key locations
- Track variable value changes
- Confirm code execution path
3. Breakpoint Debugging
- Use debugger breakpoint functionality
- Step through code execution
- Inspect variable state
4. Stack Trace Analysis
- Find the call chain from the stack trace in the error message
- Determine the direct cause of the error
- Trace back to the root cause
Step 4: Form and Verify Hypotheses
Hypothesis framework:
Hypothesis: [problem description] causes [error phenomenon]
Verification steps:
1. [verification method 1]
2. [verification method 2]
Expected results:
- If hypothesis is correct: [expected phenomenon]
- If hypothesis is wrong: [expected phenomenon]Step 5: Apply Fix
After fixing, verify:
- The original error is resolved
- No new errors have been introduced
- Related functionality still works correctly
- Tests added to prevent regression
Python Common Error Patterns
1. Indentation Errors
2. Mutable Default Arguments
3. Closure Issues in Loops
4. Modifying a List While Iterating
5. Using is for String Comparison
6. Forgetting to Call super().__init__()
JavaScript/TypeScript Common Error Patterns
1. this Binding Issues
2. Async Error Handling
3. Object Reference Comparison
Bash/Zsh Common Error Patterns
1. Spacing Issues
# ❌ No spaces allowed in assignment
name = "John" # Error: tries to run 'name' command
# ✅ Correct assignment
name="John"
# ❌ Missing spaces in conditional test
if[$name -eq 1]; then # Error
# ✅ Correct
if [ $name -eq 1 ]; then2. Quoting Issues
# ❌ Variables not expanded inside single quotes
echo 'The value is $var' # Output: The value is $var
# ✅ Use double quotes
echo "The value is $var" # Output: The value is actual_value
# ❌ Using backticks for command substitution (confusing)
result=`command`
# ✅ Use $()
result=$(command)3. Unquoted Variables
# ❌ Unquoted variable, empty value causes errors
rm -rf $dir/* # If dir is empty, deletes all files in current directory
# ✅ Always quote variables
[ -n "$dir" ] && rm -rf "$dir"/*
# Or use set -u to prevent undefined variables
set -u # or set -o nounset4. Variable Scope in Loops
# ❌ Pipe creates subshell, outer variable unchanged
cat file.txt | while read line; do
count=$((count + 1)) # Outer count won't change
done
echo "Total: $count" # Outputs 0
# ✅ Use process substitution or redirection
while read line; do
count=$((count + 1))
done < file.txt
echo "Total: $count" # Correct output5. Array Operations
# ❌ Incorrect array access
arr=(1 2 3)
echo $arr[1] # Outputs 1[1]
# ✅ Correct array access
echo ${arr[1]} # Outputs 2
echo ${arr[@]} # Outputs all elements
echo ${#arr[@]} # Outputs array length6. String Comparison
# ✅ Use `=` inside POSIX `[` tests and `==` inside Bash `[[ ]]` tests
if [ "$name" = "John" ]; then
if [[ "$name" == "John" ]]; then
# ❌ Using -eq for numeric comparison instead of =
if [ $age = 18 ]; then # Wrong
# ✅ Use arithmetic operators for numeric comparison
if [ $age -eq 18 ]; then
if (( age == 18 )); then7. Command Failure Continues Execution
# ❌ Execution continues after command failure
cd /nonexistent
rm file.txt # Deletes file.txt in current directory
# ✅ Use set -e to exit on error
set -e # or set -o errexit
cd /nonexistent # Script exits here
rm file.txt
# Or check if command succeeded
cd /nonexistent || exit 1Common Debugging Commands
Python pdb Debugger
python -m pdb script.py
pytest -x -vv tests/test_target.pyNode.js Inspector
node --inspect-brk app.js
node --trace-warnings app.jsGit Bisect
git bisect start
git bisect bad
git bisect good <known-good-commit>Bash Debugging
# Run script in debug mode
bash -x script.sh # Print each command
bash -v script.sh # Print command source
bash -n script.sh # Syntax check, no execution
# Enable debugging within a script
set -x # Enable command tracing
set -v # Enable verbose mode
set -e # Exit on error
set -u # Error on undefined variables
set -o pipefail # Fail if any command in pipe failsPreventive Debugging
1. Use Type Checking
2. Input Validation
3. Defensive Programming
4. Logging
Debugging Checklist
Before Starting
- Obtain the complete error message
- Record the stack trace of the error
- Confirm reproduction steps
- Understand expected behavior
During Debugging
- Check recent code changes
- Use binary search to locate the issue
- Add logs to trace variables
- Verify hypotheses
After Resolution
- Confirm the original error is fixed
- Test related functionality
- Add tests to prevent regression
- Document the problem and solution
Additional Resources
Reference Files
For detailed debugging techniques and patterns:
references/python-errors.md- Python error detailsreferences/javascript-errors.md- JavaScript/TypeScript error detailsreferences/shell-errors.md- Bash/Zsh script error detailsreferences/debugging-tools.md- Debugging tools usage guidereferences/common-patterns.md- Common error patterns
Example Files
Working debugging examples:
examples/debugging-workflow.py- Complete debugging workflow exampleexamples/error-handling-patterns.py- Error handling patternsexamples/debugging-workflow.sh- Shell script debugging example
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

