Blog Persona: Structured Brand Voice Management
Turn brand voice preferences into reusable, measurable rules for consistent blog writing.
The skill defines an interactive intake and asks before overwriting a conflicting persona, providing some confirmation and scope control. However, it writes persona JSON and reads user-supplied external URLs without specifying tool permissions, data flow, sensitive-data handling, network boundaries, or rollback, so points are deducted.
The six-step workflow, configuration schema, save path, and error cases make the happy path understandable. No skill-specific implementation, reproducible execution evidence, or persona-focused tests are supplied, and the URL-reading mechanism is unspecified, so reliability is limited.
Audience, trigger phrases, commands, and input fields are relatively clear, and the schema can represent writing constraints. Non-fit scenarios, trigger exclusions, Chinese-language behavior, and mainland-China reachability are not documented; the use/apply naming also has a minor cross-surface inconsistency, so points are deducted.
The file includes frontmatter, commands, argument hints, workflow, schema, defaults, limitations, and MIT licensing. It lacks skill-specific versioning, changelog, maintenance ownership, update path, and directly traceable attribution for the NNGroup/CMI frameworks, so it is usable but incomplete.
The skill specifies create, list, show, and use operations and provides a directly consumable JSON profile plus generation-time constraints. Static evidence does not verify that blog-write/blog-rewrite actually load and enforce them, and the outcome still depends on model compliance and later validation, so the static cap applies.
The repository context includes general CI, tests, and version metadata, but the supplied tests focus on blog analysis and the delivery contract rather than blog-persona key paths, URL extraction, persistence, or enforcement. This supports only limited auditability.
- The tool, timeout, redirect, and privacy boundaries for reading external voice-sample URLs are unspecified; avoid supplying URLs containing sensitive material.
- The save path and invocation names depend on other sub-skills, so installation or repository-layout changes could prevent blog-write/blog-rewrite from loading personas.
- No persona-specific tests or executed output samples are provided; manually review generated content for readability, sentence-length, and passive-voice compliance.
What does this skill do, and when should you use it?
Blog Persona is the writing-persona component of the claude-blog monorepo. It uses the NNGroup four-dimension tone framework and stores readability, sentence length, vocabulary tier, contraction frequency, passive-voice limits, and brand rules. When a persona is active, blog-write and blog-rewrite can apply those constraints during generation and validation. It is a good fit for authors and teams that need repeatable editorial voice, but its full enforcement depends on the surrounding claude-blog workflows.
Runs a six-step interactive interview covering brand basics, four tone dimensions, writing rules, Do/Don't guidance, summary-box labels, and optional voice-sample URLs; maps Consumer, Professional, or Technical vocabulary tiers to suggested readability bands; saves the completed persona as JSON under skills/blog/references/personas/<name>.json; supports create, list, use, and show operations; and integrates with blog-write and blog-rewrite to load active personas, guide tone and style, then check sentence length, readability, passive voice, and forbidden-rule violations.
- A B2B marketing team needs several writers to produce posts with the same tone and readability targets, so it creates and activates a shared persona.
- A solo blogger wants explicit controls for seriousness, formality, respectfulness, enthusiasm, vocabulary, and sentence length instead of relying on ad hoc prompts.
- An editor is rewriting an existing post and needs measurable checks for readability, passive voice, contractions, and prohibited expressions.
- A brand has a few representative articles and wants to compare their sentence length, contraction frequency, tone estimates, and vocabulary level with a target persona.
What are this skill's strengths and limitations?
- Provides concrete controls for tone dimensions, readability, sentence length, contractions, passive voice, and vocabulary tier.
- Converts brand preferences into Do/Don't rules and a reusable summary-label setting.
- Stores personas as JSON and documents pre-generation, generation-time, and post-generation enforcement through blog-write and blog-rewrite.
- Documents handling for invalid tone values, unreachable samples, name conflicts, empty directories, and malformed JSON.
- Full automatic enforcement depends on integration with claude-blog's blog-write and blog-rewrite workflows; standalone use is primarily persona management.
- The SKILL.md does not document cross-project synchronization, versioning, or team collaboration for persona files.
- Voice-sample analysis requires access to the supplied URLs and cannot fully run when they are unreachable.
- The README and SKILL.md disagree on whether the activation command is apply or use.
How do you install this skill?
This skill is part of the public AgriciDaniel/claude-blog repository. The README provides these Claude Code commands: /plugin marketplace add AgriciDaniel/claude-blog, then /plugin install claude-blog@agricidaniel-claude-blog. Restart Claude Code afterward. This installs the full collection rather than Blog Persona alone; the source does not document a separate installation command for this sub-skill.
How do you use this skill?
In Claude Code, run /blog persona create to build a persona; /blog persona list to list saved personas; /blog persona use <name> to activate one for the current session; and /blog persona show <name> to display its profile. Natural-language requests mentioning persona, voice, tone, writing style, or brand voice are also listed as triggers. The README command table says apply while SKILL.md says use, so confirm the command supported by the installed version.
How does this skill compare with similar options?
Compared with describing a voice from scratch in every prompt, Blog Persona stores brand voice as structured JSON and supports generation-time injection plus post-generation checks. Compared with a purely manual style guide, it adds measurable targets for sentence length, readability, contraction frequency, and passive voice.