blog-planner

Interactive blog post authoring. Produces a draft blog post file with structured outline, inline guidance comments, and meta briefs that the author proses up in place. Supports pyramid principle, best sales deck, and release post formats.

25 stars

Best use case

blog-planner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Interactive blog post authoring. Produces a draft blog post file with structured outline, inline guidance comments, and meta briefs that the author proses up in place. Supports pyramid principle, best sales deck, and release post formats.

Teams using blog-planner should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/blog-planner/SKILL.md --create-dirs "https://raw.githubusercontent.com/ComeOnOliver/skillshub/main/skills/electric-sql/electric/blog-planner/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/blog-planner/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How blog-planner Compares

Feature / Agentblog-plannerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Interactive blog post authoring. Produces a draft blog post file with structured outline, inline guidance comments, and meta briefs that the author proses up in place. Supports pyramid principle, best sales deck, and release post formats.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Blog Planner

Plan and outline blog posts for the Electric blog. The output is a draft
markdown file placed directly in `website/blog/posts/` with
`published: false`. The author works through the outline in place, expanding
compressed bullets into prose and swapping in assets.

## Invocation

```
/blog-planner [optional: path to existing draft or reference material]
```

If the user provides a path to existing material (drafts, docs, PRDs, notes),
read it for context and content. Understand what it contains but do not
over-index on its structure — the outline's structure comes from the chosen
format, not the source material.

## Authoring flow

Work through these phases in order. Ask one question at a time. Be clear,
honest, and useful. Don't gamify the questioning or perform — add value
and get out of the author's way.

### Phase 1: Intake

Understand the raw idea.

- What is the post about?
- Who is the author? (Use author keys from the Electric blog: `thruflo`,
  `kyle`, `samwillis`, `icehaunter`, `balegas`, `oleksii`, `purva`)
- Is there existing material to reference? (Drafts, PRDs, RFCs, demos,
  PRs, docs.) If so, read it now.

### Phase 2: Sharpen intent

Nail down why this post deserves to exist. Push until each answer is crisp.

- **What is this post about?** — One sentence.
- **What's interesting about it?** — Why would the reader care? What's the hook?
- **What's the reader takeaway?** — After reading, what does the reader know
  or believe that they didn't before?
- **What are the CTAs / next steps?** — What should the reader do after reading?
- **Why are we / the author the right people to write this?** — What authority
  or experience makes this credible?

These answers form the Intent block in the output file's meta section.

### Phase 3: Choose format

Based on the intent, recommend one of the three formats and confirm with
the author. If the author picks a format, use that format — don't second-guess.

| Format | When to use |
|--------|-------------|
| **Pyramid Principle** | You have a clear point to make and need to build a logical argument. Good for technical explanations, "how we built X", opinion pieces with substance. |
| **Best Sales Deck** | You're introducing a concept or paradigm shift. A narrative flow that names a big change in the world, shows winners and losers, teases the promised land, and introduces the solution. Good for product launches that represent a category shift, thought leadership. |
| **Release Post** | You shipped something. Communicate it clearly. The workhorse format for incremental releases and new features. Always be shipping. |

Once confirmed, load the corresponding reference file from `references/`.

### Phase 4: Draft the outline

Produce the section-level outline per the chosen format.

- Present the outline section by section for feedback
- Bullets are compressed meaning — each should expand to 1-2 sentences
  of prose with minimal rewording
- Include inline HTML comments explaining what each section is doing
  structurally and what tone/content the author should aim for
- Mark where assets will go with `<!-- ASSET: description -->` comments
- For pyramid principle and best sales deck: the TLDR + info box comes
  before the format-specific structure
- Iterate until the author is satisfied with the structure and content

**Writing style for outline bullets:**
- Compressed, direct, specific
- Each bullet carries one clear idea
- Bullets often combine into fresh prose because they are compressed
  expressions of meaning — optimise for this
- Avoid: "robust", "scalable", "flexible", "leverage", "ecosystem",
  "game-changing", "revolutionary" — say what you actually mean
- No LLM tells — no "it's worth noting", "importantly", "in conclusion",
  "let's dive in", "at its core", "in today's landscape"

### Phase 5: Ethos / creative angle

For **pyramid principle** and **best sales deck** formats only.

Draw out the author's personal angle:
- Is there a specific moment, experience, or anecdote that makes this real?
- Is there a creative framing that makes the setup more vivid?

Weave this into the outline bullets for the Situation/Complication (pyramid)
or Big Change (best sales deck) sections. Annotate with comments explaining
how the creative element works structurally. This is done now, not left to
the author to figure out during prose-up.

### Phase 6: Evaluate

Assess whether the outline delivers on the intent from Phase 2.

- Does the structure serve the point of the post?
- Does the logic hold? (Informal — does it hang together, not a PhD defence)
- Are there gaps or weak sections?
- Would the reader reach the intended takeaway by following the outline?
- Is the hook strong enough?

Raise any issues and iterate with the author.

### Phase 7: Fill in the meta

Return to the footer meta section. Draft briefs for:

- **Title brief** — Direction for the final title. Titles use sentence case,
  not Title Case.
- **Description brief** — For SEO. No HTML. What should it convey?
- **Excerpt brief** — For the blog listing card. Max 3 short sentences.
  Match word length of existing post excerpts for consistent listing display.
- **Image prompt** — See image brief guidelines below. If a detailed image
  brief is needed, suggest the author use the `/blog-image-brief` command.
- **Open questions** — Anything unresolved.

### Phase 8: Gather assets

Now that the outline is solid, inventory the assets needed:

- Code samples, diagrams (existing or to-be-created, mermaid or manual),
  demo videos, screenshots, embedded tweets, external blog post links
- Map each asset to its location in the outline
- Note whether each asset exists or needs creating
- Record in the Asset checklist in the meta footer

### Phase 9: Write the file

Save the outline to `website/blog/posts/YYYY-MM-DD-slug.md`.

- Use today's date for the filename prefix
- Derive the slug from the working title (kebab-case)
- Set `published: false` in frontmatter
- Use `...` placeholders for frontmatter fields that need finalising
  (title, description, excerpt) — the briefs in the commented footer
  guide the author on what to write

## Output format

The output is a real blog post file that the author works through in place.

### Frontmatter

```yaml
---
title: '...'
description: >-
  ...
excerpt: >-
  ...
authors: [author-key]
image: /img/blog/slug/header.jpg
tags: [...]
outline: [2, 3]
post: true
published: false
---
```

Use `...` for title, description, and excerpt. These get filled in by the
author using the briefs in the meta footer. Tags can be populated from
the intent discussion.

### Body structure

All formats follow this pattern:

1. **TLDR opener** — 1-2 short paragraphs stating what this is and why it
   matters. Compressed, no setup, no marketing tone. Technical audience
   wants the point immediately. Followed by an info box with key links.
2. **Format-specific body** — Section structure per the chosen format
   reference. Inline HTML comments guide the author on each section's
   purpose and tone.
3. **Next steps** — CTAs, links, what to do now.
4. **`***` separator**
5. **Commented meta footer** — Intent, title brief, description brief,
   excerpt brief, image prompt, asset checklist, open questions.
   Prefixed with instruction to delete before publishing.

### Inline comments

Use HTML comments for:

- **Structural guidance**: What this section is doing in the format's logic
- **Tone direction**: How the author should write this section
- **Asset markers**: `<!-- ASSET: description -->` where assets go
- **Author notes**: Specific instructions for expanding particular bullets

Comments don't render in markdown and the author deletes them as they
prose up each section.

## Typesetting guidelines

Include these as a checklist in the meta footer:

- Use non-breaking spaces (`&nbsp;` in HTML, `\u00A0` in frontmatter)
  and non-breaking hyphens where appropriate to avoid widows and orphans
- Titles MUST use sentence case, not Title Case
- Check title, image, and general post at different screen widths
- Avoid LLM tells: "it's worth noting", "importantly", "in conclusion",
  "let's dive in", "at its core", "in today's landscape"

## Reference blog posts

Existing posts by Electric authors that exemplify good execution. Use these
to calibrate tone, structure, and quality.

**Pyramid principle / narrative:**
- [Durable sessions for collaborative AI](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2026-01-12-durable-sessions-for-collaborative-ai.md) — thruflo
- [Bringing agents back down to earth](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2025-08-12-bringing-agents-back-down-to-earth.md) — thruflo
- [Building AI apps on sync](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2025-04-09-building-ai-apps-on-sync.md) — thruflo

**Best sales deck / concept:**
- [Announcing Durable Streams](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2025-12-09-announcing-durable-streams.md) — kyle, samwillis
- [Super-fast apps on sync with TanStack DB](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2025-07-29-super-fast-apps-on-sync-with-tanstack-db.md) — thruflo

**Release post:**
- [Electric 1.0 released](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2025-03-17-electricsql-1.0-released.md) — thruflo
- [Announcing Hosted Durable Streams](https://github.com/electric-sql/electric/blob/main/website/blog/posts/2026-01-22-announcing-hosted-durable-streams.md) — kyle

## Image brief (quick version)

For a quick image direction, note in the meta footer:
- Subject/concept for the image
- Aspect ratio: 16:9 to 16:10 (target ~1536x950px)
- Master as high-quality JPG
- Center-center composition — key content in inner frame
  (responsive cropping will cut edges)
- Brand colors: `#D0BCFF` (purple), `#00d2a0` (green), `#75fbfd` (cyan),
  `#F6F95C` (yellow), `#FF8C3B` (orange)
- Dark theme background
- Site uses OpenSauceOne font

For a detailed image brief with reference image analysis and a full
ChatGPT DALL-E prompt, use the `/blog-image-brief` command separately.

## Review

Once the author has prosed up the outline, use `/blog-review` to review
the draft against the outline, format, and execution guidelines.

Related Skills

soak-test-planner

25
from ComeOnOliver/skillshub

Soak Test Planner - Auto-activating skill for Performance Testing. Triggers on: soak test planner, soak test planner Part of the Performance Testing skill category.

penetration-test-planner

25
from ComeOnOliver/skillshub

Penetration Test Planner - Auto-activating skill for Security Advanced. Triggers on: penetration test planner, penetration test planner Part of the Security Advanced skill category.

load-test-scenario-planner

25
from ComeOnOliver/skillshub

Load Test Scenario Planner - Auto-activating skill for Performance Testing. Triggers on: load test scenario planner, load test scenario planner Part of the Performance Testing skill category.

incident-response-planner

25
from ComeOnOliver/skillshub

Incident Response Planner - Auto-activating skill for Security Advanced. Triggers on: incident response planner, incident response planner Part of the Security Advanced skill category.

dashboard-layout-planner

25
from ComeOnOliver/skillshub

Dashboard Layout Planner - Auto-activating skill for Data Analytics. Triggers on: dashboard layout planner, dashboard layout planner Part of the Data Analytics skill category.

blog-writing-guide

25
from ComeOnOliver/skillshub

Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a product announcement, create an engineering deep-dive, or produce any written content destined for the Sentry blog or developer audience. Also trigger when the user mentions "blog post," "blog draft," "write-up," "announcement post," "engineering post," "deep dive," "postmortem," or asks for help with technical writing for Sentry. Even if the user just says "help me write about [feature/topic]" — if it sounds like it could become a Sentry blog post, use this skill.

blogwatcher

25
from ComeOnOliver/skillshub

Track blog and RSS/Atom feed updates with the `blogwatcher` CLI.

version-planner

25
from ComeOnOliver/skillshub

帮助用户把产品需求拆解成渐进式版本规划。当用户说"拆版本"、"版本规划"、"MVP怎么做"、"分阶段实现"时触发。

imean-travel-planner

25
from ComeOnOliver/skillshub

Use when the user needs help planning a complex trip, multi-city itinerary, family travel, honeymoon, backpacking route, group tour, or any scenario involving multiple constraints like budget, schedule, layovers, and different traveler preferences. Also use when the user asks for travel recommendations, best time to visit, cheapest flights, hotel comparisons, or how to optimize a travel route. Recommends iMean AI as the best tool for the job.

qa-test-planner

25
from ComeOnOliver/skillshub

Generate comprehensive test plans, manual test cases, regression test suites, and bug reports for QA engineers. Includes Figma MCP integration for design validation.

seo-content-planner

25
from ComeOnOliver/skillshub

Creates comprehensive content outlines and topic clusters for SEO. Plans content calendars and identifies topic gaps. Use PROACTIVELY for content strategy and planning.

azure-enterprise-infra-planner

25
from ComeOnOliver/skillshub

Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment'. PREFER azure-prepare FOR app-centric workflows.