I write a lot of text with my AI agent: LinkedIn posts, client mails, web pages. My style rule is short. No em dashes. No stock AI phrases. And in German, one form of address per text, either "du" or "Sie".
Models break that rule all the time. Not because the prompt is bad, but because the habit is stronger than the instruction. I kept finding dashes in posts that were already scheduled.
So I built a plugin that checks every answer before I see it.
What writing-guard does
writing-guard is a plugin for Hermes Agent, the open source agent by Nous Research. It reads the final answer of every turn and checks three things:
- Dashes: em and en dashes outside code, links and quotes.
- Stock AI phrases in English and German, like "It's important to note", "delve", "seamless", "Ich hoffe, das hilft" or "Gute Frage".
- du and Sie: both forms in the same paragraph, a switch against the previous answer in the same chat, or the wrong form when you set one.
By default it does not change anything. When it finds something, it appends one line:
writing-guard: 2 Gedankenstriche; 1 KI-Floskel („Gute Frage“).
That line was enough to change my workflow. I see the problem before I copy the text anywhere.
Why rules and not another model
The obvious idea is to ask a second model to review the text. I decided against it:
- It costs a call per answer. writing-guard needs about 5 ms and makes no network calls.
- It is not reproducible. A rule gives the same result every time, a model does not.
- It is easy to explain. Every finding has a rule id. If a rule is wrong for you, you switch it off.
The trade-off is honest: a rule cannot judge tone or meaning. That is why phrases and the form of address are only reported, never rewritten. Only dashes can be fixed automatically, because there the rule is clear.
Fix mode for dashes
With mode: fix, dashes are replaced by simple rules:
| Before | After |
|---|---|
| The plugin—built in a day—works. | The plugin, built in a day, works. |
| Mon–Fri 9–17 | Mon-Fri 9-17 |
| – first item | - first item |
Code blocks, inline code, URLs, MEDIA: lines and quotes are never touched.
The du/Sie check was the hard part
German has two forms of address, and mixing them in one text looks careless. A model happily writes "du" in the first paragraph and "Sie" in the third.
The difficult part is avoiding false alarms. "Sie" at the start of a sentence can mean "they" or "she". Quotes can contain the other form on purpose. A chat answer in "du" can contain a mail draft in "Sie" for a client. So the plugin only counts "Sie" with a capital letter inside a sentence, skips quotations, and checks per paragraph.
I ran it over 1,000 of my own recent German answers (read only). 133 contained dashes, 1 contained a listed phrase, and after tuning there were 0 false du/Sie alarms.
The model can check its own drafts
writing-guard also registers a tool, writing_guard_check, and a small skill that tells the model to use it before it delivers a mail, post or page. In my tests the model called the tool on its own for a LinkedIn draft, fixed the dashes and rewrote the reported phrases itself.
There is also a slash command: /writing-guard check <text> checks any text you paste in.
Install
hermes plugins install MadeByBrain/hermes-extensions/plugins/writing-guard --enable It needs Hermes Agent v0.22.2 or newer and has no Python dependencies. Since 2 November it is listed in the official Hermes plugin catalog.
What it does not do
It checks surface rules. It does not know your brand voice, your product names or your legal wording, and the phrase list is not complete. You can add your own phrases with extra_phrases and ignore rules with ignore_phrases.
Tested live on the Hermes CLI with three models. Not tested live yet: the desktop app, Telegram and other gateways. Same hook, but that is an assumption, and I say so in the README.
Try it
The plugin is MIT licensed and free. If you write German or English texts with Hermes, I would like to hear which phrases it misses. Open an issue on GitHub or leave a comment here.
I build more plugins and skills for Hermes at madebybrain.com/hermes-plugins.