PR Reviewer

自动检测代码合并请求中的逻辑错误、安全漏洞与测试缺失,生成结构化审查报告。

已扫描
适合谁
开发工程师、技术负责人
不适合谁
无代码经验的非技术人员、无需代码审查流程的简单项目
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @lnguyen1996/pull-request-reviewer

Skill 说明

命令、参数、文件名以原文为准

pr-reviewer

描述

审查任意语言的拉取请求(PR)和代码差异。在合并前发现逻辑错误、缺失测试、安全漏洞、破坏性 API 变更以及命名问题。返回结构化报告:首先列出阻止合并的问题,其次是警告,最后是风格建议。

使用场景

  • “帮我审一下 PR”
  • “检查这个变更”
  • “这个 PR 能合并吗”
  • “这个改动有什么问题”
  • “代码审查”
  • 任何 Git diff、补丁文件或 PR 描述的粘贴内容

支持的语言

任何支持 Git diff 的语言。针对以下语言提供专项检查清单:Python、JavaScript/TypeScript、C#、Go、Rust、Java/Kotlin、SQL 迁移脚本。

输入方式

可粘贴以下任一内容:

  • Git diff(如 git diff main...feature-branch
  • GitHub/GitLab 的 PR 链接(需可访问)
  • 原始代码片段 + 对变更内容的描述

可选指定:

  • 目标分支
  • 使用的框架
  • 是否为库项目(影响更大,因破坏性变更更敏感)
  • 是否为应用项目

输出格式

## PR 审查

### 阻止合并
- [发现问题] — [必须修复才能合并的原因]
  ✗ 问题:[存在问题的代码]
  ✓ 修复:[正确代码示例]

### 警告(发布前需修复)
- [发现问题] — [说明]

### 建议(风格 / 未来可维护性改进)
- [发现问题] — [说明]

### 已通过
- [已正确实现的具体模式 — 至少包含一条]

### 总结
[2–3 句话:最大风险、首要修复项、整体结论(可合并 / 先修复 / 需重大修改)]

审查清单

逻辑与正确性

  • 循环或切片中的“差一”错误(off-by-one)
  • 空值/空指针解引用但未加保护
  • 错误处理不当(错误被吞没、类型检查错误)
  • 闭包/匿名函数中捕获了错误的变量
  • 引入竞态条件(共享可变状态,无锁机制)
  • 缺失边界情况(空输入、零值、最大值等)

安全性

  • 用户输入未经过滤直接使用(SQL、Shell、HTML)
  • 密钥、凭证等敏感信息提交到源码(API Key、密码、Token)
  • 不安全的反序列化操作
  • CORS 或认证配置过于宽松,存在绕过风险
  • 路径遍历漏洞风险

测试

  • 新功能无测试覆盖
  • 测试仅覆盖正常流程(缺少异常情况测试)
  • Mock 设置导致测试结果为空真(vacuously pass)
  • 缺少断言(调用函数但未进行任何验证)

API / 接口设计

  • 公共方法签名变更但未添加弃用标记
  • 向已有公共函数添加必需参数
  • 返回类型意外收缩或扩展
  • 序列化字段重命名(影响现有客户端兼容性)

性能

  • 引入 N+1 查询
  • 对用户提供的集合进行无界循环
  • 在异步上下文中执行同步 I/O 操作
  • 热路径中存在大对象分配

风格

  • 命名与周围代码不一致
  • 保留已废弃代码(注释掉的块、未使用的变量)
  • 存在 TODO 但未关联任务编号
  • 变量或函数名称具有误导性

严重程度定义

  • 阻止合并:影响正确性、存在安全漏洞、数据丢失风险或破坏性 API 变更 — 必须修复
  • 警告:性能问题、测试覆盖率不足或难以调试的行为 — 发布前应修复
  • 建议:风格、清晰度或可维护性改进 — 由作者自行决定

自我优化指令

每次审查完成后,记录最常见的问题类别(逻辑、安全、测试、API、性能、风格)。完成 20 次审查后,将前 3 个最常见模式提炼为“[语言] 中最常见的 PR 问题”,帮助用户学习,而不仅仅是修复。

L
@lnguyen1996

已收录 1 个 Skill

相关推荐