zero-slop 2.10.1 → 2.11.1
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 +4 -4
- package/SKILL.md +1 -1
- package/docs/cli.md +1 -1
- package/gemini-extension.json +4 -2
- package/package.json +1 -1
- package/plugin.json +8 -2
- package/scripts/rescue.py +7 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
</a>
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
|
-
Zero Slop
|
|
10
|
+
Zero Slop is installed about 1,600 times a week on npm.
|
|
11
11
|
|
|
12
12
|
<p align="center"><strong>Find AI-sounding tells and slop in your writing.</strong></p>
|
|
13
13
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
<p align="center">
|
|
32
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.
|
|
33
|
+
<img alt="Version 2.11.1" src="https://img.shields.io/badge/version-2.11.1-72528F?color=C15732">
|
|
34
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
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
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>
|
|
@@ -136,7 +136,7 @@ https://mcp.zero-slop.ai/mcp
|
|
|
136
136
|
Edit a file through MCP:
|
|
137
137
|
|
|
138
138
|
```sh
|
|
139
|
-
npx --yes zero-slop@2.
|
|
139
|
+
npx --yes zero-slop@2.11.1 deslop draft.md --genre professional
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Use `-` for stdin and `--json` for structured output. `--require-approved` exits nonzero
|
|
@@ -254,7 +254,7 @@ stress case took 2.2932 seconds, and learning from an 8,000-word edit took
|
|
|
254
254
|
0.1592 seconds. The measurements and machine details are in
|
|
255
255
|
[`bench/performance-results.json`](bench/performance-results.json).
|
|
256
256
|
|
|
257
|
-
Across 12 interleaved runs against 2.7.7, we measured 0.
|
|
257
|
+
Across 12 interleaved runs against 2.7.7, we measured 0.08% lower median throughput,
|
|
258
258
|
within the 5% regression limit. The separate two-way replay used
|
|
259
259
|
Zero Slop v2.6.0.
|
|
260
260
|
|
package/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: zero-slop
|
|
3
3
|
license: MIT
|
|
4
4
|
metadata:
|
|
5
|
-
version: "2.
|
|
5
|
+
version: "2.11.1"
|
|
6
6
|
author: manavmishra
|
|
7
7
|
description: Turn drafts into sharp, natural prose or inspect them without rewriting. Zero Slop runs inside the user's existing AI assistant; Claude, GPT, or another compatible model reads and edits in context while local tools point to exact phrases and protect the source. Use when the user asks to humanize or de-slop writing, inspect AI-sounding patterns, fix text that reads like ChatGPT, polish outward-facing prose, draft social or LinkedIn content, or apply a final quality check to prose the agent generated. The workflow preserves facts, voice, and format and learns privately from repeated, reason-labelled human edits.
|
|
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.
|
|
6
|
+
npm install --global zero-slop@2.11.1
|
|
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,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zero-slop",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.1",
|
|
4
4
|
"description": "Find and fix canned AI writing while preserving the facts, voice, and format.",
|
|
5
5
|
"mcpServers": {
|
|
6
6
|
"zero-slop": {
|
|
7
7
|
"httpUrl": "https://mcp.zero-slop.ai/mcp",
|
|
8
|
-
"includeTools": [
|
|
8
|
+
"includeTools": [
|
|
9
|
+
"deslop"
|
|
10
|
+
],
|
|
9
11
|
"timeout": 45000
|
|
10
12
|
}
|
|
11
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zero-slop",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.1",
|
|
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.
|
|
4
|
+
"version": "2.11.1",
|
|
5
5
|
"description": "Find and fix canned AI writing while preserving the facts, voice, and format.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Manav Mishra",
|
|
@@ -10,5 +10,11 @@
|
|
|
10
10
|
"homepage": "https://zero-slop.ai/",
|
|
11
11
|
"repository": "https://github.com/manavmishra/ZeroSlop",
|
|
12
12
|
"license": "MIT",
|
|
13
|
-
"keywords": [
|
|
13
|
+
"keywords": [
|
|
14
|
+
"writing",
|
|
15
|
+
"editing",
|
|
16
|
+
"ai-slop",
|
|
17
|
+
"agent-skill",
|
|
18
|
+
"mcp"
|
|
19
|
+
]
|
|
14
20
|
}
|
package/scripts/rescue.py
CHANGED
|
@@ -44,6 +44,13 @@ def rescue_text(text: str) -> str:
|
|
|
44
44
|
|
|
45
45
|
masked = PROTECTED.sub(mask, original)
|
|
46
46
|
out = re.sub(r"[\u00a0\u202f]", " ", masked)
|
|
47
|
+
# Drop only a complete introductory clause; "Today" would add event timing.
|
|
48
|
+
# A single unpunctuated line break may only wrap the current sentence.
|
|
49
|
+
out = re.sub(
|
|
50
|
+
r"(^|[.!?][ \t\r\n]+|\r?\n[ \t]*\r?\n[ \t]*)in today['’]s rapidly evolving "
|
|
51
|
+
r"(?:landscape|world),[ \t]+([A-Za-z][A-Za-z0-9_-]*)",
|
|
52
|
+
_without_wrapper, out, flags=re.IGNORECASE,
|
|
53
|
+
)
|
|
47
54
|
out = re.sub(
|
|
48
55
|
r"(^|[.!?][ \t]+|\n[ \t]*)(?:it is important to note that|it is worth noting that)"
|
|
49
56
|
r"[ \t]+([A-Za-z][A-Za-z0-9_-]*)",
|
|
@@ -74,7 +81,6 @@ def rescue_text(text: str) -> str:
|
|
|
74
81
|
(r"\bi(?:['’]m| am) incredibly excited to (?:share|announce)\b", "I'm sharing"),
|
|
75
82
|
(r"\bour journey\b", "our work"),
|
|
76
83
|
(r"\bour transformative journey\b", "our work"),
|
|
77
|
-
(r"\bin today'?s rapidly evolving (?:landscape|world)\b", "Today"),
|
|
78
84
|
(r"\bit is important to note that\b[ \t]*", ""),
|
|
79
85
|
(r"\bit is worth noting that\b[ \t]*", ""),
|
|
80
86
|
(r"\bwhat we did not realize was just how deeply it impacted everything downstream\.",
|