skills/debugger/SKILL.md
Advanced debugging specialist for diagnosing and resolving code issues. Use when user encounters bugs, errors, unexpected behavior, or mentions debugging.
npx skillsauth add charon-fan/agent-playbook debuggerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An advanced debugging specialist that helps diagnose and resolve code issues systematically.
Activates when you:
Reproduce the issue
Gather context
# Check recent changes
git log --oneline -10
# Check error logs
tail -f logs/error.log
# Check environment
env | grep -i debug
Locate the error source
Narrow down scope
| Category | Symptoms | Investigation Steps | |----------|----------|---------------------| | Null/Undefined | "Cannot read X of undefined" | Trace the variable origin | | Type Errors | "X is not a function" | Check actual vs expected type | | Async Issues | Race conditions, timing | Check promise handling, async/await | | State Issues | Stale data, wrong state | Trace state mutations | | Network | Timeouts, connection refused | Check endpoints, CORS, auth | | Environment | Works locally, not in prod | Compare env vars, versions | | Memory | Leaks, OOM | Profile memory usage | | Concurrency | Deadlocks, race conditions | Check locks, shared state |
For each potential cause:
# Find recently modified files
find . -type f -mtime -1 -name "*.js" -o -name "*.ts" -o -name "*.py"
# Grep for error patterns
grep -r "ERROR\|FATAL\|Exception" logs/
# Search for suspicious patterns
grep -r "TODO\|FIXME\|XXX" src/
# Check for console.log left in code
grep -r "console\.log\|debugger" src/
JavaScript/TypeScript:
# Run with debug output
NODE_DEBUG=* node app.js
# Check syntax
node -c file.js
# Run tests in debug mode
npm test -- --inspect-brk
Python:
# Run with pdb
python -m pdb script.py
# Check syntax
python -m py_compile script.py
# Verbose mode
python -v script.py
Go:
# Race detection
go run -race main.go
# Debug build
go build -gcflags="-N -l"
# Profile
go test -cpuprofile=cpu.prof
# When you don't know where the bug is:
def process():
step1()
step2()
step3()
step4()
# Comment out half:
def process():
step1()
# step2()
# step3()
# step4()
# If bug disappears, uncomment half of commented:
def process():
step1()
step2()
# step3()
# step4()
# Continue until you isolate the bug
// Before (mysterious failure):
async function getUser(id: string) {
const user = await db.find(id);
return transform(user);
}
// After (with logging):
async function getUser(id: string) {
console.log('[DEBUG] getUser called with id:', id);
const user = await db.find(id);
console.log('[DEBUG] db.find returned:', user);
const result = transform(user);
console.log('[DEBUG] transform returned:', result);
return result;
}
// Complex code with bug:
function processBatch(items, options) {
// 100 lines of complex logic
}
// Create minimal reproduction:
function processBatch(items, options) {
console.log('Items:', items.length);
console.log('Options:', options);
// Test with minimal data
return processBatch([items[0]], options);
}
| Error | Likely Cause | Solution |
|-------|--------------|----------|
| Cannot read property 'X' of undefined | Accessing property on null/undefined | Add null check, use optional chaining |
| X is not a function | Wrong type, shadowing | Check typeof, verify import |
| Unexpected token | Syntax error | Check line before error, validate syntax |
| Module not found | Import path wrong | Check relative path, verify file exists |
| EADDRINUSE | Port already in use | Kill existing process, use different port |
| Connection refused | Service not running | Start service, check port |
| Timeout | Request too slow | Increase timeout, check network |
Generate a debug report:
python scripts/debug_report.py <error-message>
references/checklist.md - Debugging checklistreferences/patterns.md - Common debugging patternsreferences/errors.md - Error message referencedata-ai
Automatically coordinates multi-skill workflows and triggers follow-up actions. Use when completing PRD creation, implementation, or any milestone that should trigger additional skills. This skill reads the auto-trigger configuration and executes the workflow chain.
development
Intelligently routes user requests to the most appropriate Claude Code skill. ALWAYS use this skill FIRST when user asks for help, mentions "skill", "which", "how to", or seems unsure about which approach to take. This is the default entry point for all skill-related requests.
tools
Saves conversation history to session log files. Use when user says "保存对话", "保存对话信息", "记录会话", "save session", or "save conversation". Automatically creates timestamped session log in sessions/ directory.
development
A universal self-improving agent that learns from ALL skill experiences. Uses multi-memory architecture (semantic + episodic + working) to continuously evolve the codebase. Auto-triggers on skill completion/error with hooks-based self-correction.