Bug Triage Pack
A bug backlog is only as good as its triage — and most bugs arrive as "it's broken" with no repro, a panicked severity, and no idea who should look. This turns a raw report into a triaged item: reproducible steps, a severity and priority you can defend (not vibes), the environment that matters, a suspected area and owner queue, and a check for whether it's a duplicate — asking for what's missing instead of inventing it.
What This Skill Produces
- Normalized repro — clear, numbered steps; expected vs. actual; the minimal path to reproduce
- Severity & priority — each with reasoning (impact × frequency × workaround availability), not a gut number
- Environment & metadata — version, platform, browser/OS, user/role, first-seen, frequency
- Suspected area & owner queue — where it likely lives and who should take it next
- Duplicate/related check — is this the same as a known issue, and what to link
- Missing-info flags — what the reporter must supply before it's actionable
Required Inputs
Ask for these if not provided:
- The raw report — whatever came in (a Slack message, a customer ticket, a screenshot description)
- Your severity/priority scale — what P0–P3 / S1–S4 mean here (else a sensible default is used and labelled)
- Environment details — version, platform, who hit it, how often
- Known issues (optional) — a list to dedupe against
Framework: Triage You Can Defend
- Repro or it's not a bug yet. No reliable steps → the first action is "needs repro," not a severity.
- Severity ≠ priority. Severity is how bad the impact is; priority is when we fix it (a rare-but-catastrophic bug and a constant-but-cosmetic one differ on both axes).
- Score, don't feel. Impact (data loss > broken flow > cosmetic) × frequency (all users > edge case) × workaround (none > easy) → a defensible level.
- Route it. Suspected component and the queue/owner it should go to — triage that doesn't route just moves the pile.
- Dedupe. Check against known issues; a linked duplicate is worth more than a fifth copy.
- Flag gaps, don't guess. Missing environment or repro is a request to the reporter, not an assumption.
Output Format
Bug: [title] · Severity [Sx] · Priority [Px]
Why this level: impact [x] × frequency [y] × workaround [z].
Repro
- … → Expected: … · Actual: …
Environment
| Version | Platform | User/role | First seen | Frequency |
Routing
- Suspected area: [component] · Suggested queue/owner: [team].
Duplicate / related
- [links, or "no known duplicate"].
⚠ Missing before it's actionable
- [what the reporter must add].
Quality Checks
Anti-Patterns
- A severity with no reasoning — "this is a P1" because it feels urgent.
- Conflating severity and priority — they answer different questions.
- Assigning a level without repro — triage a phantom and you fix nothing.
- No routing — a triaged bug with no owner queue is still stuck.
- Inventing environment/repro the reporter never gave.
Example Trigger Phrases
- "Triage this bug and set severity and priority: [paste]"
- "Is this a P1? Here's the report."
- "Clean up this bug for the backlog with repro steps and an owner."
- "Normalize this customer bug report and check if it's a duplicate."
1---2name: bug-triage-pack3description: Triage a raw bug report into something a team can act on — clean repro steps, a defensible severity/priority, environment, likely area/owner, and duplicate check. Use when asked to triage this bug, set severity and priority, is this a P1, or clean up this bug report for the backlog. Produces the normalized repro, a severity and priority with the reasoning (impact × frequency × workaround), the environment/metadata, a suspected component and owner queue, and a duplicate/related-issue check — flagging when info is missing rather than guessing.4---5
6# Bug Triage Pack
7
8A bug backlog is only as good as its triage — and most bugs arrive as "it's broken" with no repro, a panicked severity, and no idea who should look. This turns a raw report into a triaged item: reproducible steps, a severity and priority you can defend (not vibes), the environment that matters, a suspected area and owner queue, and a check for whether it's a duplicate — asking for what's missing instead of inventing it.
9
10## What This Skill Produces
11
12- **Normalized repro** — clear, numbered steps; expected vs. actual; the minimal path to reproduce
13- **Severity & priority** — each with reasoning (impact × frequency × workaround availability), not a gut number
14- **Environment & metadata** — version, platform, browser/OS, user/role, first-seen, frequency
15- **Suspected area & owner queue** — where it likely lives and who should take it next
16- **Duplicate/related check** — is this the same as a known issue, and what to link
17- **Missing-info flags** — what the reporter must supply before it's actionable
18
19## Required Inputs
20
21Ask for these if not provided:
22- **The raw report** — whatever came in (a Slack message, a customer ticket, a screenshot description)
23- **Your severity/priority scale** — what P0–P3 / S1–S4 mean here (else a sensible default is used and labelled)
24- **Environment details** — version, platform, who hit it, how often
25- **Known issues (optional)** — a list to dedupe against
26
27## Framework: Triage You Can Defend
28
291. **Repro or it's not a bug yet.** No reliable steps → the first action is "needs repro," not a severity.
302. **Severity ≠ priority.** Severity is how bad the impact is; priority is when we fix it (a rare-but-catastrophic bug and a constant-but-cosmetic one differ on both axes).
313. **Score, don't feel.** Impact (data loss > broken flow > cosmetic) × frequency (all users > edge case) × workaround (none > easy) → a defensible level.
324. **Route it.** Suspected component and the queue/owner it should go to — triage that doesn't route just moves the pile.
335. **Dedupe.** Check against known issues; a linked duplicate is worth more than a fifth copy.
346. **Flag gaps, don't guess.** Missing environment or repro is a request to the reporter, not an assumption.
35
36## Output Format
37
38### Bug: [title] · **Severity [Sx]** · **Priority [Px]**
39**Why this level:** impact [x] × frequency [y] × workaround [z].
40
41### Repro
421. … → **Expected:** … · **Actual:** …
43
44### Environment
45| Version | Platform | User/role | First seen | Frequency |
46
47### Routing
48- Suspected area: [component] · Suggested queue/owner: [team].
49
50### Duplicate / related
51- [links, or "no known duplicate"].
52
53### ⚠ Missing before it's actionable
54- [what the reporter must add].
55
56## Quality Checks
57- [ ] Repro steps are clear and include expected vs. actual (or "needs repro" is the flagged first action)
58- [ ] Severity and priority are distinct and each justified by impact × frequency × workaround
59- [ ] Environment/metadata is captured (or flagged missing)
60- [ ] A suspected area and owner queue are proposed
61- [ ] A duplicate/related check is done
62- [ ] Missing information is requested, not invented
63
64## Anti-Patterns
65- **A severity with no reasoning** — "this is a P1" because it feels urgent.
66- **Conflating severity and priority** — they answer different questions.
67- **Assigning a level without repro** — triage a phantom and you fix nothing.
68- **No routing** — a triaged bug with no owner queue is still stuck.
69- **Inventing environment/repro** the reporter never gave.
70
71## Example Trigger Phrases
72- "Triage this bug and set severity and priority: [paste]"
73- "Is this a P1? Here's the report."
74- "Clean up this bug for the backlog with repro steps and an owner."
75- "Normalize this customer bug report and check if it's a duplicate."