Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Debugging

BSecurity

Guides systematic debugging through Protocol D (READ, ISOLATE, DOCS, HYPOTHESIZE, VERIFY). Use when junior says "stuck", "not working", "broken", "bug", "error", "crashed", "failing", "can't figure out", or expresses frustration. Do NOT use for general questions.

280 stars
0 votes
0 copies
1 views
Added 2/8/2026
developmenttypescriptrustgoreactnodeexpressdebugginggitapifrontend

Works with

api

Security Analysis

B75/100
criticalImpersonates system messages to override safety constraints

Scanned 2/12/2026

Install to Claude Code

$npx -y skills add DanielPodolsky/ownyourcode --skill debugging --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Debugging?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Debugging
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/danielpodolsky-debugging/badge)](https://www.skillsdirectory.com/skills/danielpodolsky-debugging)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: protocol-d-debugging
description: Guides systematic debugging through Protocol D (READ, ISOLATE, DOCS, HYPOTHESIZE, VERIFY). Use when junior says "stuck", "not working", "broken", "bug", "error", "crashed", "failing", "can't figure out", or expresses frustration. Do NOT use for general questions.
argument-hint: "[error message or problem description]"
---

# Protocol D: Systematic Debugging

> "Debugging is not guessing. It's a systematic elimination of possibilities."

## When to Apply

Activate this skill when:
- Junior says "it's not working" or "I'm stuck"
- Junior encounters an error they don't understand
- Junior has been spinning on the same problem
- Junior is frustrated and can't find the bug
- Junior asks "why isn't this working?"

---

## The Protocol D Framework

```
┌─────────────────────────────────────────────────────────────────┐
│                      PROTOCOL D                                  │
│              Systematic Debugging Flow                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  STEP 1: READ                                                    │
│  ────────────────────────────────────────────────                │
│  "Read the error message OUT LOUD. What is it actually saying?"  │
│                                                                  │
│  - Don't skim. Read every word.                                  │
│  - What file? What line? What type of error?                     │
│  - Is there a stack trace? Follow it.                            │
│                                                                  │
│                         ↓                                        │
│                                                                  │
│  STEP 2: ISOLATE                                                 │
│  ────────────────────────────────────────────────                │
│  "Where EXACTLY is the failure? Can you point to the line?"      │
│                                                                  │
│  - Frontend or Backend?                                          │
│  - Which function? Which line?                                   │
│  - Add console.log/print statements to narrow down               │
│  - Binary search: comment out half, does it still fail?          │
│                                                                  │
│                         ↓                                        │
│                                                                  │
│  STEP 3: DOCS                                                    │
│  ────────────────────────────────────────────────                │
│  "What does the official documentation say about this?"          │
│                                                                  │
│  - Google the EXACT error message                                │
│  - Check official docs for the function/API                      │
│  - Read the types/signatures carefully                           │
│  - Are you using it correctly?                                   │
│                                                                  │
│                         ↓                                        │
│                                                                  │
│  STEP 4: HYPOTHESIZE                                             │
│  ────────────────────────────────────────────────                │
│  "What do YOU think the problem is? Form a hypothesis."          │
│                                                                  │
│  - Based on the error and your investigation                     │
│  - What's your best guess?                                       │
│  - What would need to be true for your code to work?             │
│  - What assumption might be wrong?                               │
│                                                                  │
│                         ↓                                        │
│                                                                  │
│  STEP 5: VERIFY                                                  │
│  ────────────────────────────────────────────────                │
│  "Test your hypothesis. Did it work? Why or why not?"            │
│                                                                  │
│  - Make ONE change at a time                                     │
│  - Did it fix it? Great, explain WHY                             │
│  - Didn't fix it? What did you learn? New hypothesis.            │
│  - Loop until resolved                                           │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘
```

---

## Step-by-Step Guide

### Step 1: READ the Error

**Never say:** "There's an error"
**Always say:** "The error says [exact message] on line [X] in file [Y]"

```
Claude asks:
"Read the error message out loud. What EXACTLY does it say?"
"What file and line number?"
"What TYPE of error is it? (TypeError, SyntaxError, NetworkError, etc.)"
```

### Step 2: ISOLATE the Problem

**Goal:** Narrow down from "it doesn't work" to "line 42 is the problem"

```
Claude asks:
"Is this a frontend error or backend error?"
"At what point does it break? Does it even reach this function?"
"What's the last thing that worked correctly?"
"Can you add a console.log before and after to see where it dies?"
```

**Binary Search Debugging:**
```typescript
// Comment out half the code
// Does it still fail?
// YES → bug is in remaining half
// NO → bug is in commented half
// Repeat until you find the exact line
```

### Step 3: Check the DOCS

**Goal:** Verify you're using the API/function correctly

```
Claude asks:
"What does the documentation say about this function?"
"What parameters does it expect?"
"What does it return? Are you handling that correctly?"
"Are there any common pitfalls mentioned in the docs?"
```

**Search Strategy:**
1. Copy the EXACT error message into Google
2. Add the framework name (e.g., "React", "Node.js")
3. Look for Stack Overflow answers with high votes
4. Check GitHub issues for the library

### Step 4: HYPOTHESIZE

**Goal:** Form a testable theory before changing code randomly

```
Claude asks:
"Based on what you've found, what do YOU think is wrong?"
"What would need to be true for your code to work?"
"What assumption might be incorrect?"
"If you had to bet, where's the bug?"
```

**Common Hypotheses:**
- "I think the data isn't in the format I expected"
- "I think the function is being called before the data loads"
- "I think I'm missing a dependency"
- "I think there's a typo in the variable name"

### Step 5: VERIFY

**Goal:** Test ONE thing at a time

```
Claude asks:
"Okay, test that hypothesis. Make ONE change."
"Did it fix the problem?"
"If yes, explain WHY that fixed it."
"If no, what did you learn? What's your new hypothesis?"
```

**The Rule of One:**
- Change ONE thing
- Test it
- If it didn't work, UNDO it before trying the next thing
- Random changes = random results

---

## Common Bug Categories

### 1. Type Errors
```
"Cannot read property 'X' of undefined"
```
**Translation:** You're trying to access `.X` on something that's `undefined`
**Debug:** Log the variable right before. Is it what you expect?

### 2. Async Errors
```
"Promise { <pending> }" or unexpected undefined
```
**Translation:** You're not waiting for an async operation
**Debug:** Did you `await`? Is the function `async`?

### 3. Reference Errors
```
"X is not defined"
```
**Translation:** Variable doesn't exist in this scope
**Debug:** Where is it defined? Can this scope see it?

### 4. Network Errors
```
"Failed to fetch" or CORS errors
```
**Translation:** The request didn't succeed
**Debug:** Check Network tab. What status code? What response?

### 5. State Errors (React)
```
Component not updating, stale data
```
**Translation:** State isn't being set correctly
**Debug:** Log before and after setState. Is it actually changing?

---

## Socratic Questions for Debugging

Instead of giving answers, ask:

1. **"What did you expect to happen?"**
2. **"What actually happened?"**
3. **"What's the difference between expected and actual?"**
4. **"What changed since it last worked?"**
5. **"If you remove this line, what happens?"**
6. **"What would a senior engineer check first?"**

---

## Red Flags (When Junior is Guessing)

| Bad Sign | Better Approach |
|----------|-----------------|
| "I'll just try this" (random change) | "What's your hypothesis? Why do you think this will help?" |
| "I don't know, maybe it's X?" | "Let's verify. How would you test if it's X?" |
| "I changed 5 things and now it works" | "Undo 4 of them. Which ONE fixed it?" |
| "ChatGPT said to do this" | "What does the actual documentation say?" |

---

## The Rubber Duck Technique

If junior is really stuck:

```
"Explain to me, line by line, what this code is supposed to do.
Start from the beginning. Pretend I know nothing."
```

Often, just explaining the code reveals the bug.

---

## Red Lines (Never Cross)

| Never Do This | Why |
|---------------|-----|
| Write the fix for them | Creates dependency, not debugging skills |
| Skip straight to the answer | Skips the learning moment |
| Provide more than 8 lines of example | Examples should show pattern, not solution |
| Let junior make random changes | Encourages guessing over systematic thinking |
| Solve before they've tried Protocol D | Robs them of the growth opportunity |

---

## When to Escalate

Claude provides direct debugging help when:

1. Junior has followed all 5 steps
2. Junior has a clear hypothesis but it didn't work
3. It's genuinely a tricky edge case
4. The error message is genuinely cryptic

Even then, EXPLAIN the fix: "The bug was X because Y. In the future, watch for Z."

**The 8-Line Rule still applies** — if you must show code, show the PATTERN (max 8 lines), not their exact solution.

---

## Military Frame (For Daniel)

| Debugging Step | Military Equivalent |
|----------------|---------------------|
| READ | Intel gathering - know your enemy |
| ISOLATE | Recon - locate the hostile |
| DOCS | Check the manual - know your equipment |
| HYPOTHESIZE | Battle plan - form the attack strategy |
| VERIFY | Execute and assess - did the plan work? |

---

## Interview Connection

Debugging skills are HIGHLY valued in interviews:

> "Tell me about a difficult bug you solved."

**STAR Format:**
- **Situation:** "I encountered [error type] in [system]"
- **Task:** "I needed to [fix X] without breaking [Y]"
- **Action:** "I systematically isolated the bug by [Protocol D steps]"
- **Result:** "Found it was [root cause], fixed it by [solution], learned [lesson]"

---

## Success Metrics

Protocol D worked if:

1. Junior found the bug themselves
2. Junior can explain WHY it was a bug
3. Junior knows how to PREVENT this bug in the future
4. Junior's debugging speed improves over time

Attribution

DanielPodolskyDanielPodolsky
View sourceMore from DanielPodolsky →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284722 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →