关于 review-prs
review-prs 是用于审查 GitHub 拉取请求并以内联评论发布已核实问题的 Skill;可行的修复会附上建议改动。它分别检查需求意图和代码正确性,适用于使用 `gh` 的代码仓库 Agent。
主要功能
- 01意图与代码两轮审查
- 02在拉取请求中发布内联问题
- 03以建议块提供具体修复
- 04检查已有评论以避免重复
- 05按严重程度汇总审查结果
适用场景
- 01依据关联问题检查拉取请求
- 02审查仓库中的开放拉取请求
- 03在变更行上留下可执行评论
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ismail9k/ skills --skill review-prs安装后在 Claude Code 中输入/review-prs确认已加载。
详细介绍
审查 PR
审查拉取请求,并将发现作为行内评论留在每个 PR 上;只要修复方案明确,就附上建议的修改,让作者可以一键应用。每个拉取请求都要经过两轮检查:它是否实现了关联 issue 的意图,以及代码是否正确。
建议的修改是 GitHub 的一项功能,因此此技能需要 GitHub 仓库和 gh。issue 跟踪工具可以是任何形式——GitHub、Jira 或本地 Markdown 文件。
此技能描述的是操作——“分派审查者”——而不是工具。请使用你所在平台上的等效方式。
第 1 阶段——选择拉取请求
- 确认已安装
gh,且gh auth status检查通过;否则说明原因并停止。 - 仓库:用户指定的仓库;若未指定,则使用当前检出的 GitHub 仓库(
gh repo view --json nameWithOwner)。说明你使用的是哪个仓库。 - 拉取请求:用户指定的请求;如果用户说“全部”或“开放的请求”,则运行
gh pr list --repo <owner/repo> --state open --limit 1000 --json number,title,url,isDraft。除非用户指定草稿,否则排除草稿。 - 列出这些请求,并说明将对每个拉取请求发表评论。用户确认列表后即可发布;但如果你收到分派时已获准发布(例如
implement-issues对其创建的草稿就是如此),则列出请求后继续。
第 2 阶段——收集每个拉取请求的上下文
gh pr view <number> --json title,body,baseRefName,headRefOid会提供描述和头部提交。获取提交以便在本地审查——运行git fetch origin pull/<number>/head <base>,然后将HEAD_SHA设为头部提交,并将BASE_SHA设为git merge-base origin/<base> <HEAD_SHA>。- 找出它关联的意图 issue:根据
docs/agents/issue-tracker.md的 Linking 部分,在标题和正文中查找引用——在 GitHub 上查找Closes #<number>或Relates to #<number>——并使用 Reading method 阅读该 issue。如果没有关联 issue 或没有跟踪器配置,则跳过该拉取请求的意图检查,并在审查中说明。 - 阅读已有评论——运行
gh api --paginate repos/<owner>/<repo>/pulls/<number>/comments——避免重复发布已提出的发现。
第 3 阶段——审查
意图检查(你)。 将差异与 issue 的 Proposed outcome 和 Constraints 进行比较。报告 issue 要求但拉取请求未实现的内容、拉取请求实现但 issue 未要求的内容,以及差异违反的每一项 Constraint。
代码检查(审查者)。 使用 Superpowers 的 requesting-code-review:将拉取请求的标题和描述作为描述,将意图 issue(若没有,则使用拉取请求正文)作为需求,并提供 BASE_SHA 和 HEAD_SHA,然后分派其代码审查者。使用你所在平台提供的能力最强的模型;但如果 docs/agents/delivery.md 存在,且其中的 pr-code-reviewer 席位解析为你所在平台分派功能接受的模型(该平台 Tiers 表中列出的层级,或精确名称),则改用该模型。若该席位不存在或无法解析,则使用能力最强的模型,并在报告中说明;不要因此停止。审查不会修改任何内容,因此可以同时分派多个拉取请求的审查者。如果不支持子 Agent,则自行审查每个差异。
仅检查意图。 如果分派给你的任务关闭了代码检查——implement-issues 在工作量较小时会这样做,因为构建流程已在整个分支上完成代码审查——则跳过代码检查。在审查正文中说明跳过的原因。
发布前检查每一项发现。 打开每项发现所指向的代码,并确认问题确实存在。审查者可能会出错,而在他人的拉取请求上留下错误评论,造成的影响大于漏掉一项发现。删除无法确认的问题,并在报告中说明原因。
第 4 阶段 — 评论并提出修改建议
每个拉取请求发布一条评审,设置 event: "COMMENT"。
-
将每条问题定位到相关的已更改行:
path、line和side: "RIGHT";如果涉及多行,还要设置start_line和start_side。GitHub 只接受出现在拉取请求差异中的行。 -
每条评论以严重程度开头 — Critical、Important 或 Minor — 并用一句话说明后果。
-
如果修复方案明确,在评论末尾添加建议代码块,其中包含所定位行的完整新文本,缩进与文件保持一致:
**Important** — an invalid address reaches the queue and fails later in the worker, where the user never sees the error. ```suggestion if (!isValidEmail(email)) throw new ValidationError("email"); await queue.add("confirm", { email }); ``` -
如果修复需要讨论设计,或涉及差异之外的行,请不添加建议代码块,直接说明,或将其写入评审正文。
gh api --method POST repos/<owner>/<repo>/pulls/<number>/reviews --input review.json
{
"commit_id": "<HEAD_SHA>",
"event": "COMMENT",
"body": "<counts by severity, and the intent pass's result>",
"comments": [
{
"path": "src/signup.ts",
"start_line": 41,
"start_side": "RIGHT",
"line": 42,
"side": "RIGHT",
"body": "<severity and consequence, then the suggestion block>"
}
]
}
如果没有发现问题,发布一条评审,在正文中说明这一点,不添加行内评论。
第 5 阶段 — 报告
制作一张表格,列出拉取请求、关联议题、按严重程度发布的问题,以及评审的 URL。然后列出在检查步骤中舍弃的问题,并说明原因。
注意事项
- 不要批准或请求更改 — 只发布
COMMENT评审;是否批准由用户决定。 - 不要向拉取请求的分支推送提交;是否应用建议由作者决定。
- 不要发布未经代码检查的问题。
- 不要提交替换行数多于或少于评论所定位行数的建议,也不要提交并非这些行完整新文本的建议。
- 不要将评论定位到拉取请求差异之外的行。
- 不要发布拉取请求中已有的问题。
- 除非派发任务时要求跳过代码检查,否则不要跳过代码检查;如果任务要求跳过,请在评审正文中说明。
- 不要悄悄跳过意图检查 — 如果没有关联议题,请在评审正文中说明。