mcpField
I
investigate-issue

investigate-issue

github.com/kirkchen开发0418 次安装8 周前更新
代码仓库

关于 investigate-issue

用于深入核查单个 GitHub issue 的调查技能,面向需要确认问题根因并提出修复方向的开发者。它要求对照当前代码验证报告、检查影响范围,并按结论撰写评论。

主要功能

  1. 01对照当前代码验证 issue 声明
  2. 02检查类似代码与影响范围
  3. 03判断确认、驳回或需补充信息
  4. 04按模板撰写调查评论
  5. 05区分调查与轻量分流

适用场景

  1. 01核实旧 issue 中的问题是否仍存在
  2. 02检查报告中的文件位置和复现步骤
  3. 03为分配修复任务确定可靠方向

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kirkchen/cadence --skill investigate-issue

安装后在 Claude Code 中输入/investigate-issue确认已加载。

详细介绍

调查 GitHub 问题

概述

调查不止是添加标签,还要根据实际代码核实问题中的说法、确认根本原因,并提出修复方向。输出是一条评论,内容应为以下之一:

  • 确认 — 已根据 HEAD 核实问题中的说法,已说明修复方向,可以着手处理
  • 驳回 — 无法复现/已修复/前提有误——关闭问题
  • 需要更多信息 — 缺少关键信息;添加 status/needs-info 标签并停止

调查 ≠ 分类:每个问题需要 30 分钟到数小时,而不是 5 分钟。不要对整个待处理列表执行调查,只挑选值得调查的问题。

适用情形

  • 正文内容稀少(标题 + 一句话)——需要证实其中的说法
  • 正文引用了文件:行号,但相关代码可能已移动/重构
  • 问题发布已久(超过 3 个月)——核实该错误在 HEAD 中是否仍然存在
  • 准备将问题分配到修复分支——需要先确定合理的修复方向
  • 用户提出“调查”“深入分析”或“核实”

以下情形不适用:简单分类就足够(正文内容详尽、说法明确,只需要添加标签)。

流程

  1. 完整阅读正文 — 记录每一项说法:

    • 引用的文件路径/行号
    • 复现步骤
    • 建议的修复方案
    • 受影响范围(例如“10 个端点”“所有 SSE 路由”)
  2. 核实说法 — 打开每个文件:行号:

    • HEAD 中是否存在所描述的代码?
    • 文件是否已移动、重命名或重构?
    • 错误是否仍然存在?
    • 如适用,执行复现步骤。
  3. 探查影响范围 — 不要轻信正文列举的范围:

    • 使用 grep / Glob 在其他位置查找相同的反模式
    • 对可疑行运行 git blame — 是近期更改还是早已有之?
    • 检查相关测试——这些测试能发现此问题吗?是否存在相关测试?
  4. 决定结果:

    • 已确认且范围明确:发表评论,写明已核实的说法和具体修复方向
    • 已确认,但正文中的修复方案有误/不完整:说明原因并提出替代方案
    • 驳回:说明原因 → 关闭问题
    • 需要更多信息:提出具体问题,添加 status/needs-info 标签
  5. 执行后续操作:

    • 如果调查后优先级发生变化,更新标签
    • 使用下方模板发表评论
    • 可选:设置 assignees,链接到草稿 PR

评论模板

遵循仓库的 PR 模板风格——使用带表情符号的分节标题,方便快速浏览。使用与问题正文相同的语言。跳过不适用的部分(不要留下空标题)。

## 🔬 Investigation YYYY-MM-DD

**Verdict**: confirmed · dismissed · needs-info
**Adjusted priority**: <only if triage call changed after investigation>

### 📊 At a Glance

<diagram (mermaid or ascii) + 1-line caption — show the verified mechanism, not a text summary>

Use a diagram when investigating:

- Security: `sequenceDiagram` of attack chain confirming where the actual exploit happens
- Race condition: `sequenceDiagram` of concurrent timeline
- Refactor: `flowchart` of current vs proposed module shape
- Cluster of broken-together bugs: `flowchart LR` of dependency

Skip the section if the verdict line + Verified bullets already make the picture obvious.

### ✅ Verified

- <file:line still valid as of `<sha>` / matches body's description>
- <reproduction confirmed via `<command / scenario>`>
- <blast radius: N additional sites at `<paths>`>

### ❌ Body inaccuracies

<only if applicable — e.g. "body says fix is at A, actual root cause is B because...">

### 🛠 Proposed Direction

<2-4 lines — concrete fix path. File paths + shape of change. Not full code.>

### ❓ Open Questions

<only when investigation surfaces decisions / tradeoffs / verification gaps that the issue owner needs to resolve before fix can land>

Format each as: `**<question>** — <type>. <your lean if any>`
Types: `decision needed` · `tradeoff` · `verification gap`

Skip the section when there's nothing genuinely undecided. Forced "questions" become noise.

### 🔗 Related

<cross-links if relevant>

与分类的区别

分类调查
阅读正文是是
阅读代码否是
核实文件:行号否是
探查影响范围否是
提出修复方案仅复述正文自行分析
每个问题耗时2–10 分钟30 分钟到数小时
范围整个待处理列表每次一个问题

如果在分类过程中开始阅读代码,就已经进入调查阶段了——请把这个问题完整调查完。不要只调查一半。

常见错误

  • 不经核查就相信正文中的文件:行号 — 代码会变动。正文中的信息可能已经过时 3 个月。务必核实。
  • 止步于正文中建议的修复方案 — 正文只是报告者的假设,并未得到证实。请确认该方案确实解决了根本原因。
  • 忽略影响范围 — 只修复提到的一个位置,却漏掉其他地方 4 处相同的位置。
  • 调查整个积压问题列表 — 这种做法无法扩展。优先处理影响力大的问题。
  • 提出推测性的修复方案 — 只提出你已在 HEAD 验证过的方案。如果无法验证,请标记 status/needs-info 并停止。
  • 留下空的章节标题 — 不适用的章节应省略,而不是填上“无”。
  • 把决策塞进 Proposed Direction — 如果存在实际取舍或验证缺口,应在 Open Questions 下明确提出,而不是埋在提案中。负责人应该能直接看到问题,而不必从建议方案中费力找出。

评论

支持 Markdown