大家好,我是何三,独立开发者
16 天,3.8k Star(约 4 千)。一个 Lint 规则集,刚出生半个月,就把整个 TypeScript 圈子的"AI 味"给盯上了。
啥叫 AI 味?你让 ChatGPT、Claude、Cursor 帮你写代码,它最爱干的几件事:类型不确定就 as 一下、参数不知道就 unknown、测试不好写就 vi.mock 全 mock 掉。看着能跑,但代码里全是"假装知道"的证据。
anti-slop 的意思就是——反糊弄。slop 这个词,英文里就是"潦草的糊弄活儿",这两年专门用来形容 AI 批量生成的、看着像模像样其实没营养的内容。而这个项目,把 AI 写 TS/JS 最爱用的 15 个"糊弄套路"全部写成了 Lint 规则,一个 error 直接拦死。
说白了,以前你只能靠 code review 的时候肉眼抓 AI 味,现在 Lint 阶段就给你喷一脸红。
先看这个项目到底拦什么。

它的作者 dmmulroy 是个很较真的人,15 条规则每条都精准打在 AI 生成代码的软肋上:
no-chained-type-assertions——禁止链式断言。input as object as User 这种写法,AI 最爱,一步到位编造证据。
no-unknown-parameters / no-unknown-returns——禁止 unknown 当参数和返回值。AI 遇到不确定的类型,第一反应就是 unknown,这条规则直接让它没法偷懒。
require-safety-comment-for-type-assertion——类型断言必须写 SAFETY 注释。这条最狠,等于逼着 AI(和你)交代"你凭什么这么断言"。
no-module-mocking——禁止 vi.mock。AI 写测试喜欢把所有依赖都 mock 掉,这个规则——算了先不说细节,你就知道它把 AI 偷懒的路全堵死了就行。
这里插一句题外话——你们发现没有,这两年 AI 生成的代码,风格越来越趋同。Record<string, unknown> 满天飞,Reflect.get 装高级,接口起名叫 UserShape。你要是看多了,一眼就能认出"这代码是 AI 写的",跟闻味道似的。anti-slop 干的事,本质上就是把这股味道数字化了。

(跑题结束,拉回来。)
我为什么会关注到它?因为 16 天 3.8k 星这个速度,在 Lint 工具这个细分赛道里,真的离谱。Lint 规则集不是新东西,ESLint 插件一抓一大把,凭什么是它火了?
我猜是时机。2026 年了,AI 生成代码已经占了新代码的一半以上,大家终于开始焦虑:代码质量谁来保证? anti-slop 给了个很聪明的答案——让 Lint 来当 AI 的监工。机器写的代码,用机器来审,公平。
而且它选了个很聪明的底座:Oxlint。这个我用过,Rust 写的 Linter,比 ESLint 快几十倍,几十万行项目秒级扫描。anti-slop 直接做成 Oxlint 的插件,装上不拖慢构建。
上手也简单,一条命令:
npx skills add dmmulroy/anti-slop --skill install-anti-slop
然后让你的 coding agent 帮你装。它会自动把插件拷进仓库、装好 Oxlint 依赖、合并配置、把每条通用规则设成 error。装完以后,再让 AI 写代码,它要是还敢 as object as User,直接红给你看。
手动装也不难,把 src/ 拷进项目,然后在 oxlint.config.ts 里注册:
import { defineConfig } from "oxlint";
export default defineConfig({
jsPlugins: [
{ name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" },
],
rules: {
"anti-slop/no-chained-type-assertions": "error",
"anti-slop/no-unknown-parameters": "error",
"anti-slop/no-unknown-returns": "error",
"anti-slop/require-safety-comment-for-type-assertion": "error",
},
});
注意,README 里明确说了:这项目不是当 npm 依赖装的,是让你拷进仓库里自己改的(vendored)。规则不合你团队口味?直接改,改完就是你的了。这个设计理念我挺喜欢——工具是给你用的,不是让你迁就它的。
为什么作者对 unknown 这么深恶痛绝?说实话,这块我也没完全搞懂,可能是被 AI 的 unknown 糊弄出心理阴影了……反正效果是好的,你的代码会变得更诚实。
同类工具方面,如果你嫌 Oxlint 还不够快,可以看看 Biome,同样是 Rust 写的,lint + format 一把梭,也是我常推的。想更系统地折腾 TS 类型的话,satisfies 和类型谓词那块值得单独学一下——anti-slop 好几条规则都在逼你往这个方向走。
GitHub 地址放这儿了,想动手的自己去翻:
https://github.com/dmmulroy/anti-slop
一句话总结:AI 写代码的时代,质量把关的活儿,该交给机器了。新项目装上 anti-slop,让 AI 的"糊弄"无处遁形——代码可以 AI 写,但味道必须人来定。
本文使用 MGO 编辑并发布
关注"何三笔记",回复"mgo" 免费下载使用