mcpField
A
agent-reviews

agent-reviews

github.com/pbakaus测试与质量30835 次安装2 周前更新
代码仓库

关于 agent-reviews

用于处理当前 PR 中评审机器人发现的问题。它区分真实缺陷、误报和不确定项,并指导修复、回复及后续监测。

主要功能

  1. 01获取未回复的机器人发现
  2. 02区分真实问题与误报
  3. 03对不确定项询问用户
  4. 04提交修改并回复发现
  5. 05监测新的机器人评论

适用场景

  1. 01修复评审机器人报告的真实缺陷
  2. 02说明某项发现为何不适用
  3. 03将不确定或架构决策交由用户判断

安装

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

$npx skills add https://github.com/pbakaus/agent-reviews --skill agent-reviews

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
agent-reviews.js
comments.js
format.js
github.js

详细介绍

自动审查、修复并回复当前 PR 上的 PR 审查机器人发现的问题。采用确定性的两阶段工作流:先修复所有现有问题,然后轮询一次以查找新问题。

路径说明: 以下所有对 scripts/agent-reviews.js 的引用都相对于此技能的目录(与此 SKILL.md 文件位于同一目录)。使用 node 运行这些脚本。

阶段 1:获取并修复(同步)

步骤 1:识别当前 PR
gh pr view --json number,url,headRefName

如果不存在 PR,请通知用户并退出。

步骤 2:获取所有机器人评论(展开)

运行 scripts/agent-reviews.js --bots-only --unanswered --expanded

这会仅显示尚未回复的机器人评论,并提供完整详细信息:完整评论内容(不截断)、差异代码块(代码上下文)和所有回复。每条评论都会显示其 ID,格式为方括号(例如 [12345678])。

如果未返回评论,请输出“No unanswered bot comments found”,然后跳到阶段 2。

步骤 3:处理每条尚未回复的评论

针对展开输出中的每条评论:

A. 评估发现的问题

阅读相关代码并确定:

  1. 确实存在的问题 - 需要修复的真实错误
  2. 误报 - 实际上不是错误(属于有意行为,或机器人理解有误)
  3. 不确定 - 无法确定;询问用户

可能确实存在的问题:

  • 代码明显违反了声明的行为
  • 对可能未定义的值缺少 null 检查
  • 类型不匹配或函数签名不正确
  • 条件判断中的逻辑错误
  • 缺少针对已记录失败情况的错误处理

可能是误报:

  • 机器人不理解框架或库的惯用模式
  • 代码有意采用这种结构(并有注释说明原因)
  • 机器人指出的是风格偏好,而非错误
  • 所谓的“错误”实际上是功能或有意行为
  • 机器人误解了代码流程

不确定时——使用 AskUserQuestion:

  • 修复需要进行架构更改
  • 确实无法确定该行为是否有意为之
  • “错误”涉及你不完全了解的业务逻辑
  • 存在多种合理解释
  • 修复可能产生意外副作用
B. 根据评估采取行动

如果确实存在问题: 修复代码。记录评论 ID 和简短的修复说明。

如果是误报: 不要更改代码。记录评论 ID 及其不构成实际错误的原因。

如果不确定: 使用 AskUserQuestion。如果用户要求跳过,则将其记录为已跳过。

此时不要回复评论。请在提交后再回复(步骤 5)。

步骤 4:提交并推送

评估并修复所有尚未回复的评论后:

  1. 运行项目的 lint 和类型检查
  2. 暂存、提交并推送:
    git add -A
    git commit -m "fix: address PR review bot findings
    
    {List of bugs fixed, grouped by bot}"
    git push
    
  3. 从输出中记录提交哈希。
步骤 5:回复所有评论

现在提交哈希已生成,请回复每条已处理的评论:

对于每条确实存在问题的评论:

运行 scripts/agent-reviews.js --reply <comment_id> "Fixed in {hash}. {Brief description of the fix}"

对于每条误报评论:

运行 scripts/agent-reviews.js --reply <comment_id> "Won't fix: {reason}. {Explanation of why this is intentional or not applicable}"

对于每条已跳过的评论:

运行 scripts/agent-reviews.js --reply <comment_id> "Skipped per user request"

在发布所有回复之前,不要开始阶段 2。


阶段 2:轮询新评论(循环直到无新评论)

监视器发现新评论后会立即退出(等待 5 秒,以捕获批量发布的评论)。因此,你需要循环运行:启动监视器,处理它返回的所有评论,重新启动监视器,并重复此过程,直到监视器超时且没有发现新评论。

步骤 6:启动监听循环

重复以下操作,直到监听器退出且没有新评论:

6a. 在后台启动监听器:

将 scripts/agent-reviews.js --watch --bots-only 作为后台任务运行。

6b. 使用 TaskOutput 等待监听器完成(最多阻塞 12 分钟)。

6c. 检查输出:

  • 如果发现了新评论(输出包含 EXITING WITH NEW COMMENTS):

    1. 使用 --detail <id> 读取每条新评论的完整详情
    2. 严格按照阶段 1 的步骤 3–5 处理(评估、修复、提交、推送、回复)
    3. 返回步骤 6a,重启监听器
  • 如果没有新评论(输出包含 WATCH COMPLETE): 停止循环并转到总结报告。


总结报告

两个阶段都完成后,提供一份总结:

## PR Review Bot Resolution Summary

### Results
- Fixed: X bugs
- Already fixed: X bugs
- Won't fix (false positives): X
- Skipped per user: X

### By Bot
#### cursor[bot]
- BUG-001: {description} - Fixed in {commit}
- BUG-002: {description} - Won't fix: {reason}

#### Copilot
- {description} - Fixed in {commit}

### Status
✅ All findings addressed. Watch completed.

重要说明

回复策略
  • 每条发现都必须回复——不要默默忽略
  • 回复有助于训练机器人并记录决策
  • 回复“不会修复”可避免再次提出相同的误报
用户交互
  • 对发现项存疑时,使用 AskUserQuestion
  • 不要猜测架构或业务逻辑相关问题
  • 有疑问时,提问总比错误修复或错误驳回要好
最佳实践
  • 修复前验证发现项——机器人可能会误报
  • 保持修复精简、聚焦——不要重构无关代码
  • 提交前确保类型检查和 lint 通过
  • 将相关修复归入同一个提交
  • Copilot 的 suggestion 代码块通常包含可直接使用的修复方案

评论

支持 Markdown