Anti-slop Kit
Deterministic linters that strip AI slop out of technical prose. English, Russian, Spanish, German, French. Open source, MIT.
What it is
Most anti-slop advice is a style guide. A skill tells the model how to write; a linter proves whether the model did it. This project ships the second half: rule-based checkers that run over your text and return findings you can act on, in five languages.
- English — ASD-STE100 mechanics, 11 rule groups
- Russian — GOST R 58049-2017 clause 8.2.3, 13 rule groups plus typography. Not a translation of the English side: own lexicon, own morphology handling, own samples
- Spanish, German, French — same shape
Install and run
pip install anti-slop-kit
anti-slop-check --version
python3 en/ste-lint.py docs/draft.md
Linters exit with code 1 when a file scores above the limit, so they gate a build:
python3 en/ste-lint.py --max 5 docs/*.md
python3 ru/ru-ste-lint.py --max 5 --json README.ru.md
Python 3.9 or later. Standard library only: the linters read the files you name, send nothing anywhere, and execute nothing they analyse.
The score
Violations per 100 words. Lower is cleaner. It is a smoke alarm, not a grade.
| Text | Score | Longest sentence |
|---|---|---|
en/samples/baseline.md | 29.94 | 49 words |
en/samples/ste.md | 0.83 | 14 words |
ru/samples/baseline.md | 33.33 | 27 words |
ru/samples/utr.md | 0.00 | 11 words |
Two texts per language is a smoke test, not a benchmark. The useful signal is the delta between two revisions of the same text. A threshold means something only after a team picks one for a document class.
For agents
tools/aslint/ holds the agent-facing half: JSON in, JSON out, an MCP server, baseline gating and a write-time hook. .anti-slop.yaml switches off rules that are wrong for a given document class.
python3 en/ste-lint.py --explain docs/draft.md
python3 en/ste-lint.py --breakdown docs/draft.md
--explain prints one line per finding: line number, rule, matched text, suggested fix. --breakdown splits the total into slop (banned words, filler, marketing adjectives) and cl (sentence length, passive voice, nominalizations, participle chains).
Where it does not fit
Essays, marketing copy where the voice is the point, fiction, anything where rhythm matters more than being parsed correctly. A score of 0 says nothing about whether the text is correct or complete, and every rule can produce a false positive. Use the score to find candidates for a rewrite, not to grade a writer.
Repository
gitlab.com/ameobius-ai/anti-slop-kit — source, rule catalogue, examples with measured scores, and the evaluation harness.
Other projects by the same author: ameobius-ai.gitlab.io.