원클릭으로
why
Run 5 Whys plus /big reframing to trace a symptom to structural root cause before fixing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run 5 Whys plus /big reframing to trace a symptom to structural root cause before fixing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
When stuck on a specific problem, stop coding, gather context, and ask /deep or /pro for a fresh perspective.
Reframe recurring or wrong-shaped problems into a design where the bug cannot happen.
Batch operations across files with confidence-based auto-apply. Use for renaming, search-replace, refactoring code, updating text/markdown, migrating terminology, and API migrations. Run `bun tools/refactor.ts --help` for detailed command reference.
Analyze a decision end-to-end: gather context, compare options, score tradeoffs, and present one clear recommendation.
Save active session context, git state, recent commits, and next steps to one tracking issue before compaction or handoff.
Pause implementation for architecture or understanding discussion, checkpoint context, then resume with captured decisions.
| name | why |
| effort | max |
| description | Run 5 Whys plus /big reframing to trace a symptom to structural root cause before fixing. |
| argument-hint | ["problem or symptom"] |
| benefits-from | ["recall","tent"] |
| escalate-to | {"arch":"root cause is structural — missing invariant or wrong ownership","render":"root cause is in the rendering pipeline"} |
Keywords: why, root cause, five whys, reframe
Don't fix the symptom. Find the cause. Then find the cause of the cause.
This combines Toyota's 5 Whys with /big's hypothesis-driven reframing. The goal: trace from the visible symptom to the structural root cause, then design it away.
Follow [[../agent-system/references/resolver|resolver quality plateau]]: keep routing MECE, concrete, and boundary-aware.
$ARGUMENTS
If no arguments: Infer from recent conversation — what bug was just reported? What keeps breaking? What did the user just encounter?
Write exactly what happened — not your interpretation, not the code path, just the observable symptom:
SYMPTOM: [What the user saw/experienced, in their words]
CONTEXT: [What they were doing when it happened]
FREQUENCY: [Once? Every time? Intermittent?]
For each "why", do actual investigation — grep, read code, check history. Don't guess.
Use this template for each level:
| Level | Investigate | Output |
|---|---|---|
| Why 1 | Direct code/state that produced the symptom | ANSWER, EVIDENCE, and the narrow patch |
| Why 2 | Condition that allowed Why 1 | ANSWER, EVIDENCE |
| Why 3 | Design shape or missing abstraction | ANSWER, architecture/history evidence |
| Why 4 | Process/spec/ownership reason for Why 3 | ANSWER, prior sessions/beads/docs |
| Why 5 | Deep structural gap, often missing rules | ANSWER and any evidence available |
Stop earlier if you reach bedrock or "we haven't built X yet"; go past 5 when each level reveals genuine new insight.
Write the full causal chain as one paragraph:
[Symptom] because [Why 1] because [Why 2] because [Why 3] because [Why 4] because [Why 5].
Read it aloud. Does it make logical sense? Does each "because" follow from the previous? If not, your investigation has a gap — go back and fix it.
Each "why" suggests a fix at a different level. Map them:
| Level | Fix | Type | Solves |
|---|---|---|---|
| Why 1 | [Narrow fix — patch the direct cause] | PATCH | This instance only |
| Why 2 | [Guard — prevent the enabling condition] | GUARD | This class of bug |
| Why 3 | [Redesign — change the abstraction] | REDESIGN | Related problems too |
| Why 4 | [Spec — define the missing rules] | SPEC | Future problems |
| Why 5 | [Architecture — structural change] | ARCHITECTURE | Entire category |
The deeper you fix, the more problems you prevent — but the more effort it takes.
Run /big Phase 8 (Action Plan) on the fix levels:
If the analysis changes routing, process, architecture, or follow-up work, append
it to hub/retro/why-log.md before moving on. Use this field shape so
tent sitrep and sitrep.html keep the follow-up visible:
## YYYY-MM-DD — short title
status:: open
owner:: @chief
symptom:: <observable symptom>
causal-chain:: <because-chain from the analysis>
evidence:: <commands, files, or transcripts that support the chain>
fix-levels:: PATCH: ...; GUARD: ...; SPEC: ...
follow-up:: [@km/scope/bead.md](../../@km/scope/bead.md)
next-action:: <the next concrete action and owner>
When follow-through changes, run
tent why-log status <id> resolved|superseded|converted --note "<why>";
converted also needs --follow-up <bead> so sitrep can show where the action
moved.
If the root cause is architectural (Why 4-5), consult an external LLM:
bun llm --deep -y --no-recover --context-file /tmp/why-context.md "Given this causal chain, what's the right level to fix at?"
When the causal chain has multiple contributing causes at the same level (not a single chain but a convergence), draw an Ishikawa diagram. This is common for systemic issues where several factors combine.
Categories (adapt to the problem):
Format (indented tree — no box drawing):
SYMPTOM: Diagrams have misaligned borders
├── Code
│ └── No validation step after generation
├── Tools
│ ├── LLMs lack character position counter
│ └── No linter for box-drawing alignment
├── Process
│ ├── No diagram creation protocol existed
│ └── No post-generation verification habit
└── Knowledge
└── Dense punctuation confuses visual estimation
Use this when Phase 3's linear chain feels incomplete — when you suspect multiple independent causes contribute. The fishbone reveals which categories need attention; the 5 Whys reveals depth within each.
SYMPTOM: Tab on first child of card indents entire card off-screen
WHY 1: indent_node operates on the cursor's card, not the selected sub-item
WHY 2: The keybinding resolves Tab to indent_node at card level, not sub-item level
WHY 3: There's no "cursor context" that knows which level the user is operating at
WHY 4: Each operation re-derives context independently — no shared cursor-context abstraction
WHY 5: No outliner behavior spec — operations were added ad-hoc without a unified model
CHAIN: Tab indents the card because indent resolves at card level because
there's no cursor-context abstraction because each handler re-derives
context because there's no outliner behavior spec.
FIX LEVELS:
Why 1: Add guard — if first child, no-op with bell → PATCH (1 hour)
Why 3: Create cursorContext() shared by all handlers → REDESIGN (1 day)
Why 5: Write outliner spec, derive all guards from it → SPEC (2-3 days)
| Don't | Why |
|---|---|
| Guess at causes without reading code | Each "why" must have EVIDENCE |
| Stop at Why 1 | That's just the narrow fix — the value is deeper |
| Force exactly 5 levels | Stop when you hit bedrock, go past 5 if there's more |
| Skip the causal chain paragraph | Writing it reveals logical gaps |
| Only ship the deep fix | Ship the PATCH now, bead the deeper fixes |
| Do /why without a specific symptom | It needs a concrete starting point |