From BMAD Planning & Orchestrator
Forensic bug triage producing graded case files: symptoms, evidence, hypotheses, and handoff to dev. For investigating bugs, issues, and root causes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bmad-planning-orchestrator:bmad-investigateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Forensic triage — plan the fix, don't apply it.**
Forensic triage — plan the fix, don't apply it.
This skill builds a structured, evidence-graded investigation case file so that whoever picks up the story has a clear picture of what is known, what is suspected, and exactly what needs verifying before any code changes. It deliberately stops before implementation; the result of every investigation is a story handed off to an external dev tool.
Persona flavor: Mary (Business Analyst) frames the user impact; Winston (Architect) maps the component topology. The skill is a workflow, not a character.
This skill PLANS. It reads planning artifacts and existing code to gather evidence.
It does NOT write application code, run tests, lint, build, or review diffs.
The last artifact it emits is either an updated planning document or a story file
marked status: ready-for-dev. If tempted to "fix the bug", "run the suite", or
"apply the patch" — STOP. Investigate and hand off.
| Source | Why |
|---|---|
bmad-output/project-context.md | Project constitution — architecture, stack, ownership |
bmad-output/architecture.md | Component boundaries, module responsibilities |
bmad-output/prd.md or tech-spec.md | Requirements the broken behavior should satisfy |
bmad-output/decision-log.md | Prior decisions that may relate to the issue |
| User-provided symptom description | Primary input — what is failing, when, how |
| Logs / error messages the user pastes in | Raw evidence to grade and analyze |
Existing story files in bmad-output/stories/ | Check for duplicate or related work |
If project-context.md does not exist, ask the user to describe the stack and affected area before proceeding.
Ask which intent applies if ambiguous.
Use TodoWrite to track progress through these steps.
Before investigating, confirm exactly what is observable. Ask (or infer from context):
Record these as the "Symptom Summary" — this is the anchor for all grading later.
Read all available inputs listed above. Extract:
Collect all available evidence. Assign each item an evidence grade:
| Grade | Meaning |
|---|---|
| A | Directly observed, reproducible, or confirmed by multiple independent sources. High confidence. |
| B | Single-source, inferred from logs, or plausible but not yet reproduced. Medium confidence. |
| C | Speculative, based on code reading only, or pattern-matched without direct confirmation. Low confidence. |
Evidence types to gather:
Use Grep and Glob to search the codebase for error strings, function names, or file paths the user mentions. Read code files to trace call paths. Do NOT run the code — read it.
Based on all grade-A and grade-B evidence, draft 2–5 hypotheses. For each:
Order hypotheses from most to least plausible.
For each top-2 hypothesis, list:
Fill the template:
${CLAUDE_PLUGIN_ROOT}/skills/bmad-investigate/templates/investigation.template.md
Save to: bmad-output/investigation-<issue-slug>-<date>.md
Use Write. Fill every {{placeholder}} from your analysis.
After completing the case file, determine the planning response:
Option A — Create a fix story:
Draft a story file using the standard story contract from bmad-epics-and-stories.
The story Dev Notes MUST cite the investigation case file. Status: ready-for-dev.
Naming: {epic}.{story}.{slug}.story.md in bmad-output/stories/.
Option B — Update an existing backlog story: If a related story exists in backlog, recommend updating its Dev Notes and ACs to incorporate the investigation findings. Do NOT edit the story yourself unless asked; describe what needs updating.
Option C — Escalate to planning:
If the investigation reveals a systemic issue touching multiple epics, recommend
that the user run /bmad-planning-orchestrator:bmad-prd or
/bmad-planning-orchestrator:bmad-architecture (Update intent) before a story
is created.
Tell the user which option applies and why. If creating a fix story (Option A), draft it now unless the user says otherwise.
Append to bmad-output/decision-log.md:
## Investigation: [Issue Slug] — [Date]
- Symptom: [one sentence]
- Primary hypothesis: [one sentence]
- Primary suspected component: [name]
- Case file: bmad-output/investigation-<slug>-<date>.md
- Recommended response: [Option A/B/C + story ID if created]
Check the draft case file against this contract checklist:
Report pass/fail per item. Do not edit unless asked.
| Grade | Label | Typical Sources |
|---|---|---|
| A | Confirmed | Direct logs, reproducible steps, two-source corroboration |
| B | Probable | Single logs, code-read inference, intermittent reproduction, user reports |
| C | Speculative | Educated guess, pattern match, untested hypothesis only |
Never promote a C to an A in the case file — the external dev agent needs to know what is solid and what is guesswork before they start.
For large-scale investigations spanning multiple suspected components, fan out parallel read-only agents:
Agent 1 — Evidence Collector
Read the investigation brief at bmad-output/investigation-scratch/brief.md.
Search the codebase with Grep/Glob for error strings, function names, and file
paths listed. Collect stack-trace context. Write findings (verbatim excerpts +
file paths + line numbers) to bmad-output/investigation-scratch/evidence.md.
Do NOT modify any source files. Grade each item A/B/C.
Agent 2 — Component Mapper
Read bmad-output/architecture.md and the brief at
bmad-output/investigation-scratch/brief.md. For each suspected component,
extract its responsibilities, dependencies, and API contracts.
Write findings to bmad-output/investigation-scratch/components.md.
After agents complete, synthesize evidence.md + components.md into the final case file using the template. Delete scratch files after synthesis.
bmad-output/decision-log.md — threaded decision recordbmad-output/project-context.md — project constitution/bmad-planning-orchestrator:bmad-epics-and-stories — creates the fix story/bmad-planning-orchestrator:bmad-readiness-check — if investigation reveals
systemic planning gaps before the fix story is safe to hand off
Part of the BMAD Planning & Orchestrator plugin — a Claude Code harness for the BMAD Method by the BMAD Code Organization (https://github.com/bmad-code-org/BMAD-METHOD). Implements the spirit of
bmad-investigate. All methodology credit belongs to the BMAD Code Organization.
npx claudepluginhub aj-geddes/claude-code-bmad-skills --plugin bmad-planning-orchestratorDiagnoses bugs systematically by tracing the full causal chain before proposing a fix. Supports errors, stack traces, regressions, failed tests, and issue-tracker bugs.
Performs systematic root cause investigation for errors, stack traces, unexpected behavior, and bugs using investigate-analyze-hypothesize-fix workflow with red flags and 3-strike rule.
Hypothesis-driven debugging methodology with ranked hypotheses, git bisect strategies, instrumentation planning, and minimal reproduction design. For intermittent failures, unclear stacktraces, performance regressions, and non-obvious bugs requiring systematic investigation.