If you’ve been paying attention to LLM-based coding tools in the past few months, you’ll have seen a seismic shift in how they’re being used. Even 12 months ago, they were little more than glorified auto-complete tools: useful for quickly repeating patterns, but terrible at producing well structured, thoughtful, maintainable code. More recently, however, there seems to have been a new equilibrium reached, where an experienced engineer can guide these tools to consistently produce high quality code. Small course adjustments seem to have an outsized effect, resulting in the “Human in the Loop” paradigm that’s become so popular.
Why It Works

“Code is Poetry” has been my approach to writing code for as long as I can remember. Software is a form of expression, and the way you create that expression is through code. So, to make beautiful software, you need to write beautiful code. But, what happens when you don’t need to write code to create the software?
Suddenly, the code becomes entirely about outcomes. It needs to be correct, functional, and maintainable, but it doesn’t need to be seen as a form of expression itself. Instead, the creative decisions move further up the stack, to the architectural level. You can write beautiful software by writing thoughtful specifications, instead.
That’s not to say that technical abilities are suddenly obsolete. You still need to know what’s possible and realistic to be able to tell the LLM what to build, and to redirect it when it goes in a different direction. You need to be able to read and comprehend the code, you just don’t need to memorise every function signature.
The Temptation
So, if an LLM can write code for me, what else can it do? Marketing copy? Emails? Opinion blog posts? I could ask Claude to write 10 paragraphs on the “The Human in the Loop”, but would you have even read this far if you thought this post was LLM generated? Of course not! I can promise you that every word of this post (and every other post on my blog) was written by me.
Respect for the Reader
If I want you to read this post, and seriously consider the arguments I’m making, the least I can do is write it myself. It goes beyond that, however. LLMs can write functional code, but they can’t write beautiful software. When the text is the creative act, there’s no way for the LLM to write the text without compromising your creativity. If you’re the Human in the Loop for a blog post, you’re not injecting your voice, your perspective, or your personality into the post: you’re rubber stamping whatever feels good enough, and that’s a very low bar to clear.
“Good enough” isn’t actually good enough.
A measure of the complexity of a written piece of text is called “perplexity”. It measures the randomness of how the text flows, and it’s probably the thing you’re noticing when you know you’re reading LLM-generated text, but you can’t quite articulate why. It’s an uncanny valley thing: it looks like writing, it reads like writing, it might even flow like writing, but the vibes are off.
The good news is, you’re not going insane, recent research shows that there is a measurable difference between human written text, and LLM generated text. LLM generated text is inherently less random, which makes sense when you remember that LLMs are, at their core, giant statistical models that are really good at figuring out “what’s the most likely bit of text to come next”.

The LLM as the Assistant
That’s not to say that LLMs are completely useless when it comes to writing, but we need to use them the right way. While they shouldn’t be generating text, they can absolutely be used to help you write. Over the last month or so, I’ve been working on Claudaborative Editing, an experiment to see exactly how much they can help with the writing process. I’ve been building it directly into the WordPress editor, allowing me to plan, write, review, and publish this post from the one place. An LLM assisted, but every word of it was written by me alone. My goal isn’t to replace the author, or to make it easier to fill the web with LLM-generated dreck, it’s to help me (and hopefully you, too!) improve your writing, while still keeping it fundamentally yours.
Where Does Creativity Live?
When you’re evaluating these tools, “can an LLM do this?” isn’t the question you need to ask. Instead, think about where the creative part of the process lives. For software, that’s in the design decisions and the architecture, the final product is the expression of that creativity. The specifics of the implementation don’t really matter. For a blog post, or any writing for that matter, the creativity lives in the act of writing. To delegate that to an LLM is to delegate your own creativity.
Here’s what I believe: the best uses of LLM tools are when they augment humans, rather than try to replace them. They enhance the inherent creativity of their human operator, they don’t suppress it.
This belief guides how I use LLMs, and how I build tools that help others use LLMs, too. I’ll be pushing out a new release of Claudaborative Editing in the next few days, I hope you’ll give it a go!

