zero-slop 2.12.8 → 2.12.10
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 +6 -7
- package/SKILL.md +1 -1
- package/docs/cli.md +1 -1
- package/gemini-extension.json +2 -2
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/rescue.py +2 -0
- package/scripts/slopscore.py +3 -2
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Zero Slop is a free, open-source agent skill that finds and removes AI slop whil
|
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<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>
|
|
14
|
-
<img alt="Version 2.12.
|
|
14
|
+
<img alt="Version 2.12.10" src="https://img.shields.io/badge/version-2.12.10-72528F?color=C15732">
|
|
15
15
|
<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>
|
|
16
16
|
<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>
|
|
17
17
|
<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>
|
|
@@ -22,7 +22,7 @@ Zero Slop is a free, open-source agent skill that finds and removes AI slop whil
|
|
|
22
22
|
|
|
23
23
|
## Why it exists
|
|
24
24
|
|
|
25
|
-
An AI draft can be grammatically sound and still read like workslop. In a compatible AI assistant, Zero Slop flags
|
|
25
|
+
An AI draft can be grammatically sound and still read like workslop. In a compatible AI assistant, Zero Slop flags slop patterns, then guides the edit. The writing score finds patterns worth reviewing; it cannot tell who wrote the text.
|
|
26
26
|
|
|
27
27
|
<a href="assets/zero-slop-demo.mp4?v=dark-shell-restored-20260906">
|
|
28
28
|
<picture>
|
|
@@ -34,14 +34,13 @@ An AI draft can be grammatically sound and still read like workslop. In a compat
|
|
|
34
34
|
|
|
35
35
|
## See an edit
|
|
36
36
|
|
|
37
|
-
Let's see Zero Slop at work. Imagine using AI to write a launch announcement and getting this:
|
|
37
|
+
Let's see Zero Slop at work. Imagine using AI to write a linkedin launch announcement and getting this:
|
|
38
38
|
|
|
39
39
|
> 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%.
|
|
40
40
|
|
|
41
|
-
The local Python scorer in Zero Slop scores
|
|
42
|
-
to,” “leveraged,” “cutting-edge,” and “seamless” as patterns worth reviewing.
|
|
41
|
+
The local Python scorer in Zero Slop scores the input Slop score 99.3/100. A high Slop score means the draft is more likely to contain sloppy patterns.
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
Zero Slop then strips the patterns and guides the AI agent to produce the deslopped output below:
|
|
45
44
|
|
|
46
45
|
> We used machine learning to reduce onboarding setup time by 40%.
|
|
47
46
|
|
|
@@ -172,7 +171,7 @@ python3 scripts/slopscore.py --batch drafts/ --gate 25
|
|
|
172
171
|
The CLI sends a file to the hosted editor without changing the file on disk:
|
|
173
172
|
|
|
174
173
|
```sh
|
|
175
|
-
npx --yes zero-slop@2.12.
|
|
174
|
+
npx --yes zero-slop@2.12.10 deslop draft.md --genre professional
|
|
176
175
|
```
|
|
177
176
|
|
|
178
177
|
Use `-` for stdin and `--json` for structured output. `--require-approved` prints the result but exits nonzero when review is needed. Requires Node.js 22+; offline `score` also needs Python 3. [CLI options and privacy](docs/cli.md).
|
package/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: zero-slop
|
|
3
3
|
license: MIT
|
|
4
4
|
metadata:
|
|
5
|
-
version: "2.12.
|
|
5
|
+
version: "2.12.10"
|
|
6
6
|
author: manavmishra
|
|
7
7
|
description: Edit drafts into natural prose, inspect AI-sounding patterns, or review how a specified audience might respond passage by passage. Zero Slop runs inside the user's existing AI assistant with local tools that protect source details. Use for humanizing or de-slopping writing, polishing outward-facing prose, social drafts, final editorial checks, or an explicit simulated reader review. Preserve facts, voice and format; reader simulations are hypotheses, not human feedback.
|
|
8
8
|
---
|
package/docs/cli.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Use `deslop` for hosted editing with MCP parity. Use `score` for offline checks.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
npm install --global zero-slop@2.12.
|
|
6
|
+
npm install --global zero-slop@2.12.10
|
|
7
7
|
zero-slop deslop draft.md --genre professional
|
|
8
8
|
zero-slop deslop - --genre email < draft.txt
|
|
9
9
|
zero-slop deslop draft.md --json --require-approved
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zero-slop",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.10",
|
|
4
4
|
"description": "Find and fix canned AI writing while preserving the facts, voice, and format.",
|
|
5
5
|
"mcpServers": {
|
|
6
6
|
"zero-slop": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"includeTools": [
|
|
9
9
|
"deslop"
|
|
10
10
|
],
|
|
11
|
-
"timeout":
|
|
11
|
+
"timeout": 90000
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zero-slop",
|
|
3
|
-
"version": "2.12.
|
|
3
|
+
"version": "2.12.10",
|
|
4
4
|
"description": "An editing skill, offline writing checks, and a CLI for the hosted Zero Slop MCP pipeline. Find stock AI phrasing, rewrite, and check source details.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"zero-slop": "bin/zero-slop.mjs"
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "zero-slop",
|
|
4
|
-
"version": "2.12.
|
|
4
|
+
"version": "2.12.10",
|
|
5
5
|
"description": "Find and fix canned AI writing while preserving the facts, voice, and format.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Manav Mishra",
|
package/scripts/rescue.py
CHANGED
|
@@ -116,6 +116,8 @@ def rescue_text(text: str) -> str:
|
|
|
116
116
|
(r"\bgame[-\u2011]changing\b", "useful"),
|
|
117
117
|
(r"\bcutting[-\u2010\u2011 ]edge\b", "current"),
|
|
118
118
|
(r"\bredefines what(?:['’]s| is) possible in\b", "updates"),
|
|
119
|
+
(r"\bhere are (?=\d+\s+(?:tips?|ways?|reasons?|steps?|ideas?)\b)", ""),
|
|
120
|
+
(r"\bgenuinely\s+", ""),
|
|
119
121
|
(r"\bin order to\b", "to"),
|
|
120
122
|
(r"\bat the end of the day\b", "ultimately"),
|
|
121
123
|
# Contractions alone are not evidence of better writing. Leave clean
|
package/scripts/slopscore.py
CHANGED
|
@@ -1153,6 +1153,7 @@ fix sit mid ambiguity team teams user users product feature features day days we
|
|
|
1153
1153
|
weeks month months year years time thing done anyway besides meanwhile therefore
|
|
1154
1154
|
worse worst harder easier simpler faster slower bigger smaller lots plus minus
|
|
1155
1155
|
are artificial bookmark despite hey modern please researchers save unpopular welcome
|
|
1156
|
+
stare rookie missed
|
|
1156
1157
|
""".split())
|
|
1157
1158
|
NOT_NAME_WORDS = {word.lower() for word in NOT_NAMES} | COMMON_WORDS
|
|
1158
1159
|
|
|
@@ -1264,8 +1265,8 @@ def facts(text, _other=""):
|
|
|
1264
1265
|
# a feeling verb, because the goal is catching an INVENTED inner state, and the
|
|
1265
1266
|
# comparison below cancels any that were already in the source.
|
|
1266
1267
|
INTERIOR_STATE_RX = re.compile(
|
|
1267
|
-
r"\b(?:I|we)\s+(?:was|were|am|felt|feel|got)\s+"
|
|
1268
|
-
r"(?:(?:very|really|extremely|quite|so)\s+)?(?P<state>[A-Za-z]+)", re.I)
|
|
1268
|
+
r"\b(?:I|we)\s+(?:genuinely\s+)?(?:was|were|am|felt|feel|got)\s+"
|
|
1269
|
+
r"(?:(?:very|really|extremely|quite|so|genuinely)\s+)?(?P<state>[A-Za-z]+)", re.I)
|
|
1269
1270
|
INTERIOR_COGNITION_RX = re.compile(
|
|
1270
1271
|
r"\b(?:I|we)\s+(?P<cognition>remember(?:ed)?|recall(?:ed)?|realise(?:d)?|"
|
|
1271
1272
|
r"realize(?:d)?|knew|fear(?:ed)?|hope(?:d)?|worr(?:y|ied)|panic(?:ked)?|"
|