GitHub 3.1k Staranti-slop从零部署完整教程 · 新手照着做就能跑起来 · 效率工具指南 · 原创教程摘要anti-slop 是 GitHub 3.1k Star 的 Oxlint 规则插件拦截 TypeScript/JavaScript 代码中的低证据模式AI slop——链式类型断言、unknown 参数/返回、无 SAFETY 注释的强制转换等。本文介绍安装配置、16 条规则详解与正反例对照、真实拦截演示。AI 写的代码编译能过、跑起来也对但总有些地方看着就不对劲——滥用as断言伪造类型、到处unknown逃避检查、强制转换连注释都不写。这种代码叫 AI slop水货能跑但没依据、难维护。anti-slop 是一组 Oxlint 规则专门拦截这些低证据模式。本文要点16 条 Oxlint 规则拦截 AI 代码的低证据模式规则可复制进自己仓库改成团队标准一条命令装npx skills add或手动配置本文含规则正反例对照 真实拦截演示。一、GitHub 项目数据项目数据Star3,1633.1k2026-08 创建增长快主要语言TypeScript许可证MIT运行环境OxlintRust 写的 JS/TS lint 器适用TypeScript / JavaScript 项目二、它能解决什么问题你的痛点anti-slop 怎么解决AI 代码滥用 as 断言伪造类型证据no-chained-type-assertions 拦截链式断言到处 unknown 逃避类型检查no-unknown-parameters/returns 拒绝断言无注释谁改谁踩坑require-safety-comment 强制写依据代码能跑但没依据难维护把低证据模式挡在 CI/提交前三、安装路径 1Agent Skill 一键装让 AI 自动配置npx skillsadddmmulroy/anti-slop--skillinstall-anti-slop路径 2手动配置实测走通# ① 复制规则源码到项目mkdir-ptools/oxlint/anti-slopcp-rsrc/* tools/oxlint/anti-slop/# ② 装 Oxlintnpminstall-Doxlint oxlint/plugins# ③ 配 oxlint.config.ts注册插件 启用规则package.json 需 type: module# ④ 运行npx oxlint src/四、规则怎么用重点正反例下面是 6 条最典型的规则每条都有「会被拦的写法 ❌」和「该这么写 ✅」对照。1. no-chained-type-assertions链式类型断言// ❌ 被拦一步步假装类型丢弃证据constuserinputasobjectasUser;// ✅ 该写在边界处解析/校验保持精确类型2. no-unknown-parametersunknown 入参// ❌ 被拦unknown 意味着没解析就收functionhandle(input:unknown){}// ✅ 该写接受命名域类型I/O 边界跑 schema 后再进函数3. no-unknown-returnsunknown 返回// ❌ 被拦把责任甩给调用方functionloadUser():unknown{returninput;}// ✅ 该写边界解析后返回命名域类型如 UserId4. no-unsafe-dictionary-type不安全字典类型// ❌ 被拦调用方拿不到具体值契约typeMetadataRecordstring,unknown;// ✅ 该写用 schema 推导的具体值类型外部数据先解析5. require-safety-comment-for-type-assertion断言要写 SAFETY 注释// ❌ 被拦没写为什么安全constuserIdvalueasUserId;// ✅ 该写// SAFETY: parseUserId validated the identifier before branding it.constuserIdvalueasUserId;6. no-module-mocking禁止模块 mock// ❌ 被拦mock 掩盖真实依赖vi.mock(./user-store);// ✅ 该写用真实依赖注入dependency seams替代模块 mock全部 16 条规则no-chained-type-assertions、no-conditional-empty-object-spread、no-known-value-widening、no-module-mocking、no-object-parameters、no-reflect-apply、no-reflect-get、no-runtime-typeof、no-shape-in-symbol-names、no-unknown-parameters、no-unknown-returns、no-unknown-type-aliases、no-unsafe-dictionary-type、no-widen-then-assert、require-safety-comment-for-type-assertion、Effect 的 no-service-constructor-imports。五、功能验证真实输出本机实测npm 项目 oxlint anti-slop 插件slop 代码被拦5 种低证据模式 → 7 errorsx anti-slop(no-chained-type-assertions): discards type evidence... x anti-slop(no-unknown-parameters): Parameter input leaves input unparsed... x anti-slop(no-unknown-returns): exposes unknown to its caller... x anti-slop(no-unsafe-dictionary-type): unknown value type... x anti-slop(require-safety-comment-for-type-assertion): No SAFETY:... Found 6 warnings and 7 errors.健康代码不误报有 SAFETY 注释 边界解析的代码 → 0 errors ✅六、常见问题Q1anti-slop 是 npm 包吗不是固定依赖。作者设计成复制进你仓库、改造成团队标准vendored——复制 src/ 后这些规则就是你的了。Q2需要 ESLint 吗不需要。它基于 OxlintRust 写的极快 lint 器npm install oxlint 即可。Q3规则太严格怎么办规则源码在你仓库里改配置/删规则/调 severity 都行——这正是 vendored 设计的初衷。Q4只适合 AI 生成的代码吗不。任何低证据代码都会被拦只是 AI 时代这类代码变多了。七、总结anti-slop 是一组反 AI 水货的代码规则拒绝链式断言、unknown 泛滥、无注释的强制转换——逼着你写有依据的代码。适合用 AI 写代码、又想保持代码质量的团队。规则可复制可定制Oxlint 极快不拖慢开发。记住规则挡的是没依据不是不能用类型断言——写清楚依据就好。命令速查# 1. Agent Skill 一键装npx skillsadddmmulroy/anti-slop--skillinstall-anti-slop# 2. 手动装mkdir-ptools/oxlint/anti-slopcp-rsrc/* tools/oxlint/anti-slop/npminstall-Doxlint oxlint/plugins# 3. package.json 加 type: module配置 oxlint.config.ts# 4. 运行检查npx oxlint src/项目地址[dmmulroy/anti-slop] (https://github.com/dmmulroy/anti-slop)标签anti-slop、Oxlint、代码质量、TypeScript、AI代码、Lint、效率工具