CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

voice-dossier-builder

Use when the user asks to "codify how our founder sounds", "build a founder voice dossier", or "set our content pillars"; runs an 80%-extraction interview over the user's OWN posts, emails, and decks (never competitor scraping, never an invented persona) and produces the versioned voice record — a per-platform register map (incl. 小红书/微信公众号), banned phrases, per-context disclosure lines (the ECHO C2 upstream), a few-shot bank built exclusively from own posts, and 3-5 content pillars with Estimated %-allocations — submitted via memory/events/channels.ndjson for channel-registry to store as voice-dossier.md, the record every Craft-phase skill reads first. Not for the brand-level voice canon — use brand-language-codifier; not for audience/persona research — use audience-mapper. 声音档案/品牌语气/创始人语气/内容支柱/披露声明

Quality

85%

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

77%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-structured, clearly sequenced instruction-only skill with explicit checkpoints and clean progressive disclosure. Its main costs are token inefficiency from repeating the propose/promote mechanism six-plus times, and the absence of a concrete template for the dossier artifacts themselves.

Suggestions

State the submission mechanism ("submit via an authorized `operation: propose` request to `registry-events.py`; channel-registry is the sole writer") once — e.g. in the Skill Contract — and refer to it as 'submit as a proposal' elsewhere, cutting ~6 redundant clauses.

Add a short inline template or one worked example of a register-map row, a few-shot bank entry, and a pillar line with Estimated %, so the deliverable's exact shape is executable rather than described.

Collapse the four separate competitor-exclusion restatements (intro, Scope guard, Data Sources, step 6) into the single Scope-guard statement.

DimensionReasoningScore

Conciseness

The body is mostly dense and useful, but the submission mechanism "via an authorized `operation: propose` request to `registry-events.py`" is restated at least six times (Scope guard, Writes ×2, Done when, step 5, step 8, Save Results ×2), and the competitor-exclusion rule is repeated in four different phrasings — clearly more than the 'minor instances' of the anchor 4. Not a 2: there is no explanation of concepts Claude already knows and no padded filler; stating the mechanism once would fix it.

3 / 5

Actionability

Concrete, specific guidance throughout: thresholds ("10+ usable posts per active platform", "3-5 exemplars per platform"), a named stop condition ("stop with `NEEDS_INPUT`, list exactly what to export"), named register-map columns, and copy-paste Quick Start prompts. Not a 5 because there is no template or worked example of the actual register map / few-shot entry / pillar table the skill is supposed to produce — the deliverable's shape is described but never shown.

4 / 5

Workflow Clarity

Nine clearly sequenced numbered steps (collect → extract → interview → build → codify → assemble → set pillars → version/submit → hand off) with explicit validation checkpoints: the step-1 corpus-size stop ("If the whole corpus is under ~10 usable items, stop with `NEEDS_INPUT`") and the "Done when" checklist (every row cites an own post ID/URL/date, disclosure lines cover all three contexts, pillars sum to 100%). This matches the anchor-5 example's checklist-plus-stop pattern; the 4 anchor's 'most checkpoints' understates what is present.

5 / 5

Progressive Disclosure

The body is a well-organized overview — Quick Start, Skill Contract, Data Sources, Instructions, Save Results, Reference Materials, Next Best Skill — with a dedicated Reference Materials section signaling one-level-deep pointers (echo-benchmark.md, skill-contract.md, CONNECTORS.md, SECURITY.md) each annotated with what it covers. No bundle files exist to inline, no content that belongs in a separate file is inlined, and navigation is easy. Not a 4: no organization gaps identified.

5 / 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.

An unusually strong description: concrete deliverables, explicit bilingual trigger phrases, and explicit scope exclusions naming the adjacent skills. The only weakness is that it is long and omits a few natural English phrasings (e.g. "brand voice", "tone of voice") users might say.

DimensionReasoningScore

Specificity

The description lists multiple concrete deliverables — "a per-platform register map (incl. 小红书/微信公众号), banned phrases, per-context disclosure lines ... a few-shot bank built exclusively from own posts, and 3-5 content pillars with Estimated %-allocations" — with comprehensive coverage of what the skill produces. It is dense with specifics rather than padded, so the verbosity guideline does not bite; not a 4 because coverage has no real gaps.

5 / 5

Completeness

It explicitly answers both questions: 'when' via an opening "Use when the user asks to ..." clause with concrete trigger phrases, and 'what' via the enumerated outputs (register map, banned phrases, disclosure lines, few-shot bank, pillars) and where they land ("submitted via memory/events/channels.ndjson for channel-registry to store as voice-dossier.md"). Matches the anchor-5 example pattern exactly; the 4 anchor's 'when could be more explicit' caveat does not apply.

5 / 5

Trigger Term Quality

Quoted user-voice triggers ("codify how our founder sounds", "build a founder voice dossier", "set our content pillars") plus Chinese synonyms (声音档案/品牌语气/创始人语气/内容支柱/披露声明) give good natural-term coverage. Not a 5 because common English variations users would say — "brand voice", "tone of voice", "voice guidelines" — are absent; not a 3 because both languages and direct-quote phrasing go beyond 'some relevant keywords'.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche (founder/exec voice from own material only, "never competitor scraping, never an invented persona") and explicitly redirects the two nearest neighbors — "Not for the brand-level voice canon — use brand-language-codifier; not for audience/persona research — use audience-mapper" — minimizing wrong-skill triggering. Not a 4: no meaningful overlap risk remains given the explicit exclusions.

5 / 5

Total

19

/

20

Passed

Validation

75%

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

Validation — 12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 29 suspicious

Warning

referenced_paths_exist

Referenced path issues: 1 missing, 1 deeper-than-1-level

Warning

Total

12

/

16

Passed

Repository

aaron-he-zhu/aaron-marketing-skills

Path

social/explore/voice-dossier-builder/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.