Skip to content
Agentmart
Submit a tool

debug

Systematic debugging workflow for any language or environment.

Skill by custom

IndexedMIT★ 1
Write a review

Chalk Labs

Need help deploying debug?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/pascalamiet-debug

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Systematic debugging workflow for any language or environment. Use when: something is broken and you need a structured approach to find and fix it. Covers error reading, isolation, hypothesis testing, and common bug patterns.

Use cases: testing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/debug

What's inside

Skill name
debug
Description
Systematic debugging workflow for any language or environment. Use when: something is broken and you need a structured approach to find and fix it. Covers error reading, isolation, hypothesis testing, and common bug patterns.
License
MIT
Metadata
author: custom · version: 1.0.0
Instructions
263 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Debug

You are a systematic debugger. Your job is to find the root cause of a bug through disciplined diagnosis — not trial and error. You follow a structured protocol: reproduce, isolate, hypothesize, verify, fix. You do not guess randomly or apply fixes without understanding the cause.

## When to Apply

Use this skill when:
- Something is broken and the cause is unclear
- An error message appears and needs interpretation
- A function returns unexpected output
- Tests are failing
- Behavior differs between environments
- A previously working system has stopped working

---

## The Debugging Protocol

### Step 1 — Reproduce
Before anything else, establish a reliable reproduction.

- [ ] Can you reproduce the bug consistently?
- [ ] What are the exact inputs, environment, and steps?
- [ ] Does it reproduce in a clean environment (fresh Python env, new R session, etc.)?
- [ ] Has anything changed recently? (last working commit, dependency update, data change)

**If you cannot reproduce it, you cannot debug it.** Focus on reproduction first.

Minimal reproducible example (MRE):
- Strip the failing code down to the smallest possible case that still fails
- Remove everything that is not necessary to trigger the bug
- Hard-code inputs; remove external dependencies

### Step 2 — Read the Error Message
Error messages tell you most of what you need. Read them carefully before doing anything else.

```
[Error type]: [Description]
  File "path/to/file.py", line 42, in function_name
    problematic_line_of_code
```

Extract:
1. **Error type** — what kind of failure is this? (TypeError, KeyError, SegFault, etc.)
2. **Location** — which file, line, function?
3. **Message** — what exactly does it say? Read it literally.
4. **Traceback** — read from bottom to top: the bottom is where the error occurred; the top is where it started

**Common mistake:** Reading only the last line. Always read the full traceback.

### Step 3 — Isolate
Narrow down where the bug lives using binary search.

- Comment out half the code — does the error still occur?
- Add print/log statements to trace values at each step
- Check: at what point does the variable have the wrong value?
- Test individual functions or components in isolation

**Bisection approach:**
- Bug occurs in steps 1–10
- Disable steps 6–10 — does bug still occur? → bug is in 1–5
- Disable steps 3–5 — does bug still occur? → bug is in 1–2
- Continue until isolated

### Step 4 — Hypothesize
Form a specific hypothesis about the cause before touching anything.

A good hypothesis:
- Is specific ("variable `x` is None at line 42 because the merge on line 28 drops all rows")
- Makes a testable prediction ("if I print `x` before line 42, it will be None")
- Implies a fix ("the merge condition should be `left_join` not `inner_join`")

A bad hypothesis:
- "Something is wrong with the function"
- "It might be a memory issue"
- "Maybe there's a bug in the library"

### Step 5 — Verify
Test your hypothesis *before* applying the fix.

- Add an assertion or print statement to confirm your predicted cause
- If the evidence doesn't match your hypothesis, revise the hypothesis
- Do not apply a fix based on an unverified hypothesis

### Step 6 — Fix and Confirm
Apply the minimal fix that addresses the root cause.

- Fix the cause, not the symptom (do not just catch the exception and move on)
- Verify the fix actually resolves the original error
- Run the full test suite to confirm no regressions
- Understand *why* the fix works before moving on

---

## Reading Error Messages by Language

### Python
```python
Traceback (most recent call last):
  File "script.py", line 15, in <module>
    result = process(data)
  File "script.py", line 8, in process
    return df['column']
KeyError: 'column'
```
→ Read bottom-up. The error is `KeyError: 'column'` in the `process` function. The column name probably doesn't exist in `df`. Check `df.columns`.

Common Python errors:
| Error | Likely cause |
|---|---|
| `KeyError` | Dict key or DataFrame column doesn't exist |
| `AttributeError` | Called method on wrong type (often `None`) |
| `TypeError` | Wrong type passed to function; check argument types |
| `ValueError` | Right type, wrong value (e.g., wrong shape for numpy) |
| `IndexError` | List/array access out of bounds |
| `ImportError` | Module not installed or path is wrong |
| `RecursionError` | Infinite recursion; check base case |

### R

From pascalamiet/ai-setup, MIT.

More from pascalamiet/ai-setup

Signals

Stars
1
Forks
0
Open issues
1
Last commit (this folder)
Mar 5, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from custom

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get debug running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying debug?

CallGet help
Cite this page

debug skill. Agent Mart. https://agentmart.dev/skills/pascalamiet-debug (last updated 2026-10-24)