CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

blog-brand

Establish durable brand and voice context for cross-skill consumption. Generates BRAND.md (audience, positioning, do/don't editorial rules, taboo phrases, competitor differentiation) and VOICE.md (existing persona JSON re-expressed as readable prose), both written to the project root. When present, the blog orchestrator loads these files, fenced as untrusted data, for write, rewrite, brief, outline, calendar, and strategy workflows. Pairs with blog-persona, which manages the structured persona JSON. Use when the user says "blog brand", "create brand context", "BRAND.md", "VOICE.md", "establish editorial brand". Not for learning a voice from existing posts (blog-style) or managing persona JSON (blog-persona).

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 well-built interview skill with concrete question lists, copy-paste output templates, explicit validation checkpoints on file writes, and thorough error handling. The main improvements are consolidating the thrice-stated untrusted-data rule and making the helper invocation self-contained instead of deferring to another skill's documentation.

Suggestions

State the untrusted-data/fenced-helper rule once and reference it from Show/Update/Integration instead of repeating it three times.

Inline the concrete invocation of load_untrusted_root.py (path and arguments) or bundle a copy so show/update are executable without reading the blog skill's documentation.

Consider moving the BRAND.md and VOICE.md templates to reference files (e.g. templates/BRAND.md.tmpl) to slim SKILL.md, keeping only the field summary inline.

DimensionReasoningScore

Conciseness

The body is operational throughout — exact interview questions, copy-paste templates, a commands table, and an error-handling section — with no explanations of concepts Claude already knows. However, the untrusted-data handling rule is restated in the intro, Show Workflow, and Integration sections, and 'Why this exists' is rationale padding. Efficient with minor repetition, the 4 anchor; not 5 because not every token earns its place.

4 / 5

Actionability

The 5-step interview lists the exact questions to ask, and the BRAND.md/VOICE.md templates are copy-paste ready with concrete defaults (paragraph ceiling default 150, backup naming). The one gap: the fenced helper load_untrusted_root.py, central to show/update, has its invocation defined only in the blog skill's 'Auto-loaded Project-Root Context' section, so those workflows are not executable from this file alone. Mostly executable with a minor gap — the 4 anchor.

4 / 5

Workflow Clarity

Init is a clearly sequenced 5-step interview with wait-for-response and persona pre-fill; show is three numbered steps; update mandates a diff, user confirmation, and a .bak backup (or verified version control) before overwriting. Validation checkpoints are explicit, so the destructive-operation cap does not apply, and error handling covers existing files, missing persona, and minimal answers ('refuse to write skeletons').

5 / 5

Progressive Disclosure

Clear section headers, a commands table, a concern-comparison table, and a clearly signaled one-level-deep reference ('Read the main reference orchestration-details.md before loading project context'). Held back from 5 by ~100 lines of file templates inlined in SKILL.md and cross-skill pointers (../blog/SKILL.md, the helper path, sibling reference roots) that this bundle cannot resolve on its own.

4 / 5

Total

17

/

20

Passed

Description

92%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.

A strong description: concrete artifacts and actions, explicit positive and negative trigger phrases, and clear delineation from sibling skills. The only weakness is trigger-term coverage that omits a few natural synonyms such as 'brand voice' or 'brand guidelines'.

Suggestions

Add common trigger synonyms such as 'brand voice', 'brand guidelines', or 'set up editorial context' to the 'Use when' clause.

Optionally mention the /blog brand init|show|update commands in the description so command-based invocation also matches.

DimensionReasoningScore

Specificity

"Generates BRAND.md (audience, positioning, do/don't editorial rules, taboo phrases, competitor differentiation) and VOICE.md (existing persona JSON re-expressed as readable prose), both written to the project root" lists multiple concrete actions with named artifacts and their contents, plus the orchestrator's load behavior across six named workflows. Comprehensive coverage with no meaningful gaps, matching the top anchor rather than the 'minor gaps' of 4.

5 / 5

Completeness

Explicitly answers what (generates two named files with specified contents, written to project root) and when (a concrete 'Use when the user says...' clause with quoted trigger phrases), and adds negative triggers. Clearly the 5 anchor; the when-clause is explicit, not merely present as at 4.

5 / 5

Trigger Term Quality

"Use when the user says 'blog brand', 'create brand context', 'BRAND.md', 'VOICE.md', 'establish editorial brand'" provides natural phrases and file names, but misses common synonyms such as 'brand voice', 'brand guidelines', or 'editorial rules'. Good coverage with a few natural terms missing, which is the 4 anchor.

4 / 5

Distinctiveness Conflict Risk

"Not for learning a voice from existing posts (blog-style) or managing persona JSON (blog-persona)" explicitly excludes the two nearest-neighbor skills, and "Pairs with blog-persona" delineates the boundary. Clear niche with distinct triggers and minimal conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

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

Warning

Total

15

/

16

Passed

Repository

AgriciDaniel/claude-blog

Path

skills/blog-brand/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.