[ 152 rules ]
Security, correctness, readability, documentation honesty. Every rule is a YAML file you can read, disable, or extend.
152 deterministic rules · AST checkers · auto-fix · SARIF · zero telemetry
$ npx @fabriziosalmi/slopless "src/checkers/*.ts" 🚫 Static Analysis found 7 issues: ⚠️ [VBC-084] src/checkers/semantic-checker.ts:128 - Line is too long (135 characters). ⚠️ [VBC-503] src/checkers/regex-checker.ts:158 - Array named 'stack' is missing a plural 's'. ⚠️ [VBC-096] src/checkers/ast-checker.ts:226 - Long regular expression literal with no explanation. ⚠️ [VBC-501] src/checkers/ast-checker.ts:15 - Boolean variable 'found' has no standard prefix. … 3 more Summary: 0 errors, 7 warnings.
npx @fabriziosalmi/slopless --init # writes slopless.config.json + .sloplessignore
npx @fabriziosalmi/slopless "src/**/*.ts" # exit 1 on errors; wire it to your pre-commitIn CI, as a GitHub Action. No install step, the bundled CLI runs directly:
- uses: fabriziosalmi/slopless@v1
with:
patterns: "src/**/*.ts" # optional: format: sarif · type-check: "true"Generated code ships with a signature: swallowed promises, apologetic comments, dead branches nobody asked for, var in 2026. Slopless is the reviewer that never gets tired of pointing it out: deterministic rules, readable output, and an exit code your CI can act on.
It runs on itself, on every push. That is the standard it holds you to.