· 6 min read
Text out of a model reads fine and still looks generated the moment it lands somewhere a person is going to read it closely: an email, a report, a page on your own site. Most of what gives it away is not the argument. It is a handful of mechanical habits that survive copy and paste, and cleaning them is a checklist rather than a rewrite.
| What it looks like | Fix |
|---|---|
| Em dashes used mid-sentence, in quantities no one types by hand | Replace with a plain hyphen, or a comma or colon where that reads better |
| Curly quotes and apostrophes mixed into straight-quote text | Straighten them so the document is consistent |
| Non-breaking spaces and zero-width characters, invisible on screen | Delete them; they break search and line wrapping later |
| Decorative bullet glyphs copied out of a chat interface | Turn them into plain hyphens |
| Stray blank lines and trailing spaces | Collapse them |
Openings that announce what the text is about to do. Closings that summarise what was just said. Hedging adverbs attached to claims that did not need one. These are editorial, not typographic, and no cleaner can rewrite a sentence's judgment for you. What the mechanical pass does is remove the noise so those habits are easier to spot and fix by hand.
Run the cleaner on a copy when the source is code or structured data rather than prose. A non-breaking space inside a code block can be load-bearing, and straightening a quote inside a string literal changes the string. For prose the pass is safe; for anything a machine is going to parse afterwards, check the diff first.
The text going through this pass is usually unpublished: a draft, a client email, internal documentation. The cleaner here runs in your browser tab, so the draft never leaves your machine, which you can check by disconnecting from the internet once the page has loaded and running it anyway.
Related: How to remove Markdown formatting from text
Related: How to remove citations like [1] from copied text
Yes. All processing happens locally in your browser. The text is never sent to a server, which you can verify by going offline after the page loads and using it anyway.
Models reach for the em dash far more than people typing on a normal keyboard, so a run of them is one of the fastest tells. Each one becomes a plain hyphen.
No. This pass works on characters, not markup. For Markdown syntax, use a dedicated strip-markdown pass instead.
No. Replacing an em dash with a hyphen, straightening a quote, or removing an invisible character changes the encoding, not the meaning.
No. Stock openings, summarising closings and unnecessary hedging are editorial choices a person has to make. The mechanical pass just clears the noise so those are easier to spot.