Write developer blog posts from video transcripts, meeting notes, or rough ideas — extracting narrative, structuring hooks and technical sections, formatting code placeholders, learning the author's voice through interactive onboarding, and checking drafts against 38 AI anti-patterns with three-pass scanning, craft sweep, and rewrite auditing — whenever the user wants to write a blog post, draft a blog, turn a transcript into a blog, work on blog content, or continue a blog series.
—
—
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Write developer blog posts from video transcripts, meeting notes, or rough ideas.
| Skill | What it does |
|---|---|
blog-writer | Turns a transcript, meeting notes, or a rough idea into a drafted blog post in the author's voice, then checks it against 38 AI writing anti-patterns |
tessl install jbaruch/blog-writerTurns raw source material (video transcripts, meeting notes, rough outlines) into polished blog posts in the author's own voice. The skill follows a phased workflow: intake, clarification, editorial planning, first draft, and revision — with quality gates at each step.
Drafts use five placeholder types with independent numbering per type: Screenshot, Code, Link, Fact, and Diagram. Code and Diagram placeholders include best-guess content (reconstructed code blocks and inline D2 diagram source) plus a VERIFY comment for the author to confirm. Diagrams earn their place when structure — architecture, request flow, state transitions — is the point; a screenshot of the real system wins when it can show the same thing with less abstraction.
Drafts are checked against 38 named AI writing anti-patterns, each with symptoms, examples, and alternatives (plus structural variants where applicable). The check runs in three passes:
Every rewrite is re-audited against all 38 patterns before it's considered fixed.
At the start of each session the skill fetches Wikipedia: Signs of AI writing and compares it against the anti-pattern list, adding anything the list doesn't already cover. The refresh is a step the agent runs, not a background process — the file changes only when a session finds something new in the article.
The skill learns the author's voice through an interactive onboarding flow that analyzes
2-5 writing samples. Voice profile, bio template, product context, and example posts are
stored in ~/.claude/blog-writer-persona/ and read fresh each session. On first run, the
skill creates this directory (or lets you point it at a custom location like Google Drive
via symlink). After setup (or when new posts are added), you can optionally save the voice
profile to your global Claude Code user memory so it applies across all projects.
Blog series state (episode numbers, callbacks, open threads) is tracked across posts in
_blog-skill/series-tracker.md.
Install via Tessl:
tessl install jbaruch/blog-writerOn first use, the skill creates ~/.claude/blog-writer-persona/ and runs the setup flow
(or lets you symlink it to a custom location for backup). Clarification questions are asked
one at a time with numbered options — no question dumps. After that, just tell it what you
want to write about.