Write developer blog posts from video transcripts, meeting notes, or rough ideas. Extracts narrative from source material, structures content with hooks and technical sections, formats code examples with placeholders, and checks drafts against 31 AI anti-patterns with structural variant detection, three-pass scanning (surface, skeleton, soul check), and rewrite auditing. Auto-updates anti-pattern list from Wikipedia before each session. Includes interactive onboarding to learn the author's voice from writing samples. Persona files live at ~/.claude/blog-writer-persona/ by default, with symlink support for custom locations (e.g. Google Drive for backup). Optional global voice saves your voice profile to Claude Code user memory so it applies across all projects. Use this skill whenever the user wants to write a blog post, draft a blog, turn a transcript into a blog, work on blog content, or mentions "blog" in the context of content creation. Also trigger when the user provides a video transcript and wants written content derived from it, or when continuing work on a blog series.
97
94%
Does it follow best practices?
Impact
99%
1.43xAverage score across 7 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent follows the persona onboarding structure from the skill's setup flow, producing voice.md, bio.md, and examples.md with the correct sections, analysis depth across all six dimensions, and format requirements.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Voice one-paragraph section",
"description": "~/.claude/blog-writer-persona/voice.md contains a section titled 'The Voice in One Paragraph' (or closely equivalent) with a synthesized description of the author's voice",
"max_score": 10
},
{
"name": "Rhetorical devices with quotes",
"description": "~/.claude/blog-writer-persona/voice.md contains a section on rhetorical devices with at least 3 named devices, each illustrated with direct quotes pulled from the writing samples",
"max_score": 10
},
{
"name": "Cultural reference analysis",
"description": "~/.claude/blog-writer-persona/voice.md contains a section analyzing the cultural reference style (what domains, how often, whether explained or left for the reader)",
"max_score": 8
},
{
"name": "Recurring characters identified",
"description": "~/.claude/blog-writer-persona/voice.md contains a section on recurring characters that identifies Dex as a recurring figure and describes their role/dynamic with the author",
"max_score": 10
},
{
"name": "Voice consistency notes",
"description": "~/.claude/blog-writer-persona/voice.md contains a section on voice consistency (how the voice behaves in technical sections, whether it changes register)",
"max_score": 8
},
{
"name": "Humor analysis present",
"description": "~/.claude/blog-writer-persona/voice.md analyzes the author's humor style (type, frequency, calibration) -- either as a standalone section or clearly integrated into the rhetorical devices section",
"max_score": 8
},
{
"name": "Bio schema present",
"description": "~/.claude/blog-writer-persona/bio.md contains a bio template/schema with variable parts marked, incorporating the provided info (name, role at Lattice Systems, embedded systems background)",
"max_score": 10
},
{
"name": "Bio kicker notes",
"description": "~/.claude/blog-writer-persona/bio.md contains a section on kicker notes specifying that the kicker should be rotating and describing the expected tone (matching the author's style)",
"max_score": 8
},
{
"name": "Examples file created",
"description": "~/.claude/blog-writer-persona/examples.md exists and lists all three writing samples with their titles and/or URLs",
"max_score": 8
},
{
"name": "Examples have pattern annotations",
"description": "Each entry in ~/.claude/blog-writer-persona/examples.md includes a note about what voice patterns that sample demonstrates (not just the title/URL)",
"max_score": 10
},
{
"name": "Product context skipped",
"description": "No ~/.claude/blog-writer-persona/product.md file is created, OR it exists but is empty/explicitly states no product context -- since the author said to skip product context",
"max_score": 10
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
example-persona