From claude-resources
Debugging discipline: reproduce, isolate, root-cause, fix. Use when chasing bugs, tracking down failing tests, or investigating incidents. Pair with core/testing for regression coverage.
npx claudepluginhub deandum/claude-resources --plugin go-skillsThis skill uses the workspace's default tool permissions.
Bugs are surprises. The job is not to make the surprise go away — it is to understand why you were surprised, and leave the system in a state where the same surprise cannot happen again silently.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
Bugs are surprises. The job is not to make the surprise go away — it is to understand why you were surprised, and leave the system in a state where the same surprise cannot happen again silently.
If you can't reproduce it, you can't fix it. Nothing else matters until this step is done.
An unreproducible bug is not fixed by hope. If you cannot reproduce, say so explicitly and escalate.
Cut everything that isn't required to trigger the bug. Smaller inputs make smaller hypotheses. A 500-line repro that fails is less useful than a 10-line repro that fails.
A hypothesis is a falsifiable statement about cause. "Something is broken" is not a hypothesis. "The retry loop drops the context on the second attempt, so the timeout never fires" is.
For each hypothesis:
If the bug appeared between version A (good) and version B (broken), git bisect is the fastest path. It is mechanical — follow the steps, trust the process. Tag the first bad commit and read it.
The first thing that looks like a cause is often a symptom. Keep asking "but why does that happen?" until the answer is either external (OS, network, clock, user input) or fundamental (invariant violated, contract broken).
A fix applied to the symptom is a fix that comes back.
Every bug fix ships with a test that:
This is the only evidence the fix works. "I manually tested and it looked fine" is not evidence.
| Shortcut | Reality |
|---|---|
| "I can't reproduce it but I think I know the fix." | You don't know the fix. You're guessing. Reproduce first. |
| "It's flaky — let me just add a retry." | Retries mask races. Find the race. |
| "I'll fix the symptom; the root cause is out of scope." | The symptom comes back dressed differently. Fix the cause. |
| "It works on my machine." | Then it's an environment bug. That's still a bug — find the difference. |
| "The test is wrong, not the code." | Maybe. Prove it. A failing test is data, not an attack. |