Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add patrickdappollonio/claude-plugins --skill anti-slop-textgit clone --depth 1 https://github.com/patrickdappollonio/claude-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/patrickdappollonio/claude-plugins/anti-slop-text)<a href="https://agentmods.dev/skills/patrickdappollonio/claude-plugins/anti-slop-text"><img src="https://agentmods.dev/badge/skills/patrickdappollonio/claude-plugins/anti-slop-text/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/patrickdappollonio/claude-plugins/anti-slop-text"><img src="https://agentmods.dev/badge/skills/patrickdappollonio/claude-plugins/anti-slop-text.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00222 | $0.04077 |
| Opus 5.5 | $0.00089 | $0.01631 |
| Sonnet 5.5 | $0.00044 | $0.00815 |
| Haiku 4.5 | $0.00022 | $0.00408 |
Grade A, and why
anti-slop-text scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Anti-Slop Text
The rule
Every sentence gives the reader a fact they need, in the plainest words that carry it, and every fact comes from the material you were given or something you checked.
Slop is text shaped like writing with nothing specific in it: significance claimed instead of shown, reasons made up to sound concrete, rhythm doing the work that content should. A reader who spots the patterns tends to distrust the rest of the text, including the parts that were true.
Read the companion files first
This skill ships two companion files beside it. On first use in a session, before any other step:
- Read
tells-catalog.mdin full. It holds the full list behind the review table below: every pattern, the words and shapes to search for, and what to write instead. The table here is a reminder of text you have already read, never a substitute. Re-read it before any review pass over text longer than a few paragraphs. - Load the communication rules, one of two ways:
- The
effective-communicatorskill is installed (it appears in your list of available skills, on its own or under a plugin prefix): invoke it and follow it. Do not readcommunication.md; the installed skill is the fuller version of the same rules. - It is not installed: read
communication.mdin full. It is the distilled version of that skill.
- The
Writing from memory of what "plain" or "clear" means, without one of those loaded, is a red flag below. Never tell the reader to install the other skill; use it when it is there and the file when it is not.
Write it in this order
- List the facts first. Before writing, list what you know from the brief, the code, the diff, the data, or a source you opened. The text says those things and nothing else. When a fact is missing (why a decision was made, what a number was, what happened next), ask for it or leave it out. Never supply a plausible reason, anecdote, number, quote, or outcome to make the text feel complete; a made-up detail is worse than a missing one because the reader cannot tell which details are real. If the requested length needs more facts than you have, write the shorter text, say how long it came out and why, and ask for the material that would fill it.
- Say it plainly. Subject, plain verb, fact. Use is, has, uses, wrote, tried, moved over serves as, boasts, utilizes, authored, attempted, relocated. A number beats an adjective: "builds in 9 minutes" over "blazing fast".
- Let facts carry their own weight. Do not tell the reader something is significant, pivotal, a testament, a turning point, or part of a broader trend. If it matters, the fact shows why; if the reason is not obvious, state the reason as another fact.
- Name who said it. A claim about what people think names its source, or is stated as your own claim, or is cut. No experts argue, many believe, studies show without the study.
- Say Y. When a sentence, or a pair of sentences, brings up X only to set it aside and then says Y, write Y. The structure is the tell, whatever the words: "it's not X, it's Y", "it could be X, but it's Y", "X isn't the problem, Y is", "sure, X, but Y", "less X, more Y", "the real X is Y", "Y rather than X", "no X, no Y, just Z", and every other variant in
tells-catalog.md. Ask whether the reader would have believed X if you had not raised it; if not, X is a foil, so delete it. Keep X only when the reader actually holds it or it was an option someone weighed, and then state it as a fact ("we first suspected the cache; the logs showed …"), not as a reveal. When editing, rebuild the sentence: Y in its own sentence; X only if it is a fact the reader needs on its own (a measurement, a named option), in its own sentence, never as the setup for Y. An evaluative X such as easy or obvious is framing, not a fact, so "keep every fact" does not protect it. - Let the content set the count and the rhythm. List the real items, whether that is one or five. No drumroll openers (here's the thing, turns out, the punchline), no stacked rhetorical questions, no three sentences in a row starting the same way, no fragment pairs built for punch ("It broke. We fixed it.").
- Fit the structure to the content. Headings in sentence case unless the house style says otherwise, used only when the text is long enough to need them, in order, each with text before any subheading. Bold at most the one thing a skimmer must not miss. Bullets for list-shaped content; paragraphs for reasoning. A table for three or more rows compared across two or more columns. No emoji as bullets or heading markers, no rule between every section, no closing "Conclusion", "Summary", or "Key takeaways" that restates the text. End on the last new fact.
- Use the destination's format. Markdown where it renders, plain text in a commit body, email, or form field, the house markup in a wiki. Follow the house style for dashes, quotes, and heading case; with none, prefer commas, colons, and parentheses to repeated em dashes.
- Leave the conversation out of the artifact. A document, commit message, or PR description has no Certainly!, Here is …, I hope this helps, Let me know if …, or model disclaimers. It starts with its first real sentence. Fill every placeholder with a real value or ask for it.
- In reports, commits, and PRs, say what changed. What changed, why, and how it was checked. Mention an untouched part only when the reader would otherwise assume it changed. No assurances (following best practices, ensuring consistency, preserved existing behavior) without the evidence that makes them true, and no narration of your process.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago Changed · +6 lines · +8 tokens per session ecf6361c622d
- 1mo ago First seen · 106 lines · 214 tokens per session scan A 5ebd5c8422d1
anti-slop-text is a skill published in the GitHub repository patrickdappollonio/claude-plugins (9 stars, last pushed yesterday), licensed MIT. It adds 222 tokens to every session and 4,077 once invoked, about $0.0009 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-01.
anti-slop-text compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| anti-slop-textpatrickdappollonio/claude-plugins | Skill | 9 | yesterday | MIT | A | 222 | Claude Code |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 103 | Claude Code |