The machine drafts. I edit, then publish.
That rule hasn’t moved since I built my first AI system, and it’s the only part of the setup I’d call non-negotiable. Everything upstream of it is automated as hard as I can manage. Research, structure, a near-final draft in my voice, the images, the schema, the payload that lands in WordPress. All of it runs without me. The terminal state is a draft sitting in wp-admin with a short summary of what changed, and there it stops.
That last step is not a workflow preference. It’s the thing that makes the rest of the automation safe to build, and it’s one of the five layers the whole setup runs on.
What the last twenty percent actually is
The 80/20 framing gets misread as “AI writes, you polish.” It isn’t polish. The last twenty percent is three specific jobs, and none of them is proofreading.
Fixing what drifted. The draft is in your voice at maybe ninety percent, and the missing ten is never evenly distributed. It’s one section that went abstract, one paragraph that reached for a construction you’ve banned, one heading that sounds like a template. You find those by reading, not by scanning.
Adding the part only you have. The real number. The specific decision and why you made it. The thing that happened last Tuesday. A model can produce everything except the material that came from having been there, and that material is the entire reason anyone reads a solo publication instead of a search result.
Deciding it ships. Someone has to be accountable for the piece existing. Not for whether it scores well. For whether it’s true, whether it’s yours, and whether it should have been published at all.
The first job takes minutes. The second is the work. The third is the one you can’t delegate under any arrangement, which is the whole argument in one sentence.
Why it’s a rule, not a preference
A preference degrades. Not on a good week, and not deliberately. It degrades on the Thursday where the piece is late and the draft is fine and the only thing between it and being finished is you, tired, at 21:40.
So the rule has to be mechanical instead of intentional. In my setup, the publishing step is physically incapable of setting a post live. It creates and updates drafts, that’s the whole verb list, and there’s no configuration where a good score flips it. Claude Code makes the same distinction in its own documentation: instructions are context that the model may or may not follow, while hooks are deterministic and run regardless of what the model decides. If something must always happen, it doesn’t belong in a prompt.
The same logic applies to your own discipline. “I’ll always read it first” is a prompt you’re giving yourself. Removing the ability to publish is a hook.
If your tooling can’t be made incapable of publishing, the next best thing is an interruption with friction in it. A separate account for the publishing step. A destination the tool writes to that isn’t the live site. Anything that makes the final action a deliberate second move rather than a continuation of the first one.
One lane for everything waiting on you
Draft-only creates a queue, and a queue nobody looks at is just a slower way of losing work. So the second half of the rule is a single surface where everything waiting on a human shows up.
Mine has four lanes: backlog, in progress, review, done. The review lane is the one that matters, and it’s labelled “waiting for you” rather than “review”, because the wording changes how it reads at a glance. It aggregates three things across every project at once: tasks parked for a decision, local drafts whose status says they’re ready for a read, and live drafts already sitting in a CMS.
One surface, all projects. That detail does more than it sounds like it should. Per-project inboxes mean you check the project you’re already thinking about, which is the one that didn’t need checking. A single lane makes the neglected thing visible next to the active thing, and neglect is what actually kills a multi-project setup.
The lane is also where the honest capacity signal lives. When six pieces are sitting in it, the problem isn’t drafting speed. I’ve written about what consistency actually costs a solo publisher, and this is the version of it you can see: the constraint was never generating the work.
The lane needs one more thing before it functions, which is a moment where it actually gets read. Mine is a weekly digest that runs locally and tells me what’s sitting there. No dashboard to remember to open, no service to log into. It reports and never acts, and it arrives whether or not I was already thinking about it.
What full automation actually costs
The failure mode isn’t a bad piece going out. A bad piece is recoverable and, honestly, rare. Models are good enough now that fully automated output is usually competent.
The cost is that competent, unread, automatically published content produces an archive with no editorial position. Nobody chose any of it. Nothing was rejected. A publication is defined at least as much by what it declines to publish as by what it ships, and an automated pipeline declines nothing, because declining requires taste and taste requires a reader.
There’s a volume version of the same problem. Automation makes publishing cheap, and cheap publishing only helps if something still selects. Remove the selection step and the main effect is more of the thing that was already indistinguishable, arriving faster. The archive gets bigger while each piece in it is worth less, which is the exact inverse of the compounding people build these systems to get.
There’s an asymmetry underneath it too. The upside of auto-publishing is a saved click. The downside is one piece going out with a fabricated statistic or a claim about a client under your name, and no version of that trade is worth taking for the click.
What the machine is never allowed to do
The list is short and it’s written down, which is the point. It doesn’t publish to a live site. It doesn’t translate instead of writing directly in the target language. It doesn’t invent an experience, a number, or a quote. It doesn’t advance a piece to the next stage because something scored well. And it doesn’t run unattended on prose.
Everything not on that list is fair game, and that turns out to be most of the work. The list isn’t a limit on automation. It’s what makes aggressive automation defensible everywhere else.
Automate everything upstream. Keep the last click.
Build Your Content Machine. A free 5-part email course, one email per layer. Day 2 is this one, set up end to end. Start the free course →






