CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

blog-persona

Create and manage writing personas with NNGroup 4-dimension tone framework (Funny-Serious, Formal-Casual, Respectful-Irreverent, Enthusiastic-Matter-of-fact). Personas define readability targets, sentence length distribution, vocabulary tier, contraction frequency, and summary box label. Used by blog-write and blog-rewrite to enforce consistent voice. Use when the user says "create persona", "use persona", "list personas", or wants tone sliders and writing rules saved as structured JSON. Not for measuring style from existing posts (blog-style) or for audience, positioning, and taboo-phrase context files (blog-brand).

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, highly actionable instruction skill: concrete commands, a complete persona schema, explicit interview steps with defaults, validation checkpoints with feedback loops, and thorough error handling. Its main weakness is reference integrity — it directs the reader to orchestration-details.md and scripts/analyze_blog.py, neither of which exists in the bundle, leaving the progressive-disclosure structure partially broken.

Suggestions

Resolve the dangling reference: either give `orchestration-details.md` an explicit resolvable path (e.g. `${CLAUDE_SKILL_DIR}/references/orchestration-details.md`) and bundle it, or drop the instruction if the file no longer exists.

Clarify where `scripts/analyze_blog.py` lives (full `${CLAUDE_SKILL_DIR}`-relative path) or include it in the bundle — the known-limitation note currently names a script the skill does not ship.

Consider moving the legacy `references/personas/` migration note out of the Save section into a short 'Legacy locations' subsection so the save instructions stay a single crisp action.

DimensionReasoningScore

Conciseness

The body is dense with operational specifics (interview defaults, JSON schema, readability bands, error handling) that Claude cannot infer, so it is mostly efficient — but there are minor trimmable passages, e.g. the Save section's rationale ("The installed skill directory is replaced by plugin updates and uninstalls, so user personas must not live there; the project directory also lets a team commit a persona next to the site it styles") and the dense opening paragraph about host Markdown substitution. Matches the score-4 anchor 'efficient; minor instances of over-explanation that could be trimmed'; not 5 because those asides do not directly instruct the next action.

4 / 5

Actionability

Everything is executable for an instruction-only skill: a command table with exact slash commands, a 6-step interview with the exact questions, defaults, and slider semantics per step, a complete copy-paste persona JSON schema, concrete file paths (`<project-root>/.claude-blog/personas/<name>.json`), a tier-to-readability mapping table, and a specific post-generation validation checklist. Matches 'fully executable... specific examples cover the common cases'; not 4 because there are no vague or pseudocode gaps.

5 / 5

Workflow Clarity

The create workflow is explicitly sequenced ("Run the 6-step interactive interview. Ask each step, wait for response, then proceed"), the use flow persists state and passes the persona to sub-skills, and post-generation validation is a concrete checklist with a feedback loop ("If validation fails, flag the specific violations and suggest edits"). The Error Handling section covers recovery for out-of-range values, unreachable URLs, empty directories, name conflicts, and malformed JSON — matching the score-5 anchor with explicit validation steps, feedback loops, and recovery guidance. This is not a destructive/batch skill, so the 3-cap does not apply.

5 / 5

Progressive Disclosure

The body itself is well-sectioned and one level deep, but scored against the actual bundle: the instruction "Read the main reference `orchestration-details.md`" points to a file that does not exist in the bundle (references/ contains only an empty personas/ directory with a .gitkeep), and "scripts/analyze_blog.py" is referenced with no scripts/ directory present. These are dangling references that break navigation and force the reader to guess where the referenced material lives. Matches the score-3 anchor (references present but not clearly signaled / structure that could be better organized); not 4 because unverifiable references are a real integrity gap, not a minor organization issue.

3 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exemplary: concrete multi-action capability list, explicit quoted trigger phrases covering natural user phrasings plus synonyms, and explicit negative boundaries against the sibling blog-style and blog-brand skills. Voice is third-person/imperative throughout with no padding.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions and coverage: "Create and manage writing personas", "Personas define readability targets, sentence length distribution, vocabulary tier, contraction frequency, and summary box label", and "Used by blog-write and blog-rewrite to enforce consistent voice" — comprehensive and concrete, matching the score-5 anchor. Not 4 because there is no meaningful gap in the action coverage.

5 / 5

Completeness

Both questions are explicitly answered: the "what" ("Create and manage writing personas with NNGroup 4-dimension tone framework... define readability targets, sentence length distribution...") and the "when" ("Use when the user says 'create persona', 'use persona', 'list personas', or wants tone sliders and writing rules saved as structured JSON"). This mirrors the score-5 good example's structure exactly.

5 / 5

Trigger Term Quality

Explicit quoted trigger phrases users would naturally say — "create persona", "use persona", "list personas" — plus synonyms like "tone sliders", "writing rules", and "structured JSON". This matches the comprehensive-with-synonyms anchor; a user asking for any of these phrasings would surface the skill.

5 / 5

Distinctiveness Conflict Risk

The description explicitly disambiguates from sibling skills — "Not for measuring style from existing posts (blog-style) or for audience, positioning, and taboo-phrase context files (blog-brand)" — and its triggers (persona creation/management commands) occupy a clear niche with minimal overlap. Not 4 because the negative boundary is named rather than merely implied.

5 / 5

Total

20

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

14

/

16

Passed

Repository

AgriciDaniel/claude-blog

Path

skills/blog-persona/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.