๐ Advanced Debugging System
A systematic, hypothesis-driven debugging approach with automatic instrumentation and isolated testing capabilities.
Quick Reference
| Task | Command |
|------|---------|
| Instrument file | Run scripts/instrument.ts <file> |
| Analyze logs | Run scripts/analyze-logs.ts <logfile> |
| Create worktree | Run scripts/worktree.ts create <name> |
| Cleanup worktree | Run scripts/worktree.ts cleanup <name> |
| Generate hypothesis report | Follow "Hypothesis Generation" section |
Core Methodology
Phase 0: Hypothesis Generation (MANDATORY FIRST STEP)
NEVER attempt fixes before generating at least 3 hypotheses.
## ๐ฎ Bug Hypotheses
### Hypothesis 1: [Name] - Probability: [High/Medium/Low]
- **Suspected Cause**: [specific description]
- **Evidence Needed**: [what logs/tests to add]
- **Verification Method**: [how to confirm]
### Hypothesis 2: [Name] - Probability: [High/Medium/Low]
- **Suspected Cause**: [specific description]
- **Evidence Needed**: [what logs/tests to add]
- **Verification Method**: [how to confirm]
### Hypothesis 3: [Name] - Probability: [High/Medium/Low]
- **Suspected Cause**: [specific description]
- **Evidence Needed**: [what logs/tests to add]
- **Verification Method**: [how to confirm]
Phase 1: Information Gathering
- Read the full error - Extract error type, message, stack trace
- Identify error category:
TYPE_ERROR- TypeScript/type issuesRUNTIME_ERROR- Execution failuresNETWORK_ERROR- API/fetch issuesDATABASE_ERROR- Prisma/SQL issuesBUILD_ERROR- Compilation/bundle issuesSTATE_ERROR- React state/hydration issues
Phase 2: Stack Trace Analysis
Error Analysis Template:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ERROR: [error message] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Type: [error type] โ
โ First Project File: [file:line] โ
โ Call Chain: fn1 โ fn2 โ fn3 โ
โ Suspected Origin: [description] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Phase 3: Automatic Instrumentation
See INSTRUMENTATION.md for detailed patterns.
Quick instrumentation markers:
// ๐ DEBUG markers for easy identification and cleanup
console.log('๐ DEBUG [LOCATION]:', { timestamp: new Date().toISOString(), /* context */ });
Cleanup pattern:
grep -rn "๐ DEBUG" --include="*.ts" --include="*.tsx" src/
Phase 4: Isolated Testing with Git Worktrees
For complex bugs, test hypotheses in parallel:
# Create isolated environment
git worktree add ../debug-hypothesis-1 -b debug/h1-[description]
# After finding solution
git worktree remove ../debug-hypothesis-1
git branch -D debug/h1-[description]
See WORKTREES.md for multi-hypothesis workflows.
Phase 5: Fix-Verify-Document Cycle
- Minimal Fix: Change only what's necessary
- Verify: Reproduce original scenario
- Regression Test: Ensure no side effects
- Document: Comment non-obvious fixes
Error Pattern Quick Reference
See references/ERROR_PATTERNS.md for comprehensive patterns.
Common Next.js Patterns
| Error | Likely Cause | Quick Fix |
|-------|--------------|-----------|
| Hydration mismatch | Server/client content differs | Add suppressHydrationWarning or fix data |
| Cannot read property of undefined | Missing null check | Add optional chaining ?. |
| Module not found | Import path issue | Check tsconfig paths |
| NEXT_REDIRECT | Redirect in wrong context | Use redirect() only in Server Components |
Common Prisma Patterns
| Error | Likely Cause | Quick Fix |
|-------|--------------|-----------|
| P2002 | Unique constraint violation | Check existing data |
| P2025 | Record not found | Verify ID exists |
| Connection refused | DB not running | Check DATABASE_URL |
Feedback Loop Integration
For UI bugs, use browser automation:
// Playwright verification loop
{
action: 'navigate', url: 'http://localhost:3000/[page]'
}
{
action: 'console_messages', errorsOnly: true
}
{
action: 'screenshot', fullPage: true
}
Output Template
When resolving a bug, ALWAYS provide:
## ๐ Debug Report
### ๐ด Problem Identified
[Clear description of the bug]
### ๐ Root Cause
[Main cause with evidence]
### โ
Solution Applied
[Fix with explanation]
### ๐งช Verification
[How to confirm fix works]
### ๐ก๏ธ Prevention
[How to avoid in future]
Escalation Criteria
If after systematic analysis no solution is found:
- Summarize attempts made
- List remaining hypotheses
- Suggest next investigative steps
- Request additional context
Safety Constraints
- โ NO production data modification without confirmation
- โ NO destructive commands (
rm -rf,DROP DATABASE) without confirmation - โ NO ignoring warnings that indicate future problems
- โ ALWAYS ask confirmation for invasive fixes