From aide
Executes systematic debugging workflow: reproduce issues, locate code via searches/outlines/symbols, trace execution paths, form/test hypotheses for common errors like undefined or type issues.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aide:debugThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Recommended model tier:** smart (opus) - this skill requires complex reasoning
Recommended model tier: smart (opus) - this skill requires complex reasoning
Systematic approach to identifying and fixing bugs.
Before starting:
Goal: Confirm the bug exists and understand its behavior.
# Run the failing code/test
npm test -- --grep "failing test"
# OR
node path/to/script.js
Document:
If cannot reproduce:
Use tools to find code related to the error:
# Search for function mentioned in stack trace
mcp__plugin_aide_aide__code_search query="functionName" kind="function"
# Get a structural overview of the suspect file (signatures + line ranges)
mcp__plugin_aide_aide__code_outline file="path/to/file.ts"
# Get symbols in suspect file
mcp__plugin_aide_aide__code_symbols file="path/to/file.ts"
# Search for error message text in code
Grep for "error message text"
Follow the code flow from entry to error:
code_outline on each file in the call chain to understand its structurecode_references to find callers of the failing functionRead with offset/limit to read specific functions in the execution path
(use line numbers from the outline)code_search kind="interface"Outlines help you identify which functions matter, so you can read just those sections.
Based on the error type, consider these causes:
| Symptom | Likely Causes |
|---|---|
| "undefined is not a function" | Variable is null/undefined, wrong import |
| "Cannot read property of undefined" | Missing null check, async timing issue |
| "Type error" | Type mismatch, wrong function signature |
| "Maximum call stack" | Infinite recursion, circular reference |
| "Network error" | Bad URL, CORS, timeout, server down |
| "State not updating" | Mutation instead of new object, missing dependency |
Test each hypothesis systematically:
# Add temporary logging
console.log('DEBUG: variable =', JSON.stringify(variable));
# Check with debugger
node --inspect-brk script.js
# Run specific test
npm test -- --grep "test name"
Validation checklist:
Rules:
Common fixes:
# Run the originally failing test/scenario
npm test -- --grep "failing test"
# Run related tests
npm test -- --grep "related feature"
# Run full test suite to check for regressions
npm test
Verification criteria:
| Situation | Action |
|---|---|
| Cannot reproduce | Check environment, add logging to narrow down |
| Multiple bugs intertwined | Fix one at a time, verify after each |
| Fix causes new failures | Revert, analyze dependencies, try different approach |
| Root cause is in dependency | Check for updates, file issue, implement workaround |
| Bug is in async code | Add proper await, check Promise chains |
When abandoning an approach: If you try a fix direction and abandon it (e.g., revert because it causes regressions), record it as an abandoned approach so future sessions don't repeat it:
./.aide/bin/aide memory add --category=abandoned \
--tags=reason:<why>,approach:<what>,project:<name>,session:<id>,source:discovered \
"ABANDONED: <what was tried>. REASON: <why>. ALTERNATIVE: <new direction>. CONTEXT: <details>"
mcp__plugin_aide_aide__code_outline - Start here. Get collapsed file skeleton to understand structure before readingmcp__plugin_aide_aide__code_search - Find functions, classes, types involved in the bugmcp__plugin_aide_aide__code_symbols - List all symbols in a filemcp__plugin_aide_aide__code_references - Find all callers of a functionmcp__plugin_aide_aide__memory_search - Check for related past issues## Debug Report: [Issue Title]
### Problem
[What was happening vs what should happen]
### Reproduction
[Steps to reproduce the issue]
### Root Cause
[Identified cause with file:line reference]
[Why the bug occurred]
### Fix Applied
[What was changed and why]
### Verification
- Original issue: FIXED
- Related tests: PASS
- Full suite: PASS
### Prevention
[Optional: How to prevent similar bugs]
When storing memories from this skill (abandoned approaches, blockers), always:
source: tag — Use source:discovered for things you found, source:inferred for deductionsproject:<name>,session:<id> (get project name from git remote or directory; session ID from $AIDE_SESSION_ID or $CLAUDE_SESSION_ID)memorise skill for the full verification workflow.scope:global unless storing a user preferencenpx claudepluginhub jmylchreest/aide --plugin aideDiagnoses failures, fixes bugs, and investigates failing tests using systematic debugging: reproduce first, read before changing, assume nothing, find root cause.
Performs systematic debugging with 5-step process: reproduce, isolate, identify root cause, fix, and verify issues using Read, Grep, Glob, Bash, Edit tools.
Hunts down and fixes bugs using a systematic debugging process: reproduce, gather evidence, hypothesize, test, find root cause, and implement fix.