debugging-strategies

Diagnose bugs and performance issues using systematic debugging workflows and profiling tools.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/SanketAdlak/PDMProjectDesign --skill debugging-strategies-sanketadlak
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: debugging-strategies
Source: https://github.com/SanketAdlak/PDMProjectDesign/tree/main/.agents/skills/debugging-strategies
Command: npx skills add https://github.com/SanketAdlak/PDMProjectDesign --skill debugging-strategies-sanketadlak

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Debugging often devolves into guesswork and random code changes. This Skill provides a structured, scientific-method-based process for reproducing bugs, forming hypotheses, and isolating root causes across any language or stack. ## Core Features & Use Cases - Systematic Debugging Process: Four-phase workflow covering reproduction, information gathering, hypothesis formation, and verification. - Language-Specific Tooling: Ready-to-use debugger configurations and profiling snippets for JavaScript/TypeScript, Python, and Go. - Advanced Techniques: Git bisect, differential debugging, trace decorators, and memory leak detection patterns. - Use Case: When a production API intermittently returns 500 errors, follow the reproduction checklist, gather logs and environment details, then use binary search or git bisect to isolate the faulty commit. ## Quick Start Help me systematically debug an intermittent race condition in my Node.js order processing service.

Frequently Asked Questions about debugging-strategies

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug intermittent or flaky bugs?

Intermittent bugs require extensive logging of timing, state transitions, and external interactions. Look for race conditions in concurrent code, check async ordering, and stress test by running the scenario many times under varied load and timing.

How to find which commit introduced a bug with git?

Use git bisect to binary search commit history. Mark the current commit as bad and a known working commit as good, then test each checked-out midpoint, marking it good or bad until git identifies the exact faulty commit.

What tools can I use to debug Python performance issues?

Use cProfile with pstats to profile Python code and identify the slowest functions by cumulative time. For interactive debugging, use breakpoint() or ipdb, and add structured logging to trace execution flow.

How do I detect memory leaks in Node.js applications?

Monitor process.memoryUsage() for growing heap usage and generate heap snapshots with v8.writeHeapSnapshot(). In Chrome DevTools, compare heap snapshots before and after actions to find retained objects that should have been freed.

When should I use a debugger instead of console.log?

Use a debugger when you need to inspect complex state, step through execution, or set conditional breakpoints without modifying code. Console logging works for quick traces but becomes unwieldy for deep call stacks or timing-sensitive issues.