zero-slop 2.8.6 → 2.8.7

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 CHANGED
@@ -5,7 +5,7 @@
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.6-72528F">
8
+ <img alt="version" src="https://img.shields.io/badge/version-2.8.7-72528F">
9
9
  <a href="https://hol.org/guard/plugins"><img alt="Listed in the HOL plugin registry" src="https://img.shields.io/badge/HOL%20registry-listed-2C6E8F"></a>
10
10
  <a href="https://github.com/hashgraph-online/awesome-ai-plugins#tools--integrations"><img alt="Listed in awesome-ai-plugins" src="https://img.shields.io/badge/awesome--ai--plugins-listed-2C6E8F"></a>
11
11
  <a href="https://zero-slop.ai/try/"><img alt="This README scores 11.6 out of 100 on the slop score, inside the human range" src="https://img.shields.io/badge/slop%20score-11.6%2F100-0f7d55"></a>
@@ -160,6 +160,10 @@ Eight roles form one workflow. Each is a job rather than a service, run as its o
160
160
  | 7. Verifier | Local tools and your AI assistant | Compares text with source for facts, meaning, qualifiers, voice, format, structure. |
161
161
  | 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. |
162
162
 
163
+ Missed editorial targets trigger repair, not erasure. After three rounds, Zero Slop
164
+ returns the safest source-preserving edit with a warning. Only a model outage or an
165
+ edit that changes protected material leaves the source untouched.
166
+
163
167
  Studies find
164
168
  [predictable wording](https://arxiv.org/abs/2301.11305) and
165
169
  [overused vocabulary](https://arxiv.org/abs/2406.07016) in machine text, and authorship
@@ -228,13 +232,11 @@ proof of general accuracy.
228
232
 
229
233
  ### Speed
230
234
 
231
- One busy Apple silicon Mac. Meter: 1,000 documents in 1.9929 seconds (501.8 per
232
- second), 15,201 words in 0.3223 seconds, worst stress case 2.2932 seconds.
233
- Reading pass: 0.7823 seconds for the same 1,000 (1278.3 per
234
- second), 0.1092 for the same large document, linear to 96,000 words. Learning
235
- pass, 8,000 words: 0.1592 seconds. Across 24 interleaved runs against 2.7.7 we measured
236
- 0.00% higher median throughput—effectively no difference. Editing
237
- time is excluded.
235
+ One Apple silicon Mac: the meter scored 1,000 documents in 1.9929 seconds
236
+ (501.8 per second), 15,201 words in 0.3223 seconds, and the worst stress case in 2.2932
237
+ seconds. The reading pass handled the same 1,000 in 0.7823 seconds (1278.3/second);
238
+ learning on 8,000 words took 0.1592 seconds. Across 24 interleaved runs against 2.7.7,
239
+ median throughput was 0.26% lower, effectively no difference. Editing is excluded.
238
240
 
239
241
  ### Reading-pass accuracy
240
242
 
@@ -282,7 +284,7 @@ passes, private learning, portfolio analysis, and release tests.
282
284
 
283
285
  ![Documented capabilities at pinned repository versions](assets/competitor-capabilities.png)
284
286
 
285
- The chart records which features each project documents. It says nothing about writing quality and is not a claim about which tool writes better. Reproduce by using these tests:
287
+ The chart says nothing about writing quality. Reproduce it with:
286
288
 
287
289
  ```sh
288
290
  python3 tests/test_all.py
package/SKILL.md CHANGED
@@ -2,7 +2,7 @@
2
2
  name: zero-slop
3
3
  license: MIT
4
4
  metadata:
5
- version: "2.8.6"
5
+ version: "2.8.7"
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
  ---
@@ -96,8 +96,9 @@ local and AI responsibilities distinct:
96
96
  and directly fix stumbles, repetition, weak transitions, and awkward flow.
97
97
  7. **Verifier — local tools plus the AI assistant.** Check the exact final text
98
98
  against the source for the writing score, facts, meaning, qualifiers, voice,
99
- format, and structure. This is a release gate, not advice: a warning blocks
100
- delivery. Any repair returns through roles 5 and 6 before role 7 runs again.
99
+ format, and structure. A warning starts the repair loop and prevents an
100
+ unqualified approval; it does not erase the edited draft. Any repair returns
101
+ through roles 5 and 6 before role 7 runs again.
101
102
  8. **Fresh-eyes finalizer — a new AI pass.** Read the verified text as a first-time
102
103
  reader, apply only safe final polish, and approve it without changes. A role 8
103
104
  edit restarts roles 5 through 8; the finalizer never bypasses verification.
@@ -636,16 +637,25 @@ If verification requires any textual repair, send the repaired text through the
636
637
  desk and final read-aloud pass again, then repeat every final check. Continue until the
637
638
  same text clears the copy desk, final read-aloud pass, semantic and format review,
638
639
  scorer, and fidelity gate.
640
+
641
+ If an AI editorial role returns no usable text, retry that role once with a fresh pass.
642
+ Use another available model when the harness supports model choice; otherwise use fresh
643
+ context in the current assistant. Carry the last source-preserving edit forward while a
644
+ role recovers. Do not replay earlier roles unless the text changes: retry the failed role,
645
+ then continue with the remaining checks. Keep every retry bounded and report any role
646
+ that remained unavailable.
647
+
639
648
  A required repair may raise the writing score from the previous draft as long as it
640
649
  stays below the release limit. Source meaning, stated emotion, and factual accuracy
641
650
  outrank a smaller number. Never discard a necessary semantic repair merely because an
642
651
  unsafe version scored lower; rerun every check on the repaired text instead.
643
652
  Limit this repair loop to three rounds. If a problem still cannot be resolved
644
- without guessing, return the best source-preserving version that completed both
645
- editorial passes and state the unresolved issue and failed check plainly. Outside
646
- that explicit three-round fallback, nothing reaches the user until the exact text
647
- being returned has cleared every final check. A fallback still must have completed the
648
- copy desk and read-aloud pass; never describe it as fully verified.
653
+ without guessing, return the safest source-preserving edit and state the unresolved
654
+ issue, unavailable role, or missed target plainly. Never replace an explicit rewrite
655
+ request with the unchanged source merely because a quality target was missed. A quality
656
+ target controls the confidence label; it does not decide whether the writer receives
657
+ the work. A fallback should complete both editorial passes whenever they are available,
658
+ and it must never be described as fully verified when a check did not complete.
649
659
 
650
660
  Initial gate failure → rewrite and recheck (max 3 passes). Final verification
651
661
  repair → copy desk, read-aloud pass, and every check again (max 3 rounds). If the
@@ -677,8 +687,8 @@ then rerun the copy desk, read-aloud editor, verifier, and fresh-eyes finalizer
677
687
  that order. A role 8 edit therefore restarts roles 5 through 8. Limit the loop to
678
688
  three rounds. The same exact text must clear roles 5, 6, and 7 and then receive a
679
689
  no-change approval from role 8. If safe approval is impossible without guessing,
680
- return the best source-preserving version that completed every pass and name the
681
- unresolved span; do not call it fully verified.
690
+ return the safest source-preserving edit, name the unresolved span or unavailable
691
+ pass, and do not call it fully verified.
682
692
 
683
693
  ### 9. Report in plain language
684
694
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zero-slop",
3
- "version": "2.8.6",
3
+ "version": "2.8.7",
4
4
  "description": "An Agent Skill that scores AI-sounding prose locally, guides the host AI through an editorial rewrite, and checks changed source details. The local tools run offline with zero dependencies.",
5
5
  "bin": {
6
6
  "zero-slop": "bin/zero-slop.mjs"
@@ -4,7 +4,10 @@ Answer every check with pass or fail. Where a check asks for a count, write the
4
4
  number down; a count is evidence, and a missing count means the pass did not run.
5
5
 
6
6
  Any fail sends the text back through the copy desk and read-aloud pass, after which
7
- every check here runs again on the new text. Limit that loop to three rounds.
7
+ every check here runs again on the new text. Limit that loop to three rounds. A failed
8
+ check starts repair and changes the confidence label; it never suppresses the edited
9
+ text. After the bounded loop, return the safest source-preserving edit and name every
10
+ unresolved check plainly.
8
11
 
9
12
  **This file exists because the meter cannot see most of what is on it.** The scorer
10
13
  reads the lexically anchored subset: listed phrases, sentence-length variance,
@@ -60,5 +60,5 @@ changes even one character, apply the complete revision and rerun, in order:
60
60
 
61
61
  Repeat for at most three rounds. The same exact text must clear all four roles, with
62
62
  the fresh-eyes finalizer approving it unchanged. If the remaining issue cannot be
63
- fixed without guessing, return the best source-preserving text that completed every
64
- pass, identify the unresolved span, and do not describe it as fully verified.
63
+ fixed without guessing, return the safest source-preserving edit, identify the
64
+ unresolved span or unavailable pass, and do not describe it as fully verified.