开发与工程 oxlinttypescriptlintingeslinteffectvendoringcode-quality

Anti-Slop:反低证据代码模式的 Oxlint 规则集

拒绝 TypeScript/JavaScript 中低证据、低信号代码模式的 Oxlint 规则,可整体打包为 Agent Skill 安装到你的仓库。

FollowSkills 评估 · FSRS-2.0
推荐
62/ 100 五分制 3.1 / 5
1 2 3 4 5 6
1信任安全18 / 25 · 3.6/5

安装脚本在本地复制文件、拒绝覆盖已有目录、明确要求版本精确匹配并记录来源(UPSTREAM.md);无网络外传、无危险默认、权限最小。扣分:用户确认环节依赖代理执行、install.mjs 源码未在证据中展示、发布者身份未验证。

2可靠稳定9 / 20 · 2.3/5

SKILL.md 步骤自洽、完成条件明确、失败处理(拒绝覆盖、报告诊断)清晰;仓库含 RuleTester 测试套件与 CI。扣分:核心脚本 install.mjs 未在证据中展示,静态评审未执行,测试覆盖的是规则而非安装关键路径。

3适用触发11 / 15 · 3.7/5

受众(TypeScript/JavaScript 仓库)与触发词(install/update/upgrade/migrate)明确,效果规则的适用边界、规则分析局限均有详尽披露;fresh/update 路径区分清晰。扣分:边界与局限虽多但触发精度依赖代理判断,无中文支持说明;核心依赖 npm/oxlint 可达性对大陆网络基本可用但未经核实。

4规范维护13 / 15 · 4.3/5

文档分层良好(SKILL.md→README→vendored LICENSE/UPSTREAM.md),MIT 许可明确,版本 0.1.2,CI 含 skill 资产漂移检查,维护路径清晰。扣分:无正式 changelog,更新流程部分依赖代理阅读仓库状态,版本记录仅靠 package.。

5有效结果6 / 15 · 2.0/5

任务(安装/配置 vendored Oxlint 规则)定义清晰,输出直接可用(规则清单、配置片段、示例详尽),相对手工安装有明确边际价值。扣分:静态评审未验证实际执行结果,安装脚本行为不可复核。

6证据核验5 / 10 · 2.5/5

README 提供 violation 示例与规则边界说明,仓库含真实 CI 工作流与 23 个测试文件的执行入口,可审计材料充分。扣分:测试文件本体未在证据中展示,关键主张(规则行为)无法在静态评审中独立复现,上限 5。

证据充分度: 评估于 2026年9月18日 审查版本 c44ef22ca116
使用前请注意
  • 安装脚本 install.mjs 本体未在本次证据中展示,使用前建议人工审阅其行为;
  • 规则为语法级(ESTree/词法作用域),不解析类型或跨文件签名,不能声称覆盖所有违例模式;
  • 启用全部规则为 error 级别,会在存量代码上产生大量报告,首次使用建议先评估影响面;
  • 未声明中文支持,依赖 npm 与 oxlint 生态,大陆网络可达性未经核实。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

Anti-slop 是 dmmulroy 维护的一套主观性 Oxlint 规则,旨在拦截 TypeScript 和 JavaScript 中常见的低证据模式,例如链式 as 断言、unknown 参数与返回值、reduce 中累积拷贝、运行时 typeof 窄化等。项目设计为被 vendor(vendor 到仓库)而非 npm 依赖:规则源码连同许可证和来源记录一并复制进你的仓库,由你自行维护和修改。配套的 Agent Skill 会自动复制插件、匹配安装 @oxlint/plugins 依赖、合并 lint 配置并启用全部通用规则。对直接依赖 Effect 的仓库,还可启用一组可选的 Effect 架构规则。

读取目标仓库的 agent 指令与 git status,识别包管理器与现有 lint 配置;运行 node <skill>/scripts/install.mjs 将插件复制到 tools/oxlint/anti-slop/(可指定其他路径,拒绝覆盖已有目录);按已有 oxlint 版本精确安装匹配的 @oxlint/plugins;把 ignorePatterns、jsPlugins 和 18 条通用规则(外加原生 oxc/no-accumulating-spread)合并进 oxlint.config.ts / .oxlintrc. 或 Vite+ 的 lint/fmt 配置;Effect 仓库额外启用 5 条 anti-slop-effect 规则;最后运行 lint 与类型检查、修复授权范围内的空行问题,并在 UPSTREAM.md 记录来源提交等 provenance。更新场景使用三路合并以保留本地定制。

  1. TypeScript 团队想把防御性 lint 策略 vendor 进仓库、随代码一起演进时
  2. 对 AI 生成代码(slop)保持警惕、希望用 lint 自动拦截低证据模式的维护者
  3. 使用 Effect 的项目想统一 tagged error、Match 和 Layer 的使用规范
  4. 已有 anti-slop 安装、想升级到上游新规则同时保留本地改动的仓库
  5. 使用 Vite+ 并希望 vp check 同时覆盖 lint 与格式化的团队

这个 Skill 有哪些优点和局限?

优点
  • 规则集具体且文档详尽,每条规则附违规示例与豁免边界
  • vendor 模式:规则源码归仓库所有,可自由修改以匹配团队标准
  • 更新流程用三路合并保留本地定制,不强制覆盖
  • 支持 Vite+(vp check)与 oxlint.config.ts / .oxlintrc. 两种配置
  • Effect 规则独立成插件,非 Effect 项目不会被动继承架构策略
局限
  • 规则基于 ESTree 与词法作用域而非类型检查器,无法推断跨文件或导入类型,部分检查明确标注为局部覆盖
  • 作者明言这是个人口味,不是通用编码标准,未必适合所有团队
  • 无官方 npm 包,社区 fork 的兼容性由各自维护者负责
  • no-array-filter-map 依赖的迭代器辅助方法需要目标运行时支持,TypeScript 声明不会 polyfill
  • no-module-mocking 等规则属于强主张(拒绝 vi.mock/jest.mock),可能引发团队争议

如何安装这个 Skill?

运行:npx skills add dmmulroy/anti-slop --skill install-anti-slop(可先用 --list 查看可用技能)。之后让编码 agent 在目标仓库中"安装 anti-slop"即可。也可手动安装:把 src/ 复制到 tools/oxlint/anti-slop/,按 README 的配置示例注册 jsPlugins 与规则。

如何使用这个 Skill?

安装技能后,向 agent 发出如下提示即可:"Install anti-slop in this repository"或"Update anti-slop while preserving local customizations"(可指定上游版本)。技能会复制文件、装依赖、改配置、跑检查并报告结果。规则详情和违规示例见仓库 README。

这个 Skill 与同类方案有什么区别?

与 Oxlint 内置的 oxc/no-accumulating-spread 互补:本项目的 no-reduce-accumulator-copy 专抓非展开式的累积拷贝(如 Object.assign、Array.from、concat/slice),文档要求两者同时启用;require-readable-spacing 的注释感知引擎则 vendored 自 ESLint Stylistic。

常见问题

是 npm 依赖吗?升级怎么处理?
不是。项目明确设计为 vendored 代码,无官方 npm 包。升级通过技能的更新流程,使用三路合并保留本地改动,并在 UPSTREAM.md 记录来源版本。
规则会不会大量误报?
规则多为语法/作用域层面的启发式,文档对每条规则的覆盖边界(如不分析具名回调、导入别名、跨文件签名)都做了明确声明,并说明哪些模式被刻意豁免。
不用 Effect 的项目能用吗?
可以。Effect 规则在独立插件中,仅当 package manifest 直接声明 effect 依赖或用户明确要求时才会启用。
MIT 许可和第三方代码情况如何?
项目为 MIT 许可;其中 require-readable-spacing 的注释感知引擎 vendored 自 ESLint Stylistic(同为 MIT),复制时需保留其 LICENSE 和 UPSTREAM.md。

相关 Skills