From python
Provides a five-step systematic debugging workflow: reproduce the bug, isolate the cause, form hypotheses, implement fixes, and verify results. For errors, broken code, or unexpected behavior.
npx claudepluginhub martinffx/atelier --plugin pythonThis skill uses the workspace's default tool permissions.
Systematic debugging workflow to find and fix bugs efficiently. Never guess — always
Systematically reproduces bugs, gathers evidence via logs and state inspection, tests hypotheses with debuggers and logging, traces root causes, and implements fixes. For bug reports, errors, or unexpected behavior.
Guides root cause debugging for bugs, test failures, and unexpected behavior. Enforces reproduce-investigate-hypothesize-fix process with evidence before fixes. No guessing.
Diagnoses and resolves code bugs, errors, and unexpected behavior via systematic phases: reproduce, isolate, root cause analysis, hypothesis testing, fix, and verify. Uses bash, grep, git for investigation.
Share bugs, ideas, or general feedback.
Systematic debugging workflow to find and fix bugs efficiently. Never guess — always narrow down the problem through systematic elimination.
| Bad | Good |
|---|---|
| "I think it's..." | "Let me verify..." |
| Changing random things | Binary search narrowing |
| Hoping it'll work | Verifying each hypothesis |
| Moving on after it works | Adding regression test |
Create the smallest possible reproduction case.
Questions to answer:
Techniques:
Output: "I can reproduce the bug by [exact steps]."
Narrow down where the bug lives using binary search.
Binary search strategies:
Git bisect (for regression bugs):
git bisect start
git bisect bad # current commit is broken
git bisect good <last-working-commit>
# Run tests, mark good/bad
git bisect reset # done
Output: "The bug is in [specific file/function/component]."
Make a testable guess about the root cause.
Good hypothesis:
Questions to ask:
Output: "I hypothesize that [root cause] because [evidence]."
Implement the fix based on your hypothesis.
Rules:
Fix patterns:
Output: "Fix applied: [brief description]."
Confirm the fix works and doesn't break anything.
Verification steps:
Output: "Fix verified. Tests passing. Regression test added."
Quick and dirty, but sometimes the fastest way.
When to use:
Best practices:
More powerful than print debugging.
When to use:
See references/language-tools.md for language-specific debugger commands.
Better than print for production issues.
Strategies:
See references/techniques.md for logging patterns.
Halving the search space.
Strategies:
Explain the problem out loud (or to a rubber duck).
Process:
Symptoms: Cannot read property X of undefined
Debug approach:
Fix patterns:
// Before
const name = user.profile.name;
// After
const name = user?.profile?.name ?? 'Unknown';
// or
if (!user?.profile) return;
const name = user.profile.name;
Symptoms: Intermittent failures, flaky tests
Debug approach:
Fix patterns:
Symptoms: Wrong output, wrong behavior
Debug approach:
Fix patterns:
Symptoms: Slow, memory leaks, timeouts
Debug approach:
See code-perf skill for detailed performance debugging.
Check available skills for additional debugging support:
After each debugging session, summarize:
## Debug Summary
**Problem:** [One sentence]
**Root Cause:** [What actually was wrong]
**Fix:** [How you fixed it]
**Verification:** [Test results]
**Prevention:** [Regression test added?]
This helps future-you understand what happened.