中文 Code Review 规范 Agent Skill — 分级评论 + 检查清单 + PR 模板
SaferSkills independently audited code-review-cn (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
每条 review 评论必须标注严重级别,避免"我觉得可以改一下"这种模糊反馈:
| 前缀 | 含义 | 是否阻塞合并 |
|---|---|---|
🔴 必须修改: | 有 bug、安全漏洞、数据丢失风险 | 是 |
🟡 建议修改: | 可维护性问题、性能隐患、不符合规范 | 否,但强烈建议 |
🟢 可选优化: | 代码风格、命名建议、更优雅的写法 | 否 |
💬 讨论: | 不确定的问题,想听作者的想法 | 否 |
👍 赞: | 写得好的地方,值得学习 | — |
🔴 必须修改: 这里直接拼接 SQL 会导致注入漏洞,请用参数化查询。
🟡 建议修改: 这个循环里每次都查数据库,N+1 问题。
建议用 IN 查询一次取出,或者用 DataLoader 批量加载。
🟢 可选优化: `getUserInfo` 改成 `fetchUserProfile` 更准确,
因为这个函数是异步请求而不是同步获取。
💬 讨论: 这里用乐观锁还是悲观锁?我觉得并发量不大的话乐观锁够了,
但你更了解业务场景,想听听你的想法。
👍 赞: 这个错误重试的退避策略写得很好,指数退避 + 抖动,很专业。按优先级从高到低检查:
any 类型、是否缺少类型定义## 做了什么
简要描述这个 PR 的改动内容。
## 为什么
说明背景和动机。关联的 issue 或需求链接。
## 怎么测试
1. 步骤一
2. 步骤二
3. 预期结果
## 影响范围
- [ ] 数据库变更(需要跑迁移)
- [ ] API 接口变更(需要通知前端)
- [ ] 配置变更(需要更新环境变量)
- [ ] 破坏性变更(需要通知相关方)
## 截图/录屏
(如果是 UI 变更,贴截图)所有 🔴 必须修改 都已解决?
├── 否 → Request Changes
└── 是 → 有 🟡 建议修改 未解决?
├── 是 → 和作者讨论,如果作者有合理理由可以 Approve
└── 否 → Approve ✅这里有问题。
这样写不好。
改一下。🔴 必须修改: `password` 字段在响应中被返回了,会泄露用户密码。
建议在 serializer 中排除 password 字段,或者用 select 只查需要的字段。
参考:
const user = await prisma.user.findUnique({
where: { id },
select: { id: true, name: true, email: true }, // 不查 password
})~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.