Farid Zakaria

4 min read

Hiding my AI slop from my Nix friends


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.11Seems 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.

scooby doo code comment meme

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.22The 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.