Error Resolver
A first-principle approach to diagnosing and resolving errors across all languages and frameworks.
Core Philosophy
The 5-step Error Resolution Process:
1. CLASSIFY -> 2. PARSE -> 3. MATCH -> 4. ANALYZE -> 5. RESOLVE
| | | | |
What type? Extract key Known Root cause Fix +
information pattern? analysis Prevent
Quick Start
When you encounter an error:
- •Paste the full error (including stack trace if available)
- •Provide context (what were you trying to do?)
- •Share relevant code (the file/function involved)
Error Classification Framework
Primary Categories
| Category | Indicators | Common Causes |
|---|---|---|
| Syntax | Parse error, Unexpected token | Typos, missing brackets, invalid syntax |
| Type | TypeError, type mismatch | Wrong data type, null/undefined access |
| Reference | ReferenceError, NameError | Undefined variable, scope issues |
| Runtime | RuntimeError, Exception | Logic errors, invalid operations |
| Network | ECONNREFUSED, timeout, 4xx/5xx | Connection issues, wrong URL, server down |
| Permission | EACCES, PermissionError | File/directory access, sudo needed |
| Dependency | ModuleNotFound, Cannot find module | Missing package, version mismatch |
| Configuration | Config error, env missing | Wrong settings, missing env vars |
| Database | Connection refused, query error | DB down, wrong credentials, bad query |
| Memory | OOM, heap out of memory | Memory leak, large data processing |
Secondary Attributes
- •Severity: Fatal / Error / Warning / Info
- •Scope: Build-time / Runtime / Test-time
- •Origin: User code / Framework / Third-party / System
Analysis Workflow
Step 1: Classify
Identify the error category by examining:
- •Error name/code (e.g.,
ENOENT,TypeError) - •Error message keywords
- •Where it occurred (compile, runtime, test)
Step 2: Parse
Extract key information:
- Error code: [specific code if any] - File path: [where the error originated] - Line number: [exact line if available] - Function/method: [context of the error] - Variable/value: [what was involved] - Stack trace depth: [how deep is the call stack]
Step 3: Match Patterns
Check against known error patterns:
- •See
patterns/directory for language-specific patterns - •Match error signatures to known solutions
- •Check replay history for previous solutions
Step 4: Root Cause Analysis
Apply the 5 Whys technique:
Error: Cannot read property 'name' of undefined Why 1? -> user object is undefined Why 2? -> API call returned null Why 3? -> User ID doesn't exist in database Why 4? -> ID was from stale cache Why 5? -> Cache invalidation not implemented Root Cause: Missing cache invalidation logic
Step 5: Resolve
Generate actionable solution:
- •Immediate fix - Get it working now
- •Proper fix - The right way to solve it
- •Prevention - How to avoid in the future
Output Format
When resolving an error, provide:
## Error Diagnosis **Classification**: [Category] / [Severity] / [Scope] **Error Signature**: - Code: [error code] - Type: [error type] - Location: [file:line] ## Root Cause [Explanation of why this error occurred] **Contributing Factors**: 1. [Factor 1] 2. [Factor 2] ## Solution ### Immediate Fix [Quick steps to resolve] ### Code Change [Specific code to add/modify] ### Verification [How to verify the fix works] ## Prevention [How to prevent this error in the future] ## Replay Tag [Unique identifier for this solution - for future reference]
Replay System
The replay system records successful solutions for future reference.
Recording a Solution
After resolving an error, record it:
# Create solution record in project mkdir -p .claude/error-solutions # Solution file format: [error-type]-[hash].yaml
Solution Record Format
# .claude/error-solutions/[error-signature].yaml
id: "nodejs-module-not-found-express"
created: "2024-01-15T10:30:00Z"
updated: "2024-01-20T14:22:00Z"
error:
type: "dependency"
category: "ModuleNotFound"
language: "nodejs"
pattern: "Cannot find module 'express'"
context: "npm project, missing dependency"
diagnosis:
root_cause: "Package not installed or node_modules corrupted"
factors:
- "Missing npm install after git clone"
- "Corrupted node_modules directory"
- "Package not in package.json"
solution:
immediate:
- "Run: npm install express"
proper:
- "Check package.json has express listed"
- "Run: rm -rf node_modules && npm install"
code_change: null
verification:
- "Run the application again"
- "Check express is in node_modules"
prevention:
- "Add npm install to project setup docs"
- "Use npm ci in CI/CD pipelines"
metadata:
occurrences: 5
last_resolved: "2024-01-20T14:22:00Z"
success_rate: 1.0
tags: ["nodejs", "npm", "dependency"]
Replay Lookup
When encountering an error:
- •Generate error signature from the error message
- •Search
.claude/error-solutions/for matching patterns - •If found, apply the recorded solution
- •If new, proceed with full analysis and record the solution
Error Signature Generation
signature = hash( error_type + error_code + normalized_message + # remove specific values language + framework )
Example transformations:
- •
Cannot find module 'express'->Cannot find module '{module}' - •
TypeError: Cannot read property 'name' of undefined->TypeError: Cannot read property '{prop}' of undefined
Debug Commands
Useful commands during debugging:
Node.js
# Verbose error output NODE_DEBUG=* node app.js # Memory debugging node --inspect app.js # Check installed packages npm ls [package-name] # Verify package.json npm ls --depth=0
Python
# Debug mode python -m pdb script.py # Check installed packages pip show [package-name] pip list
General
# Check file permissions ls -la [file] # Check port usage lsof -i :[port] netstat -an | grep [port] # Check environment variables env | grep [VAR_NAME] printenv [VAR_NAME] # Check disk space df -h # Check memory free -m # Linux vm_stat # macOS
Common Debugging Patterns
Pattern 1: Binary Search
When the error location is unclear:
- •Comment out half the code
- •If error persists, it's in the remaining half
- •Repeat until you find the exact line
Pattern 2: Minimal Reproduction
Create the smallest code that reproduces the error:
- •Start with empty file
- •Add code piece by piece
- •Stop when error appears
- •That's your minimal repro case
Pattern 3: Rubber Duck Debugging
Explain the problem out loud (or to Claude):
- •What should happen?
- •What actually happens?
- •What changed recently?
- •What assumptions am I making?
Pattern 4: Git Bisect
Find which commit introduced the bug:
git bisect start git bisect bad # current commit is bad git bisect good [last-known-good-commit] # Git will checkout commits for you to test git bisect good/bad # mark each as good or bad git bisect reset # when done
Reference Files
- •
patterns/ - Language-specific error patterns
- •
nodejs.md- Node.js common errors - •
python.md- Python common errors - •
react.md- React/Next.js errors - •
database.md- Database errors - •
docker.md- Docker/container errors - •
git.md- Git errors - •
network.md- Network/API errors
- •
- •
analysis/ - Analysis methodologies
- •
stack-trace.md- Stack trace parsing guide - •
root-cause.md- Root cause analysis techniques
- •
- •
replay/ - Replay system
- •
solution-template.yaml- Template for recording solutions
- •