If you write online, consider a "how I write" AI disclosure
Or: How I (don't) use AI to write this blog
I’ve had an increasing urge to put an AI disclaimer at the bottom of each of my blog posts saying effectively “I really wrote this post with my own brain and fingers.” In the past few months, we’ve seen an understandable frustration as readers encounter posts that they spend more time reading than a writer might have spent thinking about or writing. Since I’m blogging more this year and people’s trust in what they read has diminished due to AI skepticism, I’ve decided to spell out how I use AI in my blogging process.
In a sentence, my AI-on-this-blog policy is: I write and edit my own posts, I ask LLMs for feedback instead of prose, I religiously avoid copy/paste from the LLM, and on rare occasions where it makes sense for an LLM to write a snippet for me, I try to label it.
Here are the details:
- I write my own words. I’m writing on this blog because I appreciate that it helps me process partially formed thoughts. All of the words/phrases/paragraph constructions in the first draft of a blog post are my own, as are the rewordings in subsequent drafts.
- I edit my drafts end-to-end, multiple times, often reading them out loud. While an LLM might help me iterate on my writing, I read (and own) every word at the end of the process.
- I ask LLMs for critique or direction. The primary action I take with AI on this blog is to drag a draft’s markdown file into a chat session and ask various versions of “Do you have any feedback?” A way less common question I’ll ask every few blog posts is “Is this one blog post or two?” I still ask friends/colleagues for feedback on my drafts, but more rarely.
- I don’t ask the LLM to clean up my writing or rewrite something for me, and I don’t copy/paste an LLM’s output into the blog post body. I’m not interested in seeing the LLM’s version of my writing. I find that having a pretty strict “don’t copy/paste” rule forces me to think about feedback I’m getting and whether/how I want to update my argument or my approach to making it. If the LLM restates something I write as part of its critique, I read that rewrite, internalize what it has changed, decide if I want to address the problem it’s solving, and rewrite the text myself.
- There are rare cases where I do ask an LLM to write text for supporting material, and when I do, I try to clearly label those cases. For example, to provide a concrete example of the prototype-plan-stack development pattern, I asked the agent I used to build the scheduling feature to look at commit history and summarize the stack and how it changed. The two
Exampleblocks in that blog post say something along the lines ofAI disclosure: I asked an agent to summarize the markdown plan's PR descriptions and gating details and then edited them.so the reader knows the words are not my own.
I’ll close with some observations about the writing policy, how it differs from my other uses of LLMs, and a call to write up your own policy.
First, it’s been interesting to heavily rely on LLMs for feedback. The feedback/critique an LLM provides might not be as good as a friend’s, but while I might periodically ask a friend for feedback on a blog post relevant to their expertise, I’d feel bad asking them to read repeat drafts as I iterate on my writing for a totally-just-for-fun blog. In comparison, I don’t mind asking an LLM for feedback on the sixth iteration or to catch any errors I’ve introduced in what I hope will be my last editing pass. Effectively, I have two budgets for feedback: a nearly unlimited one to quickly iterate with an LLM, and one I use sparingly when I think a friend or colleague’s take could strengthen the writing.
My second reflection is on the contrast between my writing process above and how I use LLMs to code. With coding agents, I describe what I want, an LLM writes 100% of the code, and I provide the agent with several rounds of my own review/feedback, guidance, and testing follow-ups. While I feel similar ownership over posts I write myself and code I steered an agent through, my process to generate them is very different. I think this happens for two reasons:
- My goals with writing and coding are different: I write here to solidify my own thoughts and convince others of them, whereas I build features and systems for the outcomes they will deliver. Where my writing IS the work product, the agent’s code is a step along the way to the work product.
- I suspect the practices differ because of my professional experience: I’m not a professional writer, but I build systems and products for a living. As I’ve grown more senior in engineering and product, I’ve already been giving more guidance and writing less code. My “I hardly write the code” agent-assisted coding process is a natural extension of that.
Given how useful agents can be, how frustrated people get when they are sent unreviewed slop to read, and how many different ways you can use them in a writing process, I think it’s important for people to share how they use these tools. Especially given how it’s easy to lean on LLMs in areas where you might give away your own agency for thought, it’s good to clarify for yourself and others what your approach to using them is. More broadly, this is a good moment for everyone who uses agents for knowledge work tasks to share how they’re doing so. I’m excited to read how others think about agents assisting vs. replacing thought formation, how these tools can be used for feedback/critique, and the asymmetry in effort between producing and consuming content.