Warning If you are pissed off reading this, you can start here and work your way back.
I am using AI a lot. I am public about my use of it and when required make the necessary disclosures: “Assited-By” trailers or having to say “I used an AI to help write this software” on every Discourse post.<sup>1</sup>1Seems like whether or not you use AI, I feel more compelled just to disclose I did to avoid the “you didn’t disclose it” argument. Such is life.
For those of you in the “Anti-AI” crowd, it might surprise you to learn that those of us who enjoy using it also don’t want to read “slop”. I also don’t want anything I create to read like I used AI a lot. Commit messages, READMEs, code comments. I’m reading it also!
Being a Nix person, my instructions to the agent are of course declarative. My ~/.claude/CLAUDE.md (and Codex’s AGENTS.md) is generated by home-manager from agent-settings.nix. It has a whole section titled “Writing style: no LLM tells” that I stitched together from Wikipedia’s Signs of AI writing and Simon Willison’s LLM cliche highlighter.
writingStyle = ''
## Writing style: no LLM tells
### Banned vocabulary
Do not use these words. They are statistically the loudest signal of
machine-written text: delve, tapestry, meticulous, pivotal, intricate,
...
'';
The code-style tries to ban many AI-isms as they emerge such as: “it’s not X, it’s Y”, “dvelve”, “byte-order”, minimal em-dashes and so forth.
I even came across Fabien Sanglard’s code style rules from this HackerNews thread that I have enjoyed incorporating as well. Why not have my agent write code that mimics engineers I admire!?
Despite this, I still found my agents continuing to use these banned words and phrases. 😒
§Reproducible AI-slop removal #
I was a little annoyed I had to keep re-prompting my preferred writing style but I often reflect on the bitter lesson and generally try to avoid any additional work while I wait for the model’s capabilities to improve.
I was however surprised when upon one such occasion I realized that the agent itself had itself gotten frustrated at forgetting my writing style and turned it into a flake check.
During the creation of omnibin.dev, I noticed the agent had created tools/check-prose.py to check for banned words and phrases in the source tree. It is a simple Python script that walks the repo and fails on a banned word, phrase, or a single em dash anywhere.
I had begun setting up a distinct pattern of how I like my repositories laid out so it was funny to see it automatically include this check in the CI of my build.
Despite the bitter lesson, I might try leveraging this check in my other repos. What I like about deterministic checks rather than a markdown context-file is that it’s verifyable and reproducible. I’m not left guessing whether the agent is following my style or not. I can run the check myself and see if it passes or fails.
§Honesty is a mirror #
Let’s be honest with myself and do some introspection. How much has AI-isms crept into my writing? I applied the same check to my own blog posts.
| Years | Posts | Em dashes | Banned words | Banned phrases |
|---|---|---|---|---|
| 2020-2024 | 64 | 0 | 17 | 13 |
| 2025-2026 | 91 | 21 | 54 | 16 |
Clearly I was not a fan of em dashes in the last five years, then suddenly I found 21 uses in two, which happen to coincide with the proliferation of AI.<sup>2</sup>2The top offender is leverage at 51 hits. I used it in 2021 and 2022 too. Some tells are just mine. 🤔
We seem to be all worried about how many em dashes are in our text. Goodhart’s law teaches us that at that point, that is no longer a good measure of AI slop.
Treat each other kindly.