开发与工程

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

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

62/ 100
推荐

整体可靠,存在已披露的局限;按说明试用并保留回滚路径。

查看评分依据 ↓
可直接使用于
Codex · Claude Code
Star 数
★ 6k
最近更新
23 天前
License
MIT
oxlinttypescriptlintingeslint
+3effectvendoringcode-quality

这个 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。更新场景使用三路合并以保留本地定制。

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

如何安装这个 Skill?

使用前请注意
  • 安装脚本 install.mjs 本体未在本次证据中展示,使用前建议人工审阅其行为;
  • 规则为语法级(ESTree/词法作用域),不解析类型或跨文件签名,不能声称覆盖所有违例模式;
  • 启用全部规则为 error 级别,会在存量代码上产生大量报告,首次使用建议先评估影响面;
  • 未声明中文支持,依赖 npm 与 oxlint 生态,大陆网络可达性未经核实。
开始前你需要
Agent 需要具备
  • Shell / 命令行
  • 网络访问
  • 本地文件系统
需要预先安装
  • Node.js
  • oxlint
  • @oxlint/plugins
  • npm/pnpm package manager

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

通用方式:手动安装到 Claude Code(macOS / Linux)
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/dmmulroy/anti-slop.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/skills/install-anti-slop" ~/.claude/skills/
rm -rf "$tmp"

根据源仓库地址和 Skill 路径自动生成,只复制这个 Skill 的文件夹。如果上文有作者提供的安装方式,请优先按作者说明操作;想只在当前项目中使用,把 ~/.claude/skills 换成项目里的 .claude/skills。

如何使用这个 Skill?

试试这样说

安装后,把下面任意一句发给 Agent 即可触发:

  • Install anti-slop in this repository
  • Update anti-slop while preserving local customizations

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

这个 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 与同类方案有什么区别?

与相关 Skills 并排比较;分数均按同一 FSRS 标准得出。

Skill FS 评分 Star 数 最近更新 License
Anti-Slop:反低证据代码模式的 Oxlint 规则集 本页 62 · 推荐 ★ 6k 23 天前 MIT
Effect JSDoc 规范撰写技能 77 · 高度推荐 ★ 33k 7 天前 MIT
Scratchpad 示例提取器 49 · 谨慎使用 ★ 33k 7 天前 MIT
VS Code 代码卫生检查 ✓ Microsoft · 官方 48 · 谨慎使用 ★ 194k 6 天前 MIT
工具重命名兼容性检查 ✓ Microsoft · 官方 63 · 推荐 ★ 194k 6 天前 MIT

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

FollowSkills 如何评估这个 Skill?

FollowSkills 评估 · FSRS-2.0
推荐
62/ 100 五分制 3.1 / 5
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
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。

1 2 3 4 5 6

点击维度查看打分理由

评估于 2026年9月18日 审查版本 c44ef22ca116 评估证据[1][2][3][4][5][6][7][8][9][10][11][12][13]

证据充分度:低 — 主要依赖静态检查、作者材料或有限演示;适合发现线索,不适合做高风险决策。

查看完整评分方法 →

常见问题

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

相关 Skills