关于 agent-reviews
用于处理当前 PR 中评审机器人发现的问题。它区分真实缺陷、误报和不确定项,并指导修复、回复及后续监测。
主要功能
- 01获取未回复的机器人发现
- 02区分真实问题与误报
- 03对不确定项询问用户
- 04提交修改并回复发现
- 05监测新的机器人评论
适用场景
- 01修复评审机器人报告的真实缺陷
- 02说明某项发现为何不适用
- 03将不确定或架构决策交由用户判断
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pbakaus/ agent-reviews --skill agent-reviews安装后在 Claude Code 中输入/agent-reviews确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/agent-reviews.jscomments.jsformat.jsgithub.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. 评估发现的问题
阅读相关代码并确定:
- 确实存在的问题 - 需要修复的真实错误
- 误报 - 实际上不是错误(属于有意行为,或机器人理解有误)
- 不确定 - 无法确定;询问用户
可能确实存在的问题:
- 代码明显违反了声明的行为
- 对可能未定义的值缺少 null 检查
- 类型不匹配或函数签名不正确
- 条件判断中的逻辑错误
- 缺少针对已记录失败情况的错误处理
可能是误报:
- 机器人不理解框架或库的惯用模式
- 代码有意采用这种结构(并有注释说明原因)
- 机器人指出的是风格偏好,而非错误
- 所谓的“错误”实际上是功能或有意行为
- 机器人误解了代码流程
不确定时——使用 AskUserQuestion:
- 修复需要进行架构更改
- 确实无法确定该行为是否有意为之
- “错误”涉及你不完全了解的业务逻辑
- 存在多种合理解释
- 修复可能产生意外副作用
B. 根据评估采取行动
如果确实存在问题: 修复代码。记录评论 ID 和简短的修复说明。
如果是误报: 不要更改代码。记录评论 ID 及其不构成实际错误的原因。
如果不确定: 使用 AskUserQuestion。如果用户要求跳过,则将其记录为已跳过。
此时不要回复评论。请在提交后再回复(步骤 5)。
步骤 4:提交并推送
评估并修复所有尚未回复的评论后:
- 运行项目的 lint 和类型检查
- 暂存、提交并推送:
git add -A git commit -m "fix: address PR review bot findings {List of bugs fixed, grouped by bot}" git push - 从输出中记录提交哈希。
步骤 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):- 使用
--detail <id>读取每条新评论的完整详情 - 严格按照阶段 1 的步骤 3–5 处理(评估、修复、提交、推送、回复)
- 返回步骤 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代码块通常包含可直接使用的修复方案