unslop-text

Detect and remove AI-writing tells from prose using a lexical scanner and ranked tell catalog.

52|3|Updated Aug 20, 2026
One-click install
npx skills add https://github.com/Wayn-Git/Amethyst --skill unslop-text-wayn-git
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unslop-text
Source: https://github.com/Wayn-Git/Amethyst/tree/main/agents/skills/unslop-text
Command: npx skills add https://github.com/Wayn-Git/Amethyst --skill unslop-text-wayn-git

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Prose drafted or edited by AI models tends to fall into a recognizable default register: em dashes, "it's not just X, it's Y" cadences, assistant boilerplate, diction like "delve" and "tapestry", listicle scaffolding, and tidy conclusions. Readers flag these cues as machine-written, and naive fixes often over-correct into an equally detectable "trying not to sound like AI" voice. This Skill removes the cited tells and forces a deliberate, defensible voice instead of the model's median. ## Core Features & Use Cases - Deterministic scanner: Run scripts/unslop_text_scan.py on .md, .markdown, .mdx, .txt, .rst, or .html files to get per-line findings with severity, data share, suggested fixes, a slop score, and density per 1,000 words; the exit code equals the high-severity count so CI can gate on it. - Data-grounded tell catalog: references/tells.md ranks tells by how often real readers cite them, based on an analysis of 89,239 Reddit posts, and separates surface lexical tics from structural tells like uniform rhythm and sycophancy that must be checked by ear. - Build and Audit modes: Build mode pins one of four registers (casual, conversational-professional, expository, formal) plus a speaker, claim, and shape before drafting; Audit mode scans existing prose and fixes in priority order while honoring unslop-ignore lines for intentional choices. - Use Case: A user pastes a blog draft that "sounds like ChatGPT." Run the scanner for the lexical layer, then read the draft aloud against the structural catalog, replace flagged phrases with plain verbs, and report a verdict with the top three changes. ## Quick Start Ask the assistant to audit your draft for AI-writing tells, for example: "Run the unslop scan on my post.md and rewrite anything that reads as AI-generated in my own voice."

Frequently Asked Questions about unslop-text

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if my writing sounds like AI?▼

Run python3 scripts/unslop_text_scan.py on your file to get a report of lexical tells with line numbers, severity, and fixes, plus a slop score and density. Then read the draft aloud against the structural tells in references/tells.md, since rhythm and tone are not regex-detectable.

How to remove AI writing tells from a draft?▼

Fix flagged phrases with the plain wording a person would use, such as replacing "delve into" with "look at" and cutting assistant boilerplate. Avoid swapping one tell for another, and pin a register and speaker before rewriting so the result is a deliberate voice.

What file formats does the AI slop scanner support?▼

The scanner processes .md, .markdown, .mdx, .txt, .rst, and .html files. It skips quoted lines and backtick code spans, except for em dashes and leftover assistant boilerplate, which are flagged everywhere.

Can I use the scanner in a CI pipeline?▼

Yes. Run it with --json for machine-readable output and gate on the exit code, which equals the count of high-severity findings. Use --severity high to limit the report to the strongest signals.

Why does a clean scan not guarantee human-sounding text?▼

The scanner is a lexical filter that catches surface tics like em dashes and diction memes, but the highest-value tells are structural: uniform sentence rhythm, sycophancy, and empty fluency. A green check only means the lexical layer is clean, so a human read-aloud pass is still required.

How do I keep intentional word choices from being flagged?▼

Add unslop-ignore to any line where a flagged word is a deliberate decision, and the scanner will skip it. This keeps audits trustworthy for formal registers or authors who intentionally use flagged constructions.