zero-slop 2.6.1 → 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 +123 -94
- package/SKILL.md +47 -4
- 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/package.json +1 -1
- package/references/eval.md +250 -0
- package/scripts/register.py +781 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# Zero Slop eval
|
|
2
|
+
|
|
3
|
+
Answer every check with pass or fail. Where a check asks for a count, write the
|
|
4
|
+
number down; a count is evidence, and a missing count means the pass did not run.
|
|
5
|
+
|
|
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.
|
|
8
|
+
|
|
9
|
+
**This file exists because the meter cannot see most of what is on it.** The scorer
|
|
10
|
+
reads the lexically anchored subset: listed phrases, sentence-length variance,
|
|
11
|
+
readability, formatting density. Everything in section A is a property of the whole
|
|
12
|
+
document rather than of any span, so no pattern can reach it. A clear score is a
|
|
13
|
+
reason to work through section A carefully, never permission to skip it.
|
|
14
|
+
|
|
15
|
+
The ratchet: every miss an audit, a competitor, or a reader catches becomes a
|
|
16
|
+
deterministic detector or a `data/corpus/must-flag/` fixture in the same change.
|
|
17
|
+
A note is not a fix; `register.py --recall` proves each recorded miss still
|
|
18
|
+
gets caught, and the release suite runs it.
|
|
19
|
+
|
|
20
|
+
Families here are drawn from the Zero Slop tell catalogue, from Wikipedia's
|
|
21
|
+
[Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)
|
|
22
|
+
maintained by WikiProject AI Cleanup, and from the checks in petergyang/no-ai-slop
|
|
23
|
+
and blader/humanizer. Every check that needs one carries a worked before and after,
|
|
24
|
+
because an abstract instruction gets a partial answer.
|
|
25
|
+
|
|
26
|
+
Roles 7 and 8 own this file. Role 8 answers section F. A role that generated text
|
|
27
|
+
never grades that text.
|
|
28
|
+
|
|
29
|
+
Scoring this file is meaningless: it quotes tells as examples, so the meter flags its
|
|
30
|
+
own catalogue. That is the documented exception for material quoted as an example, and
|
|
31
|
+
it is a good candidate for `data/corpus/must-not-flag/`.
|
|
32
|
+
|
|
33
|
+
## A. Register, which the meter cannot reach
|
|
34
|
+
|
|
35
|
+
Run every item on every draft, including one that scored clear. Record the counts in
|
|
36
|
+
the report even when they are zero.
|
|
37
|
+
|
|
38
|
+
1. **Antithesis pairs. Count: ___** Two balanced statements where the second lands a
|
|
39
|
+
twist. Count all four shapes, and note that most carry no negation marker at all:
|
|
40
|
+
marked ("Not perfect. Honest."), bare subject swap ("Llama is open-weights. Dolma
|
|
41
|
+
releases the data."), isocolon with the arguments swapped, and unmarked reversal.
|
|
42
|
+
Budget is one per piece. Two is a finding. Three or more under 500 words means the
|
|
43
|
+
register failed whatever the score said.
|
|
44
|
+
2. **Binary contrast, the subtractive form. Count per 1,000 words: ___** The
|
|
45
|
+
corrective appositive: "X, not Y." "A rather than B." Each instance is usually
|
|
46
|
+
good, careful writing, which is why the meter has no rule for it. The defect is
|
|
47
|
+
density. Above roughly 4 per 1,000 words, the document has one rhetorical move
|
|
48
|
+
instead of a voice.
|
|
49
|
+
3. **Significance scaffolding. Count: ___** A sentence announcing that a point
|
|
50
|
+
matters instead of delivering it. Budget is zero.
|
|
51
|
+
4. **Negative definition.** Does the draft repeatedly say what a thing is not before
|
|
52
|
+
saying what it is? One is a useful disambiguation, a habit is a tic. Stacked
|
|
53
|
+
negation counts: "No file monitoring, no browser hooks, no reaching into where you
|
|
54
|
+
publish" becomes "Zero Slop reads only what you hand it."
|
|
55
|
+
5. **Comma-series density. Count per 1,000 words: ___** Enumerations of three or more
|
|
56
|
+
noun phrases. Technical writing legitimately enumerates, so this is a reading
|
|
57
|
+
judgment rather than a threshold: are the lists carrying information, or has the
|
|
58
|
+
sentence shape become the default? Convert the longest to real lists.
|
|
59
|
+
6. **Robotic symmetry.** Repeated sentence shapes, identical paragraph geometry, stacked
|
|
60
|
+
punchy fragments, uniform paragraph length. Check table columns too: seven of eight
|
|
61
|
+
cells opening with a verb and a comma list of abstract nouns is the same defect
|
|
62
|
+
inside a grid.
|
|
63
|
+
7. **Colon reveals.** A noun phrase, a colon, then a lowercase dramatic payoff.
|
|
64
|
+
Colons are for lists, labels, and quotations.
|
|
65
|
+
8. **Throat-clearing openers.** "Here's the thing." "Let me be clear." "To be
|
|
66
|
+
honest." Cut and state the point.
|
|
67
|
+
9. **Faux-insight setups.** "What most people get wrong." "The part everyone misses."
|
|
68
|
+
These flatter the writer as sole expert. Make the claim stand alone.
|
|
69
|
+
10. **Rhetorical setups.** "What if I told you." "Think about it:" Self-answered
|
|
70
|
+
question and answer pairs.
|
|
71
|
+
11. **Fake-profound kickers.** Delete the closing aphorism rather than rewriting it
|
|
72
|
+
into a better metaphor. End on the clearest concrete sentence already present.
|
|
73
|
+
12. **Summary-recap endings.** The reader was just there.
|
|
74
|
+
13. **Theatrical framing and extended conceit. Count: ___** An ordinary process
|
|
75
|
+
dressed as a courtroom, a heist, or a diagnosis. Budget is one metaphor.
|
|
76
|
+
14. **Superficial analysis.** Trailing participial clauses that pretend to explain
|
|
77
|
+
significance: highlighting, underscoring, reflecting, showcasing.
|
|
78
|
+
15. **Importance puffery.** "Marks a pivotal moment." "Stands as a testament." State
|
|
79
|
+
the fact and let the reader weigh it.
|
|
80
|
+
16. **Interpretive metadiscourse.** Lines that step outside the subject to tell the
|
|
81
|
+
reader what to notice or how much weight to give it.
|
|
82
|
+
17. **Weasel attribution.** "Studies show." "Experts agree." Name the source, or flag
|
|
83
|
+
it for the writer. Never invent one.
|
|
84
|
+
18. **Adjective inflation and hollow intensifiers.** "a real improvement", "actual
|
|
85
|
+
results", "a genuine breakthrough", "true value". Delete the adjective; the noun
|
|
86
|
+
carries the claim or it does not. Distinct from empty adverbs (next): adverbs pad
|
|
87
|
+
the verb, these inflate a noun, and a span that is neither belongs to importance
|
|
88
|
+
puffery. Measured by the meter; the reading pass owns only the shapes the noun
|
|
89
|
+
list misses.
|
|
90
|
+
19. **Empty adverbs and filler frames.** Adverbs: "just", "simply", "actually",
|
|
91
|
+
"literally", "honestly", "fundamentally", "inherently", "inevitably". Frames:
|
|
92
|
+
"the reality is", "the truth is", "in terms of", "with regard to", "going
|
|
93
|
+
forward", "in this article". Cut each one that adds nothing; keep the ones
|
|
94
|
+
carrying real emphasis, uncertainty, contrast, or the writer's spoken rhythm.
|
|
95
|
+
Distinct from adjective inflation (previous): these modify verbs and clauses.
|
|
96
|
+
The meter does not flag these globally because they are ordinary in honest
|
|
97
|
+
writing, so this is a judgment per instance. "just", "simply", "actually", "literally",
|
|
98
|
+
"honestly", "fundamentally", "inherently", "inevitably". Cut each one that adds
|
|
99
|
+
nothing; keep the ones carrying real emphasis, uncertainty, contrast, or the
|
|
100
|
+
writer's spoken rhythm. This is a judgment per instance, which is why the meter
|
|
101
|
+
does not flag these words globally: they are ordinary in honest writing.
|
|
102
|
+
20. **Nominalization and weak verb phrases.** "Made a decision" for "decided",
|
|
103
|
+
"needs removal from" for "you cut from". De-nominalize, and prefer a direct verb
|
|
104
|
+
with an actor.
|
|
105
|
+
21. **Fake-strong verbs.** Prefer "is" and "has" where they are clearer.
|
|
106
|
+
"The app serves as a centralized hub for sponsor management" becomes "The app
|
|
107
|
+
tracks sponsors, drafts, due dates and approvals in one place." Monument verbs
|
|
108
|
+
count too: "stands on", "sits atop", "marks a".
|
|
109
|
+
22. **Reasoning-chain artifacts.** Working-out left in the answer: "Let me think
|
|
110
|
+
through this", "First I'll consider", a restated plan before the plan. The reader
|
|
111
|
+
wants the conclusion, not the deliberation.
|
|
112
|
+
23. **Emotional flatline.** Uniform affect across a piece that should vary. Nothing
|
|
113
|
+
irritates the writer, nothing surprises them, nothing costs anything. Real writing
|
|
114
|
+
has range.
|
|
115
|
+
24. **False concession.** "While X has merit, Y" where X was never a live position
|
|
116
|
+
and nothing follows from conceding it. Keep a real counterargument; cut a straw one.
|
|
117
|
+
25. **Confidence-calibration phrases.** "I'm fairly confident", "with high certainty",
|
|
118
|
+
"to be clear, this is my read". Calibrated hedges are fine when they carry real
|
|
119
|
+
uncertainty; these announce a posture instead.
|
|
120
|
+
26. **Parenthetical hedging.** Qualifiers tucked in brackets so the sentence can claim
|
|
121
|
+
more than it supports: "The fix works (in most cases) for every driver."
|
|
122
|
+
27. **Engagement hooks and endorsement closers.** "You won't believe", "Sound
|
|
123
|
+
familiar?", "Give it a try and let me know", "Trusted by teams everywhere".
|
|
124
|
+
Infomercial register, wherever it appears.
|
|
125
|
+
28. **Lingering-attention claims.** "This will stay with you", "you'll be thinking
|
|
126
|
+
about this for weeks". The writer cannot know the reader's future.
|
|
127
|
+
29. **Generic positive endings.** A closing paragraph that resolves into optimism
|
|
128
|
+
without a concrete next step: "The future looks bright for teams willing to adapt."
|
|
129
|
+
30. **Synonym cycling.** If the clear word is right, repeat it. Do not rotate terms
|
|
130
|
+
for style. "The agent reviews the draft. The assistant scores the piece. The tool
|
|
131
|
+
suggests fixes" becomes "The agent reviews the draft, scores it, and suggests
|
|
132
|
+
fixes." Check every referent, not the first one you notice: a role table is where
|
|
133
|
+
a second and third name usually appear.
|
|
134
|
+
|
|
135
|
+
## B. Substance
|
|
136
|
+
|
|
137
|
+
31. **Removal test.** Does every paragraph lose something real when deleted?
|
|
138
|
+
32. **Relevance test.** Does every paragraph serve the brief, audience, and argument?
|
|
139
|
+
33. **Front-loading, applied selectively.** Conclusions arrive early where that helps
|
|
140
|
+
the reader, without forcing every section into the same point-then-detail shape.
|
|
141
|
+
34. **Paragraph-order dependence.** Could several prose paragraphs be shuffled without
|
|
142
|
+
harming the argument? Reference material, FAQs, and independent findings are
|
|
143
|
+
exempt.
|
|
144
|
+
35. **Unsupported novelty.** "Nobody is naming this" needs an actual comparison.
|
|
145
|
+
36. **Self-labeling significance.** "This matters" needs a consequence.
|
|
146
|
+
37. **Moral-adjective category error.** Calling a technical choice brave or honest
|
|
147
|
+
needs a moral agent.
|
|
148
|
+
38. **Portability test.** Could any sentence move unchanged to another company,
|
|
149
|
+
product, or person? Cut it or make it specific.
|
|
150
|
+
39. **Statistics cohesion.** Does each test or dataset get its own paragraph opening
|
|
151
|
+
with what it checks in plain words, before the numbers?
|
|
152
|
+
40. **Cross-references resolve.** Every named artefact, panel, dataset, or prior
|
|
153
|
+
result is defined on first use or linked to where it lives. "The prior 84.2%
|
|
154
|
+
result on the 38-item editorial panel" tells a reader nothing if neither the
|
|
155
|
+
panel nor the packet is named anywhere.
|
|
156
|
+
41. **Internal pointers name their target.** "In the references", "see the docs",
|
|
157
|
+
"as documented elsewhere" point at nothing. Name the file and the section, and
|
|
158
|
+
link it, the way an external citation would be named.
|
|
159
|
+
42. **Numeric precision matches the measurement.** Five significant figures on a
|
|
160
|
+
single run of a single machine claims a stability the method cannot support.
|
|
161
|
+
Round to what the measurement earns, or state the spread.
|
|
162
|
+
43. **Hollow spans flagged, not filled.** Prose that makes no claim was flagged for
|
|
163
|
+
the writer rather than reworded into something that sounds like one.
|
|
164
|
+
44. **Sycophantic tone.** Generic validation of the reader that carries no content:
|
|
165
|
+
"Great question", "Excellent point", "You're absolutely right". It echoes nothing
|
|
166
|
+
back, it only rewards. Cut it and start with the answer.
|
|
167
|
+
45. **Recap-flattery.** An opener that echoes the reader's *own work* back at them
|
|
168
|
+
dressed as gratitude, ahead of the point: "Thanks for all the legwork here, the
|
|
169
|
+
migration script and the rollback plan you worked through are what made this
|
|
170
|
+
possible." They already know what they did. A real thank-you is one clause and
|
|
171
|
+
moves on: "Thanks for the legwork, this looks right, one comment below."
|
|
172
|
+
46. **Acknowledgment loops.** Restating the question or the prior section before
|
|
173
|
+
answering it. This echoes the *context*, where recap-flattery echoes their *work*
|
|
174
|
+
and sycophancy echoes *nothing*. Ask what is being echoed; that is what separates
|
|
175
|
+
these three.
|
|
176
|
+
47. **Wall-of-text reply.** Paragraphing that hides a sequence the reader needs. A
|
|
177
|
+
long narrative paragraph is not a wall of text merely because it is long; the tell
|
|
178
|
+
is a buried list of steps or options.
|
|
179
|
+
|
|
180
|
+
## C. Fidelity
|
|
181
|
+
|
|
182
|
+
48. **Scripted check run, not eyeballed.** `slopscore.py --fidelity` exits zero.
|
|
183
|
+
49. **No invented specifics.** No number, name, anecdote, date, or source appeared
|
|
184
|
+
that the author did not supply.
|
|
185
|
+
50. **No invented interior claims.** No stated feeling, motive, or experience the
|
|
186
|
+
author never wrote.
|
|
187
|
+
51. **Qualifiers survive.** Hedges, scope limits, and caveats carry the same strength
|
|
188
|
+
as the source.
|
|
189
|
+
52. **Claims not reframed.** Same names and numbers can still carry a changed
|
|
190
|
+
emphasis or implication. Compare meaning, not tokens.
|
|
191
|
+
53. **Non-prose untouched.** Code, front matter, tables, blockquotes, identifiers,
|
|
192
|
+
paths, and heading hierarchy intact.
|
|
193
|
+
|
|
194
|
+
## D. Voice and readability
|
|
195
|
+
|
|
196
|
+
54. **Expert voice.** A respected practitioner sounds at home: precise terms used
|
|
197
|
+
correctly, authority earned through specifics, no hedging into mush.
|
|
198
|
+
55. **Followability.** A smart first-time reader follows each sentence on the first
|
|
199
|
+
pass. One idea per sentence; every abstraction anchored in the same breath; never
|
|
200
|
+
three or more abstract noun phrases stacked.
|
|
201
|
+
56. **Voice preserved.** Would the writer recognize this as theirs? Distinctive
|
|
202
|
+
vocabulary, cadence, bluntness, humor, uncertainty, and digressions survived.
|
|
203
|
+
57. **Strong sentences left alone.** Nothing was rewritten merely for consistency.
|
|
204
|
+
58. **Active voice with human subjects.** People do the verbs. Passive stays only
|
|
205
|
+
where the actor is unknown, irrelevant, deliberately withheld, or native to the
|
|
206
|
+
genre.
|
|
207
|
+
59. **Proportional cutting.** No compression that stripped character. Density is
|
|
208
|
+
information per word, not fewer words.
|
|
209
|
+
60. **Read aloud.** Would this sound natural read to a sharp colleague?
|
|
210
|
+
61. **No over-correction.** AI slop was not traded for edgy slop: forced hot takes,
|
|
211
|
+
fake first person, performed candor, staccato drama.
|
|
212
|
+
|
|
213
|
+
## E. Form
|
|
214
|
+
|
|
215
|
+
62. **Returned in the format it arrived in.** A .docx comes back a .docx.
|
|
216
|
+
63. **Reader language.** No evaluator or harness vocabulary leaked into the copy:
|
|
217
|
+
candidate, artifact, overlay, gate, scorecard, burstiness.
|
|
218
|
+
64. **Formatting slop.** No emoji headings, decorative bold, or bullets that should be
|
|
219
|
+
prose. Count the headings over one or two sentences: four consecutive H3s each
|
|
220
|
+
wrapping a code block and one line is a section that wants to be one section.
|
|
221
|
+
65. **Em dashes.** None in short copy. One or two in a long draft only where they
|
|
222
|
+
clearly beat a comma, period, or parenthesis.
|
|
223
|
+
66. **Hyphenated modifier stacking.** "AI-powered cloud-native data-driven platform".
|
|
224
|
+
Two stacked compound modifiers in one noun phrase is a tell; keep the hyphens
|
|
225
|
+
grammar requires and cut the rest.
|
|
226
|
+
67. **List-label periods and bare-noun bullets.** Bullets that are fragments ending in
|
|
227
|
+
full stops, or a list of bare noun phrases with no predicate. Either make them
|
|
228
|
+
sentences or make them a real list.
|
|
229
|
+
68. **Numbered-list inflation.** A numbered list where order carries no meaning, or a
|
|
230
|
+
list padded to a round number. Use a bulleted list, or prose.
|
|
231
|
+
69. **Chatbot artifacts.** Citation markup leaks, "Regenerate response", tool URL
|
|
232
|
+
parameters such as utm_source, and any assistant scaffolding left in the copy.
|
|
233
|
+
70. **Attribution accurate.** The report names who did what without guessing which
|
|
234
|
+
model is running, and never implies a Zero Slop service read the draft.
|
|
235
|
+
|
|
236
|
+
## F. Process integrity
|
|
237
|
+
|
|
238
|
+
Role 8 answers this section. It is the check no single-agent eval can make.
|
|
239
|
+
|
|
240
|
+
71. **Roles stayed separate.** The copy desk, read-aloud pass, verification, and
|
|
241
|
+
fresh-eyes review each ran as a distinct pass.
|
|
242
|
+
72. **No self-certification.** No role graded text it generated.
|
|
243
|
+
73. **Counts reported.** Every count in section A appears in the summary, including
|
|
244
|
+
the zeros.
|
|
245
|
+
74. **The exact final text cleared every check.** Not an earlier draft, not a version
|
|
246
|
+
that was repaired afterward.
|
|
247
|
+
75. **Role 8 approved without changes.** If it changed anything, roles 5 through 8
|
|
248
|
+
ran again on the revision.
|
|
249
|
+
76. **Fallbacks named honestly.** If the three-round limit was reached, the report
|
|
250
|
+
says which check failed and does not describe the result as fully verified.
|