New to the vocabulary? Start with the Glossary for short definitions of MPS, fidelity, burstiness, MATTR, modes, and other recurring terms.
No. patina is an editing and audit tool.
AI detectors are noisy, and patina does not treat any score as proof that a text was written by a human or by AI. The useful artifacts are the audit, the diff, and the meaning-preservation checks: what changed, why it changed, and whether the original claims survived.
Many model outputs use the same surface habits: inflated stakes, vague balance, benefit stacking, corporate abstractions, metronomic paragraph rhythm, and filler transitions. patina looks for those patterns and rewrites the affected passages into plainer prose.
The goal is not to make a text deceptive. The goal is to remove generic model voice while keeping the actual message intact.
patina extracts semantic anchors before rewriting: claims, polarity, causation, numbers, negation, and other high-risk details. After each rewrite phase, it checks whether those anchors are still present and whether their polarity stayed the same.
If a rewrite weakens, deletes, or reverses an anchor, patina retries the section or rolls it back.
MPS means Meaning Preservation Score. It is a rewrite-side safety signal that estimates how many extracted anchors survived the edit.
A high MPS does not mean the prose is perfect. It means the rewrite did not obviously drop or flip the claims patina was tracking.
The score is a rough editing signal from 0 to 100. Lower is less AI-sounding.
It is not a truth machine. The scoring formula is deterministic, but severity assignment can vary by roughly 8-10 points between model runs. Treat the range and the highlighted patterns as more important than the exact number.
Current calibration (2026-05-22) reports 67.3% editing-hotspot catch [63.5-71.0%] across GPT-5.5, Claude Sonnet 4.6, and Gemini 2.5 Pro CLI samples (n=600, Korean+English). Human-control false positives are 16.0% [11.6-21.7%] (n=200). See 2026-rebaseline.md for per-language/model cells.
False positives are expected, especially for encyclopedic, corporate, academic, or heavily edited prose. patina is meant to help edit suspicious passages, not to accuse a writer.
See the False-positive Gallery for safe examples of registers that should be treated as editing hints rather than authorship accusations.
See ETHICS.md for the intended-use position statement.
Yes, if you already have the Codex CLI installed and logged in. The installer can wire patina into Codex CLI as a backend, so no separate API key is required for that path.
Other providers can be configured through the documented backend and provider settings.
The web playground runs entirely in your browser. It makes no network calls and loads no analytics or trackers, so text you paste into it never leaves the page.
The CLI runs its deterministic analysis (the audit and the score) locally. The only step that sends text off your machine is the rewrite, and it goes to the backend you choose: a CLI you are already logged into, such as Codex, Claude, Gemini, or Kimi, under your own account, or an OpenAI-compatible API using your own key and base URL (the default is the official OpenAI endpoint, but you can point it at a local or self-hosted model). patina runs no server of its own, ships no telemetry, and never sends your text to a patina-owned endpoint.
No. patina runs as a skill for Claude Code, Codex CLI, Cursor, and OpenCode, and it also works as a standalone Node.js CLI.
Korean, English, Chinese, and Japanese are supported. Pattern packs are auto-discovered by language prefix, so new languages can be added by contributing new pattern files.
Yes. Use custom profiles for voice preferences and custom pattern packs for local rules. The repo keeps built-in patterns separate from user customizations.
The easiest contributions are small, evidence-backed examples: a before/after pair, a false positive case, a missing AI-writing pattern, or a language-specific phrase that keeps appearing in model output.
Good pattern contributions should include both a failing example and a successful rewrite.