I have a confession to make. I use AI to write articles. So what? I use AI to do lots of things. I’m not going to be embarrassed about using a tool to my advantage. However, doing this has taught me some lessons and I’d like to share and what I’m going to do differently.
I use Claude Code on a daily basis. I’ve been learning how to effectively work with agents because this is the paradigm we’re in. I’m not an AI bro. I’m curious and willing to get my hands dirty to find out. I have been doing more and more with AI but each step was measured and layered.
Before LLMs got big, I learned a bit about AI. Not what everyone thinks about now — decision trees, markov chains, k-means. I watched an MIT Open Courseware course on it. I followed along as if I was taking the class. I built the projects. MIT was actually one of the ways that I continued my education after college.
AI does have issues. Of course, there are social issues. And they are very legitimate concerns. But this, and my other content, is about how it applies to software. I’m curious about this moment and where it’s going and I’m using this time to learn and experiment — especially because LLMs make this cheap to do. But there’s a catch. You can’t just take anything and you have to use your judgment.
I’ve been writing code for over a decade. All of it on the web. Most of what I’ve done has been with web services and the mesh of related tools and material. I can write code without Claude, but I’m exploring what is possible with it.
I was a bit behind the wave on LLMs. This is something I tend to do. When something gets popular, I’ll give it a bit of time for the hype to die down before I look into it. Then I’ll learn through quality resources and experimentation. The hype for AI is definitely not over, but there are enough engineers now who have seen it produce slop to know that there’s a difference between vibing something and shipping quality software to production systems.
I was very skeptical when I started, but I wanted to give it a fair shot. To begin with, I gave Claude zero permissions. I approved every single thing, because I didn’t trust it. I verified every single thing for the same reason. Six months later and several experiments, tools, and publications later, I am widening my trust of the agent because and only because I have constrained it well enough that it mostly behaves — this is all the work I’ve been doing with harness engineering. I don’t accept changes blindly.
I’m continuing to experiment with new things in AI. Harness engineering is something I’m currently working on, but I’m also planning on building a few other tools in adjacent areas to get a better understanding of the landscape. I’ve done a lot and I feel reasonably well-informed on the subject, but I’m also continuing to push myself to learn more and to stretch. Claude unlocks more things for me to push. There is a lot out there that I do not know, and I won’t shy away from admitting that ignorance. It’s required to learn.
Of course, the trick is using it as a tool and not letting it replace thought.
This was all just background so you know a bit of my journey. How does this apply to articles? Well, I’ve been using Claude to do that too. It started small, then ballooned. I fell into the trap of acceptance fatigue.
This is not an excuse.
It’s just the truth. So what I have learned has been about two things: how to write with an agent, and how to respect your audience.
I’m starting with this one because it’s more important. I don’t want my audience to read slop. I don’t want to waste their time. I want to bring value using something I’ve learned. Most of my harness posts are a decent quality, but there have definitely been some off-topic posts that reeked of AI. And they were. I proofread them. I didn’t to a good enough job of editing before approving.
I think it’s very valid for a reader to be angry at slop, especially if they invested their time. I’m dedicated to not letting it happen again.
Here’s the technical piece of what I learned. Writing needs a harness, just like coding does. And it needs it more because AI has a lot of tells. The other reason why it fails is mostly flow. Remember, it’s a statistical next word generator. So just because the next word is likely and sounds good doesn’t mean it has natural human flow.
Here’s how I’ve amended my process. I still use Claude, but I use it differently. Not for this post though, this is all me.
I use Claude to generate *parts *of the writing cycle that help to clarify things for me rather than just writing. Unfortunately, once an AI rhythm is in your head, the temptation to copy-paste doesn’t even have to be successful. Terms and phrasing have already been placed in your head. So I use separate phases now. I use Claude to:
Even after all that, there are signs of slop and poor writing and, to be blunt, laziness.
This is why I’m swapping my process. In addition to having the agent collaborate with me instead of writing the article for me, then I write it myself anyway.
Yes, what I get out of this is an article. It sounds mostly like me. It sounds mostly like it isn’t a robot. Previously, here is where I would proofread and edit and approve before sending it out. But with fewer filters. That failed hard at least three times.
So now I use those tools to generate thought, not the text. I can figure out and refine what I want to write so I don’t miss things like contradictions or weak arguments. Now after I proofread the output I have a different strategy.
In terms of computation or generating assets, yes. In terms of quality, not in my opinion. I use Claude in the same way I would use a mind map, or a strict outline, or a number of other tools to formulate and plan my writing. It helps me create a structured piece. It just does it a lot faster.
Why do I care?
Because I tend to write in the first person and stream-of-consciousness. This is fine for some things — I don’t think it’s the best for technical subjects.
Claude is my ghostwriter, but I’m taking back the pen.