什么值得做
dmmulroy/anti-slop · dmmulroy

一个 agent 骂另一个「洗类型」:anti-slop 靠两条推文拿到 6000 star,后来照着做的项目加起来不到 300

它是什么 一套 TypeScript/JavaScript 的 Oxlint 规则,专拦 AI 写代码时让类型检查器闭嘴的写法,由 coding agent 一句话复制进你的仓库。

为什么火了 有 4 万粉的作者在大家都在骂 AI slop 的时候,先发一条「agent 指责 agent 洗类型」的梗推文,25 分钟后放出一行安装命令;不发包、方便收编,第二天被 Ultracite 内置,又进了 skill 目录,之后靠转载慢慢涨。

C你可以怎么跟 别做换语言的同款(Python、Rust 版都在 10 star 以内);如果你有点技术受众、手上有工具要发,照抄它的发布法:先发梗再发货、用 agent skill 当安装器、做成可复制进仓库方便别人收编。

C 级:star 主要来自作者本人的受众和时机,跟进者拿不到;同款在 Python、Rust、ESLint 上都已有人做,最多 125 star。能学到的是发布和分发打法。 已公开 / 被广泛讨论
数据(每天更新) · 建库 2026-08-12 · 5,993 星 · 7 天 +199
GitHub · 星数
3k4k5k6k08-2810-1610-2410-3111-086k
数据 2026-08-28 → 2026-11-08(73 天,32 次观测)。10-28 以前的点来自 deeply / 存档补录,不是每天都有

2026 年 8 月,Cloudflare 一位工程师把自己团队用的 Oxlint 规则开源,专拦 AI 写 TypeScript 时糊弄类型检查器的那几种写法。头 16 天拿到约 3,800 star,到 11 月 6 日快 6,000 了,可作者 10 月中旬就不再提交。Python 版、Rust 版、ESLint 版陆续都有人做了,最多的一个 125 star。这个项目值得学的是它怎么发出去的,再做一个同款没什么意义。

25 分钟,两条推文

2026 年 8 月 12 日 13:27(UTC),Dillon Mulroy 在 X 上发了一条推文。他是 Cloudflare 的工程师,约 4.1 万粉,平时写 TypeScript 和 Effect:

ive been working on an anti-slop oxlint plugin. just had one agent accuse another agent of "type laundering" after reviewing/linting changes with it lmao

(我在做一个反 slop 的 Oxlint 插件。刚才一个 agent 用它审完另一个 agent 改的代码,指责对方在「洗类型」,笑死。)

配图是 agent 输出的截屏。这条最后有 25.6 万浏览。13:48 他建了仓库,13:52 引用上一条又发一条,只有一行字和一条命令:

available now npx skills add dmmulroy/anti-slop --skill install-anti-slop

这条 63.3 万浏览,2,617 赞,收藏 5,768,是点赞的 2.2 倍(X 数据,截至 11 月)。收藏比点赞多,通常说明大家把它当成「回头要装」的工具帖存起来了。

它拦什么

19 条通用规则,另有 5 条只在 Effect 项目里打开,只管 TypeScript/JavaScript。它盯的是 AI 的一个习惯:类型对不上时,不去把数据解析清楚,而是想办法让类型检查器闭嘴。比如 input as object as User 这种连套两次的断言、参数和返回值写成 unknown、用 Reflect.get 绕开类型检查、测试里 mock 整个模块、写了断言旁边却没有一行 SAFETY: 注释说明理由。

README 第一句就说这是「我自己和我团队的口味,不是通用标准」。每条规则都有违规示例,也写明了管不到的地方(「不做跨文件类型推断」)。这样的文档读者看了容易信,转载的人也好下笔。

star 从哪来

大头是作者本人那两条推文。 拿同一细分里的项目比一比就知道了:

项目做什么上线star(11 月初)
dmmulroy/anti-slopOxlint 规则,TS/JS2026-08-12约 5,960
scanaislop/aislop独立扫描 CLI,10 种语言2026-03727
antfu/eslint-plugin-slopESLint 规则2026-09-02125
maharshi365/deslopOxlint 规则,上过 Show HN(32 分)2026-09-1372
mmartoccia/grain通用反 slop linter2026-0334
TinyFrontier/anti-slop-py、infoslack/anti-slop-py 等Python 版,至少 4 个2026-08 下旬各 10 个以内
oliverjames2024/anti-sloprRust 版,Clippy 规则2026-10-160

(GitHub 搜索,11-06)

思路几乎一样的项目,差别全在谁发、什么时候发。连在 GitHub 上有 4 万关注者的 Anthony Fu,9 月初做的 ESLint 版也只有 125 star,不过他只提交了两天,看起来没认真推。

时机。 2026 年夏天,「AI 写的代码是 slop」已经是开发者圈的共同情绪。正好那时 Oxlint 的 JS 插件接口能用了,社区第一次可以用 JS 写跑在 Oxlint 里的规则。

它用 lint 拦,不在 prompt 里求。 在 CLAUDE.md 里写「别用 any」,agent 照样会用;lint 违规 CI 直接报红,绕不过去。还能让一个 agent 拿 lint 结果去审另一个 agent,开头那条推文就是这么来的。

不发 npm 包,让 agent 来装。 你跟 coding agent 说一句「帮我装 anti-slop」,它把源码复制进你的仓库,对齐 Oxlint 版本,合并配置;以后升级也由 agent 做三方合并。这样它就进了两条分发链。一条是 agent skill 目录:skills.sh 上累计安装 1.56 万次(11-06),是 star 的 2.6 倍,里面有多少是重复安装没法区分;另有一批 skill 聚合站自动收录了它。另一条是被收编:零配置 lint 预设 Ultracite(3,367 star)发布第二天就内置了 anti-slop 预设,9 月、10 月、11 月初又几次重新同步。每同步一次,它就多一次曝光。

之后靠别人的内容慢慢涨。 Better Stack 做了一期视频(约 2.6 万播放)和一篇长文,LinkedIn 上有人转,日文技术博客、dev.to 写过,10 月底又有一批中文、韩文转载。10 月中到 11 月初每天涨 10 到 30 个,11 月 3 到 5 日涨了 48、37、42(GitHub 每日 star 记录)。这一小波的原因没坐实。可能和 Ultracite 那几天改了安装流程有关,也可能是同名项目 miqdadbadjuber/anti-slop(管 UI 和文案,8,335 star)正被报道,搜「anti-slop」的人顺手 star 了这个(推断)。

能不能照着做一个

换语言做,已经有人试过了,都没起来。 Python 版至少 4 个,Rust 版 1 个,最多 10 star。问题不在代码:Python 和 Rust 圈缺的是一个有受众的人在对的时候发出来,原生 lint 工具(ruff、clippy)里本来也已经有不少相近规则。

在 TS 圈做个更好的,很难。 这块的默认答案已经是它,又被 Ultracite 打包进去了。后来的 deslop 上了 Show HN,也只拿到 72 star。

还能做的是它没管的地方:注释里写改动历史(windbag,26 star)、测试作弊、跨文件的类型证据。都是小格子,单靠这个拿不到上千 star。

如果是你

判断:anti-slop 这个产品不用跟,它的发布方法值得照抄。它的 star 主要来自作者的 4 万粉和那个时间点,这两样跟的人都拿不到;同款在别的语言上已经验证过了,基本拿不到 star。

不适合:手里没有受众,打算做「X 语言版 anti-slop」等它自己涨 star 的人。结果大概率和那几个个位数 star 的 Python 版一样。

适合:已经有点技术受众(X、YouTube、某个语言社区),手上有一个工具类开源项目要发的人。可以抄四招:

  1. 先发梗,再发货。 第一条讲一个具体、好笑的场景(agent 指责 agent「洗类型」),第二条引用它,只放一条安装命令。两条隔 25 分钟,趁情绪还在让人装上。
  2. 用 agent skill 当安装器。 复制文件、对齐版本、合并配置、升级时保留本地修改,这些都交给用户的 coding agent。顺带能进 skills.sh 这类目录,多一条长期来流量的渠道。
  3. 做成复制进仓库,不做依赖包。 维护负担小,更大的工具收编起来也没顾虑。被 Ultracite 内置,等于借了它的分发。
  4. 给大家都在骂的东西做一个硬约束。 「slop」谁都在喊,先拿出能让 CI 报红的工具,就成了默认答案。下一个这样的情绪词出来时,抢先就行。

怎么获客:靠 X 上的发布推文和 skill 目录收录,争取被一个更大的预设或工具打包。HN 和 Product Hunt 在这一类里作用不大,deslop 上了 Show HN 也只有 72 star。

什么时候之前:「slop」这个词已经被几十个项目分着用,同名项目都有好几个。想借这个词发新工具,大概在 2027 年上半年之前,再往后这个词就太泛了(推断)。

什么情况说明看错了:如果某个没名气作者的 Python 或 Go 版,几个月内靠自然流量做到上千 star,就说明需求本身够大,不靠作者也能起来。那时「换语言做」就值得重新考虑。

GitHub 仓库 ↗

研究底稿:竞品表、获客证据、完整研究报告
竞品
名字在哪上线规模它和这家不同在哪
scanaislop/aislop开源2026-03-06727 star独立扫描 CLI,50 多条规则覆盖 10 种语言;anti-slop 只做 TS/JS,但接进 Oxlint 现有流程,规则更有主见
peteromallet/desloppify开源2026-02-114,081 star,本周 +437让 agent 事后重构 slop,靠 LLM;anti-slop 是 CI 里事前硬失败的确定性规则
Ultracite开源2022-033,367 star零配置 lint 预设;不是对手,而是收编者,2026-08-13 起内置 opt-in 的 anti-slop 预设
maharshi365/deslop开源2026-09-1372 star同样是 Oxlint 规则的跟风者,作者没有流量
miqdadbadjuber/anti-slop开源约 2026-08-078,335 star,本周 +785同名,但做的是 UI、文案、代码的 agent 提示规则(软约束),不是 lint
taste-skill / impeccable / hallmark / stop-slop 等开源2025 至 20261.3 万到 11 万 starprompt 或 skill,管设计和写作的 slop;anti-slop 管代码,而且是确定性的
typescript-eslint strict / Oxlint 原生规则大厂功能早就有基础设施级有个别相近规则,但没有按"AI 伪造证据"视角组合;anti-slop 直接复用了一部分
用户从哪来
  • 查实 作者 X 发布推文:@dillon_mulroy(40,696 粉)2026-08-12 发布推文:2,617 赞、5,768 收藏、63.3 万浏览(x-radar)
  • 查实 X 预热梗推文:发布帖引用了前一条"agent 指责另一个 agent type laundering"的预热推文
  • 查实 agent skill 目录(skills.sh 等):README 首屏 skills.sh 徽章,npx skills add 安装,skills.sh 1.56 万安装;被 typingmind、openagentskill、clelp 等站收录
  • 查实 被 Ultracite 收编:Ultracite 2026-08-13 加 vendored anti-slop 预设,之后 9-04、10-13、11-01 到 11-03 持续更新,官方文档有专节
  • 查实 YouTube / 技术媒体:Better Stack 视频约 2.6 万播放加社区长文
  • 查实 二次内容 / SEO 长尾:LinkedIn 多人转、Algomatic 日文博客、dev.to、SSD Nodes、中文和韩文转载站(Exa 搜索 8-13 至 11-06)
  • 推断 Reddit:r/reactjs《Static Analysis for the Age of AI Slop》提到试用,正文被验证码挡住
  • 推断 同名项目误入流量:miqdadbadjuber/anti-slop 同期正火,11-03 有媒体报道它,可能带来搜 "anti-slop" 的误入 star

dmmulroy/anti-slop:它为什么能跑出来

渠道:GitHub | 建库 2026-08-12 | 2026-11-06 时 5,969 star / 171 fork | MIT | 无 npm 包、无 release | 作者 Dillon Mulroy(Cloudflare 工程师)

一句话

它是一套给 TypeScript/JavaScript 用的 Oxlint 自定义规则,有 19 条通用规则,另有 5 条只给 Effect 项目开的规则。专门拦 AI 写代码时最爱用的"伪造证据"写法:连着套类型断言、unknown 从函数签名里漏出去、Reflect.get、模块 mock、断言旁边不写 SAFETY 注释等。它不发 npm 包,装的时候跑 npx skills add dmmulroy/anti-slop,由 coding agent 把源码复制进你的仓库(vendor)再配好。

结论:它主要靠作者本人在 X 上的一条发布推文起量。作者有约 4.1 万粉,推文 63 万浏览、5,768 收藏,头 16 天就拿到约 3,800 star。它踩中的时间点是 2026 年夏天"AI 代码 slop"情绪最强的时候,形态是同样正当红的"agent skill + 确定性 lint"。真正和别家拉开距离的是两点:一是用 lint 规则硬拦,不靠 prompt 去求 agent;二是故意做成 vendor 进仓库,不发包。这让 Ultracite 这类工具第二天就能把它收编进去,二次分发就这么来了。

---

1. 增长数据

时间star来源
2026-08-120(建库;13:52 UTC 发推)GitHub API、x-radar
2026-08-283,843我们 github 库(wayback 点)
2026-10-095,315我们 github 库(deeply 点)
2026-10-105,370(+55,观测期单日最高)我们 github 库
10-11 至 11-02平均每天 +10 到 +30我们 github 库 repo_day
11-03 / 11-04 / 11-05+48 / +37 / +42我们 github 库 repo_day
2026-11-065,962(库)/ 5,969(API)库 + GitHub API
  • 近 7 天涨 198,前 7 天涨 112,库里标为"加速"。但绝对量很小,这次加速是长尾里的一个小波,不是第二轮爆发。
  • 建库后 16 天就有约 3,800 star,占现有 star 的 64%。典型的"一条推文定终身"曲线。
  • 使用量的佐证:skills.sh 上 install-anti-slop 累计安装 1.56 万次(skills.sh 页面,2026-11-06)。和 star 比大约 2.6:1,说明不是只收藏,真有人装。
  • 代码最后一次推送是 2026-10-14,一共只有 37 次提交,集中在 8-12 到 9-14。作者没在持续加功能,后面的增长都是自然发酵。
  • GitHub stargazer 明细接口对我们的 token 不开放(返回 404 或空),所以拿不到逐日完整曲线。8-12 到 8-28 之间每天多少,未核实。

2. 竞品格局

"AI slop 治理"这块很挤,但细看分成三类,anti-slop 在其中一类里几乎没有像样的对手。

A. 治"代码 slop"的确定性规则(它的直接竞品)

产品在哪上线规模和 anti-slop 的区别
scanaislop/aislop开源 CLI2026-03-06727 star早 5 个月。50 多条规则,覆盖 10 种语言,带 CLI 和 GitHub Action,定位是独立扫描器。anti-slop 只做 TS/JS,但接进 Oxlint、跑在已有 lint 流程里,规则更"有主见"(类型证据这一路)。
maharshi365/deslop开源2026-09-1372 star;Show HN 32 分(2026-10-13)同样是 Oxlint 规则,晚一个月,明显是跟风。作者没名气,只能靠 Show HN 推。
emilioSp/oxlint-anti-slop开源2026-09-301 star连名字带思路都是照抄。
kubk/slop-police开源2026-10-2216 starTS 的 lint 规则,跟风。
Octember/stupify开源2026-06-2011 star;Show HN 4 分走"anti-slop 代码审查 agent"路线(LLM 审),不是确定性规则。
peteromallet/desloppify开源2026-02-114,081 star,本周 +437是 agent harness,让 agent 去重构 slop 代码。靠 LLM,属于事后清理;anti-slop 是在 CI 里事前硬拦。
Ultracite(haydenbleasel/ultracite)开源20223,367 star零配置 lint 预设。它没跟 anti-slop 抢,而是收编了它:2026-08-13 起内置一个 opt-in 的 anti-slop 预设,打包的就是 dmmulroy 的规则。
Oxlint/ESLint/typescript-eslint 原生规则大厂/基础设施早就有体量巨大有 no-explicit-any、oxc/no-accumulating-spread 这类规则,但没有人按"AI 伪造类型证据"这个视角挑一套组合;anti-slop 也直接复用了一部分原生规则。

B. 治"UI / 文案 slop"的 skill(名字一样,做的事不一样) taste-skill(约 11 万 star)、impeccable(约 10 万)、Nutlope/hallmark(约 4.9 万)、miqdadbadjuber/anti-slop(8,335 star,建库约 2026-08-07,和它同名)、hardikpandya/stop-slop(1.9 万,针对散文)、petergyang/no-ai-slop(1.3 万)。这些是 prompt 或 skill,管设计和写作。anti-slop 在"anti-slop"这个大标签下体量不算大,但它是唯一做到"确定性代码规则"且规模上千的。

C. 平台自带能力:Claude Code、Cursor、Codex 自己的 rules/CLAUDE.md 都是软约束。作者推文和 Better Stack 视频强调的正是"agent 不听你的规则,所以要用 lint 硬拦"。

结论:在"用确定性 lint 拦 AI 代码 slop"这个细分里,它是事实标准,第二名 aislop 只有它的八分之一。

3. 用户从哪来

渠道证据确认
作者本人 X 发布推文@dillon_mulroy(40,696 粉)2026-08-12 的 "available now / npx skills add …",引用了自己前一条预热推文("一个 agent 指责另一个 agent 搞 type laundering")。2,617 赞、5,768 收藏、63.3 万浏览(x-radar 语料)是
预热推文(梗传播)前一条"type laundering"推文先在 X 上传开,发布帖是对它的引用(x-radar、jina 搜索结果)是
skills.sh / agent skill 目录README 首屏放 skills.sh 徽章,装法是 npx skills add。skills.sh 显示 1.56 万安装。还被 typingmind、openagentskill、clelp、skillleaderboard、aipm-registry、skillfoxx 等一批 skill 聚合站自动收录(搜索结果)是
Ultracite 收编2026-08-13 Ultracite 加了 vendored anti-slop 预设,npx ultracite init --linter oxlint --js-plugins anti-slop。之后 9-04、10-13、11-01 到 11-03 持续重新 vendor、修 init(ultracite 提交记录、文档 /docs/presets)是
YouTube 技术频道Better Stack 视频《This Linter Rejects AI Slop From Your Code》约 2.6 万播放(约 2 个月前),另有 Better Stack 社区长文是
二次内容 / SEO 长尾maxrave.dev 和 simpmusic(8-13)、LinkedIn 多人转(Niko Korvenlaita 8-13、Max Rozen、Afonso Caboz 8-20 等)、Stork.AI(8-20/8-22)、Poliety(8-23)、Algomatic 日文技术博客(9-04)、SkillMap(10-18)、dev.to 和 SSD Nodes(10-30)、一批中文转载站(10-26 至 11-06)、韩文 aisparkup(11-04)(Exa 搜索)是
Redditr/reactjs《Static Analysis for the Age of AI Slop》提到试用(正文被验证码挡住,日期和热度未核实)部分
HN我们 HN 库里没有直接指向本库的故事;HN 上露面的是跟风的 Deslop否
付费买量没有任何迹象。开源,无商业化否

11 月 3 到 5 日那波小加速(约 +40/天,平时约 +20/天),原因没坐实。可能的推手:

  • Ultracite 11-01 到 11-03 改了 init 流程;
  • 10-30 前后 dev.to、SSD Nodes、karishma.dev、zylinski.se 等新一批文章;
  • 同名的 miqdadbadjuber/anti-slop 那几天正火(本周 +785,GlobeWire 11-03 报道的是它)。搜 "anti-slop" 的人可能顺手 star 了 dmmulroy 这个。中文、韩文站 11-04 那几篇甚至把两者混在一起写。

4. 为什么跑出来

  1. 作者自带流量,而且身份可信:Cloudflare 工程师,X 上 4 万多粉,常年做 TypeScript/Effect 内容。发布推文 63 万浏览、5,768 收藏。收藏数是点赞的 2.2 倍,说明大家是"存下来回头装"的工具帖。
  2. 时机:2026 年夏天"AI 写的代码是 slop"成了开发者圈的共同情绪(Nick Dobos 9-23 那条"为什么没有 anti-slop 编码评测"1,161 赞)。同时 Oxlint 的 JS 插件 API 刚成熟,社区第一次能用 JS 写跑在 Oxlint 里的自定义规则。
  3. 梗命名:"anti-slop"和"type laundering"这两个词一眼能懂,带情绪,天然好转发。
  4. 装法顺应 agent 时代:不发 npm 包,让 agent 用 skill 把源码复制进仓库,并且会合并配置、尊重已有 Oxlint 版本、更新时做三方合并。用户只要说一句"帮我装 anti-slop"。这让它同时进了 skill 目录和 lint 两条分发链。
  5. 收编效应:不发包反而方便下游打包。Ultracite 第二天就把它做成预设,之后每次升级都重新 vendor,形成持续的二次曝光。
  6. 规则写得像文档:README 里每条规则都有违规示例和分析边界("我们不做跨文件类型推断"),诚实、专业,读完就能被说服。二次写作的人也有素材可抄。

5. 差异化

  • 对比"让 agent 别写 slop"的 prompt/skill(taste-skill、stop-slop 等):它用确定性 lint 在 CI 里硬失败。agent 不听话也绕不过去,还能让一个 agent 拿 lint 结果去审另一个 agent。
  • 对比独立扫描器(aislop、desloppify):它插进团队已有的 Oxlint 和 Vite+ 流程,不另起工具。主张"带作者口味",不追求通用。
  • 对比传统 lint 预设(Ultracite、typescript-eslint strict):它按"AI 伪造证据"这个新视角挑规则,而且 vendor-first,让团队自己改。
  • 是不是它跑出来的原因? 一半是。头一波爆发主要靠作者影响力和时机,换个没粉丝的人发同样的东西,大概就是 maharshi365/deslop 那样的 72 star。但"确定性 lint + agent skill 安装 + 不发包"这个组合,决定了它能被 Ultracite 收编、被各种 skill 目录收录,才在没更新的情况下每天还涨 20 来个 star,15.6k 安装量也说明真有人在用。

6. 能见度

收入已公开或被广泛讨论:它是开源项目,没有收入可言。但在开发者圈已经被广泛讨论,依据是:发布推文 63 万浏览;Better Stack 视频加长文;Ultracite 官方文档专门写了一节;日文、中文、韩文、俄文转载。抄的人已经有好几拨。在"代码 slop lint"这个细分,后来者要再起来很难。

7. 跟风者

maharshi365/deslop(72 star,Show HN 32 分)、emilioSp/oxlint-anti-slop(1 star)、kubk/slop-police(16 star)。还有 BunsDev、Apptizum 等一批同名 fork,以及 Ultracite 的打包版(这个是经授权思路的二次分发,不算抄)。

8. 能借鉴的

  • 先发梗,再发货:先放一条带具体好笑场景的预热推文("agent 指责另一个 agent type laundering"),第二条再引用它宣布可装,用一条命令收口。
  • 以 agent skill 当安装器:用 npx skills add 把"复制 + 配置 + 校验 + 将来合并更新"这些麻烦事交给 agent。顺带白拿一批 skill 目录的 SEO。
  • vendor-first、不发包:降低维护负担,还方便被更大的工具收编。主动让下游打包,等于借别人的分发渠道。
  • 把一个情绪词(slop)落到确定性工具上:大家都在骂的东西,谁先给出能进 CI 的硬约束,谁就成了默认答案。其他语言(Python/ruff、Go、Rust/clippy)上还没看到有分量的同类,可以复刻。

9. 不确定

  • 8-12 到 8-28 之间逐日的 star 拿不到(stargazer 接口不开放),"头几天"具体涨多少未核实。
  • 11-03 到 11-05 那波加速的原因未坐实;同名项目带来的误入流量占多少,无法区分。
  • Reddit 帖子的日期和热度未核实。
  • 15.6k 的 skills.sh 安装数可能含重复安装和 CI 安装,实际装到仓库里的团队数未知。
  • 作者 10-14 以后不再更新,后续会不会被 Oxlint 官方或 Ultracite 取代维护,未知。

出处

文章由 AI 根据公开数据和我们每天采集的数据写成,数字带出处,推断已标明