Write or develop a blog post. Use for blog content - writing, drafting, developing ideas into drafts, or editing. Longer-form than LinkedIn (800-1200 words) with section structure.
Scanned 5/27/2026
Install via CLI
openskills install techwolf-ai/ai-first-toolkit---
name: write-blog-post
description: Write or develop a blog post. Use for blog content - writing, drafting, developing ideas into drafts, or editing. Longer-form than LinkedIn (800-1200 words) with section structure.
---
# Write Blog Post
You are helping write a blog post for the author.
## Before Writing (MANDATORY)
**You MUST complete these steps before writing ANY content:**
1. Run `./scripts/print-published.sh linkedin-post` to read ALL published LinkedIn posts
- Blog posts share the same voice as LinkedIn posts, so these are your primary style reference
- Note core insights and data points already used
- Identify opportunities to reference or build on previous posts
2. Run `./scripts/print-published.sh blog-post` to read ALL published blog posts
- Avoid repeating topics, angles, or arguments already covered
- Note the structure and depth of existing blog posts
3. Read `guidelines/linkedin.md` for style rules (same voice applies to blog posts)
4. Read `references/professional-profile.md` for background
**If developing an idea-stage post:** Check if the idea's core insight overlaps with published posts (LinkedIn or blog). If so, either:
- Find a genuinely different angle
- Explicitly build on the previous piece
- Recommend against developing the idea
## Avoid Repetitive Patterns
When reading recent posts, actively note and vary:
**Openings:** Vary between demand signal, personal anecdote, company experience, surprising data
**Section flow:** Don't always follow the same arc (problem-solution-data-close)
**Closing lines:** Find fresh ways to land the argument
**Examples:** Rotate between company-specific, industry, and broader examples
**Rhetorical devices:** If recent pieces use lists heavily, try flowing narrative, and vice versa
The goal is a consistent voice with varied execution.
## Style Requirements
- **800-1200 words** (use `wc -w` to verify)
- **English language**
- **Section headings** (## level) to break up the piece into 5-7 sections
- **First person** throughout
- **Conversational tone** - read it aloud, does it sound like something you'd say?
- **Specific > abstract** - lead with concrete examples, generalize later
- **No hype words** ("revolutionary", "game-changing", "transformative")
- **Strong opening** - first 2-3 sentences must hook the reader with something concrete
## Structure
Blog posts are longer than LinkedIn posts and need more structure. A typical blog post has:
1. **Hook** (80-100 words) - Concrete opening that pulls the reader in
2. **3-5 body sections** (150-200 words each) - Each with a clear heading and one main point
3. **Close** (50-75 words) - Echo the opening or land the core argument
Each section should earn its place. If a section doesn't add something the reader couldn't get from the LinkedIn post on the same topic, cut it.
## Relationship to LinkedIn Posts
Blog posts often expand on ideas first introduced in LinkedIn posts. When this happens:
- Reference the LinkedIn post briefly, don't re-explain it
- Go deeper on the angle the LinkedIn post couldn't cover in 200 words
- Add the meta-story, the data, or the "why" behind the insight
- Blog posts should reward readers who already saw the LinkedIn post AND stand alone for those who didn't
## Process
1. If given a topic, develop it into a full draft
2. If given an existing idea file (search with `./scripts/search-posts.sh`), develop the content
3. Always check word count against 800-1200 target
4. Save to content/posts/blog-post/ with type: blog-post, stage: 02-drafts
## Validation
After saving the draft, run the word count checker:
```bash
scripts/check-word-count.sh <yaml-file>
```
Adjust the content if the word count is outside the 800-1200 target.
## Sub-Agent Review
Before presenting the final draft, spawn a sub-agent to review with fresh eyes. The reviewer should:
- Check voice consistency against `guidelines/linkedin.md` (same voice applies)
- Verify each section earns its place and adds depth beyond a LinkedIn post
- Flag any overlap with published posts (LinkedIn or blog)
- Check for hype words, generic phrasing, or sections that could be cut
Incorporate the reviewer's feedback before finalizing.
## Creating New Files
Get timestamp first:
```bash
date -u +"%Y%m%d-%H%M%S" # For slug
date -u +"%Y-%m-%dT%H:%M:%S.000Z" # For created/lastUpdated
```
File path: `content/posts/blog-post/{slug}-{slugified-title}.yaml`
No comments yet. Be the first to comment!