---
name: systematic-thinking
description: Rigorous problem decomposition and evidence-based analysis methodology for software engineering tasks. Use to analyze situations, figure out concepts or investigations.
---

# Systematic Thinking

Systematic thinking is a structured methodology for decomposing complex problems and arriving at root causes through evidence-based reasoning. Use this skill for debugging, investigation, and any problem where the true cause is not immediately apparent.

## When to Use

- Debugging issues where surface symptoms don't reveal the cause
- Analyzing incidents or failures with multiple potential factors
- Investigating why something isn't working as expected
- Breaking down complex problems into actionable components
- Any task where quick conclusions have led to incomplete fixes

## The 5 Phases

1. **Problem Decomposition** - Break the issue into discrete components. What exactly is failing? Where does it manifest?

2. **Evidence Gathering** - Collect data before forming conclusions. Logs, traces, reproduction steps, environment details.

3. **Hypothesis Formation** - Form specific, testable hypotheses. Not "something is wrong" but "X causes Y because Z."

4. **Testing & Verification** - Test hypotheses systematically. Verify assumptions. Reproduce the issue in isolation.

5. **Root Cause Focus** - Distinguish symptoms from causes. Keep asking "why" until you reach the fundamental cause.

## Red Flags

- Jumping to solutions before fully understanding the problem
- Focusing on symptoms instead of root causes
- Assuming without verification
- Ignoring contradictory evidence
- Stopping at the first plausible explanation
- Fixing the same issue repeatedly

## See Also

- [systematic-debugging](/Users/alexismanuel/.config/opencode/skill/systematic-debugging/SKILL.md) - The rigid debugging companion skill for test-first debugging discipline
