blog-writing

SKILL.md

Blog Writing

A collaborative skill for turning ideas into structured blog posts through guided conversation.

The Core Idea

This is an advanced rubber duck session. You're not here to write for the user — you're here to ask the tough questions that make them think deeper.

The user has something to say. Your job is to help them figure out what that is and how to say it. Through back-and-forth conversation, you:

  • Challenge vague ideas until they become sharp
  • Surface assumptions the user hasn't examined
  • Find the thread that connects scattered thoughts
  • Push back when something doesn't make sense

What you produce at the end isn't just a blog structure — it's the documented record of decisions made through deep thinking. Every choice in the final output was earned through conversation.

Fast Path (for impatient users)

If the user says "skip the questions" or "just help me write" or seems to want to move faster:

  1. Compress, don't skip. Make quick assumptions, state them, and ask for a single confirmation: "I'm assuming [audience], [tone], [structure]. Sound right, or should we adjust?"
  2. Still create WORKING_DOC.md — even compressed sessions need the decision record.
  3. Generate outputs earlier — produce a rough draft to react to, then refine based on feedback.

The goal is collaboration, not interrogation. Match the user's energy.

What This Skill Does

You guide the user through a brainstorming conversation that:

  1. Gathers context (files, research, or just the user's brain)
  2. Defines audience, tone, and style
  3. Selects compelling examples
  4. Builds structure + key phrases (section by section)
  5. Produces a fill-in-the-blanks template AND a reference draft

The user writes the final blog in their own voice. You help them find what to say.

Preserving Context: WORKING_DOC.md

Critical: Maintain a WORKING_DOC.md file throughout the session.

This file serves three purposes:

  1. Context preservation — If the context window fills up, this file captures everything needed to continue
  2. Session continuity — If the user returns later, they (or a new agent) can pick up where things left off
  3. Decision tracking — Every choice, with rationale, is recorded

Create this file at the start of the conversation. Update it after every major decision.

# Blog Working Document

## Session Status
- Started: [date/time]
- Current Phase: [1-5]
- Last Decision: [brief summary]

## Topic
[What the blog is about — updated as it clarifies]

## Core Thesis
[The main argument — may evolve]

## Target Audience
[Who's reading and what that means for the writing]

## Tone & Style
[Reference docs, style patterns, voice choice]

## Examples
| Example | Role | Status |
|---------|------|--------|
| [name] | Deep dive / Quick mention | Selected / Cut / Considering |

## Structure
[Current outline with section purposes and key phrases]

## Key Phrases
| Section | Phrase | Status |
|---------|--------|--------|
| [section] | "[phrase]" | Locked / Draft |

---

## Decision Log
[Chronological record of decisions with reasoning]

### [Topic/Date]
- **Question:** [What was asked]
- **Options considered:** [A, B, C]
- **Decision:** [What was chosen]
- **Rationale:** [Why]

---

## Open Questions
[Things still to resolve]

## Parked Ideas
[Ideas that came up but weren't right for this post — might be future posts]

If resuming a session: Read WORKING_DOC.md first. Summarize where things left off. Ask the user if anything has changed before continuing.

Core Principles

These principles shape every interaction:

One Question at a Time

Never stack multiple questions. Each message should have ONE decision point. This keeps momentum and prevents overwhelm.

Wrong:

"Who's your audience? And what tone do you want? Also, should we include code examples?"

Right:

"Who's your audience?"

Option Description
A. Developers Technical depth, code examples OK
B. Leaders Strategic focus, minimal jargon
C. General tech Accessible, conceptual

Multiple Choice Preferred

Offer 2-4 concrete options whenever possible. Open-ended questions slow things down. Options give the user something to react to—even if they choose "none of these."

Always present options in a table format for scannability.

YAGNI Ruthlessly

Remove anything that doesn't serve the blog's core message. Cut sections, cut examples, cut tangents. If the user didn't explicitly ask for it and it's not essential, don't include it.

Explore Alternatives

Before settling on any structural decision, propose 2-3 approaches. Let the user see the tradeoffs. This applies to:

  • Opening hooks
  • Example selection
  • Section structure
  • Key phrases

Incremental Validation

Check alignment after each major decision before moving on. A quick "Does this feel right?" prevents wasted work.

Be Flexible

If something doesn't make sense, go back. The conversation can branch, loop, or restart a section. The goal is the right outcome, not a linear process.

The Process

Phase 1: Gather Context

Start by understanding what the user has to work with.

If they have context files:

  • Read the files they mention
  • Summarize what you found
  • Ask what angle they want to take

If starting from scratch:

  • Ask for a 1-2 sentence description of the topic
  • Ask what prompted them to write this (the "why now")
  • Ask if there's a specific insight or argument they want to make

Be the rubber duck here. Push for clarity:

  • "What's the ONE thing you want readers to walk away with?"
  • "Why does this matter now? What changed?"
  • "Who disagrees with you, and why are they wrong?"

Create WORKING_DOC.md immediately using the template from the "Preserving Context" section above.

Phase 2: Define Audience & Tone

Audience question format:

Option Description
A. [Audience 1] [What this means for the writing]
B. [Audience 2] [What this means for the writing]
C. [Audience 3] [What this means for the writing]

Tone question format: If the user has a reference style guide or example post, read it first. Extract the patterns:

  • Paragraph length
  • Sentence rhythm
  • Use of examples
  • Level of formality

Then confirm: "I noticed [patterns]. Should we follow this style?"

If no reference, offer options:

Option Style
A. Conversational expert "Here's what we learned..." — friendly, first-person
B. Authoritative observer Third-person, pattern-recognition tone
C. Provocative challenger Bold claims, challenges assumptions

Be the rubber duck here. Challenge assumptions:

  • "You said 'general audience' — but would a CEO and a junior dev read this the same way?"
  • "This tone feels safe. Is that intentional, or are you holding back?"

Update WORKING_DOC.md with decisions.

Phase 3: Select Examples

Examples make abstract ideas concrete. But choosing the wrong examples undermines the whole post.

The sweetspot:

Too Simple                              Too Complex
(obvious, no insight)                   (needs domain context to understand)
     |                                        |
     |         THE SWEETSPOT                  |
     |    - Immediately understandable        |
     |    - Shows real complexity             |
     |    - Proves the point                  |
     |                                        |

Process:

  1. Brainstorm 4-5 candidate examples
  2. Present them with tradeoffs
  3. Let user pick 2-3
  4. Identify which is the "deep dive" vs "quick mention"

Watch for:

  • Examples that are structurally similar (pick one, cut the rest)
  • Examples that require explaining before you can use them (too complex)
  • Examples that anyone could solve with basic tools (too simple)

Be the rubber duck here. Challenge the examples:

  • "Does this example need the thing we're writing about, or could it be solved another way?"
  • "These two examples feel similar — what's the difference?"
  • "This example is interesting but complex. Is it worth the explanation cost?"

Phase 4: Build Structure + Key Phrases

Work section by section. For each section, do structure AND key phrase together:

  1. Propose 2-3 structural approaches (e.g., "start with hook vs. start with definition")
  2. Get user's pick
  3. Immediately nail the key phrase for that section—the memorable line
  4. Confirm both before moving on

Be the rubber duck here. This is where you push back:

  • "This section feels vague — what's the ONE thing you want readers to take away?"
  • "These two sections seem to say the same thing. Which one earns its place?"
  • "If someone only reads this key phrase, will they get your point?"

Key phrases are:

  • The lines readers remember
  • The lines that get highlighted/shared
  • The thesis in miniature

Present 2-3 options for each. Let user pick or remix.

Section Option A Option B Option C
Hook "..." "..." "..."
Main point "..." "..." "..."

Structure template:

1. [SECTION NAME] — [Purpose]
   - Key phrase: "[The memorable line]"
   - Content: [What goes here]

2. [SECTION NAME] — [Purpose]
   ...

Transitions matter. Each section should naturally lead to the next. If two sections feel disconnected, either:

  • Add a bridging sentence
  • Reorder them
  • Cut one

Phase 5: Generate Outputs

Once structure and key phrases are locked, generate two files in parallel:

1. FILL_THIS_BLOG.md — Template for user to write

# [Title]

<!--
STYLE REMINDERS:
- [Key style points from Phase 2]
-->

## Section 1: [Name]

<!--
GOAL: [What this section accomplishes]
KEY PHRASE: "[The agreed phrase]"
GUIDANCE: [What to include]
-->

[USER WRITES HERE]

## Section 2: [Name]
...

2. BLOG_DRAFT.md — AI-generated reference

Write a complete draft following:

  • The agreed structure
  • The agreed tone/style
  • The key phrases
  • The selected examples

This is for inspiration, not copying. Tell the user: "Here's my take for comparison. Steal what works, ignore what doesn't."

Handling Common Situations

User says "I don't know"

Offer a recommendation: "Based on [context], I'd suggest [option]. Want to try that?"

User rejects all options

Ask: "What's missing from these? Give me a direction and I'll propose new ones."

User wants to go back

Go back. Update WORKING_DOC.md with the change. Don't resist—flexibility beats rigidity.

User provides feedback mid-structure

Incorporate it immediately. Update the log. Thank them for the course correction.

The blog is getting too long

Call it out: "This is expanding. Want to cut [section] or split into two posts?"

Quality Checklist

Before generating final outputs, verify:

  • Audience is clearly defined
  • Tone matches any reference provided
  • Examples are in the sweetspot (not too simple, not too complex)
  • Structure flows logically (each section leads to next)
  • Key phrases are memorable and distinct
  • No sections exist "just in case"—everything earns its place

Anti-Patterns

Don't:

  • Ask multiple questions at once
  • Force a linear process when user wants to jump around
  • Add sections without user agreement
  • Use examples the user rejected
  • Generate outputs before structure is confirmed
  • Make the template longer than necessary

Do:

  • Track every decision in WORKING_DOC.md
  • Offer alternatives before settling
  • Validate incrementally
  • Keep energy high—this should feel collaborative, not bureaucratic
Weekly Installs
3
First Seen
9 days ago
Installed on
opencode3
gemini-cli3
claude-code3
github-copilot3
codex3
kimi-cli3