zero-slop 2.5.8 → 2.7.0
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/README.md +144 -133
- package/SKILL.md +205 -55
- package/data/corpus/must-flag/adjective-inflation.md +4 -0
- package/data/corpus/must-flag/dangling-thin.md +15 -0
- package/data/corpus/must-flag/manifest.json +78 -0
- package/data/corpus/must-flag/mic-drop.md +4 -0
- package/data/corpus/must-flag/monument-negation.md +4 -0
- package/data/corpus/must-flag/referent-cycling.md +4 -0
- package/data/corpus/performed-register/README.md +14 -4
- package/data/corpus/performed-register/judgment/bare-subject-swap.txt +1 -0
- package/data/corpus/performed-register/mechanical/candor-detail.txt +1 -0
- package/data/corpus/performed-register/mechanical/isocolon-adapt.txt +1 -0
- package/data/corpus/performed-register/mechanical/no-x-had-to.txt +1 -0
- package/data/corpus/performed-register/mechanical/this-is-what-looks-like.txt +1 -0
- package/data/learned-log.md +53 -0
- package/data/learned.json +70 -0
- package/data/patterns.json +29 -2
- package/package.json +1 -1
- package/references/copy-desk.md +6 -4
- package/references/eval.md +250 -0
- package/references/evidence.md +22 -0
- package/references/fresh-eyes.md +62 -0
- package/references/overcorrection.md +5 -0
- package/references/readalong.md +22 -3
- package/references/tells.md +32 -7
- package/scripts/register.py +781 -0
- package/scripts/slopscore.py +313 -19
- /package/data/corpus/performed-register/{judgment → mechanical}/verdict-arithmetic.txt +0 -0
package/README.md
CHANGED
|
@@ -1,193 +1,204 @@
|
|
|
1
|
-
# Zero Slop
|
|
1
|
+
# Zero Slop
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<img alt="MIT" src="https://img.shields.io/badge/license-MIT-202521">
|
|
5
5
|
<img alt="tests" src="https://img.shields.io/badge/tests-passing-227B5B">
|
|
6
6
|
<img alt="dependencies" src="https://img.shields.io/badge/runtime%20dependencies-0-227B5B">
|
|
7
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.
|
|
8
|
+
<img alt="version" src="https://img.shields.io/badge/version-2.7.0-72528F">
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
<strong><a href="https://zero-slop.ai">zero-slop.ai</a></strong> · examples, benchmarks, and blog
|
|
13
|
-
</p>
|
|
11
|
+
Score your writing 0 to 100 for AI slop, then edit it out without changing a single fact.
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+

|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
edits inside your assistant; Zero Slop supplies local checks that protect meaning,
|
|
19
|
-
voice, and format.
|
|
15
|
+
## Problem
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
universal cutoffs.
|
|
17
|
+
AI writing has an accent: "It's not X. It's Y." "Here's the thing nobody tells you."
|
|
18
|
+
"This marks a pivotal moment." Ask an AI to fix it and it sands off the vocabulary and
|
|
19
|
+
cadence that made the writing yours, and rewrites your numbers on the way.
|
|
25
20
|
|
|
26
|
-

|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
Zero Slop is an Agent Skill and ships no model. Claude, GPT, or another compatible model
|
|
23
|
+
does the editing; Zero Slop supplies the workflow, the meter, and the checks that refuse
|
|
24
|
+
any change to a name, number, quotation or link.
|
|
25
|
+
|
|
26
|
+
## How to install Zero Slop
|
|
29
27
|
|
|
30
|
-
Paste this into Claude Code, Codex, Cursor, OpenCode, Warp,
|
|
31
|
-
Agent Skills-compatible assistant:
|
|
28
|
+
Paste this into Claude Code, Codex, Cursor, OpenCode, Warp, or Zed:
|
|
32
29
|
|
|
33
30
|
```text
|
|
34
|
-
Install
|
|
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.
|
|
31
|
+
Install the Zero Slop skill globally from https://github.com/manavmishra/ZeroSlop
|
|
50
32
|
```
|
|
51
33
|
|
|
52
|
-
|
|
34
|
+
Or install it with `npx`:
|
|
53
35
|
|
|
54
|
-
```
|
|
36
|
+
```sh
|
|
55
37
|
npx skills add manavmishra/ZeroSlop --global
|
|
56
38
|
```
|
|
57
39
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
users can download the release ZIP.
|
|
40
|
+
ChatGPT users can download [`dist/zero-slop-single-file.md`](dist/zero-slop-single-file.md).
|
|
41
|
+
Claude.ai users can upload [`dist/zero-slop.zip`](dist/zero-slop.zip). `npx skills update zero-slop --global` updates an existing CLI install later.
|
|
61
42
|
|
|
62
|
-
## How Zero Slop
|
|
43
|
+
## How to use Zero Slop
|
|
63
44
|
|
|
64
|
-
|
|
45
|
+
```text
|
|
46
|
+
/zero-slop (your writing)
|
|
47
|
+
```
|
|
65
48
|
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
You get the edited draft, a before-and-after score, and the flagged phrases quoted with
|
|
50
|
+
what needed work. `/zero-slop inspect (your writing)` reviews without rewriting.
|
|
51
|
+
For a folder, `slopscore.py --batch drafts/ --gate 25` exits non-zero above the threshold
|
|
52
|
+
and drops into CI.
|
|
53
|
+
## The slop that Zero Slop catches
|
|
68
54
|
|
|
69
|
-
|
|
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. |
|
|
55
|
+
290 weighted patterns and a 96-term lexicon, including:
|
|
78
56
|
|
|
79
|
-
|
|
57
|
+
1. **Binary contrasts.** "It's not X. It's Y."
|
|
58
|
+
2. **Throat-clearing openers.** "Here's the thing," "Let me be clear"
|
|
59
|
+
3. **Faux-insight setups.** "What nobody tells you," "The part everyone misses"
|
|
60
|
+
4. **Colon reveals.** "The best part: it learns."
|
|
61
|
+
5. **Dramatic fragments.** "That's it. That's the whole thing."
|
|
62
|
+
6. **Superficial analysis.** "highlighting the team's commitment to innovation"
|
|
63
|
+
7. **Importance puffery.** "marks a pivotal moment," "a testament to"
|
|
64
|
+
8. **Weasel attribution.** "experts agree," "studies show"
|
|
65
|
+
9. **Synonym cycling.** The agent, the assistant, the tool, all one thing.
|
|
66
|
+
10. **Marketing riders.** "robust" and "leverage" score only beside a marketing trigger, so a runbook stays quiet.
|
|
80
67
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
[
|
|
84
|
-
|
|
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.
|
|
68
|
+
A reading pass covers what no pattern reaches, where the defect is the document rather
|
|
69
|
+
than any span: one shape repeated seven times, statistics piled into a paragraph,
|
|
70
|
+
paragraphs that shuffle without loss. [`references/eval.md`](references/eval.md) has all
|
|
71
|
+
76 checks.
|
|
89
72
|
|
|
90
|
-
|
|
73
|
+
Human writing scored 9 to 21 in [`data/corpus/must-not-flag/`](data/corpus/must-not-flag/);
|
|
74
|
+
unedited AI drafts averaged 77 across [`bench/examples.json`](bench/examples.json).
|
|
75
|
+
Neither number claims to identify who wrote the text.
|
|
91
76
|
|
|
92
|
-
|
|
93
|
-
Zero Slop never monitors files, browsers, or publishing systems.
|
|
77
|
+
## How it works
|
|
94
78
|
|
|
95
|
-
|
|
96
|
-
when selected by name and does not learn cadence, tone, or a complete writing style.
|
|
79
|
+

|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
|
|
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.
|
|
81
|
+
Eight roles form one workflow. Each is a job rather than a service: a single model can handle
|
|
82
|
+
several of them, each as its own pass, so nothing grades its own output.
|
|
102
83
|
|
|
103
|
-
|
|
84
|
+
| Role | Who does it | What happens |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| 1. Scorer | Local tools | Finds the exact wording, rhythm, readability, and formatting problems that raised the writing score. |
|
|
87
|
+
| 2. Interpreter | Your AI assistant | Reads the claims, purpose, audience, structure, and voice before changing anything. |
|
|
88
|
+
| 3. Rewriter | Your AI assistant | Removes stock language and rebuilds order, rhythm, and tone without inventing detail. |
|
|
89
|
+
| 4. Fact gate | Local tools | Rejects any version that changes names, numbers, quotations, links, code, tables, paths, or structure. |
|
|
90
|
+
| 5. Copy desk | Fresh AI pass | Corrects grammar, spelling, usage, and consistency in the actual deliverable. |
|
|
91
|
+
| 6. Read-aloud editor | Fresh AI pass | Fixes stumbles, repetition, weak transitions, and awkward flow. |
|
|
92
|
+
| 7. Verifier | Local tools and your AI assistant | Compares text with source for facts, meaning, qualifiers, voice, format, structure. |
|
|
93
|
+
| 8. Fresh-eyes finalizer | Fresh AI pass | Reads the verified text as a first-time reader, applying only safe polish. Any final polish restarts the final checks; the same text must return unchanged before release. |
|
|
104
94
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
95
|
+
Eight is an engineering choice; research supports the individual checks. Studies find
|
|
96
|
+
[predictable wording](https://arxiv.org/abs/2301.11305) and
|
|
97
|
+
[overused vocabulary](https://arxiv.org/abs/2406.07016) in machine text, and authorship
|
|
98
|
+
detectors can [misclassify non-native English](https://arxiv.org/abs/2304.02819). Local
|
|
99
|
+
tools use only Python's standard library.
|
|
110
100
|
|
|
111
|
-
|
|
101
|
+
## Private learning from your edits
|
|
112
102
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
103
|
+
Nothing is learned until you hand over both versions: what the assistant produced and
|
|
104
|
+
what you kept. Zero Slop watches nothing on its own: no file monitoring, no browser
|
|
105
|
+
hooks, no reaching into where you publish.
|
|
106
|
+
|
|
107
|
+
A phrase must disappear from three unrelated pieces before it becomes a private rule; a
|
|
108
|
+
single word needs five. Each must be new and stay silent on known-human text. Private
|
|
109
|
+
data stays under `$ZERO_SLOP_HOME`.
|
|
110
|
+
|
|
111
|
+
This is human-in-the-loop online learning. It never retrains Claude, GPT, or another
|
|
112
|
+
model, and involves no neural training or RLHF. A profile can exempt existing watchlist
|
|
113
|
+
words when selected by name; it does not learn cadence, tone, or a complete writing
|
|
114
|
+
style.
|
|
116
115
|
|
|
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
116
|
|
|
125
|
-
|
|
117
|
+
## What's inside
|
|
126
118
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
119
|
+
[`SKILL.md`](SKILL.md) has the workflow and [`references/eval.md`](references/eval.md) the
|
|
120
|
+
76 checks. [`scripts/slopscore.py`](scripts/slopscore.py) is the meter and fact gate,
|
|
121
|
+
with [`scripts/register.py`](scripts/register.py) running the reading pass.
|
|
122
|
+
[`bench/README.md`](bench/README.md) documents every benchmark with its limits.
|
|
131
123
|
|
|
132
|
-
|
|
124
|
+
## Evidence
|
|
133
125
|
|
|
134
|
-
|
|
135
|
-
not regenerated. Passing requires clean writing and layout without altered facts or
|
|
136
|
-
invented feelings.
|
|
126
|
+
### Against other tools, same model, same drafts
|
|
137
127
|
|
|
138
|
-
|
|
128
|
+
We reran Zero Slop, [avoid-ai-writing](https://github.com/conorbronsdon/avoid-ai-writing),
|
|
129
|
+
[no-ai-slop](https://github.com/petergyang/no-ai-slop) and
|
|
130
|
+
[humanizer](https://github.com/blader/humanizer) on the same 18 obvious drafts, each with
|
|
131
|
+
GPT-5.4, high reasoning, batches of three, and its pinned instructions.
|
|
132
|
+
|
|
133
|
+
| Method | Mean writing score ↓ | Passed all Zero Slop checks | Important details kept | Average length change |
|
|
139
134
|
|---|---:|---:|---:|---:|
|
|
140
135
|
| Original drafts | 76.3 | 0/18 | — | — |
|
|
141
|
-
| Zero Slop |
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
| de-slop | 52.3 | 6/18 | 18/18 | -18.5% |
|
|
136
|
+
| Zero Slop | 12.8 | 18/18 | 18/18 | -8.9% |
|
|
137
|
+
| avoid-ai-writing | 23.3 | 15/18 | 18/18 | -14.6% |
|
|
138
|
+
| no-ai-slop | 28.4 | 12/18 | 17/18 | -13.7% |
|
|
139
|
+
| humanizer | 35.4 | 9/18 | 17/18 | -7.2% |
|
|
146
140
|
|
|
147
|
-

|
|
148
142
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
143
|
+
Those checks are Zero Slop's own, so we also ran a method-hidden comparison against the pinned
|
|
144
|
+
incumbent. The GPT-5.4 reviewer favored Zero Slop on 13 drafts and avoid-ai-writing on 3,
|
|
145
|
+
with 2 unresolved; the passes agreed on 16 of 18. Our source check cleared 18/18 of our
|
|
146
|
+
rewrites and 16/18 of the incumbent's. On mean score across this second set we lost,
|
|
147
|
+
17.8 to 17.0.
|
|
153
148
|
|
|
154
|
-
|
|
149
|
+

|
|
155
150
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
151
|
+
This is a small LLM-reviewed regression study. It measures neither field accuracy nor a
|
|
152
|
+
universal ranking. Drafts, mappings, verdicts, hashes and limits:
|
|
153
|
+
[`bench/incumbent-blind-replay/`](bench/incumbent-blind-replay/). On the 38-item
|
|
154
|
+
editorial panel ([`bench/README.md`](bench/README.md)), v2.6.1 matched the prior 84.2% result. Its four new checks left all 114
|
|
155
|
+
frozen document scores unchanged and 18 human controls clear, while the four target cases
|
|
156
|
+
moved from 9.5 to between 30.7 and 65.1. Median throughput was 0.03% lower across 12
|
|
157
|
+
runs, which is local timing noise and no kind of speed claim.
|
|
162
158
|
|
|
163
|
-
|
|
159
|
+
### Speed
|
|
164
160
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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.
|
|
161
|
+
On one Apple silicon Mac: 1,000 documents in 1.9958 seconds (501.1 per second), a
|
|
162
|
+
15,201-word document in 0.3223 seconds, slowest stress case 2.4438 seconds, an 8,000-word
|
|
163
|
+
learning pass 0.1627 seconds. Editing time sits outside these numbers. None is a
|
|
164
|
+
service-level guarantee.
|
|
172
165
|
|
|
173
|
-
|
|
174
|
-
Details are in [`bench/README.md`](bench/README.md).
|
|
166
|
+
### Current models
|
|
175
167
|
|
|
176
|
-
|
|
168
|
+
The pinned [RAID+](https://huggingface.co/datasets/markstanl/RAID-Plus) sample yielded
|
|
169
|
+
7,627 usable generations:
|
|
177
170
|
|
|
178
|
-
|
|
171
|
+
| Model | Texts scored | Mean writing score ↓ | At or above 25 |
|
|
172
|
+
|---|---:|---:|---:|
|
|
173
|
+
| DeepSeek V3 | 1,995 | 14.5 | 10.1% |
|
|
174
|
+
| Gemini 3.1 Pro | 1,998 | 17.0 | 18.2% |
|
|
175
|
+
| Gemma 3 27B | 1,634 | 21.6 | 30.4% |
|
|
176
|
+
| Llama 3.3 70B | 2,000 | 25.5 | 41.7% |
|
|
177
|
+
|
|
178
|
+
RAID+ labels capture which model produced a text and say nothing about quality. In
|
|
179
|
+
Beemo, raw responses averaged
|
|
180
|
+
30.2, expert edits 25.3, human answers 20.0. Neither dataset carries quality labels.
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
## Where Zero Slop came from
|
|
179
184
|
|
|
180
|
-
|
|
185
|
+
Zero Slop stands on no-ai-slop, humanizer, de-slop, stop-slop, unslop-text and
|
|
186
|
+
avoid-ai-writing, adding a writing score, source protection, separate editorial passes,
|
|
187
|
+
private learning, portfolio analysis and release tests.
|
|
188
|
+
|
|
189
|
+

|
|
190
|
+
|
|
191
|
+
The chart records which features each project documents, and says nothing about writing
|
|
192
|
+
quality. Reproduce the shipped checks:
|
|
193
|
+
|
|
194
|
+
```sh
|
|
181
195
|
python3 tests/test_all.py
|
|
182
196
|
python3 scripts/calibrate.py --selftest
|
|
183
|
-
python3
|
|
184
|
-
python3 bench/raid-plus-corpus/audit.py --check
|
|
185
|
-
python3 bench/beemo-corpus/audit.py --check
|
|
186
|
-
python3 bench/validate_corpus_registry.py
|
|
197
|
+
python3 scripts/register.py --selftest
|
|
187
198
|
python3 bench/make_charts.py --check
|
|
188
199
|
```
|
|
189
200
|
|
|
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
201
|
|
|
193
|
-
|
|
202
|
+
## License
|
|
203
|
+
|
|
204
|
+
MIT
|