anti-slop
anti-slopは、TypeScriptとJavaScriptの「根拠を失ってから型アサーションで戻す」実装をOxlintで拒否する規則集である。
一般的なスタイルガイドではない。 型境界、推論、テストの依存分離に強い方針を持つため、導入前に既存コードへの影響を確認する。
検出する問題
15個の規則は、主に次の問題を検出する。
- 二重の型アサーションと、安全性の説明がない型アサーション
- 既知の値を広い型へ変えてから元の型へ戻す処理
unknown、any、objectなどを使った曖昧な入出力契約- 境界解析の代わりに各所で行う
typeof判定 - 型付きアクセスを避ける
Reflect.getとReflect.apply - 実際の依存境界を隠すVitestまたはJestのモジュールモック
- 条件付きspreadで空オブジェクトを使う記述
違反を消すために規則を弱めたり、別のunsafe castで型を偽装したりしない。 推論、as const、satisfies、明示的な境界解析、名前を持つ契約へ置き換える。
導入判断
次の条件を満たすリポジトリで候補にする。
- TypeScriptまたはJavaScriptを使っている。
- Oxlintを導入済みか、導入を許容できる。
- opinionatedな規則をチームの方針として保守できる。
- 初回の違反件数を確認し、既存コードの修正範囲を判断できる。
この規則集は固定dependencyとして追従するのではなく、リポジトリへvendorし、採用側が内容を読んで保守する前提で公開されている。
公式スキルから導入する
実際の導入では、付属pluginとinstallerを含む公式スキルを取得する。
npx skills add dmmulroy/anti-slop --skill install-anti-slop
導入前に対象リポジトリのagent instructions、package manager、lockfile、Oxlint設定、既存のanti-slop配置を確認する。 導入後はlintとtypecheckを実行し、残る違反を規則別に報告する。
この事典には付属plugin、規則実装、installerを複製していない。 現時点では参照メモとして使い、bundle配布へ切り替える場合は公式packageを取得する。
出典
- [dmmulroy/anti-slop](https://github.com/dmmulroy/anti-slop)
- [install-anti-slop on skills.sh](https://skills.sh/dmmulroy/anti-slop/install-anti-slop)
- MIT License, Copyright (c) 2026 Dillon Mulroy