Code Review 是一个结构化的代码审查技能,用于对分支变更进行审查,覆盖安全、语言严格性、性能和代码约定四个方面。
用途
当用户输入 /code-review 或要求审查某个分支、PR 时触发该技能。它会对当前分支相对于基线分支的变更执行结构化审查,并生成分级报告。
主要能力
检测变更
默认基线分支为 main,用户可覆盖(如 /code-review --base staging)。使用 git fetch 获取基线分支后计算 merge-base,并基于 $MERGE_BASE..HEAD 生成变更文件列表、统计信息和提交日志。所有 diff 均使用该范围,避免直接使用 origin/main..HEAD 而混入其他已合并分支的变更。
自动检测语言
根据文件扩展名映射规则集:.ts/.tsx 对应 typescript-strict,.rs 对应 rust-strict,.swift 对应 swift-strict,.go 对应 go-strict,.js/.mjs/.cjs 对应 javascript-strict。仅对 diff 中出现的语言应用规则。
运行检查
按顺序执行四类检查,每条发现记录文件、行号、描述和规则 ID。
- 安全扫描:检查密钥(API key、token、密码、连接字符串等)、输入验证、注入风险、认证问题以及提交的敏感文件(.env、*.pem、credentials.json 等)。
- 语言严格性检查:对每种检测到的语言应用其顶级规则。
- 性能扫描:查找 O(n) 成员检查应使用 Set/Map、O(n²) 嵌套循环、用排序找最值、异步上下文中的同步文件 I/O、跨 .await 持有锁、每请求创建客户端或正则、无界缓存、多次数组遍历等反模式。
- 风格与约定:提交信息格式、遗留调试输出、注释掉的代码块、无票据引用的 TODO/FIXME、错误处理、命名约定。
生成审查摘要
按 CRITICAL、HIGH、MEDIUM、LOW 四个严重级别输出发现,空级别可省略,但始终显示“Passed checks”以确认已验证项(如未检测到密钥、错误处理存在、边界输入验证、异步正确等待、资源清理、提交信息符合约定)。
使用方式
基本命令:/code-review
可指定基线分支:/code-review --base staging 或 /code-review --base develop
仅审查特定文件:/code-review --files src/auth.ts src/middleware.ts(对每个文件使用 git diff $MERGE_BASE..HEAD -- <file>)
按 PR 编号审查:使用 gh pr view <NUMBER> --json title,body,headRefName,baseRefName,files 和 gh pr diff <NUMBER>,以 gh pr diff 输出作为 diff 来源。
审查特定提交范围:/code-review --range abc123..def456
各语言顶级规则速查
TypeScript:禁止 any(TS-01)、禁止无类型守卫的 as 断言(TS-02)、禁止 @ts-ignore(TS-04)、收窄 catch 错误(TS-12)、禁止静默 catch(TS-13)。
Rust:非测试代码禁止 .unwrap()、禁止静态初始化外的 .expect()、unsafe 块需 SAFETY 注释、禁止跨 await 持有锁、缓存需有界。
Swift:禁止强制解包(SW-01)、关键操作禁止静默 try?(SW-03)、ViewModel 需 @MainActor(SW-09)、Task 需取消检查(SW-12)、异步闭包需 [weak self](SW-15)。
Go:包装错误(GO-01)、检查错误(GO-02)、错误路径需 drain body(GO-03)、RWMutex 使用(GO-07)、禁止硬编码密钥(GO-17)。
JavaScript:禁止 var(JS-01)、禁止静默 catch(JS-03)、重试需有界(JS-05)、异步文件 I/O(JS-08)、禁止 eval()(JS-17)。
适用场景
适用于在合并前对分支或 PR 进行结构化审查,尤其适合需要同时覆盖安全、性能和多语言严格性检查的团队工作流。
限制
资料未提供该技能的具体安装方式、依赖版本、平台支持范围、收费信息或实际效果数据。规则集为速查表中的顶级规则,可能不涵盖全部规则。