Back to Writing

My AI Writing Process

March 29, 2026

I enjoy writing more now than I ever have. I write more honestly, more personally, with fewer words.

Why AI Writing Is Hard

Code does three things: it specifies an idea, it reads well or poorly, and it runs to produce a measurable result. You can write a test, benchmark it, and see if it works.

Writing also persuades, builds arguments, and tells stories. A tutorial either teaches someone or it doesn't, but you can't run a suite to check.

So everything rides on clarity, voice, and how an argument builds. AI handles these worst. AI can organize, but it can’t judge whether a paragraph earns the reader’s trust. It lacks a human aesthetic.

And when AI writing fails, you can't diagnose why. With code, failing tests, stack traces, and logs point you to the problem. With writing, a flat paragraph could mean a weak prompt, a bad model choice, an idea that isn't clear in your own head, or a limitation of current AI. There’s not decades of material on how to debug it, so the path is unclear.

This changes how experts feel about the work. When I taught dance, I could teach a move until everyone learned it. Then I had them face a different direction. Suddenly, they couldn't do it. The new orientation confused them, and they had to rebuild the skill. Using AI effectively is like facing a different direction. The creative work is there, but the process changes entirely. Experts lose skill and must rebuild it. That's uncomfortable.

Raw Material

I start every post by talking. I record myself rambling on a topic for five minutes, ten minutes, or an hour. This post began as an 11,155 word transcript.

I use Claude Code and VoicePal (an app my friend Hamel recommended) as interviewers. For Claude Code, I tell it to interview me, push back on gaps, and skip audience questions. For VoicePal I just start talking, and choose the follow-up questions I want to answer.

Personally, I like VoicePal for the first transcript, because Claude Code tries to put a structure in too early with its questions. I often record while on a walk, or from my recliner.

My wife calls it recliner rambling.

Talking gives me the messy details that make a story complete. The wrong turns, the frustrations, the things I'm still confused about. These emotional details are neccesary to tell a complete and true story. When I type, I self-edit. Everything ends up as clear dry facts. When I talk, I say things I wouldn't write. In the transcript for this post, I went on a tangent about how writing a book felt like a trap. I'd never have typed that.

Building Up Context

Next, I gather supporting material: project examples, code snippets, screenshots, and screen recordings.

I index all my agentic chat histories for keyword and semantic search. A Claude Code skill helps me find quotes or files when I forget exactly when or in what project it happened. Then I have it search on its own for anything related (or contradictory) to the post from all my archived history. All my prior blog posts and active projects are also indexed.

I take screenshots and videos of relevant projects. All of this triggers more thoughts, so I do another round of recliner rambling. I save all of that with the original transcript. Emails, Discord messages, client problems, personal projects, work projects.

Most of what comes back doesn’t make the post. For this one, the AI surfaced dozens of agent log excerpts where I’d experimented with writing prompts. I kept three. The rest were repetitive or didn’t support the point I wanted to make.

From Transcript to Outline

I feed this "context bomb" to Gemini to generate a structure. Then I ask it to propose different narratives, and structure. AI helps me split large topics into multiple posts.

For example, this post originally had too many topics in it and turned into 3 posts. I now have:

  • This post on my writing process.
  • Development of my writing tooling (scripts to personal editor).
  • Why I chose to turn my book into free blog posts rather than publish as a book.

It all felt like one topic to me, but as I gave it structure it was clear they were different narratives. Jumbling them together was confusing to me. And if it’s confusing to me, it’s confusing for a reader.

A fourth topic didn’t survive at all. I’d spent a chunk of the transcript talking about prompt engineering for writing. It was accurate but boring.

Structure is a thinking tool. Arranging thoughts helps me think. It reveals nonsense or contradictions between my beliefs and my actions. My agent logs and projects fact-check me. Do I practice what I preach?

For example, developers overwhelmingly preach reducing tech debt, yet every codebase that is useful has a ton. It’s been a consistent truth at every place I work. Honestly, the loudest advocates for good code often have the most confusing codebases.

To write honestly, I must reconcile these ideas and figure out what I believe and act on. Sometimes I embrace the contradiction and explain it. Sometimes I resolve it and my beliefs change.

Writing about my business revealed a conflict. I love teaching, writing, designing landing pages, and engaging with people. Yet I claim to dislike marketing. Marketing largely is those things. Resolving that contradiction to understand why I disliked marketing took time.

My first draft tried to resolve it by saying I liked "authentic" marketing but not "corporate" marketing. That was lazy. It didn’t explain anything. I sat with it for a few days.

What I actually dislike is the consistency pressure. If I don’t have anything to say for two weeks, or I’m just tired, I need to come up with something anyway. There’s also pressure to stay on message, but sometimes I want to talk about something completely different. These two tensions grind on me until I start dreading new content.

Thankfully, now I spend all day on engineering Stoa, and I can write anytime I want about whatever I want :)

Three Passes with Gemini

Once I know my message, I feed the context and outlines to Claude Code and ask it to write a blog post.

This triggers a writing prompt based on Zinsser’s “On Writing Well.” Zinsser’s principles are exactly what AI sucks at.

My Claude Code setup calls Gemini using a skill, though it can also call openai and other models too.

The process uses three passes. Gemini writes the post, then edits it twice with different prompts. The editing passes cut adjectives, adverbs, and passive voice. They also simplify complex words.

Here's what that looks like in practice. I once had a sentence: "Lane candidly shared that their first version was basic." I flagged it: Why "candidly"? Why is this so wordy? Then I ran Gemini in parallel across all posts to find and fix that kind of clutter automatically. The editing passes catch hundreds of these.

I started with three passes and tested two, four, and five. I read all the versions back to back. Two passes left filler I'd have to cut by hand. Four and five passes started cutting the small stories and asides that make a post worth reading. The AI couldn't tell the difference between clutter and a detail that earned its place. I could. Three passes left me with the least manual cleanup while keeping the parts that mattered.

I use Gemini for its large context window and multimodal support. My source material includes voice transcripts, screen recordings, screenshots, and videos. Gemini handles it all natively.

For longer projects, each finished post feeds into the context for the next one. When I wrote an eighteen-chapter book as a blog series, this kept the voice and argument continuous across months of writing. For a single post, that's not needed. For a series, it's the difference between chapters that build and chapters that repeat.

Manual Polish

After the AI passes, I edit by hand. I use AI reviews from different perspectives, but I treat the results as suggestions and review each one. Then I rewrite, reorder sections, read passages aloud, and edit line-by-line in a custom editor I built for AI-assisted writing. I’ll share more about that next week.

Manual editing catches what AI misses:

  • Factual errors.
  • Embellishment.
  • A promotional, LinkedIn-style tone.
  • Adverbs and noun clusters.
  • Wind-ups. The AI describes what it will say, says it, then summarizes. You should just say the thing.
  • "AI smell." Writing that sounds generated rather than human. The three-pass system reduces it but doesn’t eliminate it.

For example, Gemini wrote two paragraphs explaining why voice transcription produces better raw material than typing, citing research on speech patterns and cognitive load. I cut both paragraphs and wrote: "When I type, I self-edit. When I talk, I say things I wouldn’t write."

I often cut two paragraphs of AI writing to a single sentence or 2.

If I want something punchy, I pack it with plosives that punch and pop. If I want a sentence to feel smooth, I let sibilance carry it across.

AI doesn’t know what I want a sentence to feel like.

Learning to Write

I assumed technical writing had to be dry. My friends Danny and Audrey Roy Greenfeld changed that. Their newsletter mixes technical depth with real warmth. Reading it, I realized clarity and personality aren't trade-offs. You can have both.

Another friend, Alexis Gallagher taught me about attention and hierarchy. I was building the landing page for raw2draft.com, and I kept reaching for bold text and underlines to make things clear. He showed me that text decoration is a crutch. Good structure and hierarchy do the work better. That lesson changed how I write.

Zinsser's “On Writing Well” taught me that cutting was what gave room for personality. Klinkenborg's “Several Short Sentences About Writing” taught me to think about each sentence carefully. Mark Forsyth's “Elements of Eloquence” gave me tools for style.

These books shaped my prompt, which ships with every Gemini prompt. (Here's the full prompt.) AI adds style, but it's bad style. I don't want an AI choosing metaphors or building rhythmic prose. I want it to cut drivel, throat-clearing, and filler. If I want style, I add it myself.

The guide also captures Zinsser's philosophy about humanity: write like you talk to a friend, put in the things you find funny, use small casual words that carry meaning. Without that, the editing passes strip out the annoyance, the frustration, the excitement. They scrub the writing clean of personality. And writing scrubbed of personality is writing nobody wants to read.

I was already good at using AI. I do it every day for coding. What I lacked was the craft. The books, the editing, the ugly first drafts. As I got better at writing, AI got more useful. Not the other way around. You don't use AI to become a better writer. You become a better writer, and then AI has something to work with.

Like this? I write one every week.

Every one comes from something I've done on a real project. AI tools, development approaches, how I actually build things. You're getting a curation of my taste, not takes on stuff I don't use.

5,000+ readers