Blog Style - Writing Style Learning
SkillAI & modelsThis skill studies 5 to 10 of your existing blog posts and builds a profile of your writing voice. Once added, your AI can capture your tone and style in a file called VOICE.md, giving it a baseline for writing that sounds like you.
Available today. Use it from your connected AI after setup.
No other account needed.
Add the skill, then point it at 5 to 10 of your blog posts and ask it to learn your style. It will save the resulting voice profile so you can reuse it whenever you write.
Then ask your AI: use the Blog Style - Writing Style Learning skill
What your AI can do with it
- Analyze 5 to 10 of your blog posts to learn your writing style
- Build a voice profile that captures your tone
- Save the profile as a VOICE.md file for later use
- Infer tone and analyze an author's voice when you ask
- Use the learned profile as a baseline for new writing
What this skill tells your AI
The instructions your AI receives, as published by agricidaniel/claude-blog in skills/blog-style/SKILL.md and read by ahel’s review.
Learn an author voice profile from existing posts, then use it as a baseline for VOICE.md, blog-persona, and blog-write. The profile captures measurable style signals so future drafts can preserve the author's cadence, vocabulary, and tone.
Commands
| Command | Purpose |
|---|---|
/blog style learn <paths> | Analyze sample posts and generate a voice profile |
Learn Workflow
Use 5 to 10 representative posts from the same author, brand, or editorial voice. Accept individual markdown files, MDX files, text files, or a directory containing posts.
Run the local learner:
python3 scripts/style_learn.py <paths> --format markdown
For machine-readable output:
python3 scripts/style_learn.py <paths> --format json --output voice-profile.json
For a VOICE.md-ready block:
python3 scripts/style_learn.py <paths> --format markdown --output VOICE.md
If fewer than the requested minimum sample count is supplied, warn and continue. The default minimum is 5 posts.
Profile Fields
The learner aggregates the existing blog analyzer across each sample post:
- Sentence length mean and median
- Sentence length burstiness as corpus variance
- Vocabulary richness as type-token ratio
- Transition-word sentence rate
- Passive-voice sentence rate
- AI trigger words per 1,000 words as a baseline to preserve or avoid
- Paragraph-length distribution
- First-person usage rate
- Heading-as-question ratio
- Signature phrases from top 2-gram and 3-gram content phrases with stopwords removed
- Tone descriptors derived from the measured metrics
Consuming the Profile
Drop the markdown block into project VOICE.md when the goal is durable
project context. Blog-write can use the style baselines as drafting targets:
- Keep average sentence length near the learned mean.
- Match the learned sentence variation unless the user asks for a tighter or looser cadence.
- Preserve signature phrases only when they fit the topic naturally.
- Treat the AI trigger baseline as a ceiling when the author rarely uses those terms.
- Use the first-person and heading-question rates to decide how personal and question-led the draft should feel.
Feed the JSON output into blog-persona when a structured persona should be created or updated. Map the learned values to persona sentence length, passive voice, readability, vocabulary, and tone settings.
Error Handling
- Too few posts: Continue and warn that the profile may be less stable.
- Missing paths: Skip missing paths and include a warning in the profile.
- Unsupported files: Skip unsupported file types and include a warning.
- Empty samples: Return zeroed metrics rather than crashing.
Signals
- GitHub stars
- 2k
- Forks
- 357
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
blog-style- Source
- github.com/agricidaniel/claude-blog