SuperAPI AI 工具集

feedback

编程与开发

查看项目

更新于 10-20 01:16

技能介绍

Feedback 是一个面向 GitHub Pull Request 评审流程的只读技能(skill)。它的用途不是重新做一次代码评审,而是消费 PR 上已经存在的评审评论——包括 Copilot 和人类评审者——并判断哪些值得修、哪些不值得。每条评论都会先与当前代码核对,再给出结论。该技能不会回复讨论串、解决对话或发布任何内容,输出仅为用户的决策辅助。与 code-review 技能不同:后者生成新的发现,本技能评估已有评审评论。

主要能力与流程:

  1. 使用 gh 获取评论:拉取 PR 的评审评论(默认当前分支的 PR),覆盖行内讨论串评论与顶层评审摘要,来源包括 Copilot 和人类评审者。只保留未解决的讨论串——解决状态存在于 GraphQL 的 reviewThreads 字段(isResolved)中,而非 REST 的 pulls/comments,因此需要过滤已解决或过时噪音时应使用 gh api graphql。为每条记录作者、路径、行号和正文。若无未解决评论,则报告该情况并停止。
  2. 对照当前代码核实:读取 path:line 处的文件,确认评论是否仍然适用。评审者(尤其是机器人)常对过期 diff 发表评论并忽略周边上下文。标注 outdated: true 的讨论串默认倾向 Skip,除非该担忧在当前代码中仍成立。完成标准是每条评论都已对照实际代码检查,而非仅凭文字判断。
  3. 按标准分类:每条结论都附一句基于第二步所见内容的理由。
  4. 输出分诊表:按 Address 优先分组。完成标准是每条获取到的评论都出现在表中并带有结论与理由。
  5. 提出修复:询问是否实现 Address 项。若用户同意,则以 tdd(测试优先)调用 Skill 工具处理它们。不会自动实现;不触碰 Skip/Optional/Discuss 项。

判定标准:

  • Address:对照当前代码核实为真实缺陷、风险、正确性缺口或明显有效的改进。
  • Skip:错误、误报、已过时(代码已变)、与既有代码库约定矛盾,或超出本 PR 范围。理由必须引用证据,而非仅作断言。
  • Optional:主观/风格/偏好,无正确性影响,由用户决定。
  • Discuss:有效但需要用户单独决策的担忧(产品权衡、破坏性变更、架构方向)。

输出格式为 Markdown 分诊表:标题为 Triage: PR #<n> — <title>(<count> unresolved),并按 Address、Optional、Discuss、Skip 分组;每条列出 path:line、@author、评论要点和理由。

错误处理:gh pr view 失败时运行 gh auth status;若不在 PR 分支上,询问 PR 编号。评论所属文件在 PR 中被删除或重命名时,注明并倾向 Skip(担忧可能已转移)。Copilot 评论引用 diff 之外的行时,视为低信号,需先核实周边代码再决定是否采信。

适用场景:开发者收到大量 PR 评审意见(尤其混有 Copilot 自动评论)时,用于快速甄别哪些评论应处理、哪些可忽略,并决定是否以测试优先方式实现。限制:仅支持 GitHub PR;依赖 gh CLI 与认证;只读,不参与讨论;对无法仅凭代码判断的产品或架构问题只归入 Discuss,不代为决策。