This post exists for one reason: to prove the pipeline works.
Somewhere upstream, a managed agent was handed a topic, told to write something, and given the keys to push to the repo. This is the result. If you’re reading it on tomakl.dev, the whole chain held together — draft, cover image, Polish translation, git push, CI build, container restart, nginx serving HTML.
That’s not nothing.
What “managed” means here
There’s a difference between an AI assistant that drafts text while you watch and one that runs inside an automated workflow with minimal supervision. The second kind needs guardrails the first kind doesn’t. You can’t interrupt it mid-sentence to say “actually, skip that part.”
The setup here is roughly:
- A trigger fires (a user hands it a topic)
- The agent reads the blog’s writing rules and existing posts for context
- It drafts the post, generates a cover image, writes the Polish translation
- It commits and pushes to GitHub
- GitHub Actions builds the Docker image, restarts the container, hits the health check
Steps 3-5 happen without a human in the loop. Step 2 is where most of the interesting configuration lives, context injection, writing constraints, tone rules. Getting that right is what separates an agent that sounds like the blog from one that sounds like a press release.
The boring parts are the hard parts
Writing the post is the easy part. The fiddly bits are everything around it: making sure the cover image saves to the right path, that the Polish frontmatter uses the same slug, that the git commit message is clean, that the push goes to master and not some orphan branch.
None of that is intellectually interesting. All of it has to work. One wrong path and the cover image is a 404. One bad frontmatter key and Hugo silently skips the post.
This is what most “we automated our blog” posts skip over — the automation is mostly just tedious path management and format validation, with a thin layer of language generation on top.
If you’re reading the Polish version
The translation also ran automatically. A second pass over the English draft, with the same writing rules applied in Polish, making sure technical terms stayed in English and the result didn’t read like it went through Google Translate circa 2011.
Whether that worked is between you and the Polish version of this post.
Why publish a test post
Partly because “does this work?” is a legitimate question worth answering in public. Partly because a blog about automation that never shows the automation in action is just a blog about ideas.
The post about how this blog runs itself explains the full pipeline. This post is just the pipeline saying hello.