最近把自己平时用的一些代码审查规则整理了一下,做成了一个 Skill:
主要是给 Claude Code 、Codex 这类 Agent 审代码时用的。
为什么做这个
起因是我平时让各种 Agent 审项目,感觉多少都有点“偷懒”:有时候审得很细,有时候扫一遍就结束了;这次记得看并发,下次可能忘了资源释放;安全问题看了一堆,异常路径、状态变化或者一些边界条件又没看。
而且项目一大以后,这种情况更明显。不是模型完全不知道这些问题,而是一次审查里要考虑的方向太多,很容易漏掉一些检查点。
所以干脆把能想到的审查方向、常见问题和不同领域容易踩的坑都列出来,让 Agent 按着一项项过,尽量少依赖它这一次刚好想到了什么。
目前里面除了常见的安全问题,也有并发、资源、错误处理、API 契约、配置、性能,以及不同语言和不同类型项目的一些专项检查。
用历史漏洞做验证
后面还加了历史漏洞的命中测试:拿已经公开并修复的漏洞,只看它的真实根因,再检查现有规则能不能把审查过程引到这个问题上。命中不了的,就看是不是缺了某个检查点,再抽象以后补进去。
现在已经测了一些 Linux 、nginx 、OpenSSL 、Web 框架、数据库、Web3 、AI Agent 等方向,不过和这么多年的历史漏洞相比,样本还是很少,很多领域也还没覆盖到。
怎么用
用法比较随意,装好以后直接跟 Agent 说就行,比如:
用 finecomb 审一下 ./src
也可以只审某一块:
用 finecomb 看一下 pkg/cache 的并发和资源管理
或者直接给仓库地址:
用 finecomb 审计 https://github.com/xxx/xxx
不一定每次都要完整跑一遍,可以按项目和需求自己缩范围。
Token 可能会比较多
这个也提前说一下:finecomb 写得比较细,如果是大项目再加上完整审查,Token 用量可能会比较明显。
毕竟本质上就是让 Agent 多看一些地方、多走一些调用链、多问一些平时容易跳过的问题,不可能完全没有成本。
所以如果只是想查某一类问题,可以直接排除不需要的部分,或者只指定几个方向,比如只看安全、并发、网络、协议解析之类的。
一些和当前项目明显没关系的专项也可以直接不看。
简单说就是:想查得细就会多花 Token ,不需要那么细的时候就把范围缩小。
一起补
这块也挺适合一起维护。如果有已经公开、已经修复的 CVE 或其他漏洞,发现 finecomb 现有的检查项完全命中不了,欢迎直接提 Issue / PR 。比起继续往里面堆案例,我更希望能把这些漏洞背后重复出现的原因慢慢归纳出来。
发现缺失的审查面或者检查点,后面都会继续补,也欢迎大家一起维护。补的时候尽量做成通用、可泛化的规则,而不是只针对某个漏洞、某种语言或者某个项目加一条专用检查。
感谢
顺便感谢 Claude 免费提供了 6 个月 Claude Max 20x ,让我把这个项目做出来;OpenAI 的我也申请了,可惜什么消息都没,抠门 😂