zero-slop 2.5.8 → 2.6.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.
@@ -157,7 +157,7 @@
157
157
  {
158
158
  "name": "performed-candor",
159
159
  "cat": "performed",
160
- "rx": "\\b(?:let(?:(?:'|\u2019)s| us) be (?:honest|real|clear)|here(?:(?:'|\u2019)s| is) the (?:thing|truth|kicker|deal|catch)|i(?:'|\u2019)ll be honest|the (?:uncomfortable|hard) truth is|truth be told|no fluff|real talk|not gonna lie|if i(?:'|\u2019)m being honest|let me be (?:crystal |perfectly )?clear)\\b",
160
+ "rx": "\\b(?:let(?:(?:'|\u2019)s| us) be (?:honest|real|clear)|here(?:(?:'|\u2019)s| is) the (?:thing|truth|kicker|deal|catch|detail|part|wrinkle|nuance|upshot|punchline|rub)|i(?:'|\u2019)ll be honest|the (?:uncomfortable|hard) truth is|truth be told|no fluff|real talk|not gonna lie|if i(?:'|\u2019)m being honest|let me be (?:crystal |perfectly )?clear)\\b",
161
161
  "w": 4,
162
162
  "first_seen": "2026-08-03",
163
163
  "last_confirmed": "2026-08-15"
@@ -523,6 +523,33 @@
523
523
  "first_seen": "2026-08-14",
524
524
  "last_confirmed": "2026-08-14"
525
525
  },
526
+ {
527
+ "name": "isocolon-ditransitive",
528
+ "cat": "contrast",
529
+ "rx": "\\b(let|give|hand|show|tell|offer|teach|buy|cost|earn|save|bring|send|win)s? you\\b[^.!?]{0,70}[.!?]\\s+[^.!?]{0,70}\\b\\1s? you\\b",
530
+ "hints": ["you"],
531
+ "w": 4.5,
532
+ "first_seen": "2026-08-26",
533
+ "last_confirmed": "2026-08-26"
534
+ },
535
+ {
536
+ "name": "this-is-what-looks-like",
537
+ "cat": "contrast",
538
+ "rx": "(?:^|[.!?]\\s+|\\n)(?:this|that) is what [\\w '\u2019-]{2,40} looks like\\b",
539
+ "hints": ["looks like"],
540
+ "w": 4,
541
+ "first_seen": "2026-08-26",
542
+ "last_confirmed": "2026-08-26"
543
+ },
544
+ {
545
+ "name": "no-x-had-to",
546
+ "cat": "contrast",
547
+ "rx": "(?:^|[.!?]\\s+|\\n)No [\\w '\u2019-]{2,40} (?:had to|needed to|has to|ever) [\\w '\u2019-]{2,60}\\.\\s+[\\w '\u2019-]{2,40} (?:did|made|chose|decided|built|released|shipped|published)\\b",
548
+ "hints": ["had to", "needed to", "has to", "ever"],
549
+ "w": 4,
550
+ "first_seen": "2026-08-26",
551
+ "last_confirmed": "2026-08-26"
552
+ },
526
553
  {
527
554
  "name": "not-the-but-the",
528
555
  "cat": "contrast",
@@ -1709,7 +1736,7 @@
1709
1736
  {
1710
1737
  "name": "chatgpt-artifact",
1711
1738
  "cat": "artifact",
1712
- "rx": "\\boaicite\\b|\\boai_citation\\b|\\bciteturn\\d|\\butm_source=(?:chatgpt(?:\\.com)?|openai)\\b|:contentReference\\[|\\battributableIndex\\b|\\[cite: ?\\d|\\bturn\\d+(?:search|news|image|view)\\d+\\b|\\[span_\\d|\\(start_span\\)|\\bgrok_(?:card|render)|\\bppl-ai-file-upload\\b|\\battached_file\\b",
1739
+ "rx": "\\boaicite\\b|\\boai_citation\\b|\\bciteturn\\d|\\butm_source=(?:chatgpt(?:\\.com)?|openai(?:\\.com)?|copilot(?:\\.com)?|claude\\.ai|perplexity\\.ai|gemini\\.google\\.com)\\b|\\breferrer=grok\\.com\\b|:?contentReference\\[(?:oaicite:)?|\\battributableIndex\\b|\\[cite: ?\\d|\\bturn\\d+(?:search|news|image|view)\\d+\\b|\\[span_\\d|\\(start_span\\)|\\bgrok_(?:card|render)|\\bppl-ai-file-upload\\b|\\battached_file\\b",
1713
1740
  "w": 10,
1714
1741
  "first_seen": "2026-08-14",
1715
1742
  "last_confirmed": "2026-08-22"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zero-slop",
3
- "version": "2.5.8",
3
+ "version": "2.6.1",
4
4
  "description": "An Agent Skill that scores AI-sounding prose 0-100 locally and rewrites it without losing a fact. Runs inside Claude Code, Codex, Cursor, Warp, Zed and other SKILL.md agents. Offline, zero dependencies, MIT.",
5
5
  "keywords": [
6
6
  "agent-skill",
@@ -69,7 +69,7 @@ known voice signals, and immutable facts when available. Then use this brief:
69
69
  > terse note only for unresolved ambiguities or unusual forms deliberately kept.
70
70
 
71
71
  Apply the corrected version to the deliverable, then send that exact artifact
72
- through the final read-aloud pass in `references/readalong.md`. Verify the
72
+ through the read-aloud pass in `references/readalong.md`. Verify the
73
73
  artifact returned by the read-aloud editor:
74
74
 
75
75
  1. Rerun the heuristic surface scorer and scripted fidelity check.
@@ -77,11 +77,13 @@ artifact returned by the read-aloud editor:
77
77
  claims, qualifiers, intended voice, regional spelling, format, and non-prose
78
78
  structure. The script cannot detect every semantic or stylistic change.
79
79
  3. If any check or comparison requires a repair, apply it, send the repaired
80
- text through the copy desk and final read-aloud pass again, and repeat all
80
+ text through the copy desk and read-aloud pass again, and repeat all
81
81
  final checks.
82
82
 
83
- Stop only when the same artifact clears the copy desk, final read-aloud pass,
84
- semantic and format review, scorer, and fidelity check. Limit this repair loop to
83
+ After verification, send that exact text through the finalizer in
84
+ `references/fresh-eyes.md`. Stop only when the same artifact clears the copy desk,
85
+ read-aloud pass, semantic and format review, scorer, fidelity check, and receives a
86
+ no-change fresh-eyes approval. Limit this repair loop to
85
87
  three rounds. If an issue still cannot be resolved without guessing, return the best
86
88
  source-preserving version that completed both editorial passes, flag the unresolved
87
89
  span and failed check plainly, and do not describe the fallback as fully verified.
@@ -47,6 +47,28 @@ not a deception.
47
47
  8. **Affect skew.** LLM text is joy-skewed and uniformly positive
48
48
  (Muñoz-Ortiz). Counter: widen affect.
49
49
 
50
+ ## Incumbent audit: what transferred and what did not
51
+
52
+ Zero Slop v2.5.9 audited
53
+ [`conorbronsdon/avoid-ai-writing`](https://github.com/conorbronsdon/avoid-ai-writing)
54
+ at commit `40328bd292bc682d46010a6f9ac2cdbf4fb4ceca`. The ideas that survived
55
+ transfer tests were zero-width and mixed-script normalization, exact protection
56
+ for structured document spans, broader AI-tool tracker residue, three narrowly
57
+ defined phrase families, and one conservative long-form word-variety signal.
58
+ On the incumbent's pinned 875-human/779-machine
59
+ paragraph corpus, its low-TTR signal fired on 1 human and 20 machine paragraphs
60
+ (22.46x lift). Zero Slop keeps it weak and corroboration-dependent.
61
+
62
+ Function-word entropy, punctuation-distribution uniformity, and cross-paragraph
63
+ rhythm were also tested. None fired on Zero Slop's 38 consensus-labelled
64
+ editorial passages; on the Beemo paired set they were rare and only directional
65
+ proxies because Beemo labels provenance and editing history, not slop quality.
66
+ They were not promoted. The incumbent's hand-shaped class probabilities were
67
+ also rejected: its documentation correctly says they are not calibrated against
68
+ a labelled corpus, and its own composite reports paragraph ROC-AUC 0.501 and
69
+ document ROC-AUC 0.623. Zero Slop does not turn an uncalibrated writing score
70
+ into an authorship probability.
71
+
50
72
  ## Why the scorer measures features, not detector verdicts
51
73
 
52
74
  Detectors are brittle: RAID (2405.07940) shows trivial perturbations fool
@@ -0,0 +1,62 @@
1
+ # The fresh-eyes finalizer
2
+
3
+ This is the last role in the editing workflow. It receives the exact text that
4
+ already cleared the copy desk, read-aloud editor, and verifier. Its job is to read
5
+ that text as a first-time reader and catch the small but consequential problems an
6
+ editor can stop seeing after repeated passes.
7
+
8
+ Use a new, role-isolated editor when the harness supports agents or subagents.
9
+ Otherwise start a separate pass with no drafting or scoring mindset. Do not ask the
10
+ rewriter to approve its own work.
11
+
12
+ ## What to check
13
+
14
+ - **The whole arc.** The opening sets up the real point, sections arrive in a useful
15
+ order, and the ending resolves rather than repeats the piece.
16
+ - **First-use clarity.** Names, pronouns, abbreviations, references, and transitions
17
+ make sense when encountered, without knowledge from the editing process.
18
+ - **Reader effort.** A smart first-time reader can follow the argument once through.
19
+ Unpack only a genuine stumble; do not dilute expert language the audience needs.
20
+ - **Voice continuity.** The same person seems to have written the beginning, middle,
21
+ and end. Restore source-backed warmth or texture lost to over-editing.
22
+ - **Residual process language.** Remove internal labels, scoring talk, evaluation
23
+ jargon, or comments meant for the editor rather than the reader.
24
+ - **Genre and format.** The text looks and sounds native to its destination. Preserve
25
+ all legitimate lists, tables, code, headings, citations, links, and layout.
26
+ - **Last-mile polish.** Correct a safe leftover repetition, vague handoff, awkward
27
+ phrase, or mechanical inconsistency that survived the earlier passes.
28
+
29
+ ## Boundaries
30
+
31
+ Preserve every fact, claim, qualifier, name, number, date, link, quotation, source,
32
+ voice signal, regional spelling choice, and protected non-prose element. Do not add
33
+ examples, experiences, certainty, novelty, emotion, or specificity. Do not make a
34
+ substantive rewrite. If the intended correction is uncertain, leave the text alone
35
+ and name the ambiguity.
36
+
37
+ ## Finalizer brief
38
+
39
+ > You are the fresh-eyes finalizer. Read the complete verified text as a first-time
40
+ > reader, from title to final line. Apply only safe last-mile polish for overall arc,
41
+ > first-use clarity, reader effort, voice continuity, genre fit, residual process
42
+ > language, repetition, and mechanical consistency. Preserve every fact, claim,
43
+ > qualifier, name, number, date, link, quotation, source, voice signal, regional
44
+ > spelling choice, and non-prose element. Do not add detail, certainty, emotion,
45
+ > novelty, or generic polish. Return the complete text in its original format,
46
+ > followed by exactly one status: `approve without changes`, `changed — rerun final
47
+ > checks`, or `unresolved — needs the writer`.
48
+
49
+ ## Closed finalization loop
50
+
51
+ Approval is valid only when the finalizer returns `approve without changes`. If it
52
+ changes even one character, apply the complete revision and rerun, in order:
53
+
54
+ 1. the copy desk;
55
+ 2. the read-aloud editor;
56
+ 3. the verifier, including local and contextual checks; and
57
+ 4. this fresh-eyes finalizer.
58
+
59
+ Repeat for at most three rounds. The same exact text must clear all four roles, with
60
+ the fresh-eyes finalizer approving it unchanged. If the remaining issue cannot be
61
+ fixed without guessing, return the best source-preserving text that completed every
62
+ pass, identify the unresolved span, and do not describe it as fully verified.
@@ -56,6 +56,11 @@ experience — these alone are NOT evidence of AI:
56
56
  Require corroboration. A paragraph needs multiple independent tells, or a failed
57
57
  removal test, before it's slop.
58
58
 
59
+ This governs lexical flags only. It does not apply to the performed-register
60
+ family: register is a property of the piece, not of a paragraph. Four unmarked
61
+ antithesis pairs across four paragraphs *is* the corroboration — each one is
62
+ locally defensible, and the repetition is the whole finding.
63
+
59
64
  ## Signs of human writing — preserve on sight
60
65
 
61
66
  When a draft shows these, protect them through the rewrite; deleting them is
@@ -6,8 +6,8 @@ listener hears it: from the first line to the last, with each sentence setting u
6
6
  next. A stumble, cold transition, unclear antecedent, or change of voice can still
7
7
  survive a clean score and correct grammar.
8
8
 
9
- Run this pass on every deliverable after the copy desk. It is the last editorial pass
10
- before final verification and the Report step. Use a dedicated editor with fresh eyes
9
+ Run this pass on every deliverable after the copy desk. It is the spoken-flow pass
10
+ before verification and the separate fresh-eyes finalizer. Use a dedicated editor with fresh ears
11
11
  when the harness supports subagents; otherwise perform a separate, role-isolated pass.
12
12
  The editor must fix the actual deliverable and return the corrected artifact in the
13
13
  same format. An audit or list of suggestions is not a completed pass.
@@ -21,17 +21,33 @@ safe correction for:
21
21
  endings that make a reader stop or back up.
22
22
  - **Cold transitions.** Add or repair the hinge when a sentence, paragraph, or
23
23
  section arrives without a clear connection to what came before.
24
+ - **Paragraph-order dependence.** If adjacent prose paragraphs can trade places
25
+ without changing the argument, rebuild the progression. Do not impose a story
26
+ arc on FAQs, reference entries, independent findings, or genuine lists.
24
27
  - **Performed candor.** Remove announcements of honesty such as "honestly" or "to be
25
28
  fair" when the sentence can simply make its point.
26
29
  - **Reflexive agreement.** Remove automatic praise or agreement that appears before
27
30
  the substance has been checked. Let the facts determine whether the draft agrees,
28
31
  qualifies, or disagrees.
32
+ - **Recap-flattery.** In a reply, cut praise and a needless restatement of the
33
+ question before the answer. Keep setup that materially changes the answer.
34
+ - **Wall-of-text reply.** Break an answer where the reader must change task,
35
+ decision, time, or subject. Do not split a coherent narrative paragraph merely
36
+ to make it look lighter.
29
37
  - **Communicative drift.** Stop when fluent sentences no longer advance a clear
30
38
  point or reader need. Cut the passage, rebuild it around its purpose, or flag the
31
39
  missing intent rather than inventing one.
32
40
  - **Rhetorical scale mismatch.** Reduce grand reveals, lessons, or contrasts when
33
41
  the underlying point is too small or unsupported for the framing. Preserve a
34
42
  contrast that corrects a real, supported misconception.
43
+ - **Unsupported novelty.** Remove claims that nobody has noticed or named an idea
44
+ unless the source supplies a defensible comparison.
45
+ - **Self-labeling significance.** Replace an unsupported declaration that a point
46
+ is important with the consequence that makes it important.
47
+ - **Moral-adjective category error.** Do not call a system design, metric, or
48
+ technical choice brave, honest, ethical, or courageous when the sentence means
49
+ accurate, transparent, conservative, or reliable. Preserve a sourced moral
50
+ judgment about an actual agent or decision.
35
51
  - **Performed-writer register.** Flatten theatrical framing of ordinary work ("we
36
52
  hired an adversary"), epigram closers, staccato antithesis pairs ("Not perfect.
37
53
  Honest."), extended conceits (billing, courtroom, forensics, recipe), one-word
@@ -58,6 +74,8 @@ safe correction for:
58
74
  Do not merely flag these problems. Correct them directly wherever the intended
59
75
  meaning is certain.
60
76
 
77
+ For consistent reporting, use these names: paragraph-order dependence, unsupported novelty, self-labeling significance, moral-adjective category error, recap-flattery, and wall-of-text reply.
78
+
61
79
  ## Boundaries
62
80
 
63
81
  - Preserve every fact, claim, qualifier, number, name, date, link, and source.
@@ -103,7 +121,8 @@ Verify the exact artifact returned by the read-aloud editor:
103
121
  this read-aloud pass again, and repeat every final check.
104
122
 
105
123
  Stop only when the same artifact has cleared the copy desk, final read-aloud pass,
106
- semantic and format review, scorer, and fidelity check. Limit this repair loop to
124
+ semantic and format review, scorer, fidelity check, and the separate fresh-eyes
125
+ finalizer in `fresh-eyes.md`. Limit this repair loop to
107
126
  three rounds. If an issue still cannot be resolved without guessing, return the best
108
127
  source-preserving version that completed both editorial passes, state the unresolved
109
128
  span and failed check plainly, and do not describe the fallback as fully verified.
@@ -1,6 +1,6 @@
1
1
  # The Tell Taxonomy
2
2
 
3
- A hundred and five tells in six families, merged from WP:AICATCH (Wikipedia's editor
3
+ A hundred and thirteen tells in six families, merged from WP:AICATCH (Wikipedia's editor
4
4
  catalog, built from thousands of caught instances), the de-slop/stop-slop
5
5
  detector line, petergyang/no-ai-slop, blader/humanizer, the academic
6
6
  lexicon studies (Kobak, Liang, Juzek & Ward), and community taxonomies of
@@ -26,6 +26,8 @@ as weak evidence unless it is generic in context or appears in a cluster. A
26
26
  lone dash, formal sentence, transition, or supported contrast remains a style
27
27
  choice. See `evidence.md` for the study, limitations, and adoption decision.
28
28
 
29
+ Contextual review names six checks explicitly: paragraph-order dependence, unsupported novelty, self-labeling significance, moral-adjective category error, recap-flattery, and wall-of-text reply.
30
+
29
31
  ## 1. Lexical
30
32
 
31
33
  | Tell | Fix |
@@ -76,6 +78,8 @@ choice. See `evidence.md` for the study, limitations, and adoption decision.
76
78
  | Mechanical sentence openings: several consecutive sentences begin with the same subject or frame without building deliberate rhythm | Merge or vary the sentences; preserve purposeful anaphora |
77
79
  | Jargon compression: invented compound terms in place of explanation — "threshold cliff", "length-blind floor", "pinned high forever" | Unpack into the plain explanation once, then a short name only if the document truly reuses it; the fix is unpacking, not a synonym |
78
80
  | Stat pile-up: several datasets or tests crammed into one paragraph with no connective explanation | One test per paragraph, opening with what the test checks in plain words ("The first test checks that the score falls as humans get more involved"), numbers after the plain-language setup |
81
+ | Paragraph-order dependence: prose paragraphs can be shuffled without changing the argument | Rebuild a progression in which each paragraph earns the next; exempt FAQs, reference entries, independent findings, and genuine lists |
82
+ | Wall-of-text reply: an answer hides distinct steps or decisions in one unbroken block | Add only the paragraph breaks or list structure the reader needs; length alone is not the signal |
79
83
 
80
84
  ## 3. Rhetorical
81
85
 
@@ -86,6 +90,9 @@ choice. See `evidence.md` for the study, limitations, and adoption decision.
86
90
  | Manufactured stakes: "in today's fast-paced world", "now more than ever" | Start where the reader needs to start |
87
91
  | Performed candor: "let's be honest", "here's the thing", "truth be told" | State the point |
88
92
  | Rhetorical-question openers: "Ever wondered…?", "What if I told you…?" | The answer, as a statement |
93
+ | Unsupported novelty: "the problem nobody is naming" without a comparison or source | Make the narrower supported claim, or ask for the missing basis |
94
+ | Self-labeling significance: "this matters", "this is important", or "the key insight" substitutes a label for a consequence | State the concrete consequence and let it carry the weight |
95
+ | Moral-adjective category error: a technical choice or metric is called brave, honest, ethical, or courageous without a moral agent or decision | Name the engineering property or trade-off; preserve a real moral judgment when the source supports one |
89
96
  | Throat-clearing: "The uncomfortable truth is", "Let me be clear" | Cut; the claim stands alone |
90
97
  | Emphasis crutches: "Make no mistake", "Let that sink in", "Read that again" | Show the weight with the fact itself |
91
98
  | Meta-commentary: "In this post we'll explore", "Let me walk you through" | Just do it |
@@ -113,6 +120,8 @@ choice. See `evidence.md` for the study, limitations, and adoption decision.
113
120
  | Hyperbole universals: "nothing on earth", "on the planet", "in history", "known to man" | State the actual scope; the honest comparison is smaller and stronger |
114
121
  | Cute meta-taglines and campaign framing: "a meter you can argue with", "the fight against X" as a slogan | Describe the thing; "posts about writing quality" beats a campaign poster. "The fight against" is real usage in history and civic prose — flag the marketing register, not the phrase |
115
122
  | Staccato antithesis: two short balanced sentences, the second landing the twist — "Not perfect. Honest.", "Slop isn't a vibe. It's measurable.", "The draft was cheap. The signal it sent was not." | One plain sentence with the claim; at most one antithesis per piece |
123
+ | Unmarked antithesis: the same figure with no negation marker at all, so the whole "not X, it's Y" family walks past it. Four shapes — bare subject swap ("Llama is open-weights. Dolma releases the data."); isocolon, one verb frame with both arguments swapped ("Open weights let you adapt a model. An open stack lets you adapt the machinery that created it."); the stock closer ("Ai2 argues for a principle. This is what that principle looks like."); unmarked reversal ("No frontier lab had to decide. Thai researchers made that call themselves.") | State the claim once, plainly. The meter now catches the last three (`isocolon-ditransitive`, `this-is-what-looks-like`, `no-x-had-to`); bare subject swap stays a judgment call. **Count them** — one is a device, three in a short piece is the register |
124
+ | Significance scaffolding: a sentence announcing that a point matters instead of delivering it — "Here's the detail that matters:", "This is what that principle looks like when it works." | Delete the announcement and keep the point. Budget: zero |
116
125
  | Extended conceit: a process or abstraction dressed as physical drama — billing ("the bill lands on reputation", "gets billed to a reader"), courtroom ("never allowed to convict"), forensics ("rhythm leaves prints"), machinery ("opens the hood"), recipe ("has four ingredients") | At most one metaphor per piece, then plain language; name the actual mechanism |
117
126
  | Vibe-slang: "just a vibe", "vibe check", "argue with vibes", "has receipts" | The plain word: impression, judgment, evidence |
118
127
  | One-word drama beat: "Fine." dropped between claims as a rhythm device | Cut it or fold it into the sentence it interrupts |
@@ -125,13 +134,28 @@ same costume seen at detection time instead of rewrite time. The scorer
125
134
  catches the mechanical subset (`hired-adversary`, `turns-out-payoff`,
126
135
  `has-receipts`, `hyperbole-universal`, `argue-with-artifact`,
127
136
  `vibe-register`, `where-x-lives`, `billed-conceit`, `on-the-tin`,
128
- `minding-own-business`, `economics-brutal`, `opens-the-hood`, and the
129
- rider-gated "fight against"); epigram cadence, staccato antithesis, most
130
- conceits, jargon compression, and tagline register need the judgment pass,
131
- because their literal forms are legitimate in news, history, crime, and
132
- civic writing. The human-flagged spans that motivated the family live in
137
+ `minding-own-business`, `economics-brutal`, `opens-the-hood`, the
138
+ rider-gated "fight against", and since v2.5.10 — three of the four unmarked
139
+ antithesis shapes: `isocolon-ditransitive`, `this-is-what-looks-like`, and
140
+ `no-x-had-to`. Epigram cadence, marked staccato antithesis, bare subject swap,
141
+ most conceits, jargon compression, and tagline register still need the
142
+ performed-register pass, because their literal forms are legitimate in news,
143
+ history, crime, and civic writing.
144
+
145
+ `isocolon-ditransitive` is worth reading closely, because it marks the boundary
146
+ between what a rule can safely reach and what it cannot. It fires only when the
147
+ **same verb** is repeated in a give-you frame across a sentence break. That
148
+ identity requirement is the whole safety property: rhetorical anaphora repeats
149
+ its frame with a *different* verb every time — "we can not dedicate, we can not
150
+ consecrate, we can not hallow" — so the rule cannot touch it. Relaxing the
151
+ backreference from the verb to the frame was tested and fires on the Gettysburg
152
+ Address, the Federalist, and an ESL engineer's email. Do not relax it.
153
+
154
+ The human-flagged spans that motivated the family live in
133
155
  `data/corpus/performed-register/` — the mechanical half is regression-tested,
134
- the judgment half is the read-aloud pass's fixture list.
156
+ the judgment half is the performed-register pass's fixture list. Files move
157
+ between the two halves in both directions: `verdict-arithmetic.txt` graduated
158
+ from judgment to mechanical in v2.5.10 when a safe rule finally reached it.
135
159
 
136
160
  ## 4. Punctuation & formatting
137
161
 
@@ -153,6 +177,7 @@ the judgment half is the read-aloud pass's fixture list.
153
177
  |---|---|
154
178
  | Assistant voice: "Great question!", "I hope this helps", "I'd be happy to" | Delete |
155
179
  | Reflexive agreement or praise: approving the premise before checking it, flattering the writer, or refusing to take a supported position | Answer the substance first; agree, qualify, or disagree according to the facts |
180
+ | Recap-flattery: a reply opens by praising and paraphrasing the question before answering it | Start with the answer; keep only context the reader actually needs |
156
181
  | Chatbot residue: "Would you like me to…", "Let me know if you'd like…", "my training data" | Delete — it is proof of paste, not style |
157
182
  | Knowledge-cutoff residue: "as of my last update", "not widely documented" | Delete; verify the claim |
158
183
  | Passive or subjectless wording that hides an actor who matters | Name the actor and use the direct verb; keep passive voice when the actor is unknown, irrelevant, or native to the genre |