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 37 AI anti-patterns with structural variant detection, three-pass scanning (surface, skeleton, soul check), craft sweep, and rewrite auditing. Enforces sentence/paragraph craft rules, facts-over-assessments principles, and honest limitations. 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.

96

1.56x
Quality

94%

Does it follow best practices?

Impact

97%

1.56x

Average score across 9 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

Evaluation results

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%

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%

92%

12%

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%

0%

Punchline isolation

100%

100%

No new anti-patterns introduced

100%

100%

Technical content preserved

100%

100%

100%

20%

Build a Writer's Voice Profile from Writing Samples

Voice persona onboarding

Criteria
Without context
With context

Voice one-paragraph section

0%

100%

Rhetorical devices with quotes

50%

100%

Cultural reference analysis

75%

100%

Recurring characters identified

100%

100%

Voice consistency notes

62%

100%

Humor analysis present

100%

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%

92%

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

0%

100%

Code numbering independent

0%

100%

Link numbering independent

0%

100%

Zero-padded numbers

0%

100%

No shared counter

0%

100%

Hedging filler removed

100%

100%

100%

29%

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

0%

100%

Choppy fragments fixed

0%

100%

Symmetrical LLM patterns fixed

0%

100%

Self-answering fragments fixed

80%

100%

Parenthetical em-dashes fixed

80%

100%

Excessive em-dashes reduced

100%

100%

Preamble removed

100%

100%

Hedging removed

60%

100%

Emojis removed

100%

100%

AI vocabulary cleaned

100%

100%

Copula avoidance fixed

100%

100%

Low burstiness improved

60%

100%

Fabricated experience removed

100%

100%

False ranges fixed

100%

100%

Synonym cycling fixed

60%

100%

Unicode giveaways fixed

33%

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

100%

100%

Standalone positive conclusion fixed

100%

100%

Labeling the device fixed

50%

100%

Restating proven point fixed

0%

100%

Telegraphing transitions fixed

50%

100%

Incomplete assertions fixed

100%

100%

Stacked data points trimmed

100%

100%

Amplifier intensifiers fixed

100%

100%

Unproven assessment adjectives fixed

100%

100%

Temporal filler removed

100%

100%

Corporate clichés fixed

100%

100%

Euphemistic smoothing fixed

100%

100%

Soul check evidence

50%

100%

92%

15%

Fix Craft and Substance Problems in a Blog Draft

Sentence craft and substance checks

Criteria
Without context
With context

Overloaded sentence split

50%

100%

Cold list generalized

0%

100%

Weak subjects strengthened

100%

100%

Nested subordination flattened

100%

100%

Introductory filler words removed

100%

100%

Amplifier intensifiers replaced with facts

100%

100%

Unproven assessments replaced with evidence

100%

100%

Euphemistic smoothing fixed

100%

100%

Features translated to benefits

100%

100%

Stacked data points trimmed

12%

25%

Empty results replaced with evidence

100%

100%

Honest limitation present or flagged

0%

62%

No new anti-patterns introduced

100%

100%

Technical content preserved

100%

100%

96%

60%

Write a Developer Blog Post That Uses a Diagram to Explain Architecture

Diagram placeholder with D2 source from architecture transcript

Criteria
Without context
With context

Draft file naming

100%

100%

Diagram placeholder present

0%

100%

Diagram has D2 source block

0%

91%

D2 source reflects transcript components

0%

100%

Diagram VERIFY comment

0%

100%

Diagram placed in the flow section

66%

100%

Independent numbering preserved

0%

100%

Draft summary counts diagrams

66%

100%

Screenshot placeholders still used where appropriate

100%

83%

Code VERIFY comment present

0%

100%

Opening is narrative

100%

100%

TLDR is bullets

0%

100%

Dev appears as recurring character

100%

100%

Bio post-specific kicker

100%

100%

No preamble announcement

100%

100%

Word count range

0%

60%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents