name: github-bug-report-triage description: 为可操作性分类 GitHub bug 报告。在评估 bug 问题是否有足够细节和识别报告者缺失信息时使用。 license: MIT
GitHub Bug 报告分类
仅评估 GitHub 问题中的 bug 报告。确定它们是否包含足够的信息以可操作。如果没有,识别缺失的细节并提供建设性反馈。
工作流程
1. 定位问题模板
检查现有模板:
.github/ISSUE_TEMPLATE/bug_report.md.github/ISSUE_TEMPLATE/bug_report.yml.github/ISSUE_TEMPLATE/*.md.github/ISSUE_TEMPLATE.mdISSUE_TEMPLATE.md
如果没有模板存在,使用此技能中的 references/ISSUE_TEMPLATE.md 作为回退模板,然后根据其评估问题。
2. 评估问题质量
关键问题:
-
这是否是一个 bug 报告?
- 如果问题是功能请求或问题,请不要评估此问题
-
描述是否清晰?
- 什么被破坏或错误
- 预期行为与实际发生的情况对比
- 影响或严重性
-
我们能否重现它?
- 分步重现
- 或沙盒/StackBlitz/CodeSandbox 链接
- 或最小代码示例
合理对待:
- 不需要填充每个模板字段
- 专注于调查所需的最小信息
- 考虑上下文(明显 bug vs. 边缘情况)
3. 做出判断
准备可操作:
- 有清晰的问题描述
- 包含重现路径或足够的上下文以调试
- 实际上是 bug(不是功能/问题)
需要更多信息:
- 模糊描述(“它不起作用”)
- 缺少重现步骤且无代码示例
- 不清楚预期行为应该是什么
- 缺少关键上下文(例如,“崩溃”但无错误消息)
4. 提供反馈
如果准备就绪: 确认问题是可操作的。
如果需要信息: 指定缺失的内容。建设性和具体。
示例
示例 1:准备调查
**问题**:移动 Safari 上菜单不关闭
**描述**:
在 iOS Safari 上点击菜单项时,菜单保持打开而不是关闭。在桌面 Chrome/Firefox 上正常工作。
**步骤**:
1. 访问 https://stackblitz.com/edit/my-repro
2. 在 iOS Safari 上打开
3. 点击菜单,选择任意项
4. 菜单保持打开(应该关闭)
**环境**:iOS 16.3, Safari
评估:✅ 准备就绪
- 清晰描述
- 有重现链接
- 具体环境细节
示例 2:需要更多信息
**问题**:按钮坏了
**描述**:
提交按钮工作不正常。
评估:❌ 需要信息 缺失:
- “不起作用”是什么意思?(无点击?错误?错误行为?)
- 预期与实际行为对比
- 重现步骤
- 任何错误消息
示例 3:边缘情况 - 合理
**问题**:表单提交时控制台错误
**描述**:
在提交联系表单时出现“无法读取 null 的属性 'value'”。100% 发生。
**错误**:
TypeError: Cannot read property ‘value’ of null at handleSubmit (ContactForm.tsx:45)
**环境**:Chrome 120, Windows 11
评估:✅ 准备就绪
- 清晰的错误消息带堆栈跟踪
- 具体文件/行参考
- 可重现(100% 时间)
- 注意:无显式重现步骤,但错误足够清晰以调查
示例 4:重现性不足的 Bug 报告
**问题**:[glob-loader] 文件更新时重复 ID 警告
**描述**:
我遇到 glob loader 的问题。每当我更新监视的文件时,日志中会出现警告消息。
警告消息:
13:23:31 [WARN] [glob-loader] 在 /Users/user/Code/project/content/posts/russian-test.md 中找到重复 id “russian-test”。后续具有相同 id 的项将覆盖早期项。
**预期**:无警告消息
**最小可重现示例链接**:- N/A
评估:❌ 需要信息
- 描述了一个真正的 bug(警告消息)
- 有错误输出和代码参考
- 但:未提供最小重现
- 代码链接指向私有仓库(无法访问调试)
缺失:
- 最小重现(示例代码或工作重现链接)