A linter for prose written with a language model
Paste a text. Twelve rules look for the phrasing a model reaches for more often than a person does, with thresholds measured on a corpus of 389 documents. Each finding gives you the line, the column, the rule and a way to rewrite it.
up to 20 000 characters · 20–60 s per check · text is not stored
Every finding names a place in your text — a line and a column — and proposes a rewrite. What to change stays your call.
What it catches
All twelve rules, in two kinds: nine judged by a model against a written criterion, three that count words and compare against a threshold. A dashed badge marks a model rule.
Statements that say nothing
“This is not just a tool, but a platform”: a contrast standing in for a statement.
A claim about the world with no number, source, example or mechanism behind it.
Stock wording a model reaches for: delve into, it’s important to note, at the end of the day.
Text about the text
“In this article we’ll look at”, “as discussed above”: the text describing itself.
“Let’s break it down”, “picture this”: a remark about what the author is doing.
“Bottom line: we fixed it”: a label doing a sentence’s work.
Rhythm and repetition
Adjacent sentences that open the same way.
One rhetorical device used several times in a row.
A fragment that opens with a conjunction and leans on the sentence before it.
Counted per 1 000 words
More than 20 em dashes per 1 000 words — 15 in Russian, each measured on its own corpus.
More than 5 analogy markers (like a, as if, akin to) per 1 000 words.
More than 12 evaluative words (amazing, revolutionary, seamless, robust) per 1 000 words.
Compared with AI detectors
A detector reads the whole text and answers with one number: the probability that a model wrote it. detick answers per sentence, with the rule it broke and a way to rewrite it. Who wrote the draft is a question detick never asks. It reports what a reader will trip over.
detick's answer2
- 3:1no-antithesismodel
- :1claim-without-sourcemodel
Captured from a run on the text above, unedited.
How it works
- 3 rules · deterministic
- They count words and dictionary hits and compare the count with a threshold per 1 000 words, so the same text always gives the same result.
- 9 rules · model
- A model judges the text against a criterion written in plain language. Each criterion was tested in runs against the real API, including control examples on the edge of the rule: a rhetorical device, a legitimate parallel structure, a real quotation.
- thresholds · 389 en · 583 ru
- Calibrated by measurement on a real corpus: 389 English documents, 358 thousand words of real markdown; 583 documents for Russian, each locale on its own numbers.
- parser · markdown
- A markdown parser does the reading, which is how inline code, code blocks and frontmatter drop out of the check before a rule ever sees them.
- positions · line:column
- The model names sentences by number and detick computes the positions itself. In detick's own runs against the API, models pointed at character offsets too unreliably to trust.
- status · found / clean / failed
- A rule that could not run reports that it could not run. “Nothing found” and “could not check” stay separate, so an empty list means the check happened.
The same in the terminal
The CLI came first: twelve rules, two locales, findings printed in your terminal.
$ detick onboarding.mdonboarding.md 1:1 [analogy-density] Too many analogies: 4 in 227 words (limit 2). 1:1 [evaluative-density] Evaluative-word density too high: 6 in 227 words (limit 3). 3:74 [dash-density] Too many em dashes: 11 in 227 words (limit 5). Replace some with a period, a comma, or "because". 7:1 [repeated-rhetorical-frame] The rhetorical frame "the key question" repeats 3 times — reads like a template, not a live thought.$ detick guide# prints the note each rule ships with for the writerAntithesis. Say what the thing is, and don’t say what it isn’t. “It’s not a tool, it’s a platform” replaces a statement with a contrast: cut the first half, and the second either stands on its own or turns out empty.
Unsupported claim. When asserting something about the world, give it support: a number, a named source, an example, or a mechanism. “This noticeably improves conversion” can’t be checked by anyone; “12% in our test over two weeks” can.
Meta-commentary. Start with the content, not with a plan for narrating it. The reader already opened the article and knows it’s about something. The first approach is the first sentence.