Analyzes errors, searches past solutions in memory, provides immediate fixes with code examples, and saves solutions for future reference...
Context-aware debugging that learns from past solutions. When an error occurs:
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.
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"
}
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)
See reference.md for comprehensive error pattern library.
Quick common patterns:
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:
### 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(...)
✅ Fixed in UserList component (2025-10-17) ✅ Regression test: tests/components/UserList.test.jsx
error, typescript, array-operations, undefined-handling
### 6. Create Regression Test
Automatically invoke testing-builder:
create regression test for this fix:
## 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
What happened: Tried GitHub MCP → Got auth error → Immediately gave up
What should have happened:
gh CLI → Check if authenticatedOutcome: The gh CLI WAS authenticated and worked perfectly. We gave up too early.
When fixing an error:
// Pattern: Try 3 fix approaches
async function debugError(error) {
// Approach 1: Past solution
const pastFix = await searchMemories(error);
if (pastFix?.success_rate > 80%) {
return applyPastFix(pastFix);
}
// Approach 2: Pattern matching
const commonFix = matchErrorPattern(error);
if (commonFix) {
return applyCommonFix(commonFix);
}
// Approach 3: External search (Copilot/Web)
const externalSolution = await searchExternalSolutions(error);
if (externalSolution) {
return applyExternalSolution(externalSolution);
}
// Only NOW ask for more context
return askUserForMoreContext(error);
}
When integrations are available, use them in this order:
For Error Search:
For Solutions:
Track debugging approach success:
{
"error_id": "uuid",
"approaches_tried": [
{"type": "memory_search", "result": "no_match"},
{"type": "copilot_search", "result": "success", "time": "5s"},
{"type": "applied_fix", "verified": true}
],
"total_time": "30s",
"lesson": "Copilot found solution on second try"
}
Key insight: Most "failed" approaches are actually "didn't try enough" approaches.
Before analyzing new error:
// Search context-manager
const pastSolutions = searchMemories({
type: 'PROCEDURE',
tags: [errorType, language, framework],
content: errorMessage,
fuzzyMatch: true
});
if (pastSolutions.length > 0) {
// Show user the past solution
// Ask if they want to apply it
// If yes, apply and test
// If no, analyze fresh
}
Track which solutions work:
{
solution_id: "uuid",
error_pattern: "TypeError.*map.*undefined",
times_applied: 5,
success_rate: 100%,
last_used: "2025-10-15",
avg_fix_time: "2 minutes"
}
Sort solutions by success rate when multiple matches found.
Some errors are project-specific:
// BOOSTBOX-specific
Error: "Boost ID not found"
→ Solution: Check boost exists before processing
// Tool Hub-specific
Error: "Tool not installed"
→ Solution: Run tool installer first
// Save these as PROJECT-specific procedures
After providing fix:
Automatically invoke: testing-builder
Create regression test for: {error_scenario}
Ensure test fails without fix, passes with fix
Query for similar errors:
search memories for:
- PROCEDURE type
- Error tag
- Similar message
- Same file/component
Save new solutions:
Save as PROCEDURE:
- Error pattern
- Solution
- Code examples
- Tested timestamp
For complex fixes:
If fix requires significant refactoring:
→ Invoke rapid-prototyper
→ Create isolated example showing fix
→ User validates before applying to codebase
| Error | Quick Fix |
|---|---|
undefined.map |
`data?.array |
X is not a function |
Check function exists |
ECONNREFUSED |
Check service running |
CORS |
Configure CORS headers |
404 |
Verify route exists |
500 |
Check server logs |
Timeout |
Increase timeout value |
Cannot find module |
Install dependency |
~/.claude-memories/procedures/ (Linux/macOS) or %USERPROFILE%\.claude-memories\procedures\ (Windows)✅ Common errors fixed instantly (<30 seconds) ✅ Past solutions automatically recalled ✅ All fixes include code examples ✅ Regression tests created automatically ✅ Solutions saved for future reference ✅ Debugging gets faster over time