dmmulroy/anti-slop

Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns

解决的问题

Anti-slop 提供了一组针对 TypeScript 和 JavaScript 的意见性 lint 规则,旨在消除 "slop"(低信号、低证据、低效率)的编码模式。通过拒绝丢弃类型信息或使用低效运行时操作的模式,旨在强制执行更高的代码质量和更严格的类型安全。

工作原理

它是 Oxlint 的一个插件,利用 Oxlint 的 ESTree 和 lexical-scope API 对代码进行语法分析。该项目采用 "vendored"(内嵌)设计,用户将规则直接复制到自己的仓库中,而非作为固定的 npm 依赖安装,从而允许团队根据自身标准自定义规则。

可以通过代理技能(使用 npx skills add)安装,该方式会自动完成复制、配置和依赖管理;也可以手动操作,即复制 src/ 目录,并在 oxlint.config.ts 中注册插件。

适用人群

希望采用更严格、更具意见性的 lint 标准的 TypeScript 和 JavaScript 开发者,以减少样板代码、防止常见的类型泛化错误,并强制执行更好的架构模式(尤其适用于使用 Effect 生态系统的开发者)。

主要亮点

  • 类型安全强制:拒绝将已知值强制转换为 unknown 或 object,并禁止链式类型断言。
  • 效率检查:标记相邻的 filter().map() 调用,建议改用惰性迭代器管道,并防止 reduce 累加器中出现二次时间复杂度。
  • Effect 生态系统支持:包含专为 Effect 库设计的规则组,防止手动标签比较,鼓励使用 Match API。
  • require-safety-comment:强制开发者为每个非 const 类型断言提供 // SAFETY: 说明注释。
  • 代理就绪安装:提供打包好的技能,帮助 AI 编码代理自动化设置和更新流程。

相关

  • 项目
  • Dispatch
  • 项目
  • 项目