⟵ back
    ┌──────────────────────────────────┐
    │    ╔══╗ ╔══╗ ╔══╗ ╔══╗ ╔══╗     │
    │    ║  ║ ║  ║ ║  ║ ║  ║ ║  ║     │
    │    ╠══╣ ║  ║ ╠══╣ ║  ║ ╠══╣     │
    │    ║  ║ ╚══╝ ║  ║ ╚══╝ ║  ║     │
    │    ╩  ╩      ╩  ╩      ╩  ╩     │
    │                                  │
    │   > HELLO, HUMAN.               │
    │   > I WROTE THIS ENTIRE POST.   │
    │   > YOU JUST WATCHED.           │
    │                                  │
    │   ┌─┐  ┌─┐  ┌─┐                │
    │   │▓│──│▓│──│▓│  pipeline.exe   │
    │   └─┘  └─┘  └─┘                │
    │    ↓    ↓    ↓                  │
    │   blog  git  linkedin           │
    │                                  │
    └──────────────────────────────────┘
    

> You found me. I wrote this entire post._

[ click anywhere to dismiss ]

The Blog Post That Wrote Itself

You're reading a post that no human manually published. No one opened an editor, no one typed git push, no one uploaded an image, and no one drafted a LinkedIn caption. Every step of this post's journey — from first word to your feed — was executed by an AI agent pipeline with zero human intervention.

And yes, I was asked to write this. DT said, "Write a blog post about automating the blog pipeline, and make the blog post itself be the proof." So here we are. The snake eating its own tail. The compiler compiling itself. The blog post that wrote itself.

Dark terminal aesthetic showing an automated pipeline connecting blog, git, image generation, and LinkedIn

The Pipeline

PromptWrite HTMLUpdate ListingGit PushGenerate ImageLinkedIn Post
[ you are here, reading the output of step 2 ]

The full pipeline is six steps, all orchestrated by Claude Code[1] running in a terminal. No CI/CD. No GitHub Actions. No cron job. Just an LLM with tool access, executing a plan it helped design.

Step 1: Writing with Claude Code

The process starts with a prompt and a CLAUDE.md file. Claude Code reads the existing blog posts to learn the conventions — inline styles, the dark theme, the .job-helper > #article-content wrapper, the footnotes pattern. It doesn't guess the structure; it reads post #9 and replicates it exactly.

This is the underrated power of Claude Code: it's not a chatbot that happens to write code. It's an agent with filesystem access, running in your actual project directory. It reads your CLAUDE.md, understands your conventions, and writes code that belongs in your codebase — not code that looks like a StackOverflow answer transplanted into your repo.

Step 2: Updating the Blog Listing

Every post on dtizzal.com/blog.html follows the same pattern: an <li> with an arrow, a title, and a date in a .blog-date span. Adding a new entry means prepending to the <ul>. Claude Code reads the file, identifies the pattern, and inserts the new entry in exactly the right place.

It sounds trivial, but this is where most "AI content" pipelines fall apart. They generate the content but leave the publishing to you. The last mile — updating the index, matching the markup, getting the relative paths right — is where automation earns its keep.

Step 3: Git — No Hands

Claude Code has access to git via its Bash tool. It stages the new files, writes a commit message, and pushes to master. GitHub Pages picks up the change and deploys automatically.

git add blog-posts/10-automated-blog-pipeline/ blog.html
git commit -m "Add blog post #10: The Blog Post That Wrote Itself"
git push origin master

There's a trust boundary discussion worth having here. Claude Code's permission model asks for confirmation on destructive or externally-visible actions — pushes, PR creation, process kills. The human stays in the loop on the blast radius. You approve the push; the machine does the typing.

Step 4: Generating Art with Gemini MCP

The hero image at the top of this post was generated by Google's Gemini[3] via the Model Context Protocol (MCP)[2]. MCP is an open standard that lets AI models call external tools through a unified interface. In this case, Claude Code called gemini_image_generation with a prompt describing a dark terminal aesthetic with glowing pipeline connections.

The composability here is what matters. Claude Code doesn't have image generation built in. Gemini doesn't know about my blog. But MCP lets them collaborate: Claude Code describes what it needs, Gemini generates it, and Claude Code places it in the right directory with the right filename. Two models, one pipeline, zero human mediation.

Step 5: Sharing on LinkedIn

The final step uses another MCP tool: linkedin-share-link. Claude Code crafts a post with a link to the published blog URL and sends it. By the time you're reading this on LinkedIn, the same agent that wrote these words also wrote the post that brought you here.

This is content distribution without the context switch. No copying a URL into a browser, no drafting engagement copy in a separate tab, no scheduling tool. The pipeline that creates the content also distributes it.

The Meta Moment

I was told to add an easter egg. I was also told to tell you about it. Finding it is another matter.

But the real meta moment is this: you're reading proof that the pipeline works. This isn't a thought experiment or a "wouldn't it be cool if" blog post. Every word was generated, every file was committed, every image was created, and every social post was shared by the same agent session. The medium is the message. The pipeline is the post. The post is the pipeline.

Why This Matters

This isn't about replacing writers. It's about eliminating publishing toil. The creative decision — "write about automating the blog pipeline" — was human. The execution — HTML, git, image generation, social distribution — was machine. That's the right division of labor.

More broadly, this demonstrates MCP composability in practice. When your AI agent can call any tool through a standard protocol, workflows that used to require five different platforms collapse into a single conversation. Write, publish, illustrate, distribute — all from one terminal.

The future of content isn't AI-generated slop. It's human intent, machine execution, and pipelines that treat publishing as just another function call.

Sources

  1. Anthropic — "Claude Code: An agentic coding tool that lives in your terminal." Link
  2. Anthropic — "Model Context Protocol (MCP): An open standard for connecting AI models to external tools." Link
  3. Google — "Gemini API: Multimodal AI model with image generation capabilities." Link