Files
whitemagic/.claude/skills/fuck-slop/references/tells.md
T
kbe 286bb9cab1 Add local agent workspace files and skills
Includes .agents/, additional .claude/skills/, and skills-lock.json.
2026-07-22 02:24:51 +02:00

7.2 KiB
Raw Blame History

AI-Writing Tell Catalog

Detection patterns for the F*ck Slop scan. Patterns are written for grep -Ein (extended regex, case-insensitive, line numbers) so they can be run literally against a file:

grep -Ein -f /dev/stdin draft.txt <<'PATTERNS'
<paste patterns from a section below, one per line>
PATTERNS

When the text only exists in conversation, apply each pattern by hand. A match is a finding, not an automatic deletion — every finding goes through the Phase 2 triage in SKILL.md. Density matters: one em dash is nothing; one em dash plus a negative parallelism plus "delve" in the same paragraph is a verdict.

1. Negative parallelism — the "not X but Y" family

The highest-priority category. LLMs reach for the negation-then-assertion move roughly once a paragraph; humans use it occasionally and deliberately. It is an emergent generative habit, so expect it to reappear in paraphrased form after every rewrite pass — that is why the scan loops.

not (just|only|merely|simply|solely) [^.;]{2,80}(but|it'?s| — )
isn'?t (just|only|merely|simply|about) 
it'?s not (a|an|the|that|about|just) [^.;]{2,80}(it'?s|but)
(is|was|are|were)n'?t about [^.;]{2,60}\. (it|this|that)'?s about
less about [^.;]{2,60}(than|and more about)
more than (just|a mere|simply) 
not because [^.;]{2,80}but because
the (question|point|issue|problem|goal|real [a-z]+) is(n'?t| not) (whether|about|just|if)
(doesn'?t|don'?t|didn'?t|won'?t) (just|merely|simply) [^.;]{2,80}(it|they|he|she|we) 
no [a-z]+, no [a-z]+(, no [a-z]+)?[,.]? just 
— not [^—.;]{2,60}, but 
not only [^.;]{2,80}but (also )?
we'?re not (just )?(talking about|looking at|dealing with)
gone are the days
(here|this)'?s the (thing|kicker|catch|twist)

Rhetorical-question variant (regex-resistant; check by hand): a one-line question immediately answered by a one-word or one-clause sentence. "The result? Chaos." / "Sound familiar?"

2. Puffery and inflated vocabulary

Single words that spike in LLM output. Each is fine in isolation; two or more per page is a finding. The fix is the plain word or the concrete fact the word was hiding.

\b(delve|delving)\b
\btapestry\b
\b(testament|stands as)\b
\bseamless(ly)?\b
\b(pivotal|paramount|crucial)\b
\bunderscore(s|d)?\b
\b(landscape|realm|sphere) of\b
\bnavigat(e|ing) the\b
\bfoster(s|ing)?\b
\bleverage(s|d)?\b
\bmeticulous(ly)?\b
\bintricate\b
\bboasts\b
\bgame.?chang(er|ing)\b
\b(seismic|monumental|transformative) (shift|change)\b
\bunwavering\b
\bcommendable\b
\belevate(s|d)? (the|your)\b
\bshowcas(e|es|ing)\b
\bresonate(s|d)?\b
\bcompelling\b
\brich (cultural )?(heritage|history|tradition)\b
\bvibrant\b
\bplays? a (vital|key|crucial|pivotal) role\b
\bdeep(er)? dive\b
\bunlock(s|ing)? (the|your)\b
\bharness(es|ing)? the\b
\bembark(s|ed|ing)? on\b
\bever.?(evolving|changing)\b
\bfast.?paced (world|environment)\b
\bin today'?s\b
\bat the end of the day\b
\bwhen it comes to\b
\bcutting.?edge\b
\brobust\b
\bholistic\b
\bsynergy\b
\bempower(s|ing|ment)?\b

3. Hedging, both-sidesing, throat-clearing

The tell is reflexive balance: every claim gets a softener, every opinion gets a counterpoint. Commit or cut.

it'?s (worth|important) (to note|noting|to remember|to consider)
(that|it) (being )?said,
while (it'?s|this is) (true|important)
arguably
in many ways
to some (extent|degree)
on the other hand
at its core
in essence
essentially,
ultimately,
in conclusion
in summary
to sum(marize| up)
overall,
in the end,
needless to say
as (we|you) (can see|know|all know)
let'?s (dive|unpack|explore|take a (look|closer look))
whether you('re| are) [^.;]{2,60} or 

4. False ranges and rule-of-three

False range — a "from X to Y" with no actual spectrum between X and Y:

from [^.;]{3,50} to [^.;]{3,50}

Triage by hand: if you can name a meaningful midpoint, it's a real range and stays. If X and Y are just two loosely related examples, name them plainly or cut one.

Rule of three — LLMs default to triplets to make thin analysis look thorough. Regex only catches the simplest shape; check lists by hand too.

\b\w+, \w+, and \w+[.!?]
\b(\w+ \w+), (\w+ \w+), and (\w+ \w+)

Triage: keep the strongest item, cut the rest — or keep all three only if each carries distinct information, and then break the rhythm.

5. Punctuation and formatting

Em dash: not banned — humans use it. Findings are about density and the contrast move:

  • More than ~1 em dash per 150 words.
  • Two em dashes in one sentence.
  • — not X, but Y (already in section 1).
  • Em dash used for punchy emphasis where a comma works: [a-z] — [a-z][^—]{1,25}\.$

Other formatting tells (check by hand; most regexes here are layout-dependent):

  • Bold scattered through prose like a textbook highlighting itself: \*\*[^*]{2,40}\*\* appearing more than ~once per 3 paragraphs of body prose.
  • "Term: definition" bullets: ^[-*] +\*\*[^*]+:?\*\*:? — the signature LLM list shape.
  • Emoji headers/bullets (🚀, , 💡): needs PCRE, not -ELC_ALL=C.UTF-8 grep -Pn '^\s*[-*#]+\s.*[\x{1F300}-\x{1FAFF}\x{2600}-\x{27BF}]' draft.txt.
  • Headers on short texts — section headers on anything under ~400 words.
  • The tidy skeleton — intro that previews three points, three matched sections, conclusion that restates them. Resolves too neatly; real writing has loose ends.
  • Numbered lists where a paragraph would do.
  • Curly quotes/apostrophes in a context where the author types straight ones (mixed within one text is the stronger tell).

6. Cadence and statistical shape

No regex; measure or eyeball.

  • Uniform sentence length (the single strongest current tell): a run of 3+ consecutive sentences within ±4 words of each other, paragraph after paragraph of 1824-word sentences. Quick measurement on a file:

    tr '\n' ' ' < draft.txt | sed 's/[.!?] /\n/g' | awk '{print NF}'
    

    Human prose mixes 4-word sentences with 30-word sentences. Variance should be obvious at a glance.

  • Uniform sentence shape: every sentence opens subject-first; no fragments, no questions, no inversions.

  • Uniform paragraph length: every paragraph 34 sentences.

  • Low specificity: "many companies", "studies show", "experts agree", "recent research", "various factors" — generic where a human who knew the material would name names, numbers, dates. (Fix only with real specifics; never invented ones.)

  • No friction: nothing colloquial, no aside, no opinion held without a softener, nothing that risks being disagreed with.

7. Genre-specific instant tells

Covered in detail in voices.md; the headline items:

  • Reddit/forums: bold mid-comment, bullet-pointed comments, "Hope this helps!", perfectly balanced takes.
  • Tweets/X: "🧵", "Let that sink in", line-broken one-clause-per-line cadence, ending on a question to drive engagement.
  • LinkedIn: one-sentence paragraphs stacked vertically, "Agree?", the not-X-but-Y move (its natural habitat).
  • Academic: "delve", "novel insights", puffed significance claims ("crucial implications for the field"), citation-free superlatives.
  • Email: "I hope this email finds you well", restating the recipient's question back at them, three-paragraph symmetry for a one-line answer.