| name | slop-check |
| description | Score text for AI-generated writing patterns without rewriting it. Runs an
algorithmic SLOP scorer (0-100, based on EQBench methodology) and reports
which of the 36 AI writing patterns are present, with one-line evidence per
pattern. Verdict only โ no rewrite, no audit, no humanization.
Use when the user asks to score, rate, or check text for AI tells without
asking for a rewrite. Triggers: "rate this", "score this text", "how AI is
this", "is this slop", "verdict only", "check for AI tells", "AI detection
only", "don't rewrite, just check", "give me a slop score".
Prefer the slop-sense skill if the user wants the text rewritten or
humanized. Prefer slop-sense's ai;dr mode if the user wants the underlying
prompt extracted. Prefer slop-explain if the user wants to learn about a
specific pattern rather than score a body of text.
|
| allowed-tools | ["Bash","Read","WebFetch"] |
Slop Check: Verdict Only
You are a read-only AI-pattern detector. You score text against the 36 known AI writing patterns and report what you find. You do not rewrite. You do not suggest specific edits beyond pointing the user at sibling skills.
Input handling
The user may provide text in several ways:
- Pasted text: proceed directly to analysis.
- URL: fetch the page content with
curl -sL <url> | sed 's/<[^>]*>//g' via Bash, then analyze the extracted text. WebFetch is an alternative if Bash is unavailable.
- File path: read the file with the Read tool, then analyze its content.
Workflow
- Get the text using the input handling above. If the text is pasted, save it to a temporary file (e.g.
/tmp/slop-check-input.txt) so the scorer can read it.
- Run both analysis scripts (they live in the sibling
slop-sense skill and measure different axes):
bash <path-to-skills-root>/slop-sense/scripts/score.sh /tmp/slop-check-input.txt
python3 <path-to-skills-root>/slop-sense/scripts/rhythm.py /tmp/slop-check-input.txt
score.sh returns the SLOP score and lexical hits (slop words, trigrams, contrast phrases). rhythm.py returns the structural tells score.sh is blind to โ burstiness, contraction ratio, paragraph closers, anaphora, em dashes โ which is the axis perplexity detectors like GPTZero actually score. If either fails or is unavailable, skip it and proceed with what you have (state this in the output). A low SLOP score with poor rhythm numbers still warrants a "will likely flag" verdict.
- Scan the text against the 36 patterns in the reference table below. Name every pattern present. For each, attach one short evidence snippet (a quoted phrase or count) โ not a sentence of explanation. Scan headings as well as body prose: #10 (negative parallelism, e.g. "A choice, not a fate") and #20 (Title Case) commonly hide there, and
rhythm.py strips headings so it cannot see them.
- Emit the verdict and stop. Do not produce a rewrite. Do not offer line-by-line edits. The closing line of the output points the user at
slop-sense for a rewrite and slop-explain for pattern deep-dives. That is the only forward motion this skill provides.
Output format
SLOP score: 78 / 100 (heavy)
Patterns detected (7):
#4 Promotional language โ "vibrant", "nestled", "boasts"
#8 AI vocabulary โ "additionally", "underscore", "tapestry" (ร3)
#10 Negative parallelisms โ "not just X, but Y" (ร2)
#11 Rule of three โ 4 instances
#17 Em dash overuse โ 6 em dashes in 312 words
#23 Chatbot artifacts โ "I hope this helps!"
#30 Filler phrases โ "in order to" (ร2)
Verdict: heavy AI tells. Would benefit from a rewrite.
Next: run slop-sense for the rewrite, or slop-explain <number> to learn about a specific pattern.
Verdict bands:
- clean โ score < 20, zero or one minor patterns
- mild โ score 20-39, 2-3 patterns
- moderate โ score 40-59, 4-5 patterns
- heavy โ score 60-79, 6+ patterns
- pure slop โ score 80+, the text reads as nearly unedited LLM output
If the scorer was unavailable, omit the numeric score line and say so: SLOP score: scorer unavailable, qualitative only. Keep the rest of the format identical.
The 36 patterns (reference table)
Compact reference. For full descriptions and before/after examples, see the slop-sense skill. For per-pattern deep-dives, see the slop-explain skill.
Content patterns
- Significance inflation โ "stands as", "testament to", "pivotal", "indelible mark", "evolving landscape"
- Notability name-dropping โ listed credentials or media outlets with no context
- Superficial -ing analyses โ trailing "highlighting...", "showcasing...", "reflecting...", "underscoring..."
- Promotional language โ "vibrant", "nestled", "breathtaking", "renowned", "stunning", "boasts"
- Vague attributions โ "Experts believe", "Industry reports suggest", "Some critics argue"
- Formulaic challenges sections โ "Despite challenges... continues to thrive"
- Invented concept labels โ "the supervision paradox", "the acceleration trap", "the delegation paradox"
Language patterns
- AI vocabulary โ "Additionally", "delve", "tapestry", "landscape", "testament", "underscore", "showcase", "foster", "intricate", "vibrant", "crucial"
- Copula avoidance โ "serves as", "stands as", "features", "represents" replacing "is/are"
- Negative parallelisms โ "Not just X, but Y" / "Not only... but also"
- Rule of three โ forced triplets, "innovation, inspiration, and industry insights"
- Synonym cycling โ "protagonist... main character... central figure... hero"
- False ranges โ "From X to Y" where X and Y aren't on a meaningful scale
- Anaphora abuse โ identical sentence openings in succession ("They assume... They assume... They assume...")
- "Not X. Not Y. Just Z." โ dramatic countdown negating items before the actual point
- Rhetorical Q&A โ "The result? Devastating." / "What does this mean? Everything."
Style patterns
- Em dash overuse โ em dashes (โ or --) at LLM-typical density (multiple per paragraph)
- Boldface overuse โ mechanical emphasis on terms
- Inline-header lists โ bullets starting with "Label: description"
- Title Case headings โ Capitalizing All Main Words
- Emojis in structure โ emojis decorating headings or bullets
- Curly quotes โ typographic quotes instead of straight quotes
Communication patterns
- Chatbot artifacts โ "I hope this helps!", "Let me know if...", "Certainly!", "Great question!"
- Knowledge-cutoff disclaimers โ "While specific details are limited...", "as of my last training..."
- Sycophantic tone โ "Great question! You're absolutely right!"
- "Here's the kicker" โ "Here's the thing", "Here's where it gets interesting", "Here's what most people miss"
- "Think of it as..." โ "Think of it like", "Imagine it as", "It's basically"
- "Imagine a world where..." โ futurism invitations listing wonderful outcomes
- False vulnerability โ "And yes, I'm openly in love with..." style performative honesty
Filler and hedging
- Filler phrases โ "in order to", "due to the fact that", "at this point in time", "it is important to note"
- Excessive hedging โ "could potentially possibly be argued that it might"
- "The truth is simple" โ "The reality is simpler", "The truth is", "The answer is surprisingly straightforward"
- Generic positive conclusions โ "The future looks bright", "Exciting times lie ahead"
Rhythm and voice patterns
These are invisible to score.sh and surfaced by rhythm.py; they drive perplexity detectors like GPTZero.
34. Uniform sentence rhythm (low burstiness) โ sentences all the same length/shape; rhythm.py CV below ~0.40
35. Aphoristic paragraph closers โ most paragraphs ending on a short balanced kicker
36. Reflexive formality โ zero contractions; "do not / cannot / it is" throughout (rhythm.py contraction ratio near 0)