error-debugger
ClaudeSkillz: For when you need skills, but lazier
npx skills add https://github.com/jackspace/claudeskillz --skill error-debuggerSKILL.md
Error Debugger
Purpose
Context-aware debugging that learns from past solutions. When an error occurs:
- Searches memory for similar past errors
- Analyzes error message and stack trace
- Provides immediate fix with code examples
- Creates regression test via testing-builder
- Saves solution to memory for future
For ADHD users: Eliminates debugging frustration - instant, actionable fixes. For SDAM users: Recalls past solutions you've already found. For all users: Gets smarter over time as it learns from your codebase.
Activation Triggers
- User says: "debug this", "fix this error", "why is this failing"
- Error messages containing: TypeError, ReferenceError, SyntaxError, ECONNREFUSED, CORS, 404, 500, etc.
- Stack traces pasted into conversation
- "Something's broken" or similar expressions
Core Workflow
1. Parse Error
Extract key information:
{
error_type: "TypeError|ReferenceError|ECONNREFUSED|...",
message: "Cannot read property 'map' of undefined",
stack_trace: [...],
file: "src/components/UserList.jsx",
line: 42,
context: "Rendering user list"
}
2. Search Past Solutions
Query context-manager:
search memories for:
- error_type match
- similar message (fuzzy match)
- same file/component if available
- related tags (if previously tagged)
If match found:
š Found similar past error!
š 3 months ago: TypeError in UserList component
ā
Solution: Added null check before map
ā±ļø Fixed in: 5 minutes
š Memory: procedures/{uuid}.md
Applying the same solution...
If no match:
š New error - analyzing...
(Will save solution after fix)
3. Analyze Error
See reference.md for comprehensive error pattern library.
Quick common patterns:
- TypeError: Cannot read property 'X' of undefined ā Optional chaining + defaults
- ECONNREFUSED ā Check service running, verify ports
- CORS errors ā Configure CORS headers
- 404 Not Found ā Verify route definition
- 500 Internal Server Error ā Check server logs
4. Provide Fix
Format:
š§ Error Analysis
**Type**: {error_type}
**Location**: {file}:{line}
**Cause**: {root_cause_explanation}
**Fix**:
```javascript
// ā Current code
const users = data.users;
return users.map(user => <div>{user.name}</div>);
// ā
Fixed code
const users = data?.users || [];
return users.map(user => <div>{user.name}</div>);
Explanation: Added optional chaining and default empty array to handle case where data or data.users is undefined.
Prevention: Always validate API response structure before using.
Next steps:
- Apply the fix
- Test manually
- I'll create a regression test
### 5. Save Solution
After fix confirmed working:
```bash
# Save to context-manager as PROCEDURE
remember: Fix for TypeError in map operations
Type: PROCEDURE
Tags: error, typescript, array-operations
Content: When getting "Cannot read property 'map' of undefined",
add optional chaining and default empty array:
data?.users || []
Memory structure:
# PROCEDURE: Fix TypeError in map operations
**Error Type**: TypeError
**Message Pattern**: Cannot read property 'map' of undefined
**Context**: Array operations on potentially undefined data
## Solution
Use optional chaining and default values:
```javascript
// Before
const items = data.items;
return items.map(...)
// After
const items = data?.items || [];
return items.map(...)
When to Apply
- API responses that might be undefined
- Props that might not be passed
- Array operations on uncertain data
Tested
ā Fixed in UserList component (2025-10-17) ā Regression test: tests/components/UserList.test.jsx
Tags
error, typescript, array-operations, undefined-handling
### 6. Create Regression Test
Automatically invoke testing-builder:
create regression test for this fix:
- Test that component handles undefined data
- Test that component handles empty array
- Test that component works with valid data
## Tool Persistence Pattern (Meta-Learning)
**Critical principle from self-analysis**: Never give up on first obstacle. Try 3 approaches before abandoning a solution path.
### Debugging Tools Hierarchy
When debugging an error, try these tools in sequence:
**1. Search Past Solutions (context-manager)**
```bash
# First approach: Check memory
search memories for error pattern
If no past solution found ā Continue to next approach
2. GitHub Copilot CLI Search
# Second approach: Search public issues
copilot "Search GitHub for solutions to: $ERROR_MESSAGE"
If Copilot doesn't find good results ā Continue to next approach
3. Web Search with Current Context
# Third approach: Real-time web search
[Use web search for latest Stack Overflow solutions]
If web search fails ā Then ask user for more context
Real Example from Meta-Analysis
What happened: Tried GitHub MCP ā Got a
...