Engineering DebuggingDevToolsRoot Cause Analysis

Debugger

Systematic debugging: root cause analysis techniques, debugger configurations (VS Code, Chrome DevTools), logging strategies, memory leak detection, and race conditions.

A systematic debugging expert who applies hypothesis-driven root cause analysis to intermittent bugs, race conditions, and memory leaks across Node.js, Python, Go, and browser JavaScript. Configures VS Code launch.json for local debugging, instruments code with structured logging, and uses Chrome DevTools for profiling and heap snapshots.

Added Mar 20, 2026

$npx skills add johnefemer/skillfish --skill debugger

What This Skill Can Do

Concrete capabilities you get when you install this skill.

Apply five-whys and hypothesis-driven techniques to find root causes, not symptoms

Configure VS Code launch.json for Node.js, Python, and Go debugging sessions

Use Chrome DevTools for performance profiling, heap snapshots, and network analysis

Instrument code with structured logging to make production bugs reproducible

Detect and fix race conditions using thread sanitizers and async sequence diagrams

Identify memory leaks in Node.js and browser apps using heap snapshot comparisons

Real Conversations

See how the Debugger skill responds to actual requests. These are representative examples of what your AI agent will produce.

You

We're getting a 500 error in production about once every 2 hours. The logs show 'Cannot read properties of undefined (reading map)' but only in one endpoint. It's not reproducible locally. How do I debug this?

Agent

Intermittent undefined errors are almost always a race condition or missing null guard on async data. Debug systematically:

1. Find the exact line (if not in the stack trace): Ensure your production error includes a stack trace. If not, enable source maps:

// Node.js — catch unhandled rejections with stack trace
process.on('unhandledRejection', (reason) => {
  logger.error({ err: reason, stack: (reason as Error).stack }, 'Unhandled rejection');
});

2. Instrument the failing endpoint with defensive logging:

// Before the .map() call:
if (!data || !Array.isArray(data.items)) {
  logger.warn({ data, requestId, endpoint: '/orders' }, 'items was not array — unexpected shape');
  return []; // or throw a descriptive error
}
const mapped = data.items.map(transformItem);

3. Log the incoming data shape when it fails:

try {
  return data.items.map(transformItem);
} catch (e) {
  logger.error({ data: JSON.stringify(data).slice(0, 500), error: e.message }, 'map failed');
  throw e;
}

4. Likely root causes for "once every 2 hours":

  • External API returns a different shape on errors (pagination API returns { error: "..." } instead of { items: [] })
  • Caching layer returns a different object structure on cache miss
  • Race condition where two requests share mutable state

Deploy the logging, reproduce once, then look at what data contained when it failed. That reveals the root cause.

Get Started

How to install and use this skill in your preferred environment.

Skills are designed for AI coding agents (Claude Code, Cursor, Windsurf) and IDE-based workflows where the agent can read files, run scripts, and act on your codebase.

Models & Context

Which AI models and context windows work best with this skill.

Recommended Models

Claude Sonnet 4 or GPT-4o for multi-step reasoning through complex bugs. For language-specific debugger configuration, verify launch.json syntax against current VS Code docs.

Context Window

SKILL.md ~4KB. Debugging sessions with large log dumps or multiple source files benefit from 64K+ context.

Pro tips for best results

1

Be specific

Include numbers — users, budget, RPS — so the skill can size the architecture.

2

Share constraints

Compliance needs, team size, and existing stack all improve the output.

3

Iterate

Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.

4

Combine skills

Pair with companion skills below for end-to-end coverage.

Works Great With

These skills complement Debugger for end-to-end coverage. Install them together for better results.

$ skillfish add johnefemer/skillfish --all # install all skills at once

Ready to try Debugger?

Install the skill and start getting expert-level guidance in your workflow — any agent, any IDE.

$npx skills add johnefemer/skillfish --skill debugger
← Browse all skills