CtrlK
BlogDocsLog inGet started
Tessl Logo

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. 声音档案/品牌语气/创始人语气/内容支柱/披露声明

64

Quality

78%

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

Fix and improve this skill with Tessl

tessl review fix ./social/explore/voice-dossier-builder/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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, actionable instruction-only skill with a clear sequenced workflow and validation checkpoints. It loses points mainly on token efficiency (heavy verbatim repetition of the registry-submission boilerplate) and on progressive disclosure, where the referenced support files are absent from the bundle.

Suggestions

Define the registry-submission and ECHO C2/C6/C7 framing once and reference it, instead of repeating 'via an authorized `operation: propose` request to `registry-events.py`' verbatim in nearly every step.

Add an explicit error-recovery branch for when channel-registry rejects or amends the proposal (what to revise and resubmit), to close the workflow feedback loop.

Either ship the referenced files (echo-benchmark.md, CONNECTORS.md, SECURITY.md, skill-contract.md) inside references/ or move the inlined Skill Contract detail into a reference doc so the body stays an overview.

DimensionReasoningScore

Conciseness

Mostly efficient but padded: the phrase 'via an authorized `operation: propose` request to `registry-events.py`' is repeated verbatim 7+ times and the ECHO C6/C7/C2 framing is restated across the intro, contract, and instructions rather than defined once.

3 / 5

Actionability

Concrete numbered steps with specific outputs (register rows, 3-5 few-shots per platform with ID/URL/date, pillars summing to 100% with Estimated labels), concrete file paths, and a NEEDS_INPUT stop; minor gaps include no example register-row shape.

4 / 5

Workflow Clarity

Clear 9-step sequence with checkpoints (NEEDS_INPUT stop, 'Done when' checklist, 80/20 extract→interview split, promote gate); not a 5 because error-recovery on a rejected proposal is not spelled out.

4 / 5

Progressive Disclosure

Good section structure and a consolidated one-level-deep Reference Materials list, but the referenced files (echo-benchmark.md, CONNECTORS.md, SECURITY.md, skill-contract.md) live outside this bundle and no bundle files (references/scripts/assets) are present, while some contract detail is inlined.

3 / 5

Total

14

/

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 high-quality description: third-person, concrete, comprehensive, with explicit trigger phrases, CN synonyms, and clear scope/negative boundaries that distinguish it from sibling skills. The only minor gap is a few missing common trigger variations.

DimensionReasoningScore

Specificity

Lists multiple concrete actions and outputs — 80%-extraction interview, per-platform register map, banned phrases, per-context disclosure lines, own-posts few-shot bank, and 3-5 pillars with Estimated %-allocations submitted via memory/events/channels.ndjson — giving comprehensive coverage.

5 / 5

Completeness

Explicitly answers both 'what' (the produced versioned voice record and its components) and 'when' (a concrete 'Use when the user asks to...' clause with named trigger phrases).

5 / 5

Trigger Term Quality

Natural trigger phrases ('codify how our founder sounds', 'build a founder voice dossier', 'set our content pillars') plus CN synonyms (声音档案/品牌语气/创始人语气/内容支柱/披露声明) give good coverage, though a few common variations are absent.

4 / 5

Distinctiveness Conflict Risk

Clear niche (own material only, never competitor scraping, never invented persona) reinforced by explicit negative boundaries ('Not for the brand-level voice canon…not for audience/persona research'), keeping conflict risk minimal.

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.

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