Audit prose a human reads — comments, docstrings, commit messages, PR bodies, docs, chat replies. STE grammar, no AI buzzwords, no LinkedIn cadence, surgical brevity. Use anti-slop-code for source files.
Instrucciones de origen · Vista previa de solo lectura
name
anti-slop
description
Audit prose a human reads — comments, docstrings, commit messages, PR bodies, docs, chat replies. STE grammar, no AI buzzwords, no LinkedIn cadence, surgical brevity. Use anti-slop-code for source files.
version
0.1.0
anti-slop
A writing discipline for technical prose that humans have to read: code comments, docstrings, commit bodies, PR descriptions, design docs, READMEs.
Four layers, applied together:
STE grammar — Simplified Technical English rules from ASD-STE100. One fact per sentence, active voice, simple tenses, short sentences, no dropped articles.
Banned vocabulary — Words and phrases that mark text as LLM-generated on sight. Reach for the ordinary word.
Structural hygiene — No contrast constructions, rhetorical questions, LinkedIn cadence, or meta-commentary about the text itself.
No sycophancy — No flattery, no reflexive agreement, no apology inflation, no servile closer. Verify a correction before you accept it.
When to Use
Writing or reviewing code comments, docstrings, commit messages
Drafting PR descriptions or design doc sections
Any prose a developer will read repeatedly
Agent-to-agent messages where ambiguity has cost
Not for: marketing copy, user-facing content that needs voice, creative writing.
The Rules
STE Grammar
Rule
Do
Don't
One fact per sentence
Split on "and" or comma splice
"X and also Y which means Z"
Short sentences
Under ~20 words
Drop subject/verb/article to hit count
Simple tenses
"returns", "failed"
"has been returning", "will have failed"
Active voice
"qemu unlinks the socket"
"the socket is unlinked"
No -ing sentence openers
"handles", "uses"
"Handling the case where..."
Articles on countable nouns
"the lock", "a socket"
"lock ensures..."
Noun stacks ≤3 words
"vm registry lock"
"vm registry lock timeout retry config"
Concrete over abstract
A name, type, number
"the system", "various parts"
See references/ste-rules.md for the full 12 rules with examples.
Banned Vocabulary
The worst offender: "load-bearing" — say what actually depends on it.
Significance inflation: "a testament to", "stands as", "serves as", "plays a crucial role", "underscores the importance of", "marks a shift", "at its core", "the reality is", "it's worth noting", "fundamentally", "profound", "transformative", "powerful" (about code), "elegant" (about your own work)
Transition scaffolding: moreover, furthermore, additionally, notably, importantly, "that said" (paragraph opener), "in today's fast-paced X", "when it comes to X", "let's dive in"
Hedge-and-flatter openers: "Great question", "You're absolutely right", "I hope this finds you well", "Certainly!", "Absolutely."
See references/banned-vocabulary.md for the complete list with rationale.
Structural Patterns to Avoid
Contrast construction — Never define a thing by first negating something unstated:
"it's not X, it's Y"
"X isn't just Y"
"less A, more B"
"the real question isn't A, it's B"
Delete the negated half. State the real thing on its own.
LinkedIn cadence:
One-line paragraph dropped in for punch
Rhetorical question you then answer yourself
Closing aphorism restating the paragraph as a slogan
Counting what follows ("Three things...", "Two reasons...")
"I apologize for the confusion", "Sorry about that", "Thanks for catching that"
"Absolutely!", "Perfect!", exclamation marks in technical prose
"Both approaches are valid" where a recommendation belongs
A correction is a claim. Verify it, then state the corrected fact on its own. Say so with evidence when the correction is wrong. See references/sycophancy.md.
Servile closer — A sign-off that hands the decision back instead of ending the message:
"Say the word and I'll ...", "Just let me know"
"Happy to ...", "I'd be glad to ...", "Feel free to ..."
"Hope this helps", "Shall I proceed?", "Does that work for you?"
State what remains available and stop. The reader knows they can reply. Ask a real question only when the answer changes the work and no default is defensible. Then ask it plainly, on its own line.
Meta-commentary:
"To be clear", "Quick framing first"
"I don't want this read as..."
Recapping what the reader already sees
Structural tells:
Three-item lists where two items are real
Uniform sentence length across a paragraph
Bolding a phrase in every bullet
Emoji as section markers
See references/structural-patterns.md for detection heuristics and references/sycophancy.md for the judgment half.
Process
Draft normally. Don't self-censor while writing.
Scan for banned vocab. Ctrl+F the worst offenders (delve, leverage, robust, crucial).
Check sentence structure. Split compound sentences. Convert passive to active.
Cut meta-commentary. Delete sentences about the text itself.
Read aloud. If you wouldn't say it to a colleague in a hallway, rewrite it.
Output
When reviewing text, produce a table:
| Violation | Original | Fixed |
|---|---|---|
| Banned: "leverage" | "leverage the cache" | "use the cache" |
| Passive voice | "the file is deleted" | "the handler deletes the file" |
| Contrast construction | "It's not about speed, it's about correctness" | "Correctness matters more here" |
If the text already complies, say so. Don't force changes onto clean prose.