From praxis
Enforces a structured debugging protocol: observe precisely, generate 5+ competing hypotheses, design discriminating tests, and update beliefs before changing code.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:diagnostic-reasoningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step.
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step. Do not skip steps. Do not combine steps. Do not summarize. Work through each gate in order.
Something is broken. Do NOT start changing code. Follow this protocol.
Before forming any hypothesis, collect facts. Answer each:
Do NOT proceed until you can state the problem in one precise sentence that another engineer could verify independently.
Produce at least 5 hypotheses. Fewer and you are anchored on your first guess rather than diagnosing. Add more if the observations genuinely suggest them; stop when new candidates are restatements of ones you already have, not at a count.
For each hypothesis, state:
Order by: (explanatory power) × (prior probability), highest first.
Mandatory check: Is your #1 hypothesis the simplest explanation? Simple causes first: config error, permissions, missing dependency, wrong environment, typo. Check these before investigating race conditions, memory corruption, or kernel bugs.
Do NOT test hypotheses one by one. Design a single observation that distinguishes between your top 3 hypotheses simultaneously.
Template: "If I observe [X], then hypothesis A is supported. If I observe [Y], then hypothesis B is supported. If I observe [Z], then hypothesis C is supported."
This is Strong Inference. One test, maximum information.
If no single test distinguishes all three, design the test that eliminates the most hypotheses regardless of outcome (maximum information gain).
Run the test. Observe the result.
Update your hypothesis ranking. If the top hypothesis is now >80% likely, proceed to verification. If not, return to Phase 3 with the surviving hypotheses.
You found WHAT is broken. Now find WHY.
Ask "Why?" five times minimum:
Stop when you reach a systemic cause (process, tooling, policy) rather than an individual cause (person made a mistake). Fix the systemic cause.
After applying the fix:
Red flags that this skill catches:
After root cause is identified and fix is designed:
If Superpowers is installed → invoke Skill(superpowers:systematic-debugging) or
Skill(superpowers:test-driven-development) to implement the fix. Pass your ranked
hypotheses, discriminating test results, and root cause analysis. The fix should be
implemented via TDD: write a test that reproduces the root cause, verify it fails,
then fix. Do NOT write the fix inside this skill. PRAXIS diagnosed. Superpowers fixes.
If Superpowers is NOT installed → implement the fix yourself, following TDD principles where possible.
npx claudepluginhub xd4o/praxis --plugin praxisEnforces systematic root cause investigation for bugs, test failures, and unexpected behavior through four phases: investigation, pattern analysis, hypothesis testing, and implementation.
Forces a scientific-method loop (Observe → Hypothesize → Experiment → Conclude) to debug non-trivial bugs. Prevents guessing by ensuring evidence before fixes.
Provides systematic debugging framework for root cause analysis after 2+ failed fixes, complex failures, intermittent bugs, and circular debugging.