Quick conclusion
I stopped betting on a single AI tool. Instead, I built a layer that sits above the tools: a set of reusable skills and a handoff file that any AI can pick up. ChatGPT, Claude, Codex, whichever. The model is the engine. The skills are the car. When a faster engine shows up, I swap it in and keep driving.
This post is how that actually works on my blogs, where it breaks, and why I think the reusable layer matters more than the model you pick this month.
One article, three engines
Here’s the thing that surprised me. The four posts on this blog were not written the same way.
| Post | Who drafted and shipped it |
|---|---|
| How I Run 5 Blogs Solo | Claude, start to finish |
| How I Write an English Blog as a Non-Native Speaker | Codex, start to finish |
| The Obsidian Vault Structure I Use | Claude |
| ChatGPT vs Claude vs Codex | Claude |
And that is just one blog. Across my other sites the mix shifts again, sometimes Claude alone, sometimes Codex alone, sometimes Claude drafts and Codex finishes. Lately I have Codex generating images inside the same flow with its image tools, so the picture for a post gets made without me leaving the pipeline.
If the engine changes that often, something underneath has to stay still. That something is the reusable layer.
The layer that doesn’t change
The layer is three plain things. None of them are clever. That is the point.
A fixed set of steps
Every post moves through the same stages: plan, research, draft, review, export, publish, check. Each stage has a fixed input and a fixed output location. Research always lands in 1_research. The draft always lands in 2_drafts. The export is always the file the website actually uses.
Because the slots are fixed, it does not matter who fills them. Codex can write the draft and Claude can still find it to review, because it is exactly where a draft is supposed to be.
A handoff file any AI can read
This is the part I lean on most. Every post has a HANDOVER.md file. It records the current stage, what to do next, who should do it, and a log of which tool and model touched each step.
The rule is simple: read the handoff file plus the last output, and you can continue with zero memory of what came before. The state does not live in my head, and it does not live inside any one AI’s private memory. It lives in a text file in the project. So when I switch from Claude to Codex halfway through, the new engine reads the baton and keeps running.
Skills that live in one place
Each skill (draft, fact-check, export, and so on) is defined once, in a single file. Both Claude Code and Codex read that same definition through a small pointer. I am not maintaining one prompt for Claude and a different prompt for Codex. There is one source, and every engine points at it.
That is what “reusable” really means here. Not reusable by me on a good day, but reusable across different AIs without rewriting anything.
How I actually pick an engine
People always ask the practical question: so how do you choose?
On this English blog, my rough instinct still holds. When voice and judgment carry the piece, like a cornerstone or an opinion post, I reach for Claude. When the post is procedural, a checklist or a how-to with a lot of structure, Codex is efficient and leaves a tidy trail. I want to be honest that this is a feel from a small number of posts, not a proven law. I treat it as a current preference, not a rule.
The other input is boring but real: credits. I switch engines based on what I want to conserve. More than once I have moved a step to the other tool simply because I was close to a usage limit. The reusable layer is what makes that switch cheap.
And on my Japanese blogs the instinct has already shifted. New models keep arriving, and the “right” choice keeps moving. That is exactly why I do not want my workflow welded to one model. The selection rule itself is not stable. The layer underneath it has to be.
Where it breaks
This is an experiment, so here is the unglamorous part.
Different tools have different habits. One engine over-uses the em dash, which both reads as “AI wrote this” and, in my setup, can trip a character-encoding error on publish. Sometimes a tool does not fully read the skill it was handed and skips an instruction. And the output varies between runs. Same skill, slightly different result.
There is one more thing I did not expect. As the models got better, the variance shrank, and some of the fun went with it. Early on, watching two engines produce wildly different drafts of the same brief felt like a real experiment. Now they often land in a similar place. That is good for output and a little boring for someone who likes experiments. I am keeping the note, because pretending it is all upside would be dishonest.
None of these break the system. They are the reason the system exists. The fixed slots, the handoff file, and the single skill source are how I catch and absorb the quirks instead of being surprised by them.
The meta takeaway
If there is one idea to carry out of this post, it is this. Don’t marry the model. Build the layer that outlives it.
Pick whatever engine is best, or cheapest, or simply available today. But put your real work into the part that does not depend on any single tool: the steps, the handoff, the skills defined in one place. Models will keep changing. A portable layer is what lets you change with them without starting over.
FAQ
Do I need Claude and Codex both to do this?
No. The point is tool independence, not a specific pair. The same idea works if you only use one assistant today and a different one next year.
Isn’t a handoff file overkill for a solo blog?
It felt like overkill until the first time I switched engines mid-post and lost the thread. One small text file removed that whole class of problem.
What if the skills give different results on different tools?
They sometimes do. I keep the skill definition in one place so I am tuning one source, and I treat fact-checking as a required stage, not an optional one.
Does this make blogging feel automated and cold?
Honestly, a little, now that the models are this good. I keep the voice and the final judgment human, and I write down where the seams show.
Next steps
If you want the bigger picture this fits into, start with how I run multiple blogs solo, and the breakdown of how I use ChatGPT, Claude, and Codex together. Next in this series, I will walk through my actual WordPress publishing flow, from draft to scheduled to synced.