
Review PR
在 kimi-code 仓库里 review 一个 PR 时使用:按 PR 模板逐节核对描述与...
Install
npx skills add MoonshotAI/kimi-code --skill review-pr -g -a claude-code -y- Repository
- MoonshotAI/kimi-code8.1k
- Category
- Git and review
- Updated
- 3d ago
- License
- MIT
- Context cost
- Lightabout 1,082 tokens
- Runs scripts
- No, instructions only
What it does
在 kimi-code 仓库里 review 一个 PR 时使用:按 PR 模板逐节核对描述与 diff,并单独做一轮"回归与用户影响"评审,给出影响等级与评审摘要,评审摘要用用户当前使用的语言。
Review PR
这个仓库过去的回归大多不是逻辑错误,而是"改动相对于自身意图是对的,但悄悄改掉了某个现有人群依赖的行为":方言分支收窄、默认值翻转、删 system prompt 句子、重构或移植时丢掉旧路径的功能、修复引入启动时序变化。通用 review 会把这类"有意的功能变更"排除在 bug 之外,所以这里把它单列成一轮。
评审判据只有一条:改动前能工作的任何输入(配置键、环境变量、命令行参数、provider 响应形态、旧版本写的会话数据、客户端请求、hook 载荷)改动后必须行为不变,除非 PR 明确声明了这个变化并给出了退路。
工作流
-
拉 PR 元数据与描述:
gh pr view <number> --json title,body,url,files,additions,deletions,baseRefName,headRefName -
读完整 diff(大 PR 按文件分批读):
gh pr diff <number> -
读足够的周边代码来验证描述里的每个断言。只看 diff 看不出"改动前谁走到这个分支"。
-
第一遍:定性。 判断改动类型,决定第三遍的深度,见"第一遍:定性"。
-
第二遍:按模板逐节核对。 见"模板逐节核对"。
-
第三遍:回归与用户影响。 尽量用一个独立子 agent 跑:只给它 PR 号、base 与 head、两三句改动简介和
surfaces.md的路径,不给它作者关于影响范围的结论,让它先从 diff 和代码独立列清单,回来后再与作者填的表对比。没有子 agent 能力时自己按同样顺序做:先列清单,再读作者的表。见"第三遍:回归与用户影响"。 -
用用户当前使用的语言写评审摘要,格式见"输出"。
第一遍:定性
| 改动类型 | 第三遍深度 |
|---|---|
| 纯内部重构、测试、文档、测试 CI | 只需给出"没有可观测变化"的证据:哪些分支、默认值、契约文件没动 |
| 发布与打包:release、native 构建、VS Code 发布工作流,打包脚本,web 产物同步 | 全做,人群按安装方式与平台分:npm 包、各平台 native 二进制、VS Code 市场、内置 web 产物 |
| 新增功能,不动既有路径 | 只查新分支是否抢走了既有输入:新增条件是否排在旧条件之前 |
| 行为变更、默认值翻转、校验或权限收紧或放宽 | 全做 |
| prompt 文本变更:system prompt、工具描述、提醒、overlay、内置 skill | 全做,且每一句改动单独成行 |
| 移植、替换旧路径、大重构:v1 到 v2、runtime binding、协议替换 | 全做,并要求作者给出旧路径功能清单 |
| 协议、磁盘格式、SDK 导出、hook 载荷、命令行契约变化 | 全做,并点名仓库外的消费方 |
| 修复类改动改了启动顺序、生命周期、异步时序 | 全做,重点看谁依赖原来的顺序 |
一个 PR 可以同时属于多类,按最重的那类处理。
第三遍:回归与用户影响
1. 行为变化清单
列出 diff 改变的每一个可观测行为,包括作者说"不变"的和作者认为"内部"的。内部包会打进 CLI 发布包,"内部"不等于用户无感。
每一行记录:行为、变化前、变化后、变化类型(新增 / 修改 / 删除 / 默认翻转 / 收紧 / 放宽)、证据(改动前后各一个 file:line,一侧不存在时给可达路径)。
读法:
- 对每个被删除或被收窄的分支、条件、默认值、句子,问"改动前谁走到这里,改动后他们去哪了"。
- 对每个新增的分支或条件,问"哪些既有输入现在会先命中新分支"。#3492 的回归就是这样产生的:数组字段存在时不再读字符串字段,而 OpenRouter 形态的网关两者同时发。
- 测试里"把旧断言改成新行为"的改动是行为变化的直接证据,逐条对应到清单。
- 先看 diff 文件列表有没有命中
surfaces.md的"触发线索"。命中的 surface 必须在清单里有对应行,否则就是漏项。
2. 受影响人群
每一行对应到 surfaces.md 里的具体人群,写出人群名字和"这个人群存在"的证据:文档页、issue、配置示例、provider 载荷形态。找不到人群的,不进 finding,进"待作者确认"。
3. 影响等级
等级只由改动的事实决定,不看 changeset、文档、测试这些补救状态。三步判定:

