Agent skill
error-doctor
Systematic error diagnosis and debugging framework
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/error-doctor
Metadata
Additional technical details for this skill
- audience
- developers
- workflow
- debugging
SKILL.md
What I do
- Diagnose errors systematically using stack trace analysis
- Classify error types (SyntaxError, ImportError, TypeError, etc.)
- Identify root causes and suggest fixes
- Provide actionable remediation steps
When to use me
Use this when you encounter:
- Unexpected exceptions or crashes
- Error messages you don't understand
- Debugging complex failure scenarios
- Need systematic approach to error fixing
MCP-First Workflow
Always use MCP servers in this order:
-
codebase - Search for error handling patterns
pythonsearch_codebase("error handling patterns Python exception", top_k=10) -
sequential-thinking - Analyze the error
pythonthink_step_by_step("Analyze the error stack trace and identify root cause...") -
filesystem - view_file the error source
pythonread_file("src/module.py", offset=100, limit=50) -
git - Check recent changes
pythongit_diff("HEAD~5..HEAD", path="src/")
Error Diagnosis Framework
| Error Type | Indicator | Action |
|---|---|---|
| SyntaxError | "SyntaxError" | Fix code syntax |
| ImportError | "ModuleNotFoundError" | Check imports, install deps |
| TypeError | "expected X got Y" | Fix type mismatch |
| ValueError | "invalid value" | Validate input |
| RuntimeError | Generic runtime | Debug logic flow |
| NetworkError | Connection/timeout | Check service, increase timeout |
Common Fixes
| Error Pattern | Fix |
|---|---|
NoneType has no attribute |
Add null checks with get() or or |
list index out of range |
Validate index bounds |
division by zero |
Check denominator before division |
connection refused |
Verify service is running |
timeout expired |
Increase timeout or implement retry |
Example Usage
Error: KeyError: 'key' in src/module.py:120
Diagnosis:
1. The code tries to access data["key"] but 'key' doesn't exist
2. Check if the key exists with data.get("key", default_value)
3. Verify the data source provides the expected key
Didn't find tool you were looking for?