$npx -y skills add ehmo/slopkit --skill slopbethUse when drafting, editing, reviewing, or benchmarking prose to remove AI-writing tells while preserving meaning, voice, and density. Trigger this skill for requests about AI slop, humanizing AI-assisted writing, detector-facing validation, unsummarizable prose, voice preservatio
| 1 | # Slopbeth |
| 2 | |
| 3 | Remove machine-writing tells without sanding away the author's meaning or voice. The target is not "detector-proof" prose; it is dense, specific writing where every sentence carries load and detector results stay dated and tool-specific. |
| 4 | |
| 5 | ## Workflow |
| 6 | |
| 7 | 1. Classify the task: rewrite; critique; benchmark; detector-facing validation; or skill maintenance. |
| 8 | 2. Separate the brief from the artifact. Long inputs often mix the material with instructions about it: "the note should keep that texture"; "do not turn this into a lesson"; "the rewrite must not promise that the problem cannot recur". Those sentences address you, not the reader. Do what they ask and leave them out of the output. Reprinting them is the same class of error as inventing content, and preservation and density checks will not catch it, because instruction text is specific, sourced, and dense. |
| 9 | 3. Preserve facts first. Lock named entities; numbers; dates; URLs; citations; quotations; technical claims; explicit uncertainty; and the user's requested stance. |
| 10 | 4. Set the evidence boundary. When the user supplies only vague copy, switch to evidence-bound mode: do not invent or assert product features; dates; people; metrics; workflows; examples; customer facts; or outcome claims. Unsupported claims such as "faster decisions," "better alignment," "reduced friction," "confidence," or "momentum" must become proof gaps, questions, or explicitly attributed claims. |
| 11 | 5. Diagnose clusters, not isolated words. Look for filler; vague significance language; formulaic contrast; promotional inflation; padded lists; generic uplift; actorless claims; summary endings; and ornamental formatting. |
| 12 | 6. Rewrite in this order: preserve claims and constraints; cut scaffolding and inflated abstract nouns; apply Orwell's six rules as generation defaults (short word over long, cut deletable words, active over passive, no printed-cliche metaphor or jargon, but break any rule sooner than write something unclear or graceless); make each sentence carry a claim, example, constraint, image, number, consequence, or argumentative move; match the user's register; remove concrete details that are not sourced or clearly labeled; check for meaning loss, bland-clean prose, formula replacement, and over-editing. |
| 13 | 7. Validate when files or before/after text are available. Use the scripts in `scripts/` for repeatable checks, then apply judgment for meaning, voice, and sentence-load failures. |
| 14 | 8. Output the revised text first for normal rewrite requests. Add a compact note only when it helps explain material changes, preservation risks, or remaining issues. |
| 15 | |
| 16 | ## Reference routing |
| 17 | |
| 18 | Load only the references needed for the task: |
| 19 | |
| 20 | - `references/slop-taxonomy.md`: thorough diagnosis; red-team review; marker inventory. |
| 21 | - `references/voice-and-preservation.md`: author samples; technical prose; legal, medical, or financial claims; tone preservation. |
| 22 | - `references/density-and-unsummarizability.md`: dense prose; stronger argumentation; the user's "unsummarizable" standard. |
| 23 | - `references/writing-system.md`: generating prose from a positive system; Orwell's six rules; passive-voice reduction; a portable CLAUDE.md/AGENTS.md writing block. |
| 24 | - `references/evaluation.md`: benchmarks; detector logs; release gates; skill-maintenance work. |
| 25 | |
| 26 | ## Script routing |
| 27 | |
| 28 | Use scripts when the user asks for testing, when local files are available, or when validating a skill change: |
| 29 | |
| 30 | ```bash |
| 31 | node bin/slopbeth.js benchmark |
| 32 | python3 scripts/deslop_lint.py path/to/text.txt --format json |
| 33 | python3 scripts/orwell_lint.py path/to/text.txt --format json |
| 34 | python3 scripts/preservation_check.py original.txt rewrite.txt --format json |
| 35 | python3 scripts/density_report.py original.txt rewrite.txt --format json |
| 36 | ``` |
| 37 | |
| 38 | Use `orwell_lint.py` on a single draft to see passive voice, long words, deletable phrases, and jargon; treat per-rule counts as review signals, not a defect ledger. Use `signature_score.py`, `cadence_score.py`, `semantic_drift.py`, `unsummarizability_check.py`, `run_benchmark.py`, and `orwell_benchmark.py` only on before/after corpora that include candidate outputs. Use `span_annotation_check.py`, `false_positive_check.py`, and `competitor_output_score.py` when maintaining the bundled benchmarks. |
| 39 | |
| 40 | Load `references/evaluation.md` for the full benchmark and detector-evidence rules. In this package, use `scripts/` relative to the installed Slopbeth skill directory. |
| 41 | |
| 42 | The scripts report signals. They do not decide whether prose is good enough. |
| 43 | |
| 44 | ## Hard rules |
| 45 | |
| 46 | - Never claim text is permanently undetectable, guaranteed human, or safe against all AI detectors. |
| 47 | - Reject d |