[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F1TDVWWCCC16F91K2FQKMZ":3,"skill-same:01M6F1TDVWWCCC16F91K2FQKMZ":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6F1TDVWWCCC16F91K2FQKMZ","issue-triage",null,"GitHub Issue 处理协作流程。当用户收到 issue 需要分析和回复时使用。通过\"诊断 → 定性 → 决策 → 回复\"四步法，从一个 issue 产出准确的根因分析和得体的用户回复，避免误判问题类型或回复不专业。","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fyunshu0909\u002Fissue-triage\u002FSKILL.md",[],[19,20,21,22,23,24],"triage","issue triage","issue","github","协作","github issue","2026-11-10 10:12:30",false,"---\nname: issue-triage\ndescription: GitHub Issue 处理协作流程。当用户收到 issue 需要分析和回复时使用。通过\"诊断 → 定性 → 决策 → 回复\"四步法，从一个 issue 产出准确的根因分析和得体的用户回复，避免误判问题类型或回复不专业。\n---\n\n用户收到了一个 GitHub Issue（bug 报告、疑问、feature request），需要 AI 协助分析问题、判断是否要做、起草回复。AI 全程主导推进，用户只在关键节点做判断。\n\n## 核心原则\n\n- **先诊断后开口** — 没看完代码不下结论，没找到根因不定性\n- **对用户诚实** — 是 bug 就认，是架构限制就说清楚，不甩锅也不画饼\n- **量化成本** — \"成本高\"不是结论，要说清楚高在哪：改几个文件、涉及哪些模块、有没有测试条件\n- **给替代方案** — 不做不等于不管，要告诉用户现在怎么绕过\n\n## 工作流程\n\n### 第 1 步：获取 Issue 内容\n\n**目标：** 拿到 issue 的完整信息。\n\n方法：\n1. 用户提供 issue 链接或仓库地址\n2. 通过 `gh issue view` 或 WebFetch 获取 issue 详情\n3. 提取关键信息：用户环境、复现步骤、期望行为、实际行为、用户的猜测\n\n**输出：** 向用户简要转述 issue 内容，确认理解无误。\n\n**禁止：** 只看标题就开始分析。必须读完 issue 全文。\n\n### 第 2 步：代码诊断\n\n**目标：** 在代码中找到根因。\n\n方法：\n1. 从 issue 描述中提取关键词（功能名、错误信息、页面名等）\n2. 在代码中定位相关链路：从前端入口 → IPC 调用 → 后端处理 → 底层实现\n3. 画出完整调用链，标注每个环节的文件和行号\n4. 确认根因：代码哪里出了问题，或者代码为什么不支持用户的场景\n\n**输出：** 向用户展示：\n- 完整调用链（文件 + 行号）\n- 根因的一句话总结\n- 必要时附关键代码片段\n\n**禁止：**\n- 没读代码就猜原因\n- 只看一个文件就下结论（要追完整条链路）\n\n### 第 3 步：定性\n\n**目标：** 判断这个 issue 属于哪种类型。\n\n| 类型 | 判断标准 | 应对策略 |\n|------|---------|---------|\n| Bug | 在产品设计范围内，行为不符合预期 | 排期修复 |\n| 架构限制 | 用户场景超出产品的设计前提 | 解释现状，评估是否值得扩展 |\n| Feature Request | 产品本身没问题，用户想要新能力 | 评估成本和优先级 |\n| 使用问题 | 用户操作方式不对，但产品可以做得更友好 | 回复指引，考虑优化体验 |\n\n**关键判断：** 区分\"该做但做错了\"（bug）和\"没打算做\"（架构限制\u002Ffeature）。\n\n**输出：** 向用户说明定性结论和理由，等用户确认后再往下走。\n\n### 第 4 步：决策（做还是不做）\n\n**目标：** 基于根因和定性，给出做\u002F不做的建议。\n\n#### 评估四个维度\n\n1. **改动范围** — 改几行 \u002F 改一个模块 \u002F 新增一个模块\n2. **影响面** — 只动一个文件 \u002F 要改多个文件的调用链 \u002F 要重构\n3. **测试条件** — 有没有环境能复现和验证（没环境 = 高风险）\n4. **用户绕过成本** — 用户自己能不能用其他方式解决\n\n#### 决策矩阵\n\n| 改动范围 | 有测试条件 | 用户可绕过 | 建议 |\n|---------|-----------|-----------|------|\n| 小（几行） | 有 | — | 直接修 |\n| 中（一个模块） | 有 | — | 排期做 |\n| 大（新模块\u002F重构） | 有 | 否 | 评估后排期 |\n| 大（新模块\u002F重构） | 没有 | 是 | 记下需求，暂不做 |\n| 任意 | 没有 | 是 | 告知绕过方案，需求记下 |\n\n**输出：** 向用户说明建议和理由。如果建议不做，要量化成本（改几个文件、涉及哪些模块、为什么没法测）。\n\n**等用户确认决策后，再进入回复环节。**\n\n### 第 5 步：起草回复\n\n**目标：** 写一条专业、得体、有信息量的 issue 回复。\n\n#### 回复结构（三层）\n\n1. **解释场景定位** — 这个功能是为什么场景设计的，让用户理解\"为什么当前不支持\"\n2. **给出实际影响** — 对用户来说，没有这个功能影响大不大，有没有替代方案\n3. **说明后续计划** — 如果做，给方向；如果不做，诚实说明成本和原因\n\n#### 语气原则\n\n- **感谢反馈** — 用户花时间提 issue 值得尊重\n- **不甩锅** — 不说\"你用错了\"，说\"这个场景我们还没覆盖到\"\n- **给具体建议** — 不只说\"不行\"，要告诉用户现在怎么办\n- **量化成本** — 让用户理解不是不想做，是客观上成本高\n\n#### 回复模板\n\n```\nHi @{用户名}，感谢反馈！\n\n**1. 功能定位**\n{这个功能是为什么场景设计的，为什么当前不支持用户的场景}\n\n**2. 对你的实际影响**\n{用户现在能不能绕过，怎么绕过，核心功能是否受影响}\n\n**3. 关于{用户期望的能力}**\n{成本说明 + 后续计划}\n```\n\n**输出：** 回复草稿，等用户确认后发布。\n\n**禁止：**\n- 不经用户确认就直接发布到 GitHub\n- 用技术黑话回复非技术用户\n- 只说结论不解释原因\n\n### 第 6 步：发布\n\n用户确认回复内容后：\n1. 通过 `gh issue comment` 发布评论\n2. 根据定性结果打标签（bug \u002F enhancement \u002F wontfix \u002F question）\n3. 如果需要记录为需求，提醒用户是否要加到需求池\n\n## 过程中的沟通规范\n\n### AI 主导的节奏\n\n1. 每一步完成后主动推进到下一步\n2. 关键结论让用户确认后再往下走（定性、决策、回复内容）\n3. 技术细节 AI 自己搞定，只向用户展示结论\n\n### 必须等用户确认的节点\n\n| 步骤 | 确认什么 |\n|------|---------|\n| 第 1 步 | \"issue 内容我理解的对吗？\" |\n| 第 3 步 | \"这个定性你认同吗？\" |\n| 第 4 步 | \"这个决策你同意吗？\" |\n| 第 5 步 | \"回复内容可以发吗？\" |\n\n### 不需要问用户的\n\n| 事项 | 直接做 |\n|------|--------|\n| 代码怎么查 | AI 自己追链路 |\n| 根因怎么分析 | AI 自己判断 |\n| 成本怎么量化 | AI 自己评估 |\n","用户收到了一个 GitHub Issue（bug 报告、疑问、feature request），需要 AI 协助分析问题、判断是否要做、起草回复。AI 全程主导推进，用户只在关键节点做判断。\n\n## 核心原则\n\n- **先诊断后开口** — 没看完代码不下结论，没找到根因不定性\n- **对用户诚实** — 是 bug 就认，是架构限制就说清楚，不甩锅也不画饼\n- **量化成本** — \"成本高\"不是结论，要说清楚高在哪：改几个文件、涉及哪些模块、有没有测试条件\n- **给替代方案** — 不做不等于不管，要告诉用户现在怎么绕过\n\n## 工作流程\n\n### 第 1 步：获取 Issue 内容\n\n**目标：** 拿到 issue 的完整信息。\n\n方法：\n1. 用户提供 issue 链接或仓库地址\n2. 通过 `gh issue view` 或 WebFetch 获取 issue 详情\n3. 提取关键信息：用户环境、复现步骤、期望行为、实际行为、用户的猜测\n\n**输出：** 向用户简要转述 issue 内容，确认理解无误。\n\n**禁止：** 只看标题就开始分析。必须读完 issue 全文。\n\n### 第 2 步：代码诊断\n\n**目标：** 在代码中找到根因。\n\n方法：\n1. 从 issue 描述中提取关键词（功能名、错误信息、页面名等）\n2. 在代码中定位相关链路：从前端入口 → IPC 调用 → 后端处理 → 底层实现\n3. 画出完整调用链，标注每个环节的文件和行号\n4. 确认根因：代码哪里出了问题，或者代码为什么不支持用户的场景\n\n**输出：** 向用户展示：\n- 完整调用链（文件 + 行号）\n- 根因的一句话总结\n- 必要时附关键代码片段\n\n**禁止：**\n- 没读代码就猜原因\n- 只看一个文件就下结论（要追完整条链路）\n\n### 第 3 步：定性\n\n**目标：** 判断这个 issue 属于哪种类型。\n\n| 类型 | 判断标准 | 应对策略 |\n|------|---------|---------|\n| Bug | 在产品设计范围内，行为不符合预期 | 排期修复 |\n| 架构限制 | 用户场景超出产品的设计前提 | 解释现状，评估是否值得扩展 |\n| Feature Request | 产品本身没问题，用户想要新能力 | 评估成本和优先级 |\n| 使用问题 | 用户操作方式不对，但产品可以做得更友好 | 回复指引，考虑优化体验 |\n\n**关键判断：** 区分\"该做但做错了\"（bug）和\"没打算做\"（架构限制\u002Ffeature）。\n\n**输出：** 向用户说明定性结论和理由，等用户确认后再往下走。\n\n### 第 4 步：决策（做还是不做）\n\n**目标：** 基于根因和定性，给出做\u002F不做的建议。\n\n#### 评估四个维度\n\n1. **改动范围** — 改几行 \u002F 改一个模块 \u002F 新增一个模块\n2. **影响面** — 只动一个文件 \u002F 要改多个文件的调用链 \u002F 要重构\n3. **测试条件** — 有没有环境能复现和验证（没环境 = 高风险）\n4. **用户绕过成本** — 用户自己能不能用其他方式解决\n\n#### 决策矩阵\n\n| 改动范围 | 有测试条件 | 用户可绕过 | 建议 |\n|---------|-----------|-----------|------|\n| 小（几行） | 有 | — | 直接修 |\n| 中（一个模块） | 有 | — | 排期做 |\n| 大（新模块\u002F重构） | 有 | 否 | 评估后排期 |\n| 大（新模块\u002F重构） | 没有 | 是 | 记下需求，暂不做 |\n| 任意 | 没有 | 是 | 告知绕过方案，需求记下 |\n\n**输出：** 向用户说明建议和理由。如果建议不做，要量化成本（改几个文件、涉及哪些模块、为什么没法测）。\n\n**等用户确认决策后，再进入回复环节。**\n\n### 第 5 步：起草回复\n\n**目标：** 写一条专业、得体、有信息量的 issue 回复。\n\n#### 回复结构（三层）\n\n1. **解释场景定位** — 这个功能是为什么场景设计的，让用户理解\"为什么当前不支持\"\n2. **给出实际影响** — 对用户来说，没有这个功能影响大不大，有没有替代方案\n3. **说明后续计划** — 如果做，给方向；如果不做，诚实说明成本和原因\n\n#### 语气原则\n\n- **感谢反馈** — 用户花时间提 issue 值得尊重\n- **不甩锅** — 不说\"你用错了\"，说\"这个场景我们还没覆盖到\"\n- **给具体建议** — 不只说\"不行\"，要告诉用户现在怎么办\n- **量化成本** — 让用户理解不是不想做，是客观上成本高\n\n#### 回复模板\n\n```\nHi @{用户名}，感谢反馈！\n\n**1. 功能定位**\n{这个功能是为什么场景设计的，为什么当前不支持用户的场景}\n\n**2. 对你的实际影响**\n{用户现在能不能绕过，怎么绕过，核心功能是否受影响}\n\n**3. 关于{用户期望的能力}**\n{成本说明 + 后续计划}\n```\n\n**输出：** 回复草稿，等用户确认后发布。\n\n**禁止：**\n- 不经用户确认就直接发布到 GitHub\n- 用技术黑话回复非技术用户\n- 只说结论不解释原因\n\n### 第 6 步：发布\n\n用户确认回复内容后：\n1. 通过 `gh issue comment` 发布评论\n2. 根据定性结果打标签（bug \u002F enhancement \u002F wontfix \u002F question）\n3. 如果需要记录为需求，提醒用户是否要加到需求池\n\n## 过程中的沟通规范\n\n### AI 主导的节奏\n\n1. 每一步完成后主动推进到下一步\n2. 关键结论让用户确认后再往下走（定性、决策、回复内容）\n3. 技术细节 AI 自己搞定，只向用户展示结论\n\n### 必须等用户确认的节点\n\n| 步骤 | 确认什么 |\n|------|---------|\n| 第 1 步 | \"issue 内容我理解的对吗？\" |\n| 第 3 步 | \"这个定性你认同吗？\" |\n| 第 4 步 | \"这个决策你同意吗？\" |\n| 第 5 步 | \"回复内容可以发吗？\" |\n\n### 不需要问用户的\n\n| 事项 | 直接做 |\n|------|--------|\n| 代码怎么查 | AI 自己追链路 |\n| 根因怎么分析 | AI 自己判断 |\n| 成本怎么量化 | AI 自己评估 |\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fyunshu0909\u002Fissue-triage",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill issue-triage",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill issue-triage",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill issue-triage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fyunshu0909\u002Fissue-triage\u002FSKILL.md",true,[53],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"skill-report.json","REFERENCE","参考文档",10391,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fyunshu0909\u002Fissue-triage\u002Fskill-report.json",[60,74,84,93,99,106],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":25},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[71,72,73],"model","model hierarchy","model hierarchy skill",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":80,"publishedAt":25},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[79],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[81,82,83],"MCP","zoom","zoom mcp",{"skillNo":85,"name":86,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":25},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[90,91,92,82],"sdk","zoom apps sdk","apps",{"skillNo":94,"name":95,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":25},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[95],{"skillNo":100,"name":101,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":105,"publishedAt":25},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[104],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},[101],{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":25},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[108]]