Removes AI writing patterns and restores the rhythm of human prose.
An agent skill that strips AI writing patterns and puts human rhythm back, in Turkish, English and Arabic. It works in any agent that can read a file, such as Claude Code, Codex or Cursor. It exists because the default output of a language model is the statistical average of everything ever published: fluent, clean, the voice of no one in particular. This skill helps you deviate from that average.
Two claims, both held loosely.
- As far as we know, this is the only skill with a pattern set built specifically for Arabic, where detectors perform worst and generic advice does the least good.
- And as far as we know, it is the only one that covers the Turkish, English and Arabic triad in one place, with separate thresholds for each rather than one English checklist translated three ways.
If you know of another that does either, the claim is happily retired.
trilingua works in any agent that can read a file; SKILL.md is the whole
skill. Four channels below, with full per-tool steps and verification in
INSTALL.md. The .claude-plugin/ directory is only used by the
Claude Code marketplace; other methods ignore it.
Claude Code (plugin marketplace):
/plugin marketplace add batuhan-bas/trilingua
/plugin install trilingua@trilingua
Or clone into the skills directory (SKILL.md is at the repo root, so it is
discovered as-is):
git clone https://github.com/batuhan-bas/trilingua.git ~/.claude/skills/trilinguanpx skills (installs into any supported tool):
npx skills add batuhan-bas/trilinguaCodex CLI: link the repo into ~/.codex/skills/; the skill triggers
implicitly. Cursor, Gemini CLI: each has a thin adapter under adapters/
that points the tool at SKILL.md. See INSTALL.md for exact
commands.
Any other tool or chat interface: paste SKILL.md as a system instruction
and add the matching references/ file. See INSTALL.md.
To confirm any install, ask the tool to clean a deliberately AI-flavored
sentence (examples in INSTALL.md). If it routes by language and
reports the patterns instead of only rewording, it loaded. You can also run
python lint.py --help to check the measurement tool is in place.
Tested on Claude Code and Codex CLI. The Cursor and Gemini adapters follow each tool's documented format but have not been verified on a live install. If you use either, a confirmation or a fix is welcome.
Three modes, described in full in SKILL.md.
| Mode | What it does | Example command |
|---|---|---|
| Rewrite (default) | flag the patterns, fix them, then run the audit pass | "Rewrite this post so it doesn't read as AI-generated." |
| Detect | flag without changing anything; for text you must not alter, or a quick scan | "Just tell me what reads as AI here, don't edit it." |
| Edit in place | minimal targeted edits to a prose file, leaving passages that already read as human alone | "Edit README.md in place, touch only the parts that sound machine-written." |
Three languages. The shared SKILL.md carries the structural and tonal
patterns, the format and sourcing tells, and the seven language-agnostic
thresholds. Each reference file adds what is specific to its language:
| Language | What's specific | Reference file |
|---|---|---|
| Turkish | the -maktadır rhyme, nominalization pileups, six Turkish thresholds, adapted from the insanca project |
references/turkish.md |
| English | the flagged-word list, participial pileups, em dash math, six thresholds | references/english.md |
| Arabic | register collision, من قبل, accidental saj', six thresholds |
references/arabic.md |
Every threshold is a countable number, not a vibe:
| Threshold | Alarm |
|---|---|
| Burstiness | below 0.4 |
| Em dash (English) | more than 20 per 1000 words |
| Em dash (Turkish, Arabic) | over 2 per 1000 |
| X-not-Y constructions | three or more |
...and so on.
It is not a detector-evasion tool. Detectors are unreliable; research puts human
accuracy near a coin flip, and automated tools regularly misflag genuine human
writing. Chasing a green score teaches you to write like the average the model
already produces. The goal here is the opposite: text carries a human signature
because of what the writer knows, saw, or got wrong, and no amount of
detector-gaming supplies that. SKILL.md also warns that overcorrection, forced
fragments and artificial roughness, is its own signature. Write well; don't
perform authenticity.
A deterministic companion. It measures what the skill describes so a machine can check it, and it never rewrites: it only counts.
python lint.py draft.md # auto-detect language
python lint.py draft.md --lang tr # force a language
python lint.py draft.md --json # machine-readable
python lint.py posts/*.md # several filesIt detects the language, excludes code and inline code, URLs, headings, quotes from the count, prints a row per metric with its value, threshold, status, and exits non-zero if any threshold is crossed so it fits in CI. It needs only the Python standard library and runs on 3.9 and up.
One warning it prints, and worth repeating: no single metric proves anything. Three or four falling together is the signal. Read the flagged passages yourself.
To add a language, follow the references/ pattern. Write a file that covers
only what is specific to that language, ending in a threshold table with three
columns: measure, how to count it, and the alarm value. Then add the language's
word lists, regexes, thresholds to lint.py, keeping the numbers in the
THRESHOLDS dictionary at the top of the file rather than in the code. Add a
before/after file under examples/.
The full source list lives at the end of SKILL.md. The Turkish patterns are
adapted from tahiryildiz/insanca, an open-source agent skill (MIT) for
cleaning AI patterns out of Turkish text, which supplied 48 patterns and 17 flow
rules: https://github.com/tahiryildiz/insanca
Pattern inventories: Wikipedia's "Signs of AI writing"; SlopDetector's "Signs of AI Writing: 12 Patterns With Reproducible Thresholds"; Barış Özkul, "Türkçenin Yapay Zekâyla İmtihanı," Birikim.
Quantitative research: Kobak et al. (2024, arXiv:2406.07016) on 14.2M PubMed abstracts; Freeburg (2026, arXiv:2603.27006) on em dash measurement; Al-Shaibani and Ahmed (2025, arXiv:2505.23276) on Arabic stylometry; GPTZero's burstiness formula.
Craft: William Zinsser, On Writing Well; George Orwell, "Politics and the English Language."
MIT. Copyright (c) 2026 Batuhan Baş. See LICENSE.