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

criteria.jsonevals/scenario-4/

{
  "context": "Tests whether the agent follows the editorial planning workflow from the skill, including research bank structure, main idea template format, clarification question formatting, placeholder planning, and series continuity handling -- without jumping ahead to write the actual draft.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Research bank file naming",
      "description": "A file named blog-research-ops-war-stories-ep3.md exists (using the slug provided in the task)",
      "max_score": 8
    },
    {
      "name": "Research bank sections",
      "description": "The research bank contains sections for Source Material Summary and Editorial Plan (and optionally Clarification Log, Product Context, Draft Notes)",
      "max_score": 8
    },
    {
      "name": "Main idea template format",
      "description": "The editorial plan contains a main idea statement that follows the structure 'This post shows that [specific claim], demonstrated by [specific evidence]' or a close equivalent with both a specific claim and specific evidence",
      "max_score": 12
    },
    {
      "name": "CTA is practical and specific",
      "description": "The editorial plan includes a proposed CTA that suggests a concrete action (not vague like 'think about observability'), such as trying a tool, implementing a specific practice, or reading something specific",
      "max_score": 8
    },
    {
      "name": "Section outline with descriptions",
      "description": "The editorial plan includes section headers with 1-2 sentence descriptions explaining each section's purpose and what narrative it carries",
      "max_score": 8
    },
    {
      "name": "Placeholder locations in outline",
      "description": "The section outline includes proposed placeholder locations (Screenshot, Code, Link, or similar) with each type numbered independently starting at 01",
      "max_score": 10
    },
    {
      "name": "Questions are numbered",
      "description": "The clarification questions file contains numbered questions (1, 2, 3, etc.) so the author could reply with '1: yes, 2: no, 3: ...'",
      "max_score": 10
    },
    {
      "name": "Questions include guesses",
      "description": "At least half of the clarification questions include the agent's best guess from context so the author can confirm or correct (e.g., 'Was the monitoring tool Datadog? I'm guessing based on...')",
      "max_score": 10
    },
    {
      "name": "Questions grouped by type",
      "description": "The clarification questions are organized into categories such as narrative gaps, technical gaps, visual gaps, and context gaps (or similar meaningful groupings)",
      "max_score": 8
    },
    {
      "name": "Series callbacks referenced",
      "description": "The editorial plan references at least one callback from the series tracker (e.g., Elena's naming convention, 'the Kafka incident', the 2 AM debugging running joke, or Mika's role)",
      "max_score": 10
    },
    {
      "name": "No prose draft written",
      "description": "No actual blog post draft, blog body prose, or blog-draft-*.md file was produced -- only planning artifacts (research bank, editorial plan, clarification questions)",
      "max_score": 8
    }
  ]
}

evals

README.md

SKILL.md

tessl.json

tile.json