cd /news/ai-tools/deterministic-linters-for-ai-written… · home › topics › ai-tools › article
[ARTICLE · art-156320] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Deterministic linters for AI-written technical prose (EN, RU, ES, DE, FR)

A developer released anti-slop-kit, an MIT-licensed Python tool that pairs a writing skill for models with deterministic linters for AI-generated technical prose in English, Russian, Spanish, German and French. The linters score violations per 100 words and split findings into banned-word "slop" and controlled-language mechanics such as sentence length, passive voice and nominalizations, exiting with code 1 above a threshold so they can gate a build. Sample texts show the English baseline scoring 29.94 violations per 100 words versus 0.83 for the controlled-language version, though the author cautions that two texts per language is a smoke test, not a benchmark.

by read3 min views2 publishedOct 23, 2026

Most "AI slop" advice is a style guide. This is a checker.

The symptom: documentation that reads fine in review and breaks the reader later. A sentence that hides the actor. A run-on that buries the command. A paragraph of hedges. Nobody flags it during review, because review is where prose gets read politely. It surfaces in the incident, in the support ticket, in the runbook nobody can follow at 3 a.m.

Anti-slop-kit has two halves. A skill tells the model how to write. A linter proves whether the model did it. The linter is the half most advice leaves out, because rules are easy to state and annoying to enforce.

Each language lives in its own directory, and every clean sample is pinned in the gate.

pip install anti-slop-kit
anti-slop-check --version
python3 en/ste-lint.py docs/draft.md

Linters exit with code 1 above the limit, so they gate a build:

python3 en/ste-lint.py --max 5 docs/*.md

Violations per 100 words. Lower is cleaner. It is 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 — read RESULTS.md before quoting these numbers. The useful signal is the delta between two revisions of the same text, not an absolute number. A threshold means something only after a team picks one for a document class; the CI samples gate at 2, and that is a convention, not a law.

The score also splits:

python3 en/ste-lint.py --breakdown docs/draft.md

slop counts banned words, marketing adjectives, filler and hedges. cl counts controlled-language mechanics: sentence length, passive voice, nominalizations, participle chains. In the Russian baseline, 24 of 39 findings are structural, so a search for banned words finds 15 and misses the larger half.

tools/aslint/ holds the agent-facing half: JSON in, JSON out, an MCP server, baseline gating, a write-time hook. .anti-slop.yaml switches off rules that are wrong for a given document class, per project.

python3 en/ste-lint.py --explain docs/draft.md

prints one line per finding: line number, rule, matched text, suggested fix.

Essays, marketing copy where the voice is the point, fiction, anything where rhythm matters more than being parsed correctly. The sentence-length and semicolon rules will fight you there, and they should: they come from maintenance-manual standards, not from general writing advice.

A score of 0 says nothing about whether the text is correct or complete. Every rule can produce a false positive — passive voice is right when the actor is unknown. Use the score to find candidates for a rewrite, not to grade a writer.

https://gitlab.com/ameobius-ai/anti-slop-kit

MIT. Python 3.9+, standard library only: the linters read only the files you name, send nothing anywhere, and execute nothing they analyze.

One caveat, stated plainly: GitHub Actions is disabled at the account level for the account that hosts this repository, so the CI workflow never runs there. The local hooks (hooks/pre-commit, hooks/pre-push) are the only enforcement that exists until that is lifted.

── more in #ai-tools 4 stories · sorted by recency
── more on @anti-slop-kit 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/deterministic-linter…] indexed:0 read:3min 2026-10-23 · —