--- name: issue-triage description: GitHub Issue 处理协作流程。当用户收到 issue 需要分析和回复时使用。通过"诊断 → 定性 → 决策 → 回复"四步法,从一个 issue 产出准确的根因分析和得体的用户回复,避免误判问题类型或回复不专业。 --- 用户收到了一个 GitHub Issue(bug 报告、疑问、feature request),需要 AI 协助分析问题、判断是否要做、起草回复。AI 全程主导推进,用户只在关键节点做判断。 ## 核心原则 - **先诊断后开口** — 没看完代码不下结论,没找到根因不定性 - **对用户诚实** — 是 bug 就认,是架构限制就说清楚,不甩锅也不画饼 - **量化成本** — "成本高"不是结论,要说清楚高在哪:改几个文件、涉及哪些模块、有没有测试条件 - **给替代方案** — 不做不等于不管,要告诉用户现在怎么绕过 ## 工作流程 ### 第 1 步:获取 Issue 内容 **目标:** 拿到 issue 的完整信息。 方法: 1. 用户提供 issue 链接或仓库地址 2. 通过 `gh issue view` 或 WebFetch 获取 issue 详情 3. 提取关键信息:用户环境、复现步骤、期望行为、实际行为、用户的猜测 **输出:** 向用户简要转述 issue 内容,确认理解无误。 **禁止:** 只看标题就开始分析。必须读完 issue 全文。 ### 第 2 步:代码诊断 **目标:** 在代码中找到根因。 方法: 1. 从 issue 描述中提取关键词(功能名、错误信息、页面名等) 2. 在代码中定位相关链路:从前端入口 → IPC 调用 → 后端处理 → 底层实现 3. 画出完整调用链,标注每个环节的文件和行号 4. 确认根因:代码哪里出了问题,或者代码为什么不支持用户的场景 **输出:** 向用户展示: - 完整调用链(文件 + 行号) - 根因的一句话总结 - 必要时附关键代码片段 **禁止:** - 没读代码就猜原因 - 只看一个文件就下结论(要追完整条链路) ### 第 3 步:定性 **目标:** 判断这个 issue 属于哪种类型。 | 类型 | 判断标准 | 应对策略 | |------|---------|---------| | Bug | 在产品设计范围内,行为不符合预期 | 排期修复 | | 架构限制 | 用户场景超出产品的设计前提 | 解释现状,评估是否值得扩展 | | Feature Request | 产品本身没问题,用户想要新能力 | 评估成本和优先级 | | 使用问题 | 用户操作方式不对,但产品可以做得更友好 | 回复指引,考虑优化体验 | **关键判断:** 区分"该做但做错了"(bug)和"没打算做"(架构限制/feature)。 **输出:** 向用户说明定性结论和理由,等用户确认后再往下走。 ### 第 4 步:决策(做还是不做) **目标:** 基于根因和定性,给出做/不做的建议。 #### 评估四个维度 1. **改动范围** — 改几行 / 改一个模块 / 新增一个模块 2. **影响面** — 只动一个文件 / 要改多个文件的调用链 / 要重构 3. **测试条件** — 有没有环境能复现和验证(没环境 = 高风险) 4. **用户绕过成本** — 用户自己能不能用其他方式解决 #### 决策矩阵 | 改动范围 | 有测试条件 | 用户可绕过 | 建议 | |---------|-----------|-----------|------| | 小(几行) | 有 | — | 直接修 | | 中(一个模块) | 有 | — | 排期做 | | 大(新模块/重构) | 有 | 否 | 评估后排期 | | 大(新模块/重构) | 没有 | 是 | 记下需求,暂不做 | | 任意 | 没有 | 是 | 告知绕过方案,需求记下 | **输出:** 向用户说明建议和理由。如果建议不做,要量化成本(改几个文件、涉及哪些模块、为什么没法测)。 **等用户确认决策后,再进入回复环节。** ### 第 5 步:起草回复 **目标:** 写一条专业、得体、有信息量的 issue 回复。 #### 回复结构(三层) 1. **解释场景定位** — 这个功能是为什么场景设计的,让用户理解"为什么当前不支持" 2. **给出实际影响** — 对用户来说,没有这个功能影响大不大,有没有替代方案 3. **说明后续计划** — 如果做,给方向;如果不做,诚实说明成本和原因 #### 语气原则 - **感谢反馈** — 用户花时间提 issue 值得尊重 - **不甩锅** — 不说"你用错了",说"这个场景我们还没覆盖到" - **给具体建议** — 不只说"不行",要告诉用户现在怎么办 - **量化成本** — 让用户理解不是不想做,是客观上成本高 #### 回复模板 ``` Hi @{用户名},感谢反馈! **1. 功能定位** {这个功能是为什么场景设计的,为什么当前不支持用户的场景} **2. 对你的实际影响** {用户现在能不能绕过,怎么绕过,核心功能是否受影响} **3. 关于{用户期望的能力}** {成本说明 + 后续计划} ``` **输出:** 回复草稿,等用户确认后发布。 **禁止:** - 不经用户确认就直接发布到 GitHub - 用技术黑话回复非技术用户 - 只说结论不解释原因 ### 第 6 步:发布 用户确认回复内容后: 1. 通过 `gh issue comment` 发布评论 2. 根据定性结果打标签(bug / enhancement / wontfix / question) 3. 如果需要记录为需求,提醒用户是否要加到需求池 ## 过程中的沟通规范 ### AI 主导的节奏 1. 每一步完成后主动推进到下一步 2. 关键结论让用户确认后再往下走(定性、决策、回复内容) 3. 技术细节 AI 自己搞定,只向用户展示结论 ### 必须等用户确认的节点 | 步骤 | 确认什么 | |------|---------| | 第 1 步 | "issue 内容我理解的对吗?" | | 第 3 步 | "这个定性你认同吗?" | | 第 4 步 | "这个决策你同意吗?" | | 第 5 步 | "回复内容可以发吗?" | ### 不需要问用户的 | 事项 | 直接做 | |------|--------| | 代码怎么查 | AI 自己追链路 | | 根因怎么分析 | AI 自己判断 | | 成本怎么量化 | AI 自己评估 |