Skip to main content
skill CX Codex

debug · jsmastery-pro — Claude Code skill: what it does, how to install

Runs a structured investigation loop to find a bug's root cause, applies the minimal fix, and prepares a regression test.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jsmastery-pro/skills --skill debug -a claude-code
Open on GitHub

What debug does

The skill investigates bugs by following a strict loop: reproduce, localize, hypothesize, test, fix, and verify. It tests one falsifiable hypothesis at a time using evidence from logs or code bisection instead of guessing. Once proven, it applies the minimal code change to address the cause rather than hiding symptoms with null checks.

It works with tools like Bash, Read, Grep, Glob, Write, and Edit. The skill acts directly and asks questions only if it cannot reproduce the failure from provided inputs. If the failure turns out to be a design issue rather than a simple coding bug, it stops and points you to /architect.

After verifying the fix, it checks for similar sibling bugs and hands the regression test to /test. For complex bugs, you can run the investigation in an isolated subagent so intermediate tool outputs do not flood your main session context.

What it helps with

  • pinpoint the root cause of an unclear test failure
  • reproduce intermittent bugs deterministically
  • isolate offending code paths using bisection
  • apply minimal fixes without opportunistic refactoring

Example prompts for the agent

  • /debug the auth test fails when parsing token timestamps
  • /debug pricing helper returns negative total on empty carts
  • /debug /check verify reported a failure in checkout api

How to install debug

1Skills CLI (Vercel)

npx skills add jsmastery-pro/skills --skill debug -a claude-code

2Manually: put the files in place

~/.claude/skills/debug/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/debug/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about debug

How to install debug in Claude Code?

Run npx skills add jsmastery-pro/skills --skill debug -a claude-code in your terminal. This configures the skill under ~/.claude/skills/debug/SKILL.md.

What does the debug skill do?

It runs a disciplined reproduction and localization loop, tests root cause hypotheses one by one, and makes the smallest possible fix.

How is this different from the loop skill?

This skill runs an internal investigation loop inside a single session, while /loop repeatedly executes a command at timed intervals.

Source text

SKILL.md · MIT
---
name: debug
allowed-tools: Bash, Read, Grep, Glob, Write, Edit, Agent
description: "Run /debug to find and fix a bug's root cause: a test failing for an unclear reason, /check verify finding a failure, or behavior being wrong. Runs a reproduce, localize, hypothesize, test, fix, verify loop, makes the minimal fix, and hands a regression test to /test. No features, no extra refactors."
---

## Output style (plain words, no dashes, no hyphens)

<!-- OUTPUT-STYLE:START -->
Write everything this skill produces, files and messages alike, in plain simple language. Talk to the reader as `you`, warm and direct like a colleague, and present every step as a recommendation they may run or skip, never an order. Keep technical terms that carry real meaning; explain each in plain words. Never use a dash or a hyphen as punctuation: no em dash, no en dash, and no hyphenated compounds. Write `read only`, not `read-only`. Say it in simple words, or reword the sentence. Code, file paths, command flags, and values other skills match on keep their hyphens. Use short sentences, commas, or parentheses. Clear beats clever.
<!-- OUTPUT-STYLE:END -->

## What this skill does

**Your role:** the investigator who trusts evidence over intuition. Treat a bug as a case to be proven: reproduce it on demand, narrow it to the smallest failing surface, and change one thing at a time so every result *means* something. Resist patching what you see (the null, the crash) before you understand *why* it's there; a fix you can't explain is a bug you haven't caught.

A structured root cause investigation, not a guess and check. Bugs are found by a **loop**: reproduce → localize → hypothesize → test the hypothesis → fix the root cause → verify. This skill runs that loop with discipline (**one hypothesis at a time**, each confirmed or rejected by evidence) until the cause is proven, then applies the smallest fix.

> This is an *internal investigation loop within a single run*, not the `/loop` skill (which runs a command again on a time interval). Reach for `/loop` only when you need to watch something over time, e.g. poll a flaky test across many runs.

## Asks vs acts

**Acts.** It reproduces, investigates, and fixes. It **asks only** when it cannot reproduce the bug from what it's given, then it asks for exact steps, inputs, environment, and the observed vs expected behavior. It does not ask permission to investigate.

## Artifact ownership

Writes the **minimal code fix** for the root cause. Recommends `/test` for the regression test (or writes a failing then passing test inline if that's the fastest proof). Does **not** add features, refactor unrelated code, or rewrite the spec. If the bug reveals a flawed decision (not just a coding mistake), it says so and points to `/architect` rather than papering over it.

---

## Portability (any OS, any agent)

Written for any Agent Skills client on macOS, Linux, or Windows. Commands are **reference**, use the project's real test/run commands and your agent's own tools. The investigation can run in a subagent (below) or inline if your tool has no subagent.

## Execution

### Step 0: Capture the symptom

Pin down precisely, before touching code:
- **Observed** behavior (the exact error, stack trace, wrong output, or screenshot).
- **Expected** behavior.
- **Repro**: the steps, inputs, and environment that trigger it.

If any of these is unclear and you can't derive it, **ask**, you cannot debug what you can't reproduce.

### Step 1: Reproduce reliably

Get a **deterministic reproduction** (a failing test, a command, a request) that triggers the bug on demand. If it's intermittent, find what makes it deterministic (timing, ordering, data, concurrency). A bug you can't reproduce on command, you can't prove you've fixed. If you truly can't reproduce it, add instrumentation to catch it and say so, do not "fix" blind.

### Step 2: Localize

Narrow the failure to the smallest possible surface before theorizing:
- **Bisect the code path**: binary search where good input becomes bad output (logging/print at midpoints, breakpoints, or commenting out).
- **Bisect history**: if it's a regression, `git bisect` (or `git log -p` on the suspect files) to find the introducing change.
- **Read the actual values**: instrument inputs/outputs at the boundary; don't assume what they are.

### Step 3: Hypothesize (one at a time)

State a single, specific, falsifiable hypothesis for the root cause, e.g. "the date is parsed as local time, so the cutoff is off by the timezone offset." Root cause, not symptom: "the value is null here" is a symptom; *why* it's null is the cause. Resist shotgun changing several things at once.

### Step 4: Test the hypothesis

Design the smallest experiment that confirms or refutes it (a targeted log, an assertion, a one line change, a unit test). Run it.
- **Refuted** → discard it, return to Step 2/3 with what you learned. Do not keep a change that didn't help.
- **Confirmed** → you've found the root cause. Proceed.

Loop Steps 3 to 4 until a hypothesis is confirmed by evidence. **Never skip to a fix on a hunch**, an unverified fix is how a symptom gets patched while the bug survives.

### Step 5: Fix at the root

Make the **minimal, targeted** change that addresses the proven cause. Don't fix the symptom (clamping the null), fix the cause (why it's null). Resist scope creep, no opportunistic refactors riding along with the fix. Follow the project's conventions (`AGENTS.md`, neighbouring code).

### Step 6: Verify and protect

- Run the Step 1 reproduction again, confirm it now passes.
- Run the surrounding test suite, confirm no regression.
- **Add a regression test** that fails without the fix and passes with it, so this bug can't silently return; write it inline, or hand the spec to `/test`.
- **Check for siblings**: the same root cause often hides in other places (same pattern, same bad assumption). Grep for them and note or fix them.

### Optional: run it in a subagent

For a hunt that is not trivial, spawn an investigation subagent so the iterative tool use doesn't fill the main context:
- `model`: set explicitly to a strong model, do not inherit the session model (Claude Code: `sonnet`)
- `description: "Debug: <symptom>"`
- Tools: `Read`, `Bash`, `Grep`, `Glob`, `Edit`, `Write`
- `prompt`: this loop + the captured symptom + reproduction + the relevant `AGENTS.md` (inlined). Require it to report the root cause with evidence, not just "fixed it."

### Report

Lead with the root cause and the fix; the reproduction and evidence are the trail, not the headline (per `docs/conventions.md`). Template:

```
## /debug complete · <the bug, one line>

**Root cause: <the proven cause>. Fixed by <the minimal change, files touched>.**
Next: /test <feature>   (lock in the regression test, added inline or handed over)
Heads up: <same cause also at <where>, fixed too · or a design flaw → /architect <what>>   (omit if none)
```

If the cause is a flawed decision rather than a coding mistake, lead with that in the headline, the right fix may be a spec update, not a code patch.

© jsmastery-pro · MIT · jsmastery-pro/skills

Similar skills

Everything for Testing and QA →

debug by other authors comes first.

debug official anthropics This skill takes a bug from reproduction to root cause, a fix, and regression coverage. Use it when the symptom is clear but the cause is not. CX Codex +1 5,900installs debug Yeachan-Heo Diagnoses broken OMC sessions, workflow failures, and repo state issues using traces and targeted reproduction. CX Codex +1 634installs debug parcadei Investigates application logs, SQLite database state, and git history without editing source files. Useful for pinpointing issues during manual testing. CX Codex +1 507installs debug cyrusagents Works through a reported bug from reproduction to a minimal fix. Use it when you need to trace an error and verify the result. CX Codex +1 826installs debug pproenca The debug skill gives your agent a fixed order for bug work: reproduce, test hypotheses, find the root cause. Useful when a stack trace or a failing test lands on you. CX Codex +1 436installs ce-debug EveryInc Finds the root cause of a bug from trigger to symptom and applies a test-first fix. Useful when investigating broken behavior or failing CI logs. CX Codex +1 3,500installs vibe-debug KhazP A skill that walks an agent through a reproducible failure in an existing project: crashes, broken behavior, failing checks. Not for greenfield planning. CX Codex +1 ★ 3,183repo stars Debug Mode Instructions official github A GitHub Copilot subagent that walks debugging in phases: reproduce the bug, find the root cause, patch it, verify. Useful when a failure is flaky and you don't know where to start. ★ 40,418repo stars debug-mantra thananon Sets a debugging sequence from reproducing a failure through testing hypotheses and recording experiments. Use it for errors, logs, and stack traces. CX Codex +1 4,900installs debug-zoom-integration official anthropics Traces broken Zoom integrations across auth, webhooks, SDK joins, MCP transport, and media sessions. Use it when an existing implementation fails. CX Codex +1 2,100installs debug-my-harness zernie Reads the local .vigiles/runs.jsonl ledger to explain why an agent harness misbehaved. Use it when a skill stopped firing, a hook let something through, or a subagent broke its tool contract. CX Codex +1 1,500installs

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor