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.
- package/LICENSE +21 -0
- package/README.md +193 -0
- package/SKILL.md +803 -0
- package/data/corpus/community-register/README.md +14 -0
- package/data/corpus/community-register/judgment/communicative-drift.txt +1 -0
- package/data/corpus/community-register/judgment/reflexive-agreement.txt +1 -0
- package/data/corpus/community-register/judgment/rhetorical-scale-mismatch.txt +1 -0
- package/data/corpus/must-not-flag/README.md +49 -0
- package/data/corpus/must-not-flag/esl-engineer-email.txt +7 -0
- package/data/corpus/must-not-flag/exec-memo.txt +9 -0
- package/data/corpus/must-not-flag/federalist.txt +5 -0
- package/data/corpus/must-not-flag/gettysburg.txt +1 -0
- package/data/corpus/must-not-flag/grant-abstract.txt +5 -0
- package/data/corpus/must-not-flag/ml-methods.txt +1 -0
- package/data/corpus/must-not-flag/personal-essay.txt +1 -0
- package/data/corpus/must-not-flag/press-release.txt +7 -0
- package/data/corpus/must-not-flag/recipe.txt +11 -0
- package/data/corpus/must-not-flag/sre-runbook.txt +1 -0
- package/data/corpus/must-not-flag/technical-postmortem.txt +1 -0
- package/data/corpus/must-not-flag/terse-engineer-note.txt +1 -0
- package/data/corpus/must-not-flag-shape/README.md +22 -0
- package/data/corpus/must-not-flag-shape/aphorism-list.txt +9 -0
- package/data/corpus/must-not-flag-shape/changelog.txt +13 -0
- package/data/corpus/must-not-flag-shape/dialogue.txt +19 -0
- package/data/corpus/must-not-flag-shape/lyrics.txt +15 -0
- package/data/corpus/must-not-flag-shape/poem.txt +8 -0
- package/data/corpus/must-not-flag-shape/sms-transcript.txt +15 -0
- package/data/corpus/performed-register/README.md +38 -0
- package/data/corpus/performed-register/judgment/detection-fragile.txt +1 -0
- package/data/corpus/performed-register/judgment/draft-cheap-signal.txt +1 -0
- package/data/corpus/performed-register/judgment/ear-chiasmus.txt +1 -0
- package/data/corpus/performed-register/judgment/fight-against-tagline.txt +1 -0
- package/data/corpus/performed-register/judgment/fine-beat.txt +1 -0
- package/data/corpus/performed-register/judgment/glow-finishing.txt +1 -0
- package/data/corpus/performed-register/judgment/jargon-compression.txt +1 -0
- package/data/corpus/performed-register/judgment/not-perfect-honest.txt +1 -0
- package/data/corpus/performed-register/judgment/punctuation-convict.txt +1 -0
- package/data/corpus/performed-register/judgment/recipe-ingredients.txt +1 -0
- package/data/corpus/performed-register/judgment/replay-lands.txt +1 -0
- package/data/corpus/performed-register/judgment/rhymes-with.txt +1 -0
- package/data/corpus/performed-register/judgment/rhythm-prints.txt +1 -0
- package/data/corpus/performed-register/judgment/same-leak.txt +1 -0
- package/data/corpus/performed-register/judgment/tools-work.txt +1 -0
- package/data/corpus/performed-register/judgment/tuning-gradients.txt +1 -0
- package/data/corpus/performed-register/judgment/verdict-arithmetic.txt +1 -0
- package/data/corpus/performed-register/judgment/whole-product.txt +1 -0
- package/data/corpus/performed-register/judgment/words-cheap.txt +1 -0
- package/data/corpus/performed-register/mechanical/argue-with-artifact.txt +1 -0
- package/data/corpus/performed-register/mechanical/bill-lands.txt +1 -0
- package/data/corpus/performed-register/mechanical/billed-to-reader.txt +1 -0
- package/data/corpus/performed-register/mechanical/economics-brutal.txt +1 -0
- package/data/corpus/performed-register/mechanical/has-receipts.txt +1 -0
- package/data/corpus/performed-register/mechanical/hired-adversary.txt +1 -0
- package/data/corpus/performed-register/mechanical/hyperbole-universal.txt +1 -0
- package/data/corpus/performed-register/mechanical/metaphor-sender-name.txt +1 -0
- package/data/corpus/performed-register/mechanical/minding-own-business.txt +1 -0
- package/data/corpus/performed-register/mechanical/on-the-tin.txt +1 -0
- package/data/corpus/performed-register/mechanical/opens-the-hood.txt +1 -0
- package/data/corpus/performed-register/mechanical/turns-out-payoff.txt +1 -0
- package/data/corpus/performed-register/mechanical/vibe-check.txt +1 -0
- package/data/corpus/performed-register/mechanical/vibe-isnt-a-vibe.txt +1 -0
- package/data/corpus/performed-register/mechanical/vibe-number-attached.txt +1 -0
- package/data/corpus/performed-register/mechanical/where-slop-lives.txt +1 -0
- package/data/learned-log.md +339 -0
- package/data/learned.json +128 -0
- package/data/patterns.json +2298 -0
- package/package.json +54 -0
- package/references/copy-desk.md +87 -0
- package/references/evidence.md +382 -0
- package/references/overcorrection.md +77 -0
- package/references/platforms.md +102 -0
- package/references/readalong.md +118 -0
- package/references/rewrite-moves.md +177 -0
- package/references/tells.md +190 -0
- package/scripts/calibrate.py +274 -0
- package/scripts/learn.py +1588 -0
- package/scripts/predictability.py +227 -0
- package/scripts/rerank.py +150 -0
- package/scripts/safeio.py +146 -0
- package/scripts/slopscore.py +1352 -0
- 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> · 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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
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).
|