PR审查自动化助手Skill phx:pr-review

这个技能自动化处理GitHub PR的审查评论,包括获取、分类、起草响应和可选代码修复,旨在提高代码审查效率。关键词:PR审查、自动化响应、代码修复、DevOps、代码质量、GitHub工具。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

名称: phx:pr-review 描述: 处理PR审查评论 — 获取、分类、起草响应,可选地修复代码。当PR有审查者反馈需要处理时使用。 参数提示: <PR编号或URL> [–fix] 禁用模型调用: true

PR审查响应

获取PR审查评论,将其分类,起草响应,并可选地应用代码修复。

使用方式

/phx:pr-review 42              # 处理PR #42的评论
/phx:pr-review 42 --fix        # 处理评论 + 应用代码修复
/phx:pr-review https://...     # 完整URL也可使用

参数

$ARGUMENTS = PR编号(或URL),可选后跟 --fix

工作流程

步骤 1: 获取PR上下文

# 获取PR元数据
gh pr view {number} --json title,body,state,baseRefName,headRefName

# 获取所有审查评论(行内 + 常规)
gh api repos/{owner}/{repo}/pulls/{number}/comments --paginate
gh api repos/{owner}/{repo}/pulls/{number}/reviews --paginate

# 获取差异以供上下文
gh pr diff {number}

$ARGUMENTS 解析PR编号。如果是URL,从中提取编号。检测 --fix 标志。

步骤 2: 分类评论

将每个评论分组到以下类别之一:

类别 信号 操作
代码更改 “应该改为”、“更改为”、“使用X代替” 起草修复 + 响应
问题 “为什么”、“如果”、“如何做” 起草解释
细枝末节 “nit:”、仅样式、格式化 快速确认
表扬 “很好”、“好”、“LGTM” 无需操作
讨论 架构、权衡、替代方案 起草深思熟虑的响应

步骤 3: 映射到代码位置

对于每个代码更改评论:

  1. 从评论的 pathposition 找到文件和行号
  2. 读取该位置的当前代码
  3. 在上下文中理解审查者的建议
  4. 检查建议是否与铁律冲突

步骤 4: 起草响应

对于每个评论,按照 references/response-patterns.md 中的模式起草响应。

将所有草稿响应呈现给用户审查:

## PR #{number}: {title}
### {n} 条评论需处理

**代码更改 ({n}):**
1. {file}:{line} — {reviewer suggestion} → {proposed fix}

**问题 ({n}):**
1. {question summary} → {draft answer}

**细枝末节 ({n}):**
1. {nit} → 已确认

**讨论 ({n}):**
1. {topic} → {draft response}

步骤 5: 应用修复(如果 --fix)

如果提供 --fix 标志且用户批准:

  1. 应用已批准的代码更改响应中的代码更改
  2. 运行 mix compile --warnings-as-errors && mix test
  3. 如果测试通过,呈现更改
  4. 不要提交或推送 — 留给用户处理

步骤 6: 发布响应(经用户批准)

停止并请用户审查所有草稿响应。

用户批准后(可能会编辑一些):

# 将每个响应作为对原始评论的回复发布
gh api repos/{owner}/{repo}/pulls/{number}/comments/{id}/replies \
  -f body="{response}"

铁律

  1. 绝不自动发布响应 — 始终显示草稿并获得明确批准
  2. 绝不驳回审查 — 只有审查者可以驳回
  3. 铁律优先于审查者建议 — 如果审查者建议违反铁律的代码,在响应中解释原因
  4. 保持响应建设性 — 确认反馈,解释推理
  5. 分离修复和响应 — 在单独步骤中应用代码更改

集成

PR收到审查评论
       ↓
/phx:pr-review {number}  ← 你在此处
       ↓
   修复代码? → --fix标志应用更改
       ↓
   发布响应(用户批准后)
       ↓
   推送更改 → 用户处理git推送

参考

  • references/response-patterns.md — 响应模板和常见模式