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.
@@ -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.