dmmulroy/anti-slop

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

解決する課題

Anti-slop は、TypeScript および JavaScript 用の意図的な lint ルールのセットを提供し、『スロップ』(低証拠・低信号のコーディングパターン)を排除します。型安全性を高め、アーキテクチャ上の境界を厳格に保つことを目的としており、型アサーションの連鎖や、既知の値を unknown に拡張するなど、証拠を捏造するパターンや、型情報を無視するパターンを拒否します。

動作方法

Oxlint のプラグインとして実装されており、Oxlint の ESTree および lexical-scope API を使用してコードを分析します。TypeScript の型チェッカーに依存せず、同じファイル内のエイリアスや透明なジェネリックエイリアスを解決することで違反を特定します。このプロジェクトは、固定の依存関係としてインストールするのではなく、リポジトリに直接コピーしてベンダリングすることを想定しており、チームが独自の基準に合わせてルールをカスタマイズできるように設計されています。

対象ユーザー

TypeScript および JavaScript を使用し、厳格な型安全性を強制したい開発者やチーム。

主な特徴

  • 厳格な型証拠: 型アサーションの連鎖や、既知の値を unknownobject に拡張するものを拒否。
  • 境界の強制: typeof による任意の狭義ではなく、境界のパースを要求し、関数のパラメータや戻り値に unknown を使用することを拒否。
  • 安全の根拠: 非定数型アサーションに対して、SAFETY コメント(またはカスタムマーカー)を提供するよう強制。
  • Effect フレームワーク統合: Effect フレームワークを使用するプロジェクト向けに、不適切なサービスコンストラクタのインポートを防ぐ専用ルールグループを提供。
  • エージェント対応のインストール: ルールをプロジェクトに初期コピー・設定するためのバンドル済みエージェントスキルを提供。

関連

  • プロジェクト