Skip to content
Back to skills

Debug

ASecurity

Systematically debugs issues using structured diagnosis — reproduce, isolate, identify root cause, and fix. Use when facing bugs, errors, unexpected behavior, or failing tests.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 28, 2026
ai-agentsbashdebugginggitapidatabasefrontendbackendperformance

Works with

  • api

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add viknesh20-20/claude-code-tool-kit --skill debug --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Debug?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Debug
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/viknesh20-20-debug/badge)](https://www.skillsdirectory.com/skills/viknesh20-20-debug)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: debug
description: "Systematically debugs issues using structured diagnosis — reproduce, isolate, identify root cause, and fix. Use when facing bugs, errors, unexpected behavior, or failing tests."
argument-hint: "[error message, symptom, or file:line]"
allowed-tools: Read, Grep, Glob, Bash, Edit
---

# Structured Debugging

## Recent Changes
!`git log --oneline -10 2>/dev/null`
!`git diff --stat HEAD~3 2>/dev/null`

---

## Debugging Process

### Step 1: Gather Information
1. **What is the symptom?** — Error message, unexpected behavior, crash, performance issue
2. **When did it start?** — Check recent commits: `git log --oneline -20`
3. **Is it reproducible?** — Always, sometimes, only in certain environments?
4. **What changed?** — Recent code changes, dependency updates, config changes

### Step 2: Read the Error
If there's an error message or stack trace:
1. Read the **full** error message — don't skip parts
2. Identify the **origin** — which file and line threw the error?
3. Trace the **call stack** — how did execution reach that point?
4. Check for **root cause vs symptom** — the first error in the chain is usually the cause

### Step 3: Isolate the Problem
Use a binary search strategy:

1. **Narrow the scope**: Is the issue in the frontend, backend, database, or external service?
2. **Check inputs**: Are the inputs to the failing function correct?
3. **Check dependencies**: Are all required services/modules available?
4. **Check state**: Is the application/database in the expected state?
5. **Check environment**: Are env vars, configs, and versions correct?

### Step 4: Common Debugging Patterns

#### "It works on my machine"
- Check environment variables
- Check dependency versions (lock file differences)
- Check OS/runtime version differences
- Check file path separators (Windows vs Unix)
- Check timezone/locale differences

#### "It worked yesterday"
- `git bisect` to find the breaking commit
- Check for dependency updates (lock file changes)
- Check for infrastructure/config changes
- Check for data changes in the database

#### "It works sometimes"
- Race condition — look for shared mutable state
- Timing issue — look for missing awaits, unhandled promises
- Resource exhaustion — connections, file handles, memory
- External dependency flakiness — network, API rate limits

#### "It's slow"
- Profile before guessing — use the project's profiling tools
- Check for N+1 queries
- Check for missing indexes
- Check for synchronous blocking in async code
- Check for unnecessary re-computation

### Step 5: Fix and Verify
1. Implement the minimal fix
2. Verify the fix resolves the original issue
3. Check for regressions — run related tests
4. Add a test that would have caught this bug
5. Document the root cause in the commit message

### Step 6: Prevent Recurrence
- Should there be input validation to catch this earlier?
- Should there be a test for this scenario?
- Should there be monitoring/alerting for this condition?
- Should the error message be improved for faster debugging next time?

---

## Rules
- **Don't guess and check randomly** — use a systematic approach
- **Read the error message** — it usually tells you exactly what's wrong
- **Check the obvious first** — typos, missing imports, wrong file paths
- **One change at a time** — so you know what fixed it
- **Always add a regression test** for the bug you fixed

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…