mcpField
C
converge-reviews

converge-reviews

github.com/bhagyamudgal测试与质量2102 次安装5 天前更新
代码仓库

关于 converge-reviews

converge-reviews 是用于协调代码审查状态的技能,通过复用未变更范围的审查证据和限制稳定范围最多三轮,避免审查循环。它不负责审查代码或应用修复。

主要功能

  1. 01按稳定范围跟踪审查状态
  2. 02仅使变更覆盖范围失效
  3. 03合并并追踪审查发现
  4. 04三轮后停止稳定范围审查
  5. 05输出继续、收敛或阻塞结果

适用场景

  1. 01在修复后复用未变更代码的审查结果
  2. 02区分需重新审查的覆盖范围
  3. 03三轮后仍有严重问题时停止审查循环

安装

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

$npx skills add https://github.com/bhagyamudgal/skills --skill converge-reviews

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

附带文件agents/openai.yaml

详细介绍

汇总评审

我会复用有效的评审证据,仅将发生变化的覆盖范围标记为无效,并在三轮评审/修复后停止对稳定范围的评审。我发现,这个上限正是打破循环的关键。没有它,每一轮都会对未变更的代码提出新的意见,评审也永远无法定案。此技能负责协调评审状态。它不评审代码、不应用修复,也不创建外部问题。

1. 接收一个评审包

开始前,我要求满足以下所有条件。

  • 发起请求或工单。
  • 评审基准和当前提交,或等效的本地基线。
  • 确切的范围路径和当前内容/差异哈希。
  • 评审者名单及各自的评审视角。
  • 带有稳定 ID、严重性、来源评审者、证据和处置结果的发现项。
  • 任何先前的收敛记录。

如果调用方已维护更丰富的发现项状态,我会引用其产物和发现项 ID,而不复制发现项正文。review-pr 发现项状态文件仍是 PR 发现项状态的权威来源。

检查关口。 每位评审者都有记录,每个发现项都可追溯到一个范围、一位评审者和一种处置结果。

2. 确定范围和覆盖情况

稳定范围是由发起请求、评审基线、排序后的路径、评审者名单和评审视角生成的规范哈希。我会记录当前内容/差异哈希,将其作为已评审快照,并记录在每个覆盖条目中。

我会将收敛状态保存在调用方现有且获授权的评审产物中。如果不存在此类产物,且工作流获准维护本地评审状态,我会使用 .claude/review-state/local-<scope-id>.yml,并确保该目录被忽略。否则,我会直接内嵌呈现此记录,不创建文件。我只存储以下内容。

convergence:
  scope_id: <stable ID>
  origin: <request or ticket>
  baseline: <base SHA or local baseline>
  snapshot: <head and content/diff hash>
  paths: [<reviewed paths>]
  reviewers: [<reviewer and lens>]
  round: <1..3>
  coverage: [<path or component, lens, reviewed hash, source round>]
  findings: [<finding ID, severity, normalized_status, disposition, source>]
  closure_check: not-needed | available | passed | failed
  result: continue | converged | blocked-at-cap | follow-up-proposed
  next_action: <exact next action>

快照和约定相同,则复用已记录的结果,不增加轮次。针对已记录发现项的修复会推进同一范围。新的要求、新的评审视角或实质性新增组件会创建一个从第 1 轮开始的子范围。它会继承父范围中未变更覆盖部分的活动阻塞项,且无法重置已达到轮次上限的父范围。外观、生成内容和无关变更既不会重置轮次,也不会使覆盖失效。

我只会将评审内容、路径或评审视角发生变化的覆盖标记为无效。在其覆盖内容发生变化前,我会保留未受影响的评审者证据。

检查关口。 每个覆盖条目要么在哈希和约定匹配时复用,要么标记为需要重新评审。

3. 汇总本轮结果

我会按稳定 ID 合并发现项,并保留来源评审者和处置历史。调用方的发现项状态仍是权威状态。我会在汇总时推导 normalized_status,但不会将其写回为调用方状态。将 active、regression 和调用方特定的未关闭状态映射为 open;将 resolved、dismissed 和 wontfix 映射为 closed;将当前范围之外的 follow-up 映射为 deferred。

只有在计划名单中的评审者均已返回,或已明确记录为无法提供评审,且调用方已汇总每个发现项后,我才会计为一轮。在选定结果前,我会记录修复、驳回、回归和新近失效的覆盖项。

检查关口。 记录应说明自上一轮以来发生了哪些变化,并解释每个先前发现项或覆盖条目为何仍然有效、已变更或已关闭。

4. 返回一个结果

  • continue:已完成的轮次少于三轮,并且已明确指出确切的下一项修复或受影响的覆盖范围复查。
  • converged:没有未解决的严重或重大问题,没有仍值得跟进的中等或轻微问题,并且所有必需的覆盖范围均为最新状态。
  • blocked-at-cap:第三轮已完成,且至少有一个严重或重大问题仍未解决。停止反复审查,并明确指出确切的阻塞项修复方案。完成该修复后,允许对这些阻塞项 ID 和变更位置进行一次有针对性的关闭检查;该检查会更新覆盖范围和处置结果,但不会进行新的问题扫描,也不计为第四轮。如果检查未通过,则继续保持阻塞状态,等待明确的新计划或范围决策。
  • follow-up-proposed:没有未解决的严重或重大问题,并且将值得跟进的中等或轻微问题列为拟议的后续工作。在用户批准创建外部问题之前,先将该提议保留在本地;之后,在创建问题前调用 preflight-mutations。

第三轮是稳定范围的硬性上限。我会将改写的问题、对未变覆盖范围的另一位审查者复查,或外观上的差异,都视为同一轮的延续,绝不算作第四轮。唯一一次有针对性的阻塞项关闭检查仅用于验证已明确指出的修复。它不能扩大覆盖范围,也不能提出新的问题。

调用方负责应用此约定。仅当结果为 continue 时,才重新运行受影响的审查覆盖范围;结果为 converged 时继续;结果为 blocked-at-cap 时停止;结果为 follow-up-proposed 时,展示提议和审批边界。在达到上限后完成已明确指出的阻塞项修复时,closure_check: available 是触发唯一一次有针对性检查的信号。调用方仅传入这些阻塞项 ID 和变更位置,保持 round 不变,并拒绝任何新的问题扫描。

完成。 台账为最新状态,已复用未变的证据,受影响的覆盖范围已明确,稳定范围内的轮次不超过三轮,并且调用方收到了且只收到了一个结果和下一步操作。

评论

支持 Markdown