Re-evaluate open bugs — priority vs severity, assign to sprints, surface systemic trends. Run when the count grows.
64
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation
Automation mode: Resolve modes.automation (project.local.yaml →
project.yaml → default collaborative). Every AskUserQuestion call and
every file write follows .claude/docs/automation-modes.md
(collaborative asks always · guided major-only · autonomous logs and proceeds;
automation_always_ask categories always prompt).
This skill processes the open bug backlog into a prioritised, sprint-assigned action list. It distinguishes between severity (how bad is the impact?) and priority (how urgently must we fix it?), detects systemic trends, and ensures no critical bug is lost between sprints.
Output: production/qa/bug-triage-[date].md
When to run:
/team-qa completes and new bugs have been filedModes:
/bug-triage sprint — triage against the current sprint; assign fixable bugs
to the sprint backlog; defer the rest/bug-triage full — full triage of all bugs regardless of sprint scope/bug-triage trend — trend analysis only (no assignment); read-only reportGlob for bug reports in priority order:
production/qa/bugs/*.md — individual bug report files (preferred format)production/qa/bugs.md — single consolidated bug log (fallback)production/qa/qa-plan-*.md "Bugs Found" table (last resort)If no bug files found:
"No bug files found in
production/qa/bugs/. If bugs are tracked in a different location, adjust the glob pattern. If no bugs exist yet, there is nothing to triage."
Stop and report. Do not proceed if no bugs exist. Verdict: COMPLETE — no bug files in production/qa/bugs/; nothing to triage.
In trend mode, do not read full bug bodies. Trend metrics (volume, severity
mix, by-system, by-date) are computable from the header fields alone:
Grep pattern="\*\*(Severity|Priority|Status|System|Category|Reported)\*\*" glob="production/qa/bugs/*.md" output_mode="content"(Bug-report fields are bolded — **Severity**:, - **System**: — so match the
**field** form, not a bare line-start Field:.)
Full bug bodies are needed only for the priority-vs-severity re-evaluation in
sprint/full modes; trend is a read-only report and skips it. (The one
deviation check that needs a story's status — "bug filed against a Complete
story" — is a targeted story-status grep either way, not a bug-body read.)
Read the most recently modified file in production/sprints/ to understand:
If no sprint file exists: note "No sprint plan found — assigning to backlog only."
Read .claude/docs/coding-standards.md for severity/priority definitions if they
exist. If they do not exist, use the standard definitions in Step 3.
For each bug, extract or infer:
| Severity | Definition |
|---|---|
| S1 — Critical | Game crashes, data loss, or complete feature failure. Cannot proceed past this point. |
| S2 — High | Major feature broken but game is still playable. Significant wrong behaviour. |
| S3 — Medium | Feature degraded but a workaround exists. Minor wrong behaviour. |
| S4 — Low | Visual glitch, cosmetic issue, typo. No gameplay impact. |
| Priority | Definition |
|---|---|
| P1 — Fix this sprint | Blocks QA, blocks release, or is regression from last sprint |
| P2 — Fix soon | Should be resolved before the next major milestone |
| P3 — Backlog | Would be good to fix, but no active blocking impact |
| P4 — Won't fix / Deferred | Accepted risk or out of scope for current product scope |
For each P1/P2 bug in sprint mode:
Sprint: [current])Priority overflow — consider pulling from sprintFor full mode: assign all P1 to current sprint, P2 to next sprint estimate,
P3+ to backlog.
Flag bugs that suggest systematic problems:
After classifying all bugs, generate trend metrics:
# Bug Triage Report
> **Date**: [date]
> **Mode**: [sprint | full | trend]
> **Generated by**: /bug-triage
> **Open bugs processed**: [N]
> **Sprint in scope**: [sprint name, or "N/A"]
---
## Triage Summary
| Priority | Count | Notes |
|----------|-------|-------|
| P1 — Fix this sprint | [N] | [N] assigned to sprint, [N] overflow |
| P2 — Fix soon | [N] | Scheduled for next sprint |
| P3 — Backlog | [N] | Deferred |
| P4 — Won't fix | [N] | Accepted risk |
**Critical (S1/S2) unfixed count**: [N]
---
## P1 Bugs — Fix This Sprint
| ID | System | Severity | Summary | Assigned to | Story |
|----|--------|----------|---------|-------------|-------|
| BUG-NNNN | [system] | S[1-4] | [one-line description] | [sprint] | [story path] |
---
## P2 Bugs — Fix Soon
| ID | System | Severity | Summary | Target Sprint |
|----|--------|----------|---------|---------------|
| BUG-NNNN | [system] | S[1-4] | [one-line description] | Sprint [N+1] |
---
## P3/P4 Bugs — Backlog / Won't Fix
| ID | System | Severity | Summary | Disposition |
|----|--------|----------|---------|-------------|
| BUG-NNNN | [system] | S4 | [one-line description] | Backlog |
---
## Systemic Issues Flagged
[List any patterns from Step 3 deviation check, or "None identified."]
---
## Trend Analysis
**Volume**: [N] open / [+N] net change this sprint
**Hot spot**: [system with most bugs]
**Regressions**: [N] bugs against completed stories
**Aged bugs (>2 sprints old)**: [N]
[If N aged S1/S2 bugs > 0:]
> ⚠️ [N] high-severity bugs have been open for more than 2 sprints without
> assignment. These represent accepted risk that should be explicitly reviewed.
---
## Recommended Actions
1. [Most urgent action — usually "fix P1 bugs before QA hand-off"]
2. [Second action — usually "investigate [hot spot system] quality"]
3. [Third action — optional improvement]Present the report in conversation. If any bug is a P4 candidate, first ask
"Are these acceptable as Won't Fix?" and keep its disposition P4 candidate
until the user answers. Then ask:
"May I write this triage report to production/qa/bug-triage-[date].md?"
Write only after approval.
After writing:
/sprint-status to see current capacity."/smoke-check to re-gate."Then, whether or not P1 bugs exist: Verdict: COMPLETE — triage report written.
If user declined write: Verdict: BLOCKED — user declined write.
b21fa0f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.