Why I Use AI
A reader asked whether AI wrote my last post. I answered badly, in a comment, while annoyed. This is the answer I should have given.
I posted my article about chording down to eighteen keys to r/ErgoMechKeyboards. It’s picked up twenty comments so far. Two of them were these:
Did AI write this?
and, in reply to that:
Certainly looks like it. Which is a shame since the post might have been interesting otherwise.
The thing that post was about
(I used AI assistance writing this post)
Start with what was being called generated.
It’s an article about giving up QWERTY entirely, then spending months shrinking my keyboard from forty-two keys to eighteen. The layout it describes was five days old when I wrote about it. I had named it the previous Thursday and drilled it across a four-day weekend, on a board I designed myself, which was at that moment sitting at a fab in China. I know how it felt on day two because it was my hands.
None of that is generatable. It isn’t research anyone could look up; there is no source for it, because it hadn’t happened to anyone else. So the question wasn’t prompted by the content — nobody could read that piece and think a model had invented it.
It was prompted by the prose. Something in the sentences read as machine-made, and once it did, the content stopped mattering. That’s worth sitting with, because it means the tell people are reacting to is texture, and texture is exactly the wrong thing to be reading for.
What I said, and why it wasn’t enough
I replied in the thread:
Are you saying the content loses all value because I used an llm to clean up my writing, look up references. I did review the final result and it is what I want to say.
Which is true, and is also the sound of someone who has been stung. It asserts the thing under dispute — I reviewed it, it’s what I meant — without giving anyone a reason to believe it. If you already think LLM involvement is disqualifying, “but I checked it” is not an argument, it’s a promise.
So here is the version with the details in it, which is the only form the claim can actually take.
Slop, and what it actually is
There’s a real thing worth objecting to. Somebody types a prompt, pastes the output, publishes it. Nobody verified the claims. Nobody decided what the piece should argue. Nobody will be embarrassed when it turns out to be wrong, because nobody is standing behind it.
That’s the defect. And the usual detection method doesn’t find it. Em dashes don’t find it. Neither do smooth transitions, parallel structure, tidy section headings, or a fondness for “it’s not X, it’s Y.” Those are style, and style is the most imitable thing there is — including by humans, which is why fifteen years of writing technical documentation teaches you most of the same habits. I wrote like this before 2022. It didn’t help me then either.
What separates slop from writing isn’t the surface. It’s whether there’s an author underneath it: someone who chose the claims, checked them, and eats it when one is wrong.
I don’t have a good method for detecting that from the outside, and I’m suspicious of anyone who says they do. What I can do is describe my process in enough detail to be judged on it.
What that post did and didn’t say
An honest concession first, because it’s the strongest objection available and nobody in the thread made it.
The keyboard post does not tell you how it was written. It carries a claude
tag, and it mentions using Claude Code to build the drilling app I used to
learn the layout — but that’s a tool I built with, not a statement about the
prose. If you wanted to know whether I’d had help writing it, the post didn’t
say.
That’s inconsistent of me, because elsewhere I’m explicit. My post on astrophage thermodynamics opens with a boxed note saying the notes started as mine, that what follows went through several rounds with Claude, that it found a real error in my argument about melting ice, that I twice had to correct it about what the book actually says, and that “claiming it as my own writing would be a stretch.” My MCUboot debugging post states in its summary that the tool was Claude Code running Opus 5. My recipe post is titled “Claude’s Low Sodium Mole-Style Chicken.”
So the fair version of the complaint isn’t that I hid it. It’s that I hadn’t been consistent, and on that particular post a reader had to guess. That’s a reasonable thing to be annoyed about, and this post is partly me fixing it.
I’d like to believe a disclosure note would have changed the reaction. I’m not confident it would have.
What the archive says
My actual reason is time — but not in the way that phrase usually means. Not “the model writes it so I don’t have to.” Something narrower: assistance moves posts out of the category of things I’d like to write and into the category of things I finish.
I have eight years of blog to test that against, so I tested it.
| Period | Posts published |
|---|---|
| Sep–Dec 2017 | 13 |
| 2018 | 5 |
| 2019 | 0 |
| 2020 | 0 |
| 2021 | 1 |
| 2022 | 1 |
| 2023 | 1 |
| 2024 | 2 |
| 2025 | 0 |
| 2026, from March | 4 published, 2 more in draft |
From my MCUboot security post in October 2018 to a mole chicken recipe in March 2026 — seven and a half years — I published five articles. One every eighteen months. Two of those gaps ran longer than two years.
Since March of this year, when an LLM became part of how I write: four posts in under six months, roughly one every six weeks, with two more in progress. Around twelve times the rate. They’re longer, too — the older posts average about 930 words, the recent ones about 1,840.
Two caveats, because the table deserves them.
The 2017 column beats everything since, and I wondered whether it was an
artifact: a backlog of older writing imported with backdated timestamps when I
set the site up. It isn’t. The repository opens with a jekyll new on
September 9th, 2017, and the commits that follow add one post at a time, each
on the day it’s dated — “Add my backup post,” “Add thin-provision post,” “T2
CPU Credits.” The dates are real. What that column records is the enthusiasm of
a new blog, and enthusiasm isn’t a rate. It ran out; see 2019 and 2020.
Second, the record thins in the middle. In November 2023 I re-imported the whole site into a new directory layout, and everything between mid-2018 and that import arrived in a single commit. For those five posts I have front matter dates and nothing to check them against. I believe them. I can’t corroborate them the way I can for 2017, or for now.
Anyway, the number I care about isn’t posts per year. It’s which posts exist at all. The astrophage piece took several rounds of chasing sources and re-checking thermodynamics. The MCUboot writeup meant going back through pull requests and reconstructing what had happened. At their unassisted cost I would not have written either — not because I couldn’t, but because I’d have looked at the evening it needed and done something else instead.
The process
The important part isn’t any individual step, it’s the order. Every judgment in a post — what it argues, how it’s built, which parts are interesting, what’s true — is settled before the model writes a sentence of prose. It supplies transitions and rhythm. It does not do the thinking.
Concretely: I start with an empty markdown file and write a detailed outline, in full sentences. Not headings — actual claims, in the order I want to make them, with notes to myself about what needs looking up, what to link, which older post this connects back to.
Then I ask Claude to review the outline. It suggests reordering, flags where I’ve said the same thing twice, points out where an argument has a hole. That iterates: I add sections, it tidies, it goes and finds references, and I verify them.
Only then do I ask for prose. It keeps most of what I wrote — the outline was in full sentences precisely so it could — and supplies the connective tissue. After that, revision is a mix of me editing directly and asking for rewording.
This post went the same way. Its outline began:
## The process
- I start in a markdown file, initially empty.
- I create a detailed outline for the post, writing full sentences.
- I put in notes of where research is needed, links looked, references to
other posts, etc.
- I ask Claude to review this. It offers suggestions to reorder and
otherwise clean up how it will appear.
Note “links looked,” which is not a phrase. That’s what my outlines look like.
What I don’t let it do
A list of things I use it for isn’t persuasive; anyone can claim to be careful. A list of things I refuse is better, because each one has a specific failure behind it.
It doesn’t decide the opinion. If I don’t have a position going in, there’s no post.
It doesn’t get to assert facts I haven’t checked. The astrophage post is my standing example, because it failed instructively: the model invented a heat-rejection mechanism that Weir never gives astrophage, and then graded him against its own invention. Twice. The error was fluent, confident and specific — exactly the kind that gets published when nobody checks.
It doesn’t invent experience. Everything about what I did, when, and what happened when I tried it is mine. Every number in the keyboard post is something I measured or lived.
And the honesty has to run both directions or it’s just advocacy: on that same astrophage post, it caught a real error in my argument about melting ice. My reasoning was wrong and it found it. Both of those happened on one article, which is about the ratio I’ve come to expect.
Why this is harder than code
I use the same shape of process for programming: write the spec, iterate on it, let the agent produce code. The difference isn’t the workflow. It’s the critic.
Code has an external, objective, automatic one. The compiler rejects a large class of nonsense without my involvement; the test suite rejects another. That’s what makes it reasonable to let an agent run and only look at the end — by the time I read the diff, the worst outcomes have been filtered out by something that isn’t me and doesn’t get tired.
Prose has nothing like that. No build step fails when a transition papers over a missing argument. No test goes red when a sentence sounds confident about something I never verified. The whole review burden lands on me, line by line, and the failures are precisely the ones that look fine.
Which leads somewhere counterintuitive: assistance saves me less time on writing than on code, not more. The draft arrives faster and then I spend much longer on it. That’s also why “AI wrote this” doesn’t follow from “AI helped write this.” The help is real, and it’s front-loaded into reaching a draft — and the draft is the cheap part.
The argument
Two things, and then I’m done.
The first is for the reader who stopped. I’m not going to tell you your suspicion is unreasonable in general; there’s a lot of generated filler now and a defensive reflex is rational. But be accurate about the counterfactual. The alternative to an assisted post from me is not an unassisted post from me. It’s the 2019, 2020 and 2025 rows of that table. It’s seven and a half years that produced five articles. In the other timeline that keyboard post doesn’t exist in a purer form; it doesn’t exist.
What I’m claiming is narrow and I want to keep it that way. The ideas are mine. The structure is mine. The experience is mine. The facts were checked by me, and where they’re wrong that’s on me, including the ones I checked badly. What I’m not claiming is that I typed every sentence in the order you read it.
The second thing is that the thread was fine. Twenty comments: a vendor calling it a nice write-up, five levels of genuinely detailed argument about whether pressing two keys with one finger is a good idea, someone who thought eighteen keys couldn’t handle symbols, went and read the firmware documentation, and came back to say it looked usable. Someone who thinks chording is anti-ergonomic full stop, which is a real position. That’s the conversation I wanted, and it happened.
Two people bounced off the prose. I’ve written two thousand words about them, which tells you something about me rather than about the ratio.
One last thing, since leaving it out would be convenient. Some of the objection to this isn’t about quality at all — it’s about what these models were trained on, and whether the people whose writing taught them agreed to it. That’s a serious argument and this post doesn’t engage with it. Pretending I’d answered it by describing my outlines would be its own species of slop.