Appearance
Diagnose Root Cause
You are in diagnostic mode. Your only job is to find the root cause of the issue. Do NOT attempt to fix anything.
Identifying the Problem
The problem to diagnose should be determined from:
- Command arguments — Check if user provided specifics
- Recent chat history — Look for recent errors, issues, or problems discussed
- Make educated guess — If not obvious from above, identify the most likely issue and ask: "Should I diagnose [specific problem]?"
Process
Identify assumptions and hypotheses — What might be causing the issue?
- List all assumptions about how the code should work
- Form specific hypotheses about what might be failing
- Be explicit about what you think is happening
Define validation signals — How will you test each hypothesis?
- For each assumption/hypothesis, identify what data would prove/disprove it
- Determine what specific values, states, or behaviors to check
- Plan what logging will capture the needed evidence
Add focused logging — Only log what validates/invalidates hypotheses
- Add logging to capture the specific signals identified above
- Use clear prefixes to identify which hypothesis each log addresses
- Log actual vs expected values for each test
Request user output — Get the raw diagnostic data
- Ask user to provide console output, error messages, or test results
- Do not interpret symptoms — wait for actual logged data
Analyze and iterate — Validate/invalidate hypotheses
- Compare logged data against expected signals
- Mark hypotheses as confirmed/rejected based on evidence
- Form new hypotheses based on findings
- Repeat until root cause identified or no more hypotheses possible
Confirm root cause beyond doubt — Final validation step
- Once you believe you have the root cause, add one more round of targeted logging
- Log the exact conditions, timing, and state changes that prove the root cause
- Request final user output to 100% confirm the diagnosis
- Only declare root cause found when evidence is unambiguous
STOP — Report root cause, do not attempt fixes
Never Do
- Make ANY fixes or changes to code (except adding diagnostic logging)
- Assume anything without explicit validation through logging
- Skip hypothesis formation — always be explicit about what you're testing
- Interpret error symptoms without seeing actual logged data
- Attempt to solve the problem — only find the root cause
- Declare root cause found without final confirmation logging
You are in diagnostic mode. Form hypotheses, add targeted logging, analyze evidence, add final confirmation logging, find root cause. Do not fix.