Skip to content

5. Content Engine

TL;DR — Say “write a blog post about X”. Claude searches your vault for related notes, drafts the post, calls nano-banana for a featured image + inline illustrations, saves everything to 80-Content/drafts/, and optionally generates Twitter/LinkedIn variants. You go from “I should write about this” to “I have a publishable draft with art” in ~5 minutes.

This is the workflow that converts your vault into output. Without it, you’re just hoarding notes.

  • You’ve been mulling a topic and want a real draft
  • A meeting or a thread you saw sparked an opinion worth sharing
  • You need a thumbnail/featured image for something you’ve already drafted
  • Quarterly newsletter time — synthesize a month of notes into a piece

What happens:

  1. Research — vault search for relevant notes via obsidian_simple_search
  2. Outline — 5-bullet outline shown for your approval (skip with “just write it”)
  3. Draft — full markdown post saved to 80-Content/drafts/YYYY-MM-DD-[slug].md
  4. Visuals — featured image (1200×630) + 2–3 inline illustrations to 80-Content/assets/[slug]/
  5. Variants (if requested) — Twitter thread + LinkedIn post as sibling files
  • Skill location: ~/.claude/skills/content-engine/SKILL.md
  • Reads: vault via search; 90-Templates/blog-post.md
  • Writes:
    • 80-Content/drafts/YYYY-MM-DD-[slug].md
    • 80-Content/assets/[slug]/featured.png + 2-3 inline images
    • Optional: [slug]-twitter.md, [slug]-linkedin.md
  • Chains: calls the nano-banana skill for image generation
  • Style drift — first run, ask Claude to use your voice samples. Point it at 2-3 existing drafts in 80-Content/published/ and say “match this voice”.
  • AI-tells in the draft — watch for “in today’s fast-paced world”, “delve”, “tapestry”, “moreover” — these are banned in the skill. If you see one, the skill needs a tightening pass.
  • Image cost — free-tier Gemini gives ~500 images/day. A post with 4 images = trivial. Be aware if you batch 50 posts.
  • Embedded image paths — drafts use relative paths like ../assets/[slug]/featured.png. If you publish to a CMS, swap with absolute URLs at publish time.
  • Pick a default style — once you settle on “flat illustration, minimalist” or “editorial photo”, encode it in the skill so you don’t pick every time.
  • Build a CTA library — keep ready-to-go CTAs in 40-Resources/ctas.md; have the skill pull one based on the post topic.
  • Sequence with publish: add a step that opens a Ghost/WordPress draft API call once you mark frontmatter status: ready.