Repository navigation
v0.1.0
First public release.
- 24-rule catalog across four categories: rhetorical-tic, puffery, structure,
hedging. Seesloplint rulesorREADME.mdfor the full list. check,rules,explain,versioncommands; JSON and human-readable
output;--select/--ignoreby rule id or category;--markdownto skip
fenced code, inline code, and URLs before scanning.- Exit codes:
0clean,1notes found,2bad arguments or invalid input
(including invalid UTF-8 and unknown--select/--ignoreids). - Zero runtime dependencies; requires Ruby >= 3.3.
-v/--versionprint the version and exit 0. optparse auto-registers its
own--versionswitch on any parser that doesn't define one, and that
default printed "version unknown" to the real stdout and hard-exited,
bypassing theout:/return-a-code contract every other path honors --
caught by hand-testing the freshly built gem before this release shipped.- Rationale text (
sloplint explain) across six rules no longer narrates the
rule's own implementation -- pattern scoping, anchoring, tuning history,
corpus-driven thresholds. It states why the construct reads as AI writing
and nothing else.
Rules narrowed against a corpus of real human prose (the Federalist Papers,
Moby-Dick, Walden) before release:
not-just-x-but-yanchored on a preceding copula so it no longer flags
ordinary correlative conjunctions ("not only... but...").puffery-wordsdropped the bare adjective "profound" and narrowed "in the
heart of" to require a place object, both unguarded false-positive sources.em-dash-overuse,thats-how-x, andannounced-takeawayscoped to real
paragraphs (blank-line boundaries) instead of source lines, so hit counts
no longer swing on Markdown line-wrapping.clause-triad-thenremoved: went 0-for-40 on its own description against
the human corpus, and no reliable narrowing was found.no-x-no-y's rationale corrected to match what the pattern actually does
(fires at two items; the frequency gap between human and model prose is
the justification, not an item-count claim the pattern didn't enforce).