Chris EichlerAI-first Product
& Marketing

Anti-AI Writer

Works for any text type: blog posts, LinkedIn posts, newsletters, ad copy, pitches, reports, emails, essays, term papers. Tuning is German-first — English and other languages are still picked up by the LLM layer, but with a lower hit rate.


Download

Latest version: anti-ai-writer.zip ↓ — direct download from the most recent GitHub release.

Changelog, older versions and source: github.com/e3xler/anti-ai-writer/releases


Install

Three ways to use the skill. Pick the one that fits your setup.

1. Cowork (Claude Desktop App) — the easy path

  1. Grab the ZIP from the Download section above and unzip it.
  2. Double-click anti-ki-review.skill. Cowork picks it up and asks whether to install — confirm.
  3. Done. The skill is available the next time you start Cowork.

If the double-click does nothing: open Cowork → Settings → Skills / Plugins → "Install from file" → pick the .skill file.

2. Claude Code (CLI)

Claude Code doesn't have an install command for individual skills — you unzip the .skill file directly into your personal skills directory:

unzip anti-ki-review.skill -d ~/.claude/skills/

The skill is available the next time you start Claude Code (in recent versions even immediately, without a restart).

Background: .skill files are individual skills. If you want to bundle multiple skills, MCPs and commands, the .plugin format is the right one — that goes through plugin marketplaces. For this single skill, unzipping directly is enough.

3. Standalone (Python, no Claude)

The two core functions — watermark cleaner and style linter — also run as plain Python scripts. No dependencies, Python 3 is enough.

# Detect and remove hidden Unicode characters
python3 source/scripts/watermark_cleaner.py mytext.md --mode clean_basic --output clean.md

# Scan for stylistic AI patterns
python3 source/scripts/kadenz_linter.py mytext.md

Both return structured JSON.


First run — Quick Start

In Claude, paste the text (or attach it as a file) and use one of the following triggers:

"Does this sound like AI?"

"Review this text for AI patterns."

"Make this more human."

"Strip hidden characters, kill the AI voice."

The skill activates automatically as soon as one of these triggers shows up. Nothing to start manually.


The three modes

Mode 1 — Review only

When: You want to know whether a text sounds like AI before changing anything.

Triggers:

  • "Does this sound like AI?"
  • "Check this, does it read as human?"
  • "Review only, no rewrite."

What you get: A findings report with a verdict (reads as human / needs work / clearly sounds like AI), a list of every pattern found with quotes and fix suggestions — the original text stays untouched.

Mode 2 — Review + Rewrite

When: You want both — to know what's off and see a cleaner version.

Triggers:

  • "Make this more human."
  • "Review and rewrite."
  • "Fix the AI voice, I want the report too."

What you get: First the report, then a revised version of the text. Spots that can't be fixed without domain knowledge get marked with [?] instead of invented.

Mode 3 — Rewrite only, fast

When: You already know the text is AI-heavy and just want the clean version.

Triggers:

  • "Just fix it, no report."
  • "Rewrite this, short and good."
  • "Quick rewrite."

What you get: The rewritten version directly. If anything is unclear, a short note comes with it.


What the skill actively adds in the rewrite

Until v1.1.0, the skill mostly removed AI patterns. Triplets, filler phrases, puffery. Since v1.1.0 it also adds in what makes human prose feel human — the quirks LLMs systematically skip.

Four techniques work together.

Burstiness — vary sentence length

LLM output stays suspiciously even in the 12–20-word corridor. Humans swing hard. The skill drops a three-word sentence next to a 28-word one — not as a scheme, but where the content carries it.

Rule of thumb: in a 100-word paragraph, at least one sentence under 5 words, one over 25. If everything sits in the same 10-word band, it reads AI.

Statistically unusual word choice

Instead of the most statistically likely verb or noun, a rarer, more precise alternative — when the meaning still fits. The German linter ships with substitution tables; the principle works in any language.

Expected (DE)Less expected
verbessernschleifen, schärfen, zuspitzen
beeinflussenverschieben, biegen, kippen
reduzierenabschmelzen, abräumen, eindampfen
ProblemKnoten, Bruchstelle, Reibung
VeränderungRuck, Schwenk, Drift

Caveat: only swap when the meaning actually fits, or you shift the claim. And register check: „zugespitzt" works in a LinkedIn story; in a financial report it sounds wrong. Density: 2–4 unusual choices per 200 words is enough.

Idiosyncrasies

Half-sentences as standalone claims. Self-correction mid-sentence. Parenthetical asides. The occasional conjunction-led opener — the thing your teacher used to ban.

BAD: "The concept doesn't convince because it's too abstract."
FIX: "The concept doesn't convince. Too abstract."

BAD: "The migration was complex and took four weeks."
FIX: "The migration was complex (more complex than the plan
      had it) and took four weeks."

One per paragraph, two at the most. Past that, it becomes a new pattern — and patterns are what you wanted out.

Heavy paraphrasing

Instead of smoothing word by word: swap whole phrase blocks that LLMs lean on. Nominal style → verbal style. Reorder where it helps.

LLM-typicalSubstitute with
"in terms of" / "with regard to""about", "for", or drop
"plays a role in"make it concrete, or "shapes", "affects"
"in addition to this""also", "and"
"a wide variety of"name a number, or "many"
"essentially"usually drop
"it can be noted that"drop, say it directly
BAD: "Against the backdrop of this development, the new platform
      plays a central role in the transformation."
FIX: "The new platform carries the rebuild."

This technique shifts the statistical signature of the text more than any other. It's still not a detector bypass — AI detectors work on different signals (perplexity, burstiness, statistical classification), and stylistic smoothing guarantees nothing there.


Tips for long texts (term papers, reports, articles)

The skill handles arbitrarily long texts, but for very long documents (over ~5,000 words) it's worth working chapter by chapter. Three reasons:

  1. Better quality per chapter. If the skill processes a whole book in one pass, the analysis goes shallow — many findings per chapter, but little depth.
  2. You can intervene between chapters. If chapter 1 gets rewritten in a direction you don't like, you can course-correct before chapter 2.
  3. The context window stays relaxed. Long text plus report plus rewrite plus discussion adds up fast. Chapter-wise work keeps every individual chat focused.

Step-by-step workflow for long documents

Step 1 — Prep (once, whole document)

Upload the entire document once as a file and say:

"Only Step 0 please — strip hidden characters from the entire document. No style analysis. Give me the clean version back."

This is deterministic and fast. You get a version without zero-width spaces, BOM, NBSPs etc. before you go into content work. Save this version as your master.

Step 2 — Chapter-wise style work

Open a new chat per chapter. That way the context window per chapter stays maximally available.

In each chapter chat:

  1. Paste the chapter text.
  2. Pick a mode — e.g.: "Make this chapter more human. Keep the technical register. If anything is unclear in substance, mark it with [?]."
  3. Read the report, check the rewrite.
  4. For [?] spots, either supply the missing info or rewrite the spot yourself.
  5. Paste the revised chapter back into your master document.

Step 3 — Final pass (whole document)

Once every chapter is revised, upload the full master once more and say:

"Final check — anywhere chapter borders become visible? Tonal breaks, repeated phrasing, inconsistent technical terms?"

The skill then scans for the transition issues that chapter-wise work can introduce.

Rules of thumb for chunk size

Document lengthApproach
Under 1,000 wordsIn one pass
1,000–5,000 wordsOptional split, fine in one pass
5,000–20,000 wordsChapter by chapter, one chat per chapter
Over 20,000 wordsChapter by chapter, plus regular "/clear" inside chapter chats or close and reopen when full

Practical tricks

  • Never overwrite the original. Always work on a copy. If the rewrite loses something you need, you can pull it back.
  • Preserve markers. If your original contains footnotes, citation marks or Markdown structures, tell the skill explicitly: "Keep all footnote references (e.g. [3]) and Markdown headings unchanged."
  • Protect technical terms. For academic texts, list the technical terms once and say they stay as-is. Otherwise the anti-"Elegant Variation" check might swap them for synonyms.
  • Exempt quotes explicitly. Literal quotes in your text are off-limits for rephrasing: "Anything in quotation marks is a citation and stays word-for-word."

Note for students and academic writing

The skill is good for: you wrote your paper yourself, or you developed the argument yourself, and you want to clean up the spots where your language reads too clichéd, too generic, or too "AI-typical" — whether that came from AI help or just from academic writing habits.

The skill is not good for: submitting a fully AI-generated paper as your "own". First, the skill can't hide that — AI detectors lean on perplexity, burstiness and statistical classification, and stylistic smoothing only goes so far. Second, at most universities this is academic misconduct with clear consequences. If that's what you're looking for, this skill is the wrong tool, and the skill itself will say so in the chat.

Practical recommendation: be transparent with your supervisor about how and where you used AI. At many universities today this is explicitly allowed if it's documented.


FAQ

Does the skill work for English? Limited. The structural patterns (rule of three, negation-affirmation, puffery) are picked up by the LLM layer across languages. The mechanical linter and the vocabulary list are German-tuned, though — so English texts get fewer automatic hits.

The rewrite is too short / too long. What now? Say so in a follow-up: "The rewrite is too short, keep more of the original argument." Or vice versa. The skill follows the original, but if the source contains a lot of phrase-packaging, the rewrite is naturally shorter.

What do the [?] markers in the rewrite mean? Spots where the skill couldn't decide without your knowledge how to phrase a concrete claim. Example: "plays a decisive role in digitalisation" becomes [? Which role exactly? A number or a concrete effect would help here.]. You fill those spots with real substance — the skill never invents.

How do I know if my text actually sounds "human"? Read-aloud test. Read the rewrite aloud. If you stumble or something sounds "like ad copy", the rewrite wasn't aggressive enough — say so in the follow-up.

What happens to Markdown structures (headings, lists, code)? The skill keeps them by default. If you're unsure, point it out explicitly: "Keep all Markdown structures unchanged, only rewrite the prose."

Can I check multiple texts at once? One text per chat is recommended — otherwise the findings mix. For batch processing many short texts: open a new chat per text.


Updates and source code

Latest version, changelog and source: github.com/e3xler/anti-ai-writer

License: MIT.

Ideas on AI-first Product Management & Marketing, straight to your inbox.

No spam, unsubscribe at any time

Chris Eichler