score-ai-slop
Skill0 starsChanged 5 months agoMITView on GitHub
Use when the user wants a slop quality-pass rather than a rewrite or a located list. Triggers include "score this for slop", "how sloppy is this", "give me a slop breakdown", "rate this writing for AI tells", "is this ready to publish", or "slop report by category". Returns a per-category breakdown (deterministic counts plus judged notes) and a publish-readiness read, deliberately without a single 0-10 headline number, because one number invites gaming. For located findings use detect-ai-slop; to rewrite the text use remove-ai-slop.
In this repository2 other files it gives its agents.
- detect-ai-slopSkill
- remove-ai-slopSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Deterministic tier (preferred): Run the bundled script and use its summary (the per-category counts) plus its findings for the breakdown:
- Very specific: line 40
If python3 is unavailable, do the read yourself from the spec and references, read the allow-list files directly, and tag the result …
- Distinctive: line 67
Never emit a single 0-10 number.
- Distinctive: line 68
If the script ran, note the counts are stable.
- Distinctive: line 70
If there are no findings, say so plainly and stop.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Score AI Slop
Give the author a quality-pass read: how much slop is here, by category, and is it ready
to publish. This is the aggregate view over the same engine that detect-ai-slop and
remove-ai-slop use. It does not rewrite, and it does not return a single 0-10 number;
a headline score becomes a thing people optimize against, so the output stays a
breakdown plus a plain-language readiness call.
Rules, categories, severity, and the override-merge order live in
../../shared/spec.md. Read it before scoring.
How to score
Deterministic tier (preferred). Run the bundled script and use its summary (the
per-category counts) plus its findings for the breakdown:
python3 shared/slop_count.py --file <path> \
[--allow-list ~/.claude/config/remove-ai-slop/user-allow-list.md] \
[--allow-list .claude/skills/remove-ai-slop/overrides/user-allow-list.md] \
[--extra-vocab ~/.claude/config/remove-ai-slop/user-vocabulary.md] \
[--extra-vocab .claude/skills/remove-ai-slop/overrides/user-vocabulary.md]Pipe text on stdin instead of --file when the user pasted it. Pass whichever override
files exist. The script is the sole override parser; consume its output, do not
re-parse the override tables.
Judged tier (you). The script cannot see meaning. Add a short note per
meaning-dependent category from the spec (padding-and-filler, elegant-variation, and
contextual cases). Mark these judged.
Fallback — when python3 is absent
If python3 is unavailable, do the read yourself from the spec and references, read the
allow-list files directly, and tag the result unstable: say "No python3 found; this
is an LLM-only pass and the counts are not byte-stable."
Output
A per-category breakdown, then a one-line readiness call. No 0-10 number.
Slop breakdown (deterministic + judged):
| Category | Count | Severity | Notes |
|--------------------------|-------|----------|-------------------------------|
| overused-vocabulary | 9 | low | clustered in para 1 |
| formulaic-constructions | 1 | high | "not just X, it's Y" (para 2) |
| formatting-tells | 2 | med | em-dash run in para 2 |
| padding-and-filler | 1 | med | judged: hedging in para 3 |
Readiness: heavy slop — run remove-ai-slop for a rewrite pass.Readiness is plain language tied to the spec threshold, not a number:
- No findings →
Clean — reads as written by a human, publish as-is. - A few isolated tells, none clustered →
Light — a couple of edits, no rewrite needed. - Any paragraph over the co-occurrence threshold →
Heavy — run remove-ai-slop.
Rules:
- Never emit a single 0-10 number. The per-category counts are the signal.
- If the script ran, note the counts are stable. On fallback, tag the read unstable.
- Respect the allow-list: an allow-listed word is never counted.
- If there are no findings, say so plainly and stop.
Scope
Aggregate read only. To see exactly where each tell is, that is detect-ai-slop. To
rewrite the text, that is remove-ai-slop. Do not rewrite from this skill.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

