-
Notifications
You must be signed in to change notification settings - Fork 26
Comparison
How slopless differs from other prose linters.
| slopless | proselint | write-good | alex | vale | textlint defaults | |
|---|---|---|---|---|---|---|
| Language | Node/TS | Python | JS | JS | Go | Node |
| Deterministic | yes | yes | yes | yes | yes | yes |
| LLM calls | no | no | no | no | no | no |
| Targets AI slop | yes | no | no | no | no | no |
| Custom config required | no | no | no | no | yes | depends |
| Output | textlint JSON | terminal text | terminal text | terminal text | configurable | textlint JSON |
| Rules | 50+ | ~30 | ~10 | ~30 | depends on config | varies |
The closest philosophical sibling. Python, regex-driven, narrow rules with named provenance. Excellent for general prose hygiene (clichés, jargon, hedging, redundancies).
Where it stops short for AI-era prose: it predates the LLM-output era and has no rules specifically targeting LLM artifacts (response wrappers, knowledge-cutoff disclaimers, summative closers, hedge-stacked openers, demonstrative emphasis, semantic thinness, narrative slop, tortured academic paraphrases). It also lives in Python, which adds a runtime to a Node toolchain.
Use proselint for traditional prose hygiene. Use slopless when the input is shaped by or by people steeped in LLM output.
JavaScript, narrow rule set: passive voice, weasel words, lexical illusions, "so" openers. Useful but small. No AI-era coverage.
Use write-good if you want a 10-rule tool that runs in 50ms. Use slopless when you need depth.
JavaScript, inclusive-language focus. Catches gendered, ableist, and culturally insensitive phrasings. Different purpose entirely.
Run alex AND slopless. They don't overlap.
Go binary, very configurable, style-guide-as-code. The right tool when an organization has a published style guide it wants to enforce mechanically.
Where it diverges: vale's value is in the configuration you write. Out of the box it does very little. Slopless is the opposite - opinionated defaults, low configuration.
Use vale for brand style enforcement. Use slopless for pattern-level slop detection. They compose well.
The textlint-rule-* ecosystem contains many small presets and rules: preset-japanese, rule-no-todo, rule-write-good wrapper, rule-spellcheck-tech-word, etc. Coverage is fragmentary; you assemble a config from dozens of packages, each with its own version cadence.
Slopless is shipped as a single preset that already wraps the orthography + metric rules and is opinionated about how they fit together. You install one thing and run one command. Direct textlint use is still supported if you want to mix slopless rules with other presets.
- Rules targeting LLM output patterns explicitly (
llm-vocabulary,llm-openers,llm-disclaimer,response-wrapper). - Rules targeting narrative slop (body-action density, perception-verb density, narrative clichés) for generated fiction.
- Rules targeting tortured academic phrases used by AI-paraphrased papers.
- Rule families designed as a taxonomy, not a flat list, so new rules find their home or force a taxonomy expansion.
- Inline
textlint-disableblock comments with package-namespaced rule IDs (slopless/<rule-name>).