canon
Each change starts as a spec and ships in a pull request that also updates docs/canon/. Hooks refuse pushes and merges into your protected branches.
write is a Claude Code skill for text other people will read. Ask it whether a draft reads as AI and it quotes the lines that do, with the pattern each one breaks. Anything it writes follows your project's style guide.
/plugin marketplace add arhaty/claude-plugins/plugin install write@arhaty/write:setupRun each command in Claude Code, in order. If Claude Code asks you to, run /reload-plugins before setting up.
write runs inside the Claude Code session where the text gets written. New drafts follow your style guide, edits to your own drafts make the smallest change that works, and the checker reads every English draft.
The voice lives in the project, in a style guide and a samples file, so every session writes the same way. Where the skill and the guide disagree, the guide wins.
It covers emails, posts, docs, READMEs, site copy, reports, and replies. Claude's replies to you in chat stay as they are.
/write:setupFinds the style guide the project already has, or writes one from the plain, formal, or casual preset, and asks whether to keep a samples file. Setup is optional. Without it, the skill writes in a plain default voice.
Claude writes a first draft, then rereads it for AI patterns and fixes them.
On English drafts, scripts/check.mjs flags each pattern hit with its line number.
Ask whether a draft reads as AI. It quotes each line that does, with the pattern and its tier, and changes nothing unless you ask.
The list has 40 numbered patterns in three tiers, plus a vocabulary list. Tier 1 fires on a single sighting. Tier 3 counts only when several appear in one passage. The table has seven from the top two tiers and the fix for each.
| Pattern | Reads like | Fix |
|---|---|---|
| Not X but Y | reads the trends out of 400 support tickets rather than asking anyone | the trends come from 400 support tickets |
| Staged run-up | Let's dive in. | Start at the point. |
| Colon reveal | The result: a 40% lift. | A full sentence. |
| Inflated significance | marks a pivotal moment | Keep the fact and drop the significance. |
| Copula avoidance | serves as | is |
| Forced triad | Faster, smarter, cleaner. | The number of items the meaning needs. |
| Signposting | The table below shows | Let the content do it. |
You can run the checker yourself on any file.
node ~/.claude/plugins/marketplaces/arhaty/plugins/write/scripts/check.mjs draft.mdL3 HARD #1 not X but Y: 'it's not' L5 WORD vocabulary: 'seamless' DOC LOOK #38 3 paragraphs end on a short line (budget: 1)
HARDWORDLOOK| File | What it is |
|---|---|
.claude/write.json | The language, the guide's path or URL, and the samples path. |
docs/tone-of-voice.md | The guide, from the plain, formal, or casual preset. Only if you chose one. |
docs/writing-samples.md | Text the project has sent or published, one sample per heading. |
Plain is for documentation, web copy, and email. Formal is for reports, policies, and letters to institutions, with no contractions. Casual is for community posts, newsletters, and changelogs. Setup never replaces an existing file without asking for that file by name.
claude plugin marketplace update arhatyclaude plugin update write@arhatyclaude plugin uninstall write@arhatyRun these in a terminal, then run /reload-plugins in any open Claude Code session or restart it.
It changes how an AI model writes so the text stops reading as machine-written. write does that while drafting, and it can also check a finished draft and mark the lines that need work.
Install write, then ask Claude for the email, doc, or post as usual. The skill writes to your style guide and runs the checker on the draft. To check text you already have, ask whether it reads as AI.
Humanizer skills such as blader/humanizer rewrite existing text and can match a sample you paste. write also writes new drafts to the style guide and samples kept in the project, and its check mode marks lines without rewriting them.
Wikipedia's Signs of AI writing guide lists overused em dashes as a sign of AI text and cites a July 2026 Economist study that found Claude was the only current model using them more than professional writers. Your guide can allow them.
write isn't built for detectors and makes no claim about them. It removes the patterns readers notice.
Yes, with limits. The pattern list and the checker cover English. In another language the skill keeps its method and relies on your guide.
Each change starts as a spec and ships in a pull request that also updates docs/canon/. Hooks refuse pushes and merges into your protected branches.