用 addy osmani agent skills 做代码审查时,可以调用 code-review-and-quality,按正确性、可读性、架构、安全和性能检查差异,再用可复现的测试确认问题。
给审查提供改动和行为约定
先给助手明确接口的合法输入规则。比如列表参数 parseLimit,我们先约定好它只能返回1到100之间的整数,所有不符合要求的输入统一默认回退到20。直接执行 git diff -- limit.mjs 就能看到当前还没暂存的代码改动。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

请使用 code-review-and-quality 审查 limit.mjs 的差异。只接受 1 到 100 的整数,非法输入回退到 20。先指出能复现的问题、触发输入和建议补的测试,不修改文件。
先确认能复现的缺陷
要复现下面的测试失败场景,找个空目录把待审查的代码存成 limit.mjs 就行。
export function parseLimit(raw) {
return Number(raw);
}
现在这个直接返回 Number(raw) 的写法,输入 "0" 会得到0,传空字符串也会得到0,两种情况都不符合之前定好的规则。排查的时候先对齐实际运行效果和预期规则的差异,再确认边界校验是不是写在了参数解析环节,顺便查下其他调用方有没有还在依赖旧版本默认值的情况。
这次的改动里,输入范围和默认值的校验优先级远高于性能优化,要是这个参数直接传给列表查询接口,没做限制的超大值很容易拖垮查询效率,产生不必要的额外开销。
让 AI 代理更主动、具预见性。用户希望代理主动帮助、提前发现问题或汇报进展时触发。关键词:主动、积极、预见、提醒、proactive、anticipate、take initiative。
用回归测试验证修复
把下面的测试代码存成 limit.test.mjs。先跑一遍测试,确认所有非法输入的用例都会报错,补完范围和整数判断的逻辑之后,再用同一条命令重跑测试。
import test from 'node:test';
import assert from 'node:assert/strict';
import { parseLimit } from './limit.mjs';
test('accepts valid limits', () => {
assert.equal(parseLimit('1'), 1);
assert.equal(parseLimit('100'), 100);
});
test('falls back for invalid limits', () => {
for (const input of ['0', '101', '2.5', '', 'abc']) {
assert.equal(parseLimit(input), 20);
}
});
export function parseLimit(raw) {
const value = Number(raw);
return Number.isInteger(value) && value >= 1 && value
<pre class="brush:php;toolbar:false;">node --test limit.test.mjs

最后整理审查记录的时候,要写清楚每个问题对应的触发输入、修复位置,还有重跑测试的结果。另外还要顺一遍所有调用方的逻辑,看看有没有人对同一个参数做了多余的重复转换、重复错误处理,避免多层逻辑冲突。










