Reasoning Prompts
5 Whys Root Cause Analysis
Drill down to the root cause of any problem by asking 'Why?' five times in sequence.
Prompt
Use the 5 Whys technique to find the root cause of the following problem. **Problem statement**: [PROBLEM] **Context**: [CONTEXT] Work through the analysis as follows: - **Why #1**: Why did [PROBLEM] happen? → [Cause 1] - **Why #2**: Why did [Cause 1] happen? → [Cause 2] - **Why #3**: Why did [Cause 2] happen? → [Cause 3] - **Why #4**: Why did [Cause 3] happen? → [Cause 4] - **Why #5**: Why did [Cause 4] happen? → [Root Cause] After completing the chain: 1. State the **root cause** in one sentence. 2. Identify the **fix** that addresses the root cause (not just the symptom). 3. Flag if the chain revealed **multiple branches** — problems often have more than one root cause. 4. Suggest a **preventive measure** to stop this root cause from triggering the problem again.
How to Use
Replace [PROBLEM] with a clear, specific statement of the problem (e.g., "the deployment pipeline failed in production"). Add [CONTEXT] to give the AI background it needs to generate plausible causes rather than generic ones (e.g., "we use GitHub Actions, the failure happened after a merge to main, the error was a timeout on database migration"). The more specific your context, the more useful the causal chain.
Variables
| Variable | Description |
|---|---|
| [PROBLEM] | A specific, observable problem statement — describe what happened, not what you think caused it |
| [CONTEXT] | Background information: system involved, when it happened, what changed recently, any error messages |
Tips
- The 5 Whys works best for process and system failures, not for complex social or market problems where causes are multifactorial.
- If a "Why" answer feels like speculation, add: "What evidence would confirm or deny this cause?" to keep the analysis grounded.
- Ask for multiple branches at Why #2 or #3 if the problem has several possible causes — the technique is often taught linearly but real problems fork.
- After the AI generates the chain, verify each step by asking: "If we fixed [Cause N], would [Cause N-1] still occur?" If yes, the chain has an error.