debug-detective

Debug Detective - Systematic Bug Hunting

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "debug-detective" with this command: npx skills add j0kz/mcp-agents/j0kz-mcp-agents-debug-detective

Debug Detective - Systematic Bug Hunting

🎯 When to Use This Skill

Use when facing ANY bug:

  • Unexpected behavior

  • Crashes or errors

  • Performance issues

  • Intermittent problems

  • "Works on my machine" issues

⚡ Quick Start (Find bugs in 5 steps)

The Universal Debug Protocol:

  • REPRODUCE - Can you make it happen again?

  • ISOLATE - Where exactly is it breaking?

  • UNDERSTAND - Why is it breaking?

  • FIX - Apply minimal solution

  • VERIFY - Confirm fix works

🔍 Step 1: REPRODUCE

WITH MCP Tools:

"Help me create a minimal reproduction for this bug: [describe bug]"

WITHOUT MCP:

Document the exact steps:

echo "=== BUG REPRODUCTION ===" > bug_report.md echo "1. Start the app with: [command]" >> bug_report.md echo "2. Navigate to: [location]" >> bug_report.md echo "3. Perform action: [action]" >> bug_report.md echo "4. Expected: [what should happen]" >> bug_report.md echo "5. Actual: [what actually happens]" >> bug_report.md

Try to reproduce 3 times - is it consistent?

Quick Tests:

Different environments

NODE_ENV=production npm start # Production mode? npm start --debug # Debug mode? docker run ... # Container issue?

Different data

- With empty database

- With large dataset

- With special characters

- With null/undefined values

🎯 Step 2: ISOLATE

WITH MCP (Architecture Analyzer):

"Trace the execution flow for [feature name]" "Find all places where [variable/function] is used"

WITHOUT MCP:

Binary Search Method:

Cut the problem in half repeatedly

1. Add midpoint log

console.log('=== MIDPOINT: Data here:', data);

2. Did error occur before or after?

3. Repeat in that half

Breadcrumb Trail:

// Add numbered checkpoints console.log('🔍 1: Starting process'); console.log('🔍 2: Data loaded:', data); console.log('🔍 3: Processing complete'); console.log('🔍 4: Saving results'); // Where does it stop?

Git Bisect (for regressions):

git bisect start git bisect bad HEAD # Current version is broken git bisect good v1.2.3 # This version worked

Git will help find the breaking commit

🧠 Step 3: UNDERSTAND

WITH MCP (Smart Reviewer):

"Analyze this function for potential issues: [paste code]" "What could cause [error message]?"

WITHOUT MCP:

The 5 Whys Technique:

Problem: App crashes on user login Why? → Authentication fails Why? → Token is invalid Why? → Token expired Why? → Refresh mechanism broken Why? → API endpoint changed Root cause found!

Common Bug Patterns Check:

Race Conditions:

// Look for async without await someAsyncCall(); // Missing await? doSomethingElse(); // This runs immediately!

// Fix: await someAsyncCall(); doSomethingElse();

Off-by-One Errors:

// Check loop boundaries for (let i = 0; i <= array.length; i++) // Should be < not <=

Type Mismatches:

// Check for type coercion issues '1' + 1 === '11'; // String concatenation '1' - 1 === 0; // Number coercion

Null/Undefined:

// Add defensive checks const result = data?.user?.name ?? 'default';

🔧 Step 4: FIX

WITH MCP (Refactor Assistant):

"Fix this bug with minimal changes: [describe issue and paste code]"

WITHOUT MCP:

Minimal Fix Approach:

  • Smallest possible change that fixes the issue

  • Don't refactor while fixing (separate concerns)

  • Add defensive code to prevent recurrence

  • Document the fix with a comment

Fix Template:

// BUG FIX: [Issue description] // Problem: [What was wrong] // Solution: [What this fixes] // Date: [Today's date] // TODO: Consider refactoring in future

// Original problematic code (commented): // if (user.role == 'admin') {

// Fixed code: if (user && user.role === 'admin') { // Added null check and strict equality }

✅ Step 5: VERIFY

WITH MCP (Test Generator):

"Generate a test that verifies this bug is fixed"

WITHOUT MCP:

Verification Checklist:

1. Original bug fixed?

[Run reproduction steps]

2. No new bugs introduced?

npm test npm run lint

3. Edge cases handled?

- Null inputs

- Empty arrays

- Large numbers

- Special characters

4. Performance unchanged?

time npm start # Basic performance check

Regression Test:

// Add a test to prevent this bug from returning describe('Bug #123 - Login crash', () => { it('should handle expired tokens gracefully', () => { const expiredToken = generateExpiredToken(); expect(() => authenticate(expiredToken)).not.toThrow(); expect(authenticate(expiredToken)).toBe(false); }); });

🚨 Emergency Debug Tools

Universal Quick Checks:

Memory Issues:

Node.js

node --inspect app.js # Open chrome://inspect

Python

python -m memory_profiler script.py

Java

jmap -dump:file=heap.bin <pid>

CPU Issues:

Linux/Mac

top -p <pid>

Node.js

node --prof app.js node --prof-process isolate-*.log

Network Issues:

Check requests

curl -v https://api.example.com netstat -an | grep LISTEN tcpdump -i any port 3000

🎯 Debug Strategies by Bug Type

"Works on my machine":

  • Check environment variables

  • Compare dependency versions

  • Check OS-specific code

  • Verify file paths (case sensitivity!)

  • Check timezone/locale differences

Intermittent bugs:

  • Add extensive logging

  • Check race conditions

  • Monitor resource usage

  • Check external dependencies

  • Use stress testing

Performance degradation:

  • Profile before/after

  • Check database queries

  • Look for N+1 problems

  • Check caching

  • Monitor memory leaks

💡 Pro Tips

The Rubber Duck Method:

  1. Explain the bug to a rubber duck (or colleague)
  2. Step through the code line by line
  3. Often, you'll spot the issue while explaining

Fresh Eyes Technique:

After 30 minutes stuck:

git stash # Save work git checkout main # Fresh perspective

Take a 5-minute break

git stash pop # Return with fresh eyes

Sanity Checks:

Is it plugged in?

  • Server running?
  • Database connected?
  • Correct branch?
  • Dependencies installed?
  • Environment variables set?

📝 Debug Log Template

Keep a debug log for complex issues:

Bug: [Description]

Date: [Date] Severity: Critical/High/Medium/Low

Symptoms:

Reproduction:

Hypotheses Tested:

  • Hypothesis 1: [Result]
  • Hypothesis 2: [Result]

Solution:

Lessons Learned:

Remember: Every bug is a learning opportunity! 🐛→📚

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

api-integration

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

dependency-doctor

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

brand-guidelines

No summary provided by upstream source.

Repository SourceNeeds Review