Detect and rewrite AI writing patterns in Korean, English, Chinese, and Japanese text so it reads as if a human wrote it. Meaning-preservation (MPS) verified.
$npx -y skills add devswha/patina --skill patinaInstalls into the current project.
Run `npx skills use "https://github.com/devswha/patina" --skill "devswha/patina"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/devswha/patina" that are relevant to the current task. Run `npx skills add "https://github.com/devswha/patina"` and select the relevant skills, then follow their instructions.
| 1 | <p align="center"> |
| 2 | <img src="assets/brand/patina-mark.svg" alt="patina mark" width="172"> |
| 3 | </p> |
| 4 | |
| 5 | <h1 align="center">patina</h1> |
| 6 | |
| 7 | <p align="center"> |
| 8 | <strong>Strip the AI packaging. Keep the meaning.</strong> |
| 9 | </p> |
| 10 | |
| 11 | <p align="center"> |
| 12 | <a href="README_KR.md"><b>한국어</b></a> · |
| 13 | <a href="README_ZH.md"><b>中文</b></a> · |
| 14 | <a href="README_JA.md"><b>日本語</b></a> · |
| 15 | <b>English</b> |
| 16 | </p> |
| 17 | |
| 18 | <p align="center"> |
| 19 | <a href="https://github.com/devswha/patina/actions/workflows/test.yml"><img alt="Tests" src="https://github.com/devswha/patina/actions/workflows/test.yml/badge.svg"></a> |
| 20 | <a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a> |
| 21 | <a href="#quick-start"><img alt="Skill: Claude Code | Codex | Cursor | OpenCode" src="https://img.shields.io/badge/Skill-Claude%20Code%20%7C%20Codex%20%7C%20Cursor%20%7C%20OpenCode-blueviolet"></a> |
| 22 | <a href="https://github.com/devswha/patina"><img alt="Languages: KO | EN | ZH | JA" src="https://img.shields.io/badge/Languages-KO%20%7C%20EN%20%7C%20ZH%20%7C%20JA-green"></a> |
| 23 | <a href="CHANGELOG.md"><img alt="Version 6.3.1" src="https://img.shields.io/badge/version-6.3.1-blue"></a> |
| 24 | </p> |
| 25 | |
| 26 | <p align="center"> |
| 27 | <a href="https://patina.vibetip.help/"><b>Try it in the browser — no install</b></a> |
| 28 | </p> |
| 29 | |
| 30 | <p align="center"> |
| 31 | <img src="https://raw.githubusercontent.com/devswha/patina/main/assets/demo/patina-demo-live-en.gif" alt="Live screen capture of the hosted patina playground at patina.vibetip.help: an AI-sounding English announcement is typed in, rewritten naturally by the real server-side pipeline while the facts survive, and verified with MPS 100 and Fidelity 75 plus a deterministic AI-signal drop from 100 to 0" width="960"> |
| 32 | </p> |
| 33 | |
| 34 | <p align="center"><em>Paste AI-sounding text → patina rewrites it in place, keeps the facts (the "30 templates" number survives), and drops the deterministic AI signal 100 → 0 (MPS 100 / Fidelity 75).</em></p> |
| 35 | |
| 36 | **The words are not the tell. The architecture is.** We ran a pre-registered study with independent cross-family LLM judges: a rewrite can strip the AI vocabulary, yet judges still recognize AI documents by their *shape* — uniform paragraphs, checklist-complete coverage, the tidy problem→lesson arc. Word-level cleanup moved judged AI-likeness a lot on English documents (−23 points) and barely at all on long Korean ones. That result decides patina's design: detect both layers, and publish the losses next to the wins ([the study](docs/research/2026-rewrite-efficacy-study1.md)). |
| 37 | |
| 38 | patina is a deterministic, pattern-based humanizer for Korean, English, Chinese, and Japanese. It finds AI-sounding phrasing and rewrites it without changing the claim, numbers, polarity, or causation. It is not a black-box paraphraser, authorship detector, or detector-bypass tool — it is built for allowed AI-assisted drafting where the author wants cleaner voice, an audit trail, and meaning-preservation checks. |
| 39 | |
| 40 | More examples: [Before/After Gallery](docs/EXAMPLES.md) ([한국어](docs/EXAMPLES_KR.md)) · [CLI transcript](docs/DEMO.md). |
| 41 | |
| 42 | ## Quick Start |
| 43 | |
| 44 | ### Browser playground |
| 45 | |
| 46 | Open **[patina.vibetip.help](https://patina.vibetip.help/)** — paste KO / EN / ZH / JA text for a real rewrite gated by the MPS/fidelity floors, with the deterministic AI signal measured before → after. Rewrites and scoring run server-side; the free tier uses the service's own model key (rate-limited). **API mode** forwards your own key per request through the patina server to the provider you pick — never stored or logged (metrics are sanitized: no text, prompt, output, key, or IP). A hosted **Pro** tier unlocks higher limits — [see pricing](https://patina.vibetip.help/#pricing). |
| 47 | |
| 48 | ### Agent skill |
| 49 | |
| 50 | **Let your coding agent install it** — paste this into Claude Code, Codex CLI, Cursor, Gemini CLI, or any agent: |
| 51 | |
| 52 | ```text |
| 53 | Install patina by following https://raw.githubusercontent.com/devswha/patina/main/INSTALLATION.md |
| 54 | ``` |
| 55 | |
| 56 | The agent fetches [`INSTALLATION.md`](INS |