← Skills Library
Content & Retro

Blog Autopilot

Automated content pipeline: sources YouTube creators you follow, generates original articles in your voice, creates AI hero images, and auto-publishes via Git PR. Runs on a cron with zero manual steps.

How It Works

Blog Autopilot · Workflow
Cron pipeline: gather → write in your voice → image → PR.
TriggerCron fires (Mon/Wed/Fri) · Zero manual intervention · round-robin category
1
Gather sources
gather.py: YouTube RSS → transcript → context JSON
2
Claude writes article
Original draft in your voice + image prompt
3
Generate hero image
generate_image.py → Leonardo AI · verify file exists
4
Sanitize content
Leak guard on changed paths — no PII / infra
Deliver as Git PR · deliver.py validates → PR → Discord alert
  1. Cron fires (Mon/Wed/Fri): Zero manual intervention · round-robin category
  2. Gather sources: gather.py: YouTube RSS → transcript → context JSON
  3. Claude writes article: Original draft in your voice + image prompt
  4. Generate hero image: generate_image.py → Leonardo AI · verify file exists
  5. Sanitize content: Leak guard on changed paths — no PII / infra
  6. Deliver as Git PR: deliver.py validates → PR → Discord alert
ↆ download card

Invocation Triggers

blog-autopilotcontent pipelineauto-publishautomated blogging

Use Cases

  • Automate your blog with 3 posts/week sourced from creators you follow
  • Generate original articles in your voice from YouTube transcripts
  • End-to-end pipeline: research → write → image → PR — no manual steps

The Problem

A blog dies the week you get busy. Consistency is the whole game, and consistency is exactly what a human cannot sustain three days a week on top of everything else. You either skip posts or you let an AI spew generic prose that reads like every other AI blog. Blog Autopilot sources real material, writes in a voice you actually trained on example paragraphs, makes the hero image, and drops it as a PR you can review — so the cadence holds whether or not you had time that day.

What It Does

  1. 1
    Gather sources

    gather.py pulls transcripts and context from the YouTube channels you follow, rotating round-robin by category so no topic repeats until every category has run.

  2. 2
    Write the article

    Claude writes an original article grounded in the gathered context, matched to your voice profile — real example paragraphs, not meta-instructions — and emits a matching image prompt.

  3. 3
    Generate the hero image

    generate_image.py sends the prompt to Leonardo AI and produces the hero image. The next stage hard-checks the file exists because this step can fail silently.

  4. 4
    Deliver as a PR

    deliver.py validates the article and image, commits to a branch, opens a Git PR against your blog repo, and fires a Discord alert. You review and merge.

  5. 5
    Track state

    state.json records category rotation, consumed video IDs so nothing repeats, published slugs, and a last_run idempotency guard so a cron re-fire does not double-post.

What You Get / What It Doesn't Do

What you get
  • An original article in your voice, grounded in fresh source material
  • A Leonardo hero image matched to the article
  • A Git PR against your blog repo, ready to review
  • A Discord alert when the draft lands
  • Rotated sources with no repeated videos or categories
What it doesn't do
  • Publish to main — it opens a PR for you to review and merge
  • Write in a voice you have not trained on example paragraphs
  • Recover its own silent image failure beyond the file existence check
  • Source from channels you did not list in sources.json

Tips

Write voice examples, not rules

The voice profile is the most important file. Paste real paragraphs in your voice; Claude drifts to generic prose when fed instructions instead of examples.

Reset last_run to re-run a day

The idempotency guard blocks a same-day re-fire. If you need to regenerate a post, clear last_run in state.json first.

Trust the image existence check

generate_image.py fails silently. Never bypass deliver.py's file-exists check, or you will PR an article with a broken hero image.

Get the Skill

Elite SkillELITE

Unlock the full Blog Autopilot SKILL.md — drop it into ~/.claude/skills/ and trigger it by name.

What you unlock
  • An original article in your voice, grounded in fresh source material
  • A Leonardo hero image matched to the article
  • A Git PR against your blog repo, ready to review
  • A Discord alert when the draft lands
...
Skills Library

29 more production skills ready to install.

Browse All Skills