← Back to builds

Open Source

writing-style

· 2 min read

Where the tells live#

A lot of attempts to make LLM output sound human stop at a banned-word list: no "delve", no "leverage", done. The vocabulary is only the surface. The structures underneath still give it away once the words are cleaned up: the rule-of-three default, the "not X, but Y" contrast, the rhetorical question with its snappy answer, the neat-bow ending and the em dash in every paragraph.

writing-style is a Claude Code skill that bans both layers, plus a third that rarely gets named: the assistant-commentary frame. That's the wrapper an LLM puts around a deliverable, the effort narration ("the analysis I promised"), the hand-over openers ("here's the map", "below is the analysis"), the meta-closers and offers to continue ("want me to go deeper?"). The skill cuts the frame and keeps the content, including first-person opinions, which are often the substance.

It also enforces Australian English in full (the -ise, -our and -re families, doubled L, practise/practice, no Oxford comma), replaces vague intensity with specifics ("40% faster", never "significantly faster") and carries a voice section tuned by mining a real sample of sent emails, which a fork can swap for its owner's own habits.

Evals#

Claims about writing quality are cheap, so the eval set is committed to the repo: writing tasks across casual and formal registers, plus a marking checklist, with scored runs published alongside.

In the latest full run, every piece produced with the skill loaded passed every applicable checklist row, and the no-skill baseline failed four of seven tasks. The unguided model has already cleaned up its emoji and hashtags on its own. What's left is invented numbers, triad stacking, stray em dashes and banned words. Because the scored runs are published, anyone can rerun the tasks and check the result.

Design decisions#

Explicit trigger only. The skill fires on /writing-style or an explicit request, never automatically. Auto-triggering loads the whole guide into context on anything that looks like writing, which burns tokens fast. The trigger rules live in one place (the skill's frontmatter description), so anyone who wants auto-triggering can turn it on with a one-line edit.

One file, forkable. The entire skill is a single SKILL.md. Swapping Australian for British English, restoring the Oxford comma or replacing the voice section is an edit, not a plugin architecture.

The skill and its eval set are on GitHub: github.com/AdenCJM/writing-style

Want one of these pointed at your own problem? I'm easy to reach.