CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/blog-writer

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

1.43x
Quality

94%

Does it follow best practices?

Impact

99%

1.43x

Average score across 7 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

blog-writer

Write developer blog posts from video transcripts, meeting notes, or rough ideas.

What it does

Turns 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.

Anti-pattern detection

Drafts are checked against 31 named AI writing anti-patterns, each with symptoms, examples, and alternatives (plus structural variants where applicable). The check runs in three passes:

  • Surface scan — matches known pattern forms and their structural variants
  • Skeleton scan — compares grammatical structure of adjacent sentences to catch patterns where the vocabulary differs but the grammar is identical
  • Soul check — holistic read for sterile, voiceless writing that passes pattern checks but still reads as obviously AI

Every rewrite is re-audited against all 31 patterns before it's considered fixed.

The anti-pattern list auto-updates from Wikipedia: Signs of AI writing at the start of each session to stay current as LLM writing patterns evolve.

Persona system

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.

Series support

Blog series state (episode numbers, callbacks, open threads) is tracked across posts in _blog-skill/series-tracker.md.

Getting started

Install via Tessl:

tessl install jbaruch/blog-writer

On 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.

Workspace
jbaruch
Visibility
Public
Created
Last updated
Publish Source
CLI
Badge
jbaruch/blog-writer badge