Veit's Blog

Dual-Use Tools and Epistemic Horror

2026-10-09

My last blog post on cheats apparently struck a chord with people. A few people reached out to talk about it, share their feelings, or other work in this area1.

Then two things happened: a commenter shared a particularly relevant article with me, and I had an unpleasant interaction on GitHub. Let’s talk about both.

Tools & their uses

One reader shared a blog post by Iris Meredith with me in which they talk about tools. It’s somewhat related to what I was talking about: tools have their uses, and they shape our world.

Meredith also cites Heidegger’s “Being and Time”. This struck me for two reasons: firstly, I had just pulled out Sartre’s answer to it again, “Being and Nothingness”2. I have not yet read it again, but some long-quiet neurons fired when I reasoned through their argument: something was missing from Heidegger’s argument, and, in that vein, from Meredith’s.

When the reader shared the post with me, my first reaction was this:

mhm, i’m about halfway through, and something that i’m missing is what i see as
the other side of this: that most tools have more than one use. a knife is for
eating as much as for hurting others. a gun is for hunting for sustenance (or
could potentially be) as much as for war and murder. i can use the bar stool to
sit on or in a brawl. a computer has many different uses! your ideology might
constrain your use of the tool, but the tool itself allows itself to be used
in whatever way it can be used.

the only thing that constrains the tool is physics. acceptable use is a
construct, and we shouldn’t expect everyone to adhere to our constructs, even
the ones we see as self-evident.
Fig. 1: Yer boi, thinking hard.

For those of you following at home who have read Sartre, you will see where this is going: he makes the same point in “Being and Nothingness”. He uses the analogy of using a knife handle to hammer in a nail (search for it somewhere in the chapter “Being and Doing: Freedom” for the exact passage), but still. The idea is the same.

And I think this is a crucial point: tools shape us through the affordances they provide, but we retain agency. We can choose to observe the things they want us to do with them, and decide to ignore their recommendations. We can act.

The thing that makes this complex, I think, and that I was hinting at in my earlier post, is that this doesn’t come without a cost. Every time I decide to go against a tool’s affordances, I have to invest energy I would not have to spend if I just went with the flow.

And this, then, brings me back to LLMs. As they are built and packaged today, they want me to turn off my brain. The cheapest action is to type half a sentence, turn on auto-mode, and watch the GPU go brrrr.

This is where the epistemic horror enters.

A maintainer’s complaint

LLM slop has infected our repositories. Everyone complains about it. It happens to me all the time. And, to my astonishment, it’s getting worse despite the discourse turning against it. The flywheel churns.

Let me bring in the particularly poignant example that pushed me over the edge to write this post. I will not edit the wording, but I will refrain from linking to the issue or naming the contributor3.

So, basically, I made an RFC for a complex systems-y feature on one of my bigger projects. Someone (new contributor, no history with the project) swoops in with a “I went ahead and implemented this locally, here’s what I did, do you want me to open a PR?”. The whole thing is so obviously LLM-generated that I don’t even think about giving them the benefit of the doubt. Instead, I take the comment at face value, present what is wrong with it (spoiler: most of it), and end with the following sharp admonition:

In the future, I would like to prefer to keep the design space light on LLMs.
The implementation may follow, and it may use LLMs heavily, as I do. But I
don’t want to outsource our thinking.
Fig. 2: Yer boi, about as firm as he gets.

This took a lot out of me. I don’t usually use such sharp language with others, especially online. But I thought it might land better that way, and be clearer.

I thought wrong.

The response that I got, a day later, was somehow worse. It was also, obviously LLM slop:

You're right. I read the RFC as an implementation request, and that was my
mistake. The gaps you named are real: [...]. I will not open a PR. Thanks for
taking the time to spell it out.

The shape is right. [... About 400 more words ...]
Fig. 3: The LLM refusing to hide itself.

Now there were some minor things wrong with the comment, but the main issue is not its contents, it’s what it stands for in the grander scheme of things. The user is refusing to think by themselves even when explicitly asked to.

And this is where the tool’s affordances rear their ugly head again: the cheapest way to answer remains shovelling out prose generated in seconds, not hand-written, half-formed thoughts. But what does that create?

Well, for one, it traps me in a sort of low-value, high-latency agentic chat. I’m perfectly capable of opening Claude Code and pasting in the RFC itself, and I derive no value from this loop.

And for them? Let me engage in a bit of psychologizing. This was a fairly recently joined user who’s clearly grinding trying to get a reputation of being a capable systems programmer. But this ain’t the way. Apart from the fact that it’s so transparent that they’re just using an LLM and not thinking for themself, casting quite a different light on them than I think they’d like, they also deprive themself of learning, understanding, and growing. And that, in my book, is the bigger sin4.

It’s also corroboration that Meredith (and, I guess, Heidegger, as much as it pains me to say it) is right: the tool shaped their process. I was not so much interacting with a human wielding a tool but a fully formed human-LLM-gestalt just slopping it hard right in my issue (sorry for the colorful language).

The horrors are beyond belief sometimes.

Fin

I said I didn’t have an answer at the end of my last post, and I certainly don’t have one now. The user is banned, and Sartre is still sitting near my bed, half-read.

I guess being alive in 2026 means reading more philosophy books than I have in a long time just to cope, or to understand. It’s helping me shape my thoughts, evidently. It has yet to show me a way forward.

Footnotes

1. One commenter even shared a game with me that made me bleed an hour of my morning away: HintLine 93. I’m now sharing it with you so that you, too, can bleed an hour away.

2. I have a bit of a history with this particular book. I must have been around 14 or 15 years old when I saw it in the local library (in the German “Das Sein und das Nichts: Versuch einer phänomenologischen Ontologie”, a huge book with a red cover). I had no idea what phenomenology or ontology meant, but the words were fancy, and I was full of myself, so naturally I was drawn to it. I took it home, read around 12 pages, realised I absorbed none of it (Sartre’s style in that book isn’t exactly light), and put it back on the shelf, telling all of my friends that of course I had read it. It would take me years to finally make good on that promise/lie.

3. This, of course, is bogus. The person on the other end chose to engage in a public forum, publicly, but I’m giving them the grace of not putting them on blast by name, because I’m not quite catty enough for that, just catty enough to tear their actions to shreds. Not sure if this is any better, but I do what I can. Small blessings and all.

4. The other thing here is that even if they did a better job at hiding the slop, the thinking process is still shallow, and they’re demonstrating a poor understanding of the problem space, which is not the image that they’d presumably like to project.