Skip to content

slopless 0.2.20

Choose a tag to compare

@tartakovsky tartakovsky released this 02 Jun 15:24
· 9 commits to main since this release
98ae683

slopless 0.2.20

A precision-focused release: five new checks, the first warning/error severity tier, and a corpus-validated precision pass that removes the bulk of the historical false positives without dropping genuine slop catches. 62 → 67 rules.

New checks

  • Four new slop-category rules
    • genre-cliches - stock genre/marketing cliche phrasing
    • self-help-cliches - motivational/self-help filler
    • seo-filler - SEO boilerplate phrasing
    • weasel-attribution - vague "studies have shown" style attribution without a citation
  • actually-overuse - density-based, not a flat ban. It never flags a single use; it warns above one "actually" per 1,000 words and errors above two per 1,000. Targets the AI tic of stacking "actually" while leaving normal contrastive use alone.
  • Expanded coverage in corporate-speak, cliches, and the lead-in opener checks (boilerplate-framing).

New capability: warning vs error severity

slopless previously emitted every finding at error severity. It now supports a per-finding severity tier (severity: 1 warning, severity: 2 error) in the JSON output. Detection stays separate from judgment: rules detect occurrences, and the reporter decides the level. actually-overuse is the first rule to use it.

Precision (corpus sentence audit)

Every rule was audited sentence-by-sentence against a large human + AI corpus, classifying each flag as a genuine slop catch or a misfire on valid usage.

  • Dropped 104 false-positive phrases across the phrase rules (e.g. "in other words", "as such", "of course", "best practices", "when it comes to", plus citation phrasing that is legitimate when actually cited).
  • Guardrailed 14 rules so they target genuinely weak writing instead of valid usage: prohibited-words (dropped the bare "actually" ban in favor of the density rule), perception-verb-density (kept narrative verbs, dropped generic/noun senses like "peer review"), universalizing-claims (no longer flags plain counts like "several factors"), generic-signposting (dropped the "as such" connective), softening-language (fixed an "in some cases" double-count), triple-repeat (skips tables of contents and list markers), boilerplate-framing (gates "when it comes to" to opener position), negation-reframe (skips additive "not only X but Y" correlatives), and more.
  • Net effect on a 5,923-document corpus: about 2,020 fewer false positives on human prose, with the AI/human discrimination preserved or improved (e.g. actually-overuse flags AI prose roughly 5x more often than human prose).

Internal

  • Density and severity judgment is decoupled from the detection rules into a reusable reporting module (src/reporting/density.ts), so rules detect signals and the reporter decides whether a signal is acceptable, a warning, or an error.

No breaking changes. Output shape is unchanged; warning-level findings simply carry severity: 1.