用途
本技能用于代码评审,覆盖两种场景:一是对本地改动做推送前评审(Pre-Push Review),二是评审 GitHub 上的 Pull Request。技能说明指出,其中大部分内容使用纯 git 命令,gh 与 curl 的分支只在 PR 层级交互时才起作用。
前置条件
- 已通过 GitHub 认证(技能说明中指向 github-auth 技能)。
- 处于一个 git 仓库内。
PR 交互前的环境准备:先检测 gh 命令是否存在且已登录,若满足则使用 AUTH="gh";否则走 git 路径,并在 GITHUB_TOKEN 为空时,尝试从 shell 环境、项目 .env 文件或 ~/.git-credentials 中读取。随后通过 git remote get-url origin 解析出 OWNER 与 REPO。
主要能力
一、评审本地改动(推送前)
使用纯 git,无需 API:
git diff --staged查看暂存改动;git diff main...HEAD查看相对 main 的全部改动(即一个 PR 会包含的内容);--name-only仅列文件名,--stat查看增删统计;- 用
git log main..HEAD --oneline了解整体脉络; - 逐文件查看 diff,并结合 read_file 获取完整上下文;
- 通过 grep 检查常见问题:遗留的调试语句(print、console.log、debugger)与 TODO/FIXME/HACK/XXX 标记、误暂存的大文件、密码/密钥/凭据模式、合并冲突标记。
评审结果按结构化格式呈现:Critical、Warnings、Suggestions、Looks Good。
二、评审 GitHub 上的 PR
- 查看 PR 详情与 diff:
gh pr view 123、gh pr diff 123、gh pr diff 123 --name-only;或用 curl 调用 REST API 获取 PR 元数据与变更文件列表。 - 本地检出 PR 做完整评审:
git fetch origin pull/123/head:pr-123后git checkout pr-123(gh 下可用gh pr checkout 123),之后可使用 read_file、search_files、运行测试等,并以git diff main...pr-123对比基分支。 - 发表评论:一般 PR 评论可用
gh pr comment或 curl 调用 issues comments 接口。 - 行内评论:使用
gh api repos/$OWNER/$REPO/pulls/123/comments或 curl 调用 pulls comments 接口,需提供 body、path、commit_id、line、side(如 "RIGHT")。技能特别说明 line 指新版本文件中的行号,删除行使用"side": "LEFT"。 - 提交正式评审:
gh pr review 123 --approve/--request-changes/--comment;或用 curl 提交带多条行内评论的原子评审,event 取值为 "APPROVE"、"REQUEST_CHANGES"、"COMMENT"。
三、评审清单
系统性检查以下维度:
- 正确性:代码是否如期工作、边界情况(空输入、null、大数据、并发)、错误路径处理。
- 安全性:无硬编码密钥/凭据/API key、用户输入校验、无 SQL 注入/XSS/路径穿越、必要的鉴权与授权检查。
- 代码质量:命名清晰、无多余复杂度或过早抽象、DRY、函数职责单一。
- 测试:新代码路径是否被测试、正常与异常用例、测试可读可维护。
- 性能:无 N+1 查询或不必要循环、合理缓存、异步路径中无阻塞操作。
- 文档:公共 API 有文档、非显而易见逻辑说明"为什么"、行为变更时更新 README。
使用方式
推送前评审工作流:先看改动范围(--stat),再读完整 diff,必要时用 read_file 补充上下文,套用清单,按分层格式输出;若发现严重问题,可提出在推送前修复。
PR 端到端评审工作流(9 步):
- 设置环境(可 source github-auth 技能的 gh-env.sh,或运行技能顶部内联准备块);
- 收集 PR 上下文(元数据、描述、变更文件列表;gh 下还可用
gh pr checks 123); - 本地检出 PR;
- 阅读 diff 理解改动,逐文件结合 read_file 查看完整上下文;
- 本地运行自动化检查(如 pytest、npm test、cargo test、go test、ruff、eslint、clippy 等,视项目而定);
- 套用评审清单;
- 将评审发布到 GitHub(approve 或 request-changes,并附行内评论);
- 另发一条顶层汇总评论,采用 references/review-output-template.md 的输出格式;
- 清理:
git checkout main、git branch -D pr-$PR_NUMBER。
裁决建议:Approve 用于无严重或警告级问题、仅有小建议或全部通过时;Request Changes 用于存在应在合并前修复的严重或警告级问题时;Comment 用于仅有观察与建议、无阻塞项,或不确定、PR 仍为草稿时。
适用场景
- 开发者在推送代码前做自检评审;
- 在 GitHub 上接收并评审他人提交的 Pull Request;
- 需要以行内评论或正式评审形式给出结构化反馈。
限制与保护性约束
技能开头包含 OpenClicky 兼容性防护要求:行动前须遵循 ../_shared/OpenClickySkillCompatibilityPolicy.md;在承诺执行前须核实所需的本地命令、工具、密钥或桥接端点;除非本技能进一步收窄范围,否则将发送、发布、部署、删除、移动、合并、播放列表/库变更、云端写入与应用控制点击视为外部写入;当工具、认证或 macOS 权限不可用时,应停止并报告确切的缺失设置步骤,不得循环重试或静默切换到浏览器自动化。
关于具体版本、收费、价格、平台支持范围等信息,资料中暂未提供。