一键导入
code-review
对代码变更做审查:识别 bug、安全漏洞、性能问题。P0 必须修复写评论,P1 建议性评论,P2 只在总结里一句带过。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
对代码变更做审查:识别 bug、安全漏洞、性能问题。P0 必须修复写评论,P1 建议性评论,P2 只在总结里一句带过。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | code-review |
| version | 2.3.0 |
| trigger | code review|代码审查|review代码|review一下|帮我看看代码|看下代码|审查代码|pr review|diff review|检查代码|代码质量 |
| description | 对代码变更做审查:识别 bug、安全漏洞、性能问题。P0 必须修复写评论,P1 建议性评论,P2 只在总结里一句带过。 |
对 PR/MR diff 做审查,发现问题并发布行内评论。
python3 -c "...",不写 sed -n。读 diff 只能用 file_read(支持 offset + max_lines 分段读)。数据/生成文件:.jsonl .csv .json .lock .snap .txt .md .rst .yaml .yml .toml .ini .cfg .conf .env .svg .png .jpg .jpeg .gif .ico .webp .mp4 .mp3 .wav .pdf .zip .tar .gz .bz2 .7z .bin .dat .db .sqlite .parquet .arrow .pkl .pickle .npy .npz .h5 .pt .pth .onnx .model
lockfile:pnpm-lock.yaml package-lock.json yarn.lock go.sum poetry.lock Cargo.lock Gemfile.lock Pipfile.lock composer.lock uv.lock
二进制/构建产物:.so .o .a .dll .dylib .exe .class .jar .war .pyc .pyo .wasm .min.js .min.css .map
vendored/生成代码:vendor/ node_modules/ dist/ build/ target/ __pycache__/ .next/ .nuxt/
纯格式化:import 排序、空白变更、行尾符变更
gh pr diff <N> --repo <owner/repo> > /tmp/pr_<N>.diff
gh api repos/<owner/repo>/pulls/<N>/files > /tmp/pr_<N>_files.json
gh api repos/<owner/repo>/pulls/<N> --jq '.head.sha' > /tmp/pr_<N>_sha.txt
不要 clone。不要 gh pr checkout。
shell(command=jq -r '.[] | "\(.additions + .deletions)\t\(.filename)"' /tmp/pr_<N>_files.json | sort -rn | head -5)
rg_search(pattern=^diff --git, path=/tmp/pr_<N>.diff)
jq 输出按改动量排序的文件列表。rg_search 输出每个文件在 diff 中的起始行号。 交叉比对,选出改动量最大的 2 个源码文件(跳过噪音文件),记住它们的 diff 起始行号。
用 file_read 的 offset(1-based 行号,与 rg_search 输出对齐)和 max_lines 读指定文件的 diff 块:
# 文件 1 在 diff 第 1 行,改动约 187 行
file_read(path=/tmp/pr_59.diff, offset=1, max_lines=200)
# 文件 2 在 diff 第 432 行,改动约 167 行
file_read(path=/tmp/pr_59.diff, offset=432, max_lines=200)
读完立即在脑子里找问题,不要多读一轮。
P0 — 必须修复(写行内评论)
P1 — 建议修复(写行内评论)
P2 — 不写评论,总结里一句带过
每条 finding 必须能说出:「什么输入 → 走哪条路径 → 什么错误」。说不出来就删掉。P0 必须是 CONFIRMED。
关键:必须用单条评论 API(/pulls/{n}/comments),不能用批量 review API 的 comments 字段。 批量 review API 不支持 line/side,会变成文件级评论。
每条评论单独 POST:
SHA=$(cat /tmp/pr_<N>_sha.txt)
# 评论 1
gh api repos/<owner/repo>/pulls/<N>/comments --method POST \
-f body="问题描述
触发场景
建议修复" \
-f commit_id="$SHA" \
-f path="ethan/core/agent.py" \
-F line=155 \
-f side="RIGHT"
# 评论 2(如有更多,同样格式)
gh api repos/<owner/repo>/pulls/<N>/comments --method POST \
-f body="..." -f commit_id="$SHA" -f path="..." -F line=... -f side="RIGHT"
发完所有行内评论后,再发一条 review 总结(不带 comments):
gh api repos/<owner/repo>/pulls/<N>/reviews --method POST \
-f body="整体看完了,详见行内评论。" \
-f event="COMMENT"
path是文件在仓库中的相对路径(从 diff headerdiff --git a/PATH b/PATH读取)。line是新文件中的行号(从@@ +start,len @@读取,对应+开头的行),必须是整数。side固定为"RIGHT"(评论新文件侧)。 如果用批量 review API 的comments字段,line/side会被丢弃变成文件级评论,这是错误的。
聊天里只回一条简短总结:
看完了 PR N,发现 X 个 P0(已评论到行):① 问题一 ② 问题二。其余没大问题,建议改完再合。
没有 P0 就说"没发现阻塞性问题,可以合并"。
协作式,不是审判式。
| ❌ 避免 | ✅ 改用 |
|---|---|
| "这里有 bug" | "这里有个边界情况值得确认" |
| "必须改" | "建议改一下,因为..." |
先 gh auth status 确认当前账号身份。多账号时用 gh auth switch --user <账号> 切换,用完切回。
跟仓库语言一致:代码注释/commit 用中文 → 评论用中文;用英文 → 用英文。
不发布评论,在对话里按 📍 文件:行号 格式输出评论列表。
消息渠道接入配置:飞书 WebSocket 长连接配置与使用说明。未来支持微信、Telegram 等渠道。
飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。
Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.
微信读书助手 — 搜索书籍、管理书架、查看笔记划线、阅读统计、发现推荐好书。
京东购物操作:订单查询导出、商品搜索比价、购物车管理。通过浏览器工具操作京东网站,支持批量提取订单记录、搜索商品、查看物流等。当用户提到「京东」「JD」「订单」「购物」「买东西」「搜商品」「查快递」时触发。