Write a clear, reproducible bug report that gets fixed fast. Use when asked to write a bug report, file a defect, report an issue, or turn 'it's broken' into...
---
name: bug-report
description: "Write a clear, reproducible bug report that gets fixed fast. Use when asked to write a bug report, file a defect, report an issue, or turn 'it's broken' into an actionable ticket. Produces a structured report β a precise title, steps to reproduce, expected vs. actual, environment, severity/priority, and evidence β so a developer can reproduce and fix it without a back-and-forth."
homepage: https://mohitagw15856.github.io/pm-claude-skills/skill/bug-report.html
metadata:
{
"openclaw": { "emoji": "π§ͺ" }
}
---
# Bug Report Skill
A bug report is only useful if someone else can **reproduce** it. The best ones are precise: an exact title,
numbered steps, what you expected vs. what happened, and the environment it happened in. This skill turns a
vague "it's broken" into a ticket a developer can act on immediately β no clarifying round-trips.
## Working from a brief
Given "the export button doesn't work", **write the full report anyway** β infer the likely repro steps,
expected behaviour, and environment, marking inferences *(confirm)*. Keep facts (what was observed) separate
from guesses (likely cause). Never invent logs/errors; flag them to attach.
## Required Inputs
Ask for these only if they aren't already provided (else infer and label):
- **What's wrong** β what you did, what happened, and what you expected instead.
- **Steps to reproduce** β the exact sequence (and whether it's consistent or intermittent).
- **Environment** β device, OS, browser/app version, account/role, and any relevant data state.
- **Evidence** β screenshots, a screen recording, console/network errors, logs, request IDs.
## Output Format
### Bug Report
- **Title** β a precise one-liner: what's broken + where + the key condition ("Export to CSV fails for >1,000 rows on Safari").
- **Severity / Priority** β impact (blocker/critical/major/minor) and how widespread, kept distinct from urgency.
- **Environment** β device/OS/browser+version, app/build version, account/role, region/data as relevant.
- **Steps to reproduce** β numbered, exact, starting from a known state; note frequency (always / ~X% / once).
- **Expected result** β what should happen.
- **Actual result** β what actually happens (the observable failure β error text, wrong value, crash).
- **Evidence** β screenshots/recording, console & network errors, logs, request/correlation IDs (listed/attached).
- **Notes (optional)** β a workaround, when it started/regressed, and any *suspected* cause clearly marked as a hypothesis, not fact.
## Quality Checks
- [ ] The title is specific enough to identify the bug at a glance
- [ ] Steps reproduce from a known starting state and note frequency (consistent vs. intermittent)
- [ ] Expected vs. actual are both explicit and the actual is the observable failure
- [ ] Environment (versions, role, data) is captured β the usual reason a bug "can't be reproduced"
- [ ] Severity (impact) is separated from priority (urgency)
- [ ] Observed facts are kept separate from suspected cause; evidence is referenced
## Anti-Patterns
- [ ] Do not write "doesn't work" β state the exact action, expectation, and observed failure
- [ ] Do not omit environment/version β it's the top reason bugs aren't reproducible
- [ ] Do not merge expected and actual into one sentence β keep them distinct
- [ ] Do not present a guessed cause as fact β label hypotheses
- [ ] Do not bundle several bugs in one report β one defect per ticket
## Based On
Defect-reporting practice β reproducibility-first reports with precise titles, expected/actual separation, environment capture, and impact/urgency distinction.
don't have the plugin yet? install it then click "run inline in claude" again.