Use when someone wants to know WHY something is broken and has not asked for it to be fixed — "why is this happening", "what's causing this error", "find out what's wrong", "diagnose this before we decide". Also use before committing to a fix, when the cause is unknown and the decision depends on it. Not for fixing — that is superb:bug-fix.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add kardebadas/claude-plugin --skill bug-investigate --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bug Investigate?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/kardebadas-bug-investigate)More formats (shields.io, HTML) on the badges page.
---
name: bug-investigate
description: Use when someone wants to know WHY something is broken and has not asked for it to be fixed — "why is this happening", "what's causing this error", "find out what's wrong", "diagnose this before we decide". Also use before committing to a fix, when the cause is unknown and the decision depends on it. Not for fixing — that is superb:bug-fix.
argument-hint: "[the bug report]"
---
# Bug Investigate
## Overview
Finds the root cause of a bug and reports it. **That is the whole job.**
No plan, no fix, no edits. Knowing what is wrong is often the thing that is
actually needed — because the fix is obvious once you know, because the decision
about *whether* to fix is someone else's, or because the answer changes what gets
built rather than what gets patched.
**This is the same investigation `superb:bug-fix` runs as its first step.** The
difference is where it stops. If you already know you want the bug fixed end to
end, use `superb:bug-fix` and let it carry the result into a plan.
## Step 0 — Assemble the report
The investigator needs five things, and the invocation argument usually supplies
one or two:
| Field | Example |
| ----- | ------- |
| Symptom | "uploads over ~5MB fail silently" |
| Reproduction | the steps, or `unknown` |
| Error text | stack trace, log line, or `none surfaced` |
| Affected surface | endpoint, screen, command, job |
| Last known good | a date, a release, a commit, or `never worked` |
Ask for whatever is missing in **one batched question**, not five. `unknown` is a
fine answer and belongs in the brief; a silently empty field is not, because the
investigator will fill it with a guess.
## Step 1 — Investigate
Take the first branch that applies:
| Condition | What to do |
| --------- | ---------- |
| A subagent mechanism, and `superb:bug-investigator` is in your available agent types | Dispatch **`superb:bug-investigator`** with the Step 0 report. |
| A subagent mechanism, but that agent is not listed | Dispatch a general subagent, briefed with the text **between the `SHARED BRIEF` markers** in `../bug-fix/references/investigator.md`. |
| No subagent mechanism | Follow that same bracketed brief **yourself**, inline, including its "modify no files" rule. |
Name the agent `superb:bug-investigator`, with the prefix. A bare
`bug-investigator` resolves to whatever personal agent happens to exist.
Do **not** substitute `superpowers:systematic-debugging`. Its four phases run
through hypothesis-testing and implementation, so it would fix the bug — which
is the one thing this skill is for not doing.
## Step 2 — Report, and stop
Give the investigator's report as it came back — symptom, root cause at
`file:line`, execution path, what introduced it, suggested fix. **The suggested
fix is a description, not an instruction to carry out.**
Then say what is now known and what it would take to act on it, and **stop
there.** Offer `superb:bug-fix` if fixing is the obvious next step; do not start
it.
**If the cause could not be pinned**, say so plainly, list what was ruled out,
and name what would narrow it — a reproduction, a log, a version that worked. A
confident guess is worse than an honest "not found", because the next person
builds on it.
## Red flags — STOP
- About to edit a file → wrong skill. This one does not fix.
- About to write a plan → also wrong skill. `superb:bug-fix` does that.
- About to say "I'll just fix it while I'm here, it's one line" → the user asked
what was wrong. One line is still a change they did not ask for.
- About to report a cause with no `file:line` behind it → that is a hypothesis.
Label it as one, or keep looking.
- About to run the app or start a dev server → the brief forbids it.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!