Re-evaluate open bugs — priority vs severity, assign to sprints, surface systemic trends. Run when the count grows.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-bug-triage-d390ee1991b6 ,按照其中的说明把「bug-triage」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
!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.
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-NNN | [system] | S[1-4] | [one-line description] | [sprint] | [story path] |
---
## P2 Bugs — Fix Soon
| ID | System | Severity | Summary | Target Sprint |
|----|--------|----------|---------|---------------|
| BUG-NNN | [system] | S[1-4] | [one-line description] | Sprint [N+1] |
---
## P3/P4 Bugs — Backlog / Won't Fix
| ID | System | Severity | Summary | Disposition |
|----|--------|----------|---------|-------------|
| BUG-NNN | [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, 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."If user declined write: Verdict: BLOCKED — user declined write.