zero-slop 2.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -0
  3. package/SKILL.md +803 -0
  4. package/data/corpus/community-register/README.md +14 -0
  5. package/data/corpus/community-register/judgment/communicative-drift.txt +1 -0
  6. package/data/corpus/community-register/judgment/reflexive-agreement.txt +1 -0
  7. package/data/corpus/community-register/judgment/rhetorical-scale-mismatch.txt +1 -0
  8. package/data/corpus/must-not-flag/README.md +49 -0
  9. package/data/corpus/must-not-flag/esl-engineer-email.txt +7 -0
  10. package/data/corpus/must-not-flag/exec-memo.txt +9 -0
  11. package/data/corpus/must-not-flag/federalist.txt +5 -0
  12. package/data/corpus/must-not-flag/gettysburg.txt +1 -0
  13. package/data/corpus/must-not-flag/grant-abstract.txt +5 -0
  14. package/data/corpus/must-not-flag/ml-methods.txt +1 -0
  15. package/data/corpus/must-not-flag/personal-essay.txt +1 -0
  16. package/data/corpus/must-not-flag/press-release.txt +7 -0
  17. package/data/corpus/must-not-flag/recipe.txt +11 -0
  18. package/data/corpus/must-not-flag/sre-runbook.txt +1 -0
  19. package/data/corpus/must-not-flag/technical-postmortem.txt +1 -0
  20. package/data/corpus/must-not-flag/terse-engineer-note.txt +1 -0
  21. package/data/corpus/must-not-flag-shape/README.md +22 -0
  22. package/data/corpus/must-not-flag-shape/aphorism-list.txt +9 -0
  23. package/data/corpus/must-not-flag-shape/changelog.txt +13 -0
  24. package/data/corpus/must-not-flag-shape/dialogue.txt +19 -0
  25. package/data/corpus/must-not-flag-shape/lyrics.txt +15 -0
  26. package/data/corpus/must-not-flag-shape/poem.txt +8 -0
  27. package/data/corpus/must-not-flag-shape/sms-transcript.txt +15 -0
  28. package/data/corpus/performed-register/README.md +38 -0
  29. package/data/corpus/performed-register/judgment/detection-fragile.txt +1 -0
  30. package/data/corpus/performed-register/judgment/draft-cheap-signal.txt +1 -0
  31. package/data/corpus/performed-register/judgment/ear-chiasmus.txt +1 -0
  32. package/data/corpus/performed-register/judgment/fight-against-tagline.txt +1 -0
  33. package/data/corpus/performed-register/judgment/fine-beat.txt +1 -0
  34. package/data/corpus/performed-register/judgment/glow-finishing.txt +1 -0
  35. package/data/corpus/performed-register/judgment/jargon-compression.txt +1 -0
  36. package/data/corpus/performed-register/judgment/not-perfect-honest.txt +1 -0
  37. package/data/corpus/performed-register/judgment/punctuation-convict.txt +1 -0
  38. package/data/corpus/performed-register/judgment/recipe-ingredients.txt +1 -0
  39. package/data/corpus/performed-register/judgment/replay-lands.txt +1 -0
  40. package/data/corpus/performed-register/judgment/rhymes-with.txt +1 -0
  41. package/data/corpus/performed-register/judgment/rhythm-prints.txt +1 -0
  42. package/data/corpus/performed-register/judgment/same-leak.txt +1 -0
  43. package/data/corpus/performed-register/judgment/tools-work.txt +1 -0
  44. package/data/corpus/performed-register/judgment/tuning-gradients.txt +1 -0
  45. package/data/corpus/performed-register/judgment/verdict-arithmetic.txt +1 -0
  46. package/data/corpus/performed-register/judgment/whole-product.txt +1 -0
  47. package/data/corpus/performed-register/judgment/words-cheap.txt +1 -0
  48. package/data/corpus/performed-register/mechanical/argue-with-artifact.txt +1 -0
  49. package/data/corpus/performed-register/mechanical/bill-lands.txt +1 -0
  50. package/data/corpus/performed-register/mechanical/billed-to-reader.txt +1 -0
  51. package/data/corpus/performed-register/mechanical/economics-brutal.txt +1 -0
  52. package/data/corpus/performed-register/mechanical/has-receipts.txt +1 -0
  53. package/data/corpus/performed-register/mechanical/hired-adversary.txt +1 -0
  54. package/data/corpus/performed-register/mechanical/hyperbole-universal.txt +1 -0
  55. package/data/corpus/performed-register/mechanical/metaphor-sender-name.txt +1 -0
  56. package/data/corpus/performed-register/mechanical/minding-own-business.txt +1 -0
  57. package/data/corpus/performed-register/mechanical/on-the-tin.txt +1 -0
  58. package/data/corpus/performed-register/mechanical/opens-the-hood.txt +1 -0
  59. package/data/corpus/performed-register/mechanical/turns-out-payoff.txt +1 -0
  60. package/data/corpus/performed-register/mechanical/vibe-check.txt +1 -0
  61. package/data/corpus/performed-register/mechanical/vibe-isnt-a-vibe.txt +1 -0
  62. package/data/corpus/performed-register/mechanical/vibe-number-attached.txt +1 -0
  63. package/data/corpus/performed-register/mechanical/where-slop-lives.txt +1 -0
  64. package/data/learned-log.md +339 -0
  65. package/data/learned.json +128 -0
  66. package/data/patterns.json +2298 -0
  67. package/package.json +54 -0
  68. package/references/copy-desk.md +87 -0
  69. package/references/evidence.md +382 -0
  70. package/references/overcorrection.md +77 -0
  71. package/references/platforms.md +102 -0
  72. package/references/readalong.md +118 -0
  73. package/references/rewrite-moves.md +177 -0
  74. package/references/tells.md +190 -0
  75. package/scripts/calibrate.py +274 -0
  76. package/scripts/learn.py +1588 -0
  77. package/scripts/predictability.py +227 -0
  78. package/scripts/rerank.py +150 -0
  79. package/scripts/safeio.py +146 -0
  80. package/scripts/slopscore.py +1352 -0
  81. package/scripts/version_check.py +104 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Manav Mishra
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,193 @@
1
+ # Zero Slop: AI Writing Editor and Slop Detector
2
+
3
+ <p align="center">
4
+ <img alt="MIT" src="https://img.shields.io/badge/license-MIT-202521">
5
+ <img alt="tests" src="https://img.shields.io/badge/tests-passing-227B5B">
6
+ <img alt="dependencies" src="https://img.shields.io/badge/runtime%20dependencies-0-227B5B">
7
+ <img alt="privacy" src="https://img.shields.io/badge/learning-private-227B5B">
8
+ <img alt="version" src="https://img.shields.io/badge/version-2.5.8-72528F">
9
+ </p>
10
+
11
+ <p align="center">
12
+ <strong><a href="https://zero-slop.ai">zero-slop.ai</a></strong> &middot; examples, benchmarks, and blog
13
+ </p>
14
+
15
+ **Less slop, more pop.**
16
+
17
+ Zero Slop is an Agent Skill, not an AI model. Claude, GPT, or another compatible model
18
+ edits inside your assistant; Zero Slop supplies local checks that protect meaning,
19
+ voice, and format.
20
+
21
+ The 0-to-100 writing score flags generic AI-style language and lists flagged phrases;
22
+ it does not identify the author. In the test sets, human samples
23
+ scored 9 to 21; unedited AI drafts averaged 77. These are reference points, not
24
+ universal cutoffs.
25
+
26
+ ![A scored sentence before and after editing](assets/demo.png)
27
+
28
+ ## Install Zero Slop
29
+
30
+ Paste this into Claude Code, Codex, Cursor, OpenCode, Warp, Zed, or another
31
+ Agent Skills-compatible assistant:
32
+
33
+ ```text
34
+ Install or update Zero Slop from https://github.com/manavmishra/ZeroSlop for
35
+ this agent.
36
+
37
+ 1. Find active installations. Report each path, version, and method. Do not duplicate
38
+ or remove one without asking.
39
+ 2. For updates, keep the existing install method. In Codex, use $skill-installer for
40
+ `skills/zero-slop`; in Claude Code or Cowork, use the plugin marketplace. Otherwise
41
+ use `npx skills add manavmishra/ZeroSlop --global` to install or
42
+ `npx skills update zero-slop --global` to update.
43
+ 3. Preserve ZERO_SLOP_HOME (default: ~/.zero-slop) and its private data.
44
+ 4. Verify the version. When Python is available, run
45
+ `python3 scripts/calibrate.py --selftest`.
46
+ 5. Report the path, method, version, validation result, and restart requirement.
47
+
48
+ Do not modify the current project or unrelated configuration. Ask before falling
49
+ back to a project-local installation.
50
+ ```
51
+
52
+ Direct terminal install:
53
+
54
+ ```bash
55
+ npx skills add manavmishra/ZeroSlop --global
56
+ ```
57
+
58
+ Claude Code and Cowork use the plugin marketplace. ChatGPT users can
59
+ download [`dist/zero-slop-single-file.md`](dist/zero-slop-single-file.md); Claude.ai
60
+ users can download the release ZIP.
61
+
62
+ ## How Zero Slop works
63
+
64
+ ![One editing workflow, a private learning loop, and a separate release review](assets/engine.svg)
65
+
66
+ Seven roles form one workflow — jobs, not separate models. Your AI assistant handles
67
+ the editorial passes; local Python tools run repeatable checks.
68
+
69
+ | Role | Who does it | What it does |
70
+ |---|---|---|
71
+ | 1. Scorer | Local tools | Finds exact phrases, mechanical rhythm, dense passages, and distracting formatting; explains the writing score. |
72
+ | 2. Interpreter | Your AI assistant | Reads claims, support, audience, structure, and voice before editing. |
73
+ | 3. Rewriter | Your AI assistant | Removes stock wording and improves order, rhythm, and tone without inventing detail. |
74
+ | 4. Fact gate | Local tools | Rejects versions that add or drop names, numbers, quotations, or links; selects the clearest one left. |
75
+ | 5. Copy desk | Fresh AI pass | Corrects grammar, spelling, usage, and consistency. |
76
+ | 6. Read-aloud editor | Fresh AI pass | Fixes stumbles, repetition, weak transitions, and awkward flow. |
77
+ | 7. Verifier | Local tools and your AI assistant | Compares the final text with the source for facts, meaning, voice, format, and structure. A repair repeats both editorial passes and every check. |
78
+
79
+ ### Why separate the work?
80
+
81
+ Research supports the checks, not the number seven. Studies find
82
+ [predictable wording](https://arxiv.org/abs/2301.11305) and
83
+ [excess vocabulary](https://arxiv.org/abs/2406.07016) in machine text, while detectors
84
+ can [misclassify non-native English](https://arxiv.org/abs/2304.02819). Writing and
85
+ verification stay separate: the rewriter does not certify its own facts, and later
86
+ passes catch surviving errors. Local tools use Python's standard library and never send
87
+ drafts. The
88
+ [research notes](references/evidence.md) cover the rationale and limits.
89
+
90
+ ## Private learning from writer edits
91
+
92
+ Learning requires the assistant's version and the writer's final version.
93
+ Zero Slop never monitors files, browsers, or publishing systems.
94
+
95
+ A named profile can exempt existing watchlist words in your sample. It applies only
96
+ when selected by name and does not learn cadence, tone, or a complete writing style.
97
+
98
+ A phrase must be cut from three unrelated pieces before becoming a private rule; a
99
+ single word needs five. New rules must keep known-human samples clean. Repeated fixes
100
+ guide later edits; kept phrases can quiet a rule, and old rules fade. Private state
101
+ under `$ZERO_SLOP_HOME` never retrains the AI model.
102
+
103
+ ## What the current release measured
104
+
105
+ v2.5.8 keeps v2.5.7's context-first review and adds a check for generic lists of
106
+ benefits. On the frozen 38-passage consensus panel, accuracy rose from 71.1% to 84.2%.
107
+ The new check caught five passages the previous version missed. It did not change any
108
+ passage the raters considered clean. Because two LLM editorial raters supplied the
109
+ labels, this is a regression result, not human field accuracy.
110
+
111
+ ### Recent model output: RAID+
112
+
113
+ [RAID+](https://huggingface.co/datasets/markstanl/RAID-Plus) extends the peer-reviewed,
114
+ MIT-licensed RAID benchmark. We scored 8,000 pinned rows; 7,627 abstracts
115
+ remained after excluding failed or empty generations.
116
+
117
+ | Model | Texts scored | Mean writing score ↓ | At or above 25 |
118
+ |---|---:|---:|---:|
119
+ | DeepSeek V3 | 1,995 | 14.5 | 10.1% |
120
+ | Gemini 3.1 Pro | 1,998 | 17.0 | 18.2% |
121
+ | Gemma 3 27B | 1,634 | 21.6 | 30.4% |
122
+ | Llama 3.3 70B | 2,000 | 25.5 | 41.7% |
123
+ | **Overall** | **7,627** | **19.6** | **24.8%** |
124
+
125
+ ![Current Zero Slop writing scores across four RAID+ model families](assets/bench-raid-plus.png)
126
+
127
+ RAID+ records model origin, not editorial quality, so this is a score distribution,
128
+ not an accuracy claim. In a fresh pass over 2,187 Beemo records, raw model responses
129
+ averaged 30.2, expert edits 25.3, and independent human answers 20.0. Expert editing
130
+ lowered the score in 52.2% of pairs; Beemo lacks quality labels.
131
+
132
+ ### Five workflows, one fixed set of drafts
133
+
134
+ The 18 saved rewrites use Zero Slop 2.4.3 and pinned competitor instructions. They were
135
+ not regenerated. Passing requires clean writing and layout without altered facts or
136
+ invented feelings.
137
+
138
+ | Method | Mean writing score ↓ | Passed all checks | Important details kept | Average length change |
139
+ |---|---:|---:|---:|---:|
140
+ | Original drafts | 76.3 | 0/18 | — | — |
141
+ | Zero Slop | 16.4 | 18/18 | 18/18 | -26.4% |
142
+ | humanizer | 25.3 | 13/18 | 18/18 | -25.7% |
143
+ | stop-slop | 25.7 | 13/18 | 18/18 | -34.4% |
144
+ | no-ai-slop | 29.1 | 12/18 | 18/18 | -28.0% |
145
+ | de-slop | 52.3 | 6/18 | 18/18 | -18.5% |
146
+
147
+ ![The same 18 drafts after each editing workflow; lower scores mean fewer generic AI-style patterns](assets/bench-search-rewrites.png)
148
+
149
+ All 18 Zero Slop edits passed, but Zero Slop defines the rules and the rewrites predate
150
+ this release. No available set combines current writing with independent human review,
151
+ so no universal accuracy number exists. See
152
+ [`bench/README.md`](bench/README.md).
153
+
154
+ ### The local tools are fast
155
+
156
+ On one Apple silicon Mac, the local checker processed 1,000 documents in 2.0147 seconds
157
+ (496.4 per second). A 15,201-word document took 0.3222 seconds; the slowest stress case
158
+ took 2.5180 seconds. An alternating six-pair comparison measured 29.4% higher median
159
+ throughput than v2.5.7. The optimization produced the same complete result as v2.5.7
160
+ on all 280 tracked documents. An 8,000-word learning pass took 0.1589 seconds. Time
161
+ spent by the AI assistant is excluded.
162
+
163
+ ## What Zero Slop adds
164
+
165
+ Zero Slop builds on [no-ai-slop](https://github.com/petergyang/no-ai-slop),
166
+ [humanizer](https://github.com/blader/humanizer),
167
+ [de-slop](https://github.com/isatimur/de-slop), and
168
+ [stop-slop](https://github.com/hardikpandya/stop-slop), and draws on
169
+ [unslop-text](https://github.com/JCarterJohnson/vibecoded-design-tells/tree/main/unslop-ai-text)
170
+ research. It adds a local writing score,
171
+ fact protection, separate editorial passes, private learning, and release tests.
172
+
173
+ The chart records documented features. It does not decide which tool writes better.
174
+ Details are in [`bench/README.md`](bench/README.md).
175
+
176
+ ![Comparison of features documented in pinned repository versions](assets/competitor-capabilities.png)
177
+
178
+ ## Reproduce the tests and benchmarks
179
+
180
+ ```bash
181
+ python3 tests/test_all.py
182
+ python3 scripts/calibrate.py --selftest
183
+ python3 bench/search-corpus/compare.py --check
184
+ python3 bench/raid-plus-corpus/audit.py --check
185
+ python3 bench/beemo-corpus/audit.py --check
186
+ python3 bench/validate_corpus_registry.py
187
+ python3 bench/make_charts.py --check
188
+ ```
189
+
190
+ `SKILL.md` defines the skill; `scripts/` contains tools; `bench/` contains tests. See
191
+ the [security policy](SECURITY.md) and [research notes](references/evidence.md).
192
+
193
+ Released under the [MIT License](LICENSE).