zero-slop 2.11.2__tar.gz

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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Garage Capital Ventures
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.
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: zero-slop
3
+ Version: 2.11.2
4
+ Summary: Score AI-sounding prose 0-100 and check what a rewrite changed. Offline, standard library only.
5
+ Author-email: Manav Mishra <manavm@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://zero-slop.ai
8
+ Project-URL: Source, https://github.com/manavmishra/ZeroSlop
9
+ Project-URL: Changelog, https://github.com/manavmishra/ZeroSlop/releases
10
+ Project-URL: Issues, https://github.com/manavmishra/ZeroSlop/issues
11
+ Keywords: prose,linter,writing,editing,ai-slop,de-slop,humanize,style,ci,static-analysis
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Topic :: Software Development :: Quality Assurance
20
+ Classifier: Topic :: Text Processing :: Linguistic
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.9
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Dynamic: license-file
26
+
27
+ # Zero Slop
28
+
29
+ **Find AI-sounding writing. Keep the source intact.**
30
+
31
+ A prose linter that scores text 0–100 for stock phrasing, mechanical rhythm,
32
+ vague claims, and canned formatting, then tells you which phrases produced the
33
+ number. It runs offline, uses only the Python standard library, and has no
34
+ runtime dependencies.
35
+
36
+ The score describes the writing. It does not identify who wrote it. Zero Slop is
37
+ not an AI detector and must not be used as one.
38
+
39
+ ## Install
40
+
41
+ ```sh
42
+ pip install zero-slop
43
+ ```
44
+
45
+ ## Use it
46
+
47
+ ```sh
48
+ slopscore draft.md # readable report
49
+ slopscore --json draft.md # machine-readable
50
+ slopscore --explain draft.md # report, reasons, line-by-line map
51
+ slopscore --batch docs/ --gate 25 # exits non-zero above the threshold
52
+ slopscore --fidelity before.md after.md # did the rewrite keep the facts?
53
+ cat draft.md | slopscore # stdin
54
+ ```
55
+
56
+ ### As a library
57
+
58
+ ```python
59
+ from zero_slop import load_patterns, score_text
60
+
61
+ data = load_patterns()
62
+ score_text("We are thrilled to announce a transformative solution.", data)["ai_likelihood"]
63
+ # 99.3
64
+ ```
65
+
66
+ ### In CI
67
+
68
+ ```yaml
69
+ - uses: manavmishra/ZeroSlop@v2.11.2
70
+ with:
71
+ path: docs
72
+ gate: "25"
73
+ ```
74
+
75
+ ### As a pre-commit hook
76
+
77
+ ```yaml
78
+ repos:
79
+ - repo: https://github.com/manavmishra/ZeroSlop
80
+ rev: v2.11.2
81
+ hooks:
82
+ - id: zero-slop
83
+ args: [--gate, "25"]
84
+ ```
85
+
86
+ ## What the score means
87
+
88
+ Human reference samples score 9–21. Unedited model output averages 77. Those are
89
+ reference points, not boundaries. The scoring was run over 7,627 abstracts from
90
+ the MIT-licensed RAID+ dataset and all 2,187 Beemo records; the drafts, outputs,
91
+ and hashes are in the repository so the numbers can be reproduced.
92
+
93
+ The scorer handles about 500 documents per second on a single machine, so it is
94
+ usable as a batch gate rather than only an interactive tool.
95
+
96
+ ## Rewriting
97
+
98
+ This package is the scorer. The full editorial workflow — where your own AI
99
+ assistant rewrites the draft across copy-desk and read-aloud passes, and a local
100
+ fact gate rejects any revision that adds or drops a name, number, quotation, or
101
+ link — ships as an Agent Skill:
102
+
103
+ ```sh
104
+ npx skills add manavmishra/ZeroSlop --global
105
+ ```
106
+
107
+ - Website: <https://zero-slop.ai>
108
+ - Source: <https://github.com/manavmishra/ZeroSlop>
109
+ - MIT licensed
@@ -0,0 +1,83 @@
1
+ # Zero Slop
2
+
3
+ **Find AI-sounding writing. Keep the source intact.**
4
+
5
+ A prose linter that scores text 0–100 for stock phrasing, mechanical rhythm,
6
+ vague claims, and canned formatting, then tells you which phrases produced the
7
+ number. It runs offline, uses only the Python standard library, and has no
8
+ runtime dependencies.
9
+
10
+ The score describes the writing. It does not identify who wrote it. Zero Slop is
11
+ not an AI detector and must not be used as one.
12
+
13
+ ## Install
14
+
15
+ ```sh
16
+ pip install zero-slop
17
+ ```
18
+
19
+ ## Use it
20
+
21
+ ```sh
22
+ slopscore draft.md # readable report
23
+ slopscore --json draft.md # machine-readable
24
+ slopscore --explain draft.md # report, reasons, line-by-line map
25
+ slopscore --batch docs/ --gate 25 # exits non-zero above the threshold
26
+ slopscore --fidelity before.md after.md # did the rewrite keep the facts?
27
+ cat draft.md | slopscore # stdin
28
+ ```
29
+
30
+ ### As a library
31
+
32
+ ```python
33
+ from zero_slop import load_patterns, score_text
34
+
35
+ data = load_patterns()
36
+ score_text("We are thrilled to announce a transformative solution.", data)["ai_likelihood"]
37
+ # 99.3
38
+ ```
39
+
40
+ ### In CI
41
+
42
+ ```yaml
43
+ - uses: manavmishra/ZeroSlop@v2.11.2
44
+ with:
45
+ path: docs
46
+ gate: "25"
47
+ ```
48
+
49
+ ### As a pre-commit hook
50
+
51
+ ```yaml
52
+ repos:
53
+ - repo: https://github.com/manavmishra/ZeroSlop
54
+ rev: v2.11.2
55
+ hooks:
56
+ - id: zero-slop
57
+ args: [--gate, "25"]
58
+ ```
59
+
60
+ ## What the score means
61
+
62
+ Human reference samples score 9–21. Unedited model output averages 77. Those are
63
+ reference points, not boundaries. The scoring was run over 7,627 abstracts from
64
+ the MIT-licensed RAID+ dataset and all 2,187 Beemo records; the drafts, outputs,
65
+ and hashes are in the repository so the numbers can be reproduced.
66
+
67
+ The scorer handles about 500 documents per second on a single machine, so it is
68
+ usable as a batch gate rather than only an interactive tool.
69
+
70
+ ## Rewriting
71
+
72
+ This package is the scorer. The full editorial workflow — where your own AI
73
+ assistant rewrites the draft across copy-desk and read-aloud passes, and a local
74
+ fact gate rejects any revision that adds or drops a name, number, quotation, or
75
+ link — ships as an Agent Skill:
76
+
77
+ ```sh
78
+ npx skills add manavmishra/ZeroSlop --global
79
+ ```
80
+
81
+ - Website: <https://zero-slop.ai>
82
+ - Source: <https://github.com/manavmishra/ZeroSlop>
83
+ - MIT licensed
@@ -0,0 +1,321 @@
1
+ <p align="center">
2
+ <a href="https://zero-slop.ai">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo/zero-slop-logo-reversed.svg">
5
+ <img src="assets/logo/zero-slop-logo-primary.svg" width="360" alt="Zero Slop">
6
+ </picture>
7
+ </a>
8
+ </p>
9
+
10
+ Zero Slop is installed about 1,600 times a week on npm.
11
+
12
+ <p align="center"><strong>Find AI-sounding tells and slop in your writing.</strong></p>
13
+
14
+ <p align="center">
15
+ Zero Slop finds slop- stock phrasing, mechanical rhythm, vague claims, and canned formatting in writing.<br>
16
+ Your existing AI assistant edits the draft; local checks guard its names, numbers, links, quotations, code, tables, and paths.
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="https://zero-slop.ai/try/"><strong>Try it in your browser</strong></a>
21
+ ·
22
+ <a href="#install">Install the skill</a>
23
+ ·
24
+ <a href="#evidence-and-limits">See the evidence</a>
25
+ ·
26
+ <a href="https://github.com/manavmishra/ZeroSlop/releases/latest">Latest release</a>
27
+ ·
28
+ <a href="https://zero-slop.ai/brand/">Brand assets</a>
29
+ </p>
30
+
31
+ <p align="center">
32
+ <a href="https://github.com/manavmishra/ZeroSlop/actions/workflows/validate.yml"><img alt="Validate" src="https://github.com/manavmishra/ZeroSlop/actions/workflows/validate.yml/badge.svg"></a>
33
+ <img alt="Version 2.11.2" src="https://img.shields.io/badge/version-2.11.2-72528F?color=C15732">
34
+ <a href="https://www.npmjs.com/package/zero-slop"><img alt="npm version" src="https://img.shields.io/npm/v/zero-slop?color=C15732"></a>
35
+ <a href="https://www.npmjs.com/package/zero-slop"><img alt="npm downloads" src="https://img.shields.io/npm/dm/zero-slop?color=17634F"></a>
36
+ <a href="https://github.com/manavmishra/ZeroSlop/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/manavmishra/ZeroSlop?style=flat&color=C15732"></a>
37
+ <a href="LICENSE"><img alt="MIT license" src="https://img.shields.io/badge/license-MIT-141412"></a>
38
+ <a href="https://hol.org/registry/plugins/manav-mishra%2Fzero-slop"><img alt="Listed in the HOL plugin registry" src="https://img.shields.io/badge/HOL%20registry-listed-2C6E8F"></a>
39
+ </p>
40
+
41
+ ```sh
42
+ npx skills add manavmishra/ZeroSlop --global
43
+ ```
44
+
45
+ <a href="assets/zero-slop-demo.mp4?v=dark-shell-restored-20260906">
46
+ <picture>
47
+ <source media="(prefers-reduced-motion: reduce)" srcset="assets/zero-slop-demo-poster.png?v=dark-shell-restored-20260906">
48
+ <source type="image/webp" srcset="assets/zero-slop-demo.webp?v=dark-shell-restored-20260906">
49
+ <img src="assets/zero-slop-demo.gif?v=dark-shell-restored-20260906" width="900" alt="Dark-shell demo: install Zero Slop, edit with your assistant, and check scores while preserving 40%.">
50
+ </picture>
51
+ </a>
52
+
53
+
54
+
55
+ ## Before and after
56
+
57
+ A launch post, as AI wrote it:
58
+
59
+ > We're thrilled to announce that our team has leveraged cutting-edge machine learning to deliver a seamless onboarding experience, reducing setup time by 40%.
60
+
61
+ The scorer rates that draft 99.3/100 and flags four phrases: “We're thrilled
62
+ to,” “leveraged,” “cutting-edge,” and “seamless.”
63
+
64
+ The rewrite, limited to the draft's stated claims:
65
+
66
+ > We used machine learning to reduce onboarding setup time by 40%.
67
+
68
+ ```text
69
+ Writing score: 9.5/100 [clear]
70
+ Flagged phrases : 0 across 10 words
71
+ ```
72
+
73
+ The rewrite retains the draft's stated result. See four complete, reproducible pairs in [`examples/`](examples/).
74
+
75
+ ## What can I use it for?
76
+
77
+ - Tighten a launch post without losing the release details.
78
+ - Turn a padded product update into a useful changelog.
79
+ - Clean up an email while preserving names, dates, and numbers.
80
+ - Edit a research summary without flattening its qualifications.
81
+ - Gate a folder of generated copy before it ships.
82
+
83
+ The score describes writing patterns, not authorship.
84
+
85
+ ## Install
86
+
87
+ [Try the free browser editor](https://zero-slop.ai/try/), or install:
88
+
89
+ | Environment | Fastest route |
90
+ |---|---|
91
+ | Claude Code, Codex, Cursor, OpenCode, Warp, Zed | `npx skills add manavmishra/ZeroSlop --global` |
92
+ | Gemini CLI | `gemini extensions install https://github.com/manavmishra/ZeroSlop --auto-update` |
93
+ | Claude Code plugin | `/plugin marketplace add manavmishra/ZeroSlop`, then `/plugin install zero-slop@zero-slop` |
94
+ | Any assistant with file uploads | Download the [single-file bundle](https://github.com/manavmishra/ZeroSlop/releases/latest/download/zero-slop-single-file.md) |
95
+ | Claude.ai | Upload the [latest skill ZIP](https://github.com/manavmishra/ZeroSlop/releases/latest/download/zero-slop.zip) |
96
+ | ChatGPT, Claude, Grok, Gemini, Cursor, or another MCP client | Connect the optional [hosted MCP server](mcp/README.md) |
97
+
98
+ Ask your assistant to edit:
99
+
100
+ ```text
101
+ /zero-slop (your writing)
102
+ ```
103
+
104
+ Inspect without editing:
105
+
106
+ ```text
107
+ /zero-slop inspect (your writing)
108
+ ```
109
+
110
+ Score locally:
111
+
112
+ ```sh
113
+ npx zero-slop score draft.md
114
+ ```
115
+
116
+ From a cloned checkout, gate a folder:
117
+
118
+ ```sh
119
+ python3 scripts/slopscore.py --batch drafts/ --gate 25
120
+ ```
121
+
122
+ Installed checks run locally. Skill editing follows your assistant's privacy settings; [MCP editing is remote](mcp/README.md).
123
+
124
+ ### Prefer one hosted connection? Use the MCP
125
+
126
+ Connect the [Zero Slop MCP](https://zero-slop.ai/#mcp) to edit drafts inside your MCP client. No account or API key required.
127
+
128
+ ```text
129
+ https://mcp.zero-slop.ai/mcp
130
+ ```
131
+
132
+ [Connection options and listing status](DISTRIBUTION.md).
133
+
134
+ ## CLI
135
+
136
+ Edit a file through MCP:
137
+
138
+ ```sh
139
+ npx --yes zero-slop@2.11.2 deslop draft.md --genre professional
140
+ ```
141
+
142
+ Use `-` for stdin and `--json` for structured output. `--require-approved` exits nonzero
143
+ when review is needed; the result is still printed. Files stay unchanged. Node.js 22+;
144
+ offline `score` also needs Python 3. [CLI reference and privacy](docs/cli.md).
145
+
146
+ ## REST API
147
+
148
+ ```sh
149
+ curl --fail-with-body --max-time 75 https://mcp.zero-slop.ai/v1/deslop \
150
+ -H 'Content-Type: application/json' \
151
+ --data '{"text":"Maya owns the pricing review.","genre":"professional"}'
152
+ ```
153
+
154
+ Same pipeline and result as MCP. Check `status` before using the edit. Free, shared
155
+ capacity; up to 20,000 Unicode code points per draft after trimming. Hosted CLI
156
+ editing and REST process drafts remotely without storing them.
157
+
158
+ [API reference](docs/rest-api.md) · [OpenAPI contract](https://mcp.zero-slop.ai/openapi.json)
159
+
160
+ ## What the workflow adds
161
+
162
+ | A prompt alone | Zero Slop |
163
+ |---|---|
164
+ | “Make this sound human” leaves the target vague. | A 0–100 meter points to exact phrases and structural problems. |
165
+ | One rewrite can quietly alter source details. | A local fact gate checks protected strings before the edit is returned. |
166
+ | The model tends to overcorrect into fragments or forced casualness. | An overcorrection pass checks readability, rhythm, grammar, and voice. |
167
+ | Each session starts from scratch. | Optional, reason-labelled preferences can be learned privately. |
168
+
169
+ Zero Slop ships no model. Your AI assistant reads and edits the draft in context,
170
+ using Claude, GPT, or another compatible model. The repository supplies the
171
+ workflow and local tools for scoring and source checks.
172
+
173
+ ## What it catches
174
+
175
+ The scorer combines 294 weighted patterns with a 96-term lexicon. Examples include:
176
+
177
+ - binary contrast formulas: “It's not X. It's Y.”
178
+ - canned openers: “We're thrilled to…” and “Here's the thing…”
179
+ - vague attribution: “experts agree” and “studies show”
180
+ - significance inflation: “marks a pivotal moment” and “a testament to”
181
+ - promotional riders: “robust,” “seamless,” and “leverage” when used as hype
182
+ - repeated sentence shapes, crowded statistics, and overworked formatting
183
+
184
+ Marketing terms are scored in context, so an ordinary technical use of a word need not trigger the same penalty. [`references/eval.md`](references/eval.md) documents all 80 checks.
185
+
186
+ Unedited AI drafts averaged 77 in [`bench/examples.json`](bench/examples.json).
187
+ Human writing scored 9 to 21 in
188
+ [`data/corpus/must-not-flag/`](data/corpus/must-not-flag/). These are reference
189
+ points for the scorer, not authorship boundaries.
190
+
191
+ ## How it works
192
+
193
+ ![Zero Slop's eight editorial responsibilities, private learning loop, and separate release review](assets/engine.svg)
194
+
195
+ Eight responsibilities form one workflow. They are jobs, not separate models.
196
+ Research supports the checks, not the number eight, which is an engineering
197
+ choice.
198
+
199
+ | Stage | Job |
200
+ |---|---|
201
+ | 1. Scorer | Find exact phrases, pacing problems, readability issues, and overworked formatting. |
202
+ | 2. Interpreter | Read the claims, audience, structure, and voice before editing. |
203
+ | 3. Rewriter | Remove stock language without inventing detail. |
204
+ | 4. Fact gate | Check names, numbers, quotations, links, code, tables, paths, and structure locally. |
205
+ | 5. Copy desk | Fix grammar, usage, spelling, and consistency. |
206
+ | 6. Read-aloud editor | Catch stumbles, repetition, and awkward transitions. |
207
+ | 7. Verifier | Compare the edit with the source for meaning, qualifiers, voice, and format. |
208
+ | 8. Fresh-eyes finalizer | Apply only safe final polish, then run one last local check. |
209
+
210
+ The free web editor combines the five AI responsibilities into one response and
211
+ makes at most one live model call. A single response does not provide independent review.
212
+ Any final change receives one final local recheck.
213
+
214
+ If a repair still misses the target, Zero Slop returns the safest source-preserving edit with a plain warning. It does not enter an open-ended rewrite loop.
215
+
216
+ ## Evidence and limits
217
+
218
+ ### Same model, same 18 drafts
219
+
220
+ A saved replay ran Zero Slop and three comparable open-source instruction sets over the same drafts with GPT-5.4, high reasoning, and pinned instructions. The outputs are frozen and reproducible.
221
+
222
+ | Method | Mean writing score ↓ | Passed local gates | Source check passed | Mean length change |
223
+ |---|---:|---:|---:|---:|
224
+ | Original drafts | 76.3 | 0/18 | — | — |
225
+ | **Zero Slop** | **12.8** | **18/18** | **18/18** | -8.9% |
226
+ | avoid-ai-writing | 23.3 | 15/18 | 18/18 | -14.6% |
227
+ | no-ai-slop | 28.4 | 12/18 | 17/18 | -13.7% |
228
+ | humanizer | 35.4 | 9/18 | 17/18 | -7.2% |
229
+
230
+ ![Fresh same-model editing replay on 18 drafts, with lower scores better](assets/bench-search-rewrites.png)
231
+
232
+ This small LLM-reviewed regression study measures repeatable behavior; it does not establish universal writing quality. The drafts, hashes, method versions, prompts, and limitations are in [`bench/README.md`](bench/README.md).
233
+
234
+ Zero Slop's frozen outputs came from v2.5.9; newer versions only rescore those
235
+ saved outputs. The current scorer matched the prior 84.2% result on the fixed
236
+ 38-item editorial panel. These fixed-sample checks are not field accuracy.
237
+
238
+ <details>
239
+ <summary>More validation</summary>
240
+
241
+ - A method-hidden editorial preference replay: [`bench/incumbent-blind-replay/`](bench/incumbent-blind-replay/)
242
+ - External-checker clean rates: [`assets/bench-external-checker.png`](assets/bench-external-checker.png)
243
+ - Method-hidden quality ranking: [`assets/bench-blind-quality.png`](assets/bench-blind-quality.png)
244
+ - Current-model corpus measurements: [`assets/bench-raid-plus.png`](assets/bench-raid-plus.png)
245
+ - Antithesis regression set: [`assets/bench-antithesis.png`](assets/bench-antithesis.png)
246
+
247
+ On the 75 labelled antithesis pairs, the current reading pass reached 91.2% recall across the full set, 100% recall on shapes in reach, and 100% precision. The labels are maintainer-authored and the pairs are constructed, so this is a regression floor rather than field accuracy.
248
+
249
+ Local speed measurements cover the checks, with editing time excluded. On one
250
+ Apple silicon Mac, the scorer processed 1,000 documents in a median of 1.9929
251
+ seconds (501.8 per second); the five runs ranged from 1.9614 to 2.0945 seconds.
252
+ It scored a 15,201-word document in a median of 0.3223 seconds. The slowest
253
+ stress case took 2.2932 seconds, and learning from an 8,000-word edit took
254
+ 0.1592 seconds. The measurements and machine details are in
255
+ [`bench/performance-results.json`](bench/performance-results.json).
256
+
257
+ Across 12 interleaved runs against 2.7.7, we measured 0.08% lower median throughput,
258
+ within the 5% regression limit. The separate two-way replay used
259
+ Zero Slop v2.6.0.
260
+
261
+ The [RAID+ audit](bench/raid-plus-corpus/README.md) checks how the scorer responds
262
+ to output from different models. Its pinned sample contains 7,627 usable
263
+ generations:
264
+
265
+ | Model | Texts scored | Mean writing score ↓ | At or above 25 |
266
+ |---|---:|---:|---:|
267
+ | DeepSeek V3 | 1,995 | 14.5 | 10.1% |
268
+ | Gemini 3.1 Pro | 1,998 | 17.0 | 18.2% |
269
+ | Gemma 3 27B | 1,634 | 21.6 | 30.4% |
270
+ | Llama 3.3 70B | 2,000 | 25.5 | 41.7% |
271
+
272
+ RAID+ labels record which model produced each text; they do not grade writing
273
+ quality. The [Beemo paired-edit audit](bench/beemo-corpus/README.md) checks how
274
+ scores change after human editing: raw responses averaged 30.2, expert edits
275
+ 25.3, and human answers 20.0. Beemo also lacks writing-quality labels.
276
+
277
+ </details>
278
+
279
+ ### Documented capability audit
280
+
281
+ ![Documented capabilities at pinned repository versions](assets/competitor-capabilities.png)
282
+
283
+ This chart says nothing about writing quality or which tool writes better. It
284
+ records documented features at pinned commits; the data and reproduction notes
285
+ are in [`bench/README.md`](bench/README.md).
286
+
287
+ The design follows research on [predictable wording in machine text](https://arxiv.org/abs/2301.11305) and [overused vocabulary](https://arxiv.org/abs/2406.07016). It deliberately avoids authorship claims because detectors can [misclassify non-native English](https://arxiv.org/abs/2304.02819).
288
+
289
+ ## Private learning
290
+
291
+ Learning begins only when you provide an original output and your reason-labelled edit. Zero Slop does not monitor files, browsers, or publishing tools. Private data stays under `$ZERO_SLOP_HOME`; it is not committed to this repository and does not retrain the model.
292
+
293
+ A profile selected by name can exempt existing watchlist words. It does not
294
+ learn cadence, tone, or a complete writing style.
295
+
296
+ ## Repository map
297
+
298
+ | Path | Purpose |
299
+ |---|---|
300
+ | [`SKILL.md`](SKILL.md) | The complete detect, rewrite, verify, and learn workflow |
301
+ | [`scripts/slopscore.py`](scripts/slopscore.py) | Offline meter and source-detail gate |
302
+ | [`scripts/register.py`](scripts/register.py) | Performed-register and reading pass |
303
+ | [`references/`](references/) | Genre guidance, tells, safeguards, and evaluation rules |
304
+ | [`examples/`](examples/) | Reproducible before-and-after edits |
305
+ | [`bench/`](bench/) | Frozen benchmarks, provenance, and limitations |
306
+ | [`mcp/`](mcp/) | Optional hosted MCP server documentation |
307
+ | [`DISTRIBUTION.md`](DISTRIBUTION.md) | Direct installs, marketplace submissions, and release synchronization |
308
+
309
+ ## Contributing and support
310
+
311
+ Bug reports, false positives, examples, and carefully tested pattern improvements are welcome. Read [`CONTRIBUTING.md`](CONTRIBUTING.md) before opening a pull request, use the structured [issue forms](https://github.com/manavmishra/ZeroSlop/issues/new/choose), or start a [Discussion](https://github.com/manavmishra/ZeroSlop/discussions).
312
+
313
+ For setup help and responsible disclosure, see [`SUPPORT.md`](SUPPORT.md) and [`SECURITY.md`](SECURITY.md).
314
+
315
+ ## Credits
316
+
317
+ Zero Slop builds on ideas from [no-ai-slop](https://github.com/petergyang/no-ai-slop), [humanizer](https://github.com/blader/humanizer), [de-slop](https://github.com/isatimur/de-slop), [stop-slop](https://github.com/hardikpandya/stop-slop), [unslop-text](https://github.com/JCarterJohnson/vibecoded-design-tells/tree/main/unslop-ai-text), and [avoid-ai-writing](https://github.com/conorbronsdon/avoid-ai-writing).
318
+
319
+ ## License
320
+
321
+ [MIT](LICENSE)
@@ -0,0 +1,14 @@
1
+ """Zero Slop — score AI-sounding prose and check what a rewrite changed.
2
+
3
+ The scorer runs offline and uses only the Python standard library.
4
+
5
+ from zero_slop import score_text, load_patterns
6
+
7
+ data = load_patterns()
8
+ score_text("We are thrilled to announce...", data)["ai_likelihood"]
9
+ """
10
+
11
+ from zero_slop.scripts.slopscore import load_patterns, score_text
12
+
13
+ __all__ = ["load_patterns", "score_text", "__version__"]
14
+ __version__ = "2.11.2"