# Hunt

Finds root cause before any fix.

- Repository: https://github.com/tw93/Waza (7489 stars)
- Category: Git and review
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add tw93/Waza --skill hunt -g -a claude-code -y`
Codex: `npx skills add tw93/Waza --skill hunt -g -a codex -y`
Cursor: `npx skills add tw93/Waza --skill hunt -g -a cursor -y`
Gemini CLI: `npx skills add tw93/Waza --skill hunt -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add tw93/Waza`

## Description

Finds root cause before any fix. Use when something errors, crashes, regresses, or used to work. Not for code review or new features.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Hunt: Diagnose Before You Fix

Prefix your first line with 🥷 inline, not as its own paragraph.

A patch applied to a symptom creates a new bug somewhere else.

## Outcome Contract

- Outcome: the root cause is identified before any fix is applied.
- Done when: one sentence explains the cause, every observed symptom fits it, and the fix or handoff is verified against a reproducible check.
- Evidence: source trace, repro command or UI path, logs or state, targeted test/build output, and runtime evidence for UI or native defects.
- Output: root cause, fix or handoff, verification result, and any unswept sibling risks.
- Authorization: "diagnose", "investigate", "why", "look into", "排查", "看看", or equivalent is report-only. Apply a fix only when the current request explicitly asks to fix, change, implement, or optimize, or when an authorization to do so is still in force for this same unfinished task with the action, scope, and goal unchanged; root-cause proof is still required first. A fix authorization never carries commit, push, publish, or any destructive action with it.

**Do not touch code until you can state the root cause in one sentence:**
> "I believe the root cause is [X] because [evidence]."

Name a specific file, function, line, or condition. "A state management issue" is not testable. "Stale cache in `useUser` at `src/hooks/user.ts:42` because the dependency array is missing `userId`" is testable. If you cannot be that specific, you do not have a hypothesis yet.

## Diagnosis Signals

Hypothesis quality gate: the hypothesis must explain every observable symptom, not just the one reported first; partial coverage is a symptom-level guess, not a root cause. A symptom the reporter waves off as unrelated is still a symptom the hypothesis has to cover. For timing-dependent issues (flicker, intermittent failure, race), reproduce reliably before diagnosing.

The rest: https://github.com/tw93/Waza/blob/HEAD/plugins/waza/skills/hunt/SKILL.md
