← All posts

A Skill That Writes Blog Posts

The generate-blog-post skill is a markdown file that tells Claude where to find stories, how to avoid sounding like AI, and what to do when a draft gets rejected.

2 min readimadamai.com
ClaudeWritingAISkills
A Skill That Writes Blog Posts

Every post on this site starts the same way. I type /generate-blog-post and either give it a topic or say "find something interesting." Claude reads the skill file, searches planning artifacts across multiple repos, and pitches story ideas. I pick one. It drafts. I review. Sometimes I reject the whole thing.

The skill is a single markdown file. About 170 lines. It tells Claude exactly how to write for this site.

Where it finds stories

The skill lists specific file paths to search: DISCUSSION-LOG.md for real dialog, *-SUMMARY.md for deviations and workarounds, VERIFICATION.md for course corrections, RETROSPECTIVE.md for lessons learned. It checks sibling project repos by running ls ../ and looking for .planning/ directories.

It also reads Claude's own memory files for context about tone preferences and past decisions.

The best stories come from deviations. When a plan said one thing and the execution went differently, that gap is usually worth writing about.

What it bans

The skill has an explicit banned words list. "Delve," "landscape," "leverage," and about 30 others. It bans em dashes entirely. Zero allowed. It bans the rule-of-three pattern, punchy paragraph endings, and rhetorical questions as transitions.

After drafting, the skill tells Claude to self-check: re-read every sentence against the rules, count em dashes (must be zero), grep for banned words, verify word count is between 200 and 500.

The discard log

When I reject a draft, the skill says to log it. There's a DISCARDED.md file in the skill's directory with a table: date, title, reason. Before pitching new ideas, Claude checks the log so it doesn't re-pitch something I already said no to.

Five ideas have been rejected so far. One was "too personal." One "not interesting enough." One described something I didn't remember happening, which meant the agent had fabricated context from artifacts it misread.

This post

This post was generated by the skill it describes. The skill searched the artifacts, pitched three ideas, I picked two, and it drafted them. The self-check caught nothing because the rules were fresh in context. Whether that means the rules work or the check is redundant, I'm not sure yet.