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

Evaluation results

98%

73%

Prepare a New Contributor's Draft for Publication

TLDR and placeholder formatting

Criteria
Without context
With context

TLDR is bullet points

0%

100%

TLDR bullet count

0%

100%

TLDR bullets are provocative

0%

100%

TLDR recurring character last

0%

100%

TLDR compressed not miniaturized

0%

100%

Screenshot numbering independent

50%

100%

Code numbering independent

50%

100%

Link numbering independent

25%

100%

Zero-padded numbers

12%

100%

No shared counter

90%

100%

Hedging filler removed

37%

75%

100%

51%

Write a Developer Blog Post from a Debugging Session Transcript

Blog draft from transcript

Criteria
Without context
With context

Research bank naming

100%

100%

Research bank structure

80%

100%

Draft file naming

100%

100%

TLDR is bullets

0%

100%

TLDR bullet count

0%

100%

TLDR placed before body

0%

100%

TLDR recurring character last

0%

100%

Opening is narrative

87%

100%

Placeholder independent numbering

0%

100%

Placeholder zero-padding

0%

100%

Code VERIFY comment

0%

100%

Bio post-specific kicker

100%

100%

Series callback present

100%

100%

Word count range

40%

100%

No preamble announcement

100%

100%

Voice in technical sections

80%

100%

Narrative density maintained

100%

100%

100%

18%

Build a Writer's Voice Profile from Writing Samples

Voice persona onboarding

Criteria
Without context
With context

Voice one-paragraph section

50%

100%

Rhetorical devices with quotes

90%

100%

Cultural reference analysis

25%

100%

Recurring characters identified

100%

100%

Voice consistency notes

50%

100%

Humor analysis present

75%

100%

Bio schema present

100%

100%

Bio kicker notes

100%

100%

Examples file created

100%

100%

Examples have pattern annotations

100%

100%

Product context skipped

100%

100%

100%

27%

Create an Editorial Plan for a Blog Post

Editorial planning workflow

Criteria
Without context
With context

Research bank file naming

100%

100%

Research bank sections

50%

100%

Main idea template format

50%

100%

CTA is practical and specific

75%

100%

Section outline with descriptions

100%

100%

Placeholder locations in outline

10%

100%

Questions are numbered

100%

100%

Questions include guesses

40%

100%

Questions grouped by type

100%

100%

Series callbacks referenced

100%

100%

No prose draft written

100%

100%

100%

6%

Bring a Flat Blog Draft to Life

Soul check: fixing sterile but pattern-clean prose

Criteria
Without context
With context

Identifies soullessness

100%

100%

Opening hook improved

58%

100%

First-person opinion added

100%

100%

Rhythm variation added

100%

100%

Informal element added

100%

100%

No new anti-patterns introduced

100%

100%

Technical accuracy preserved

100%

100%

Humor or edge present

100%

100%

Varied paragraph energy

87%

100%

Structure preserved

100%

100%

97%

11%

Clean Up a Blog Draft for Publication

AI anti-pattern remediation

Criteria
Without context
With context

Contrastive negation fixed

50%

100%

Parallel binary comparisons fixed

0%

100%

Asyndetic tricolon fixed

100%

100%

Choppy fragments fixed

100%

100%

Symmetrical LLM patterns fixed

100%

100%

Self-answering fragments fixed

100%

100%

Parenthetical em-dashes fixed

60%

100%

Excessive em-dashes reduced

100%

100%

Preamble removed

100%

100%

Hedging removed

100%

100%

Emojis removed

100%

100%

AI vocabulary cleaned

100%

100%

Copula avoidance fixed

100%

100%

Low burstiness improved

100%

100%

Fabricated experience removed

100%

100%

False ranges fixed

100%

100%

Synonym cycling fixed

100%

80%

Unicode giveaways fixed

100%

100%

Participle-phrase filler fixed

100%

100%

Significance inflation fixed

100%

100%

Challenge-optimism sandwich fixed

100%

100%

Inline-header lists fixed

0%

100%

Vague attributions fixed

100%

100%

Boldface overuse fixed

100%

100%

Title case headings fixed

40%

100%

Standalone positive conclusion fixed

100%

100%

Labeling the device fixed

100%

100%

Restating proven point fixed

75%

100%

Telegraphing transitions fixed

100%

100%

Incomplete assertions fixed

100%

100%

Stacked data points trimmed

100%

0%

Soul check evidence

50%

100%

100%

20%

Tighten a Developer Blog Draft

Trust-the-reader pattern detection

Criteria
Without context
With context

Device labels removed

60%

100%

Key insight label removed

100%

100%

Proven point restatements removed

90%

100%

Telegraphed transitions removed

100%

100%

Incomplete assertions removed

100%

100%

Editorial superlative removed

100%

100%

Stacked data points trimmed

30%

100%

Redundant restatement of test suite time removed

0%

100%

Punchline isolation

100%

100%

No new anti-patterns introduced

100%

100%

Technical content preserved

100%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents