A Skill is just a folder with a markdown file in it, and the hard part is the rubric, not the code.
Every team I talk to has the same broken loop. Someone writes a brand voice doc, it says "friendly but professional, confident but not arrogant," and then nobody uses it because it doesn't help you decide anything. Then they paste that doc into Claude, get output that reads like a LinkedIn carousel, and conclude the AI can't do voice. The doc was the problem. Claude followed it perfectly.
The usual take is that voice is a prompting problem, so you fix it with a longer prompt. It isn't. It's a retrieval and rules problem, which is exactly what Claude Skills are for. A Skill is a folder Claude loads only when it's relevant, containing instructions plus reference files it can read on demand. That means your voice rules can be long, specific, and evidence-backed without eating your context on every unrelated request. Here's how I'd build one from nothing, in about an hour.
Strip the marketing off it. A Skill is a directory with a SKILL.md at the root. That file has YAML frontmatter with a name and a description, then a markdown body of instructions. Claude reads the description up front, decides if the Skill applies, and only then loads the body and any files you've pointed it at.
That last bit is the whole trick. Progressive disclosure means the 4,000-word voice rubric costs you nothing until it's needed.
| Saved prompt | Skill | |
|---|---|---|
| Where it lives | Your clipboard, a Notion page | A folder in the repo or your Claude settings |
| Triggering | You remember to paste it | Claude loads it when relevant |
| Size limit | Practical: keep it short | Split across reference files, loaded on demand |
| Extra files | No | Yes, reference docs and scripts |
| Version control | Screenshot roulette | Git, like anything else |
| Sharing with a team | Slack message | Commit it |
The failure mode of Skills: a vague description means it never fires, and you sit there wondering why Claude ignored it. Write the description as "what this does and when to use it," with the trigger words a person would actually type.
brand-voice-extractor/
├── SKILL.md
├── references/
│ ├── rubric.md # what a voice rule must contain
│ └── profile-template.md # the output shape
└── corpus/
├── 01-newsletter-march.md
├── 02-landing-page.md
├── 03-founder-post.md
└── ...
In Claude Code, drop that folder in .claude/skills/ for the project or ~/.claude/skills/ for yourself. In the Claude apps you upload it in the Skills section of settings. Either way it's the same folder.
Eight to fifteen pieces is plenty. More than that and you're averaging your voice into mush, which is the exact failure you're trying to fix.
Rules I use:
Hold two pieces back. Do not put them in corpus/. You'll need them in a minute.
---
name: brand-voice-extractor
description: >
Extracts a falsifiable brand voice profile from a corpus of real
writing samples, and audits or rewrites new drafts against that
profile. Use when the user asks to "extract our voice", "build a
voice guide", "does this sound like us", "make this sound like
our brand", or when onboarding a new writer or agent to a brand.
---
# Brand voice extractor
## What this Skill does
Two modes. Detect which one applies from the request.
**Mode A: EXTRACT.** Read every file in `corpus/`, produce a voice
profile using `references/profile-template.md`. Follow the evidence
rules in `references/rubric.md` without exception.
**Mode B: AUDIT.** A voice profile already exists. Read it, then
check a supplied draft against it rule by rule. Output a table of
rule, verdict, and the offending line. Do not rewrite unless asked.
## Hard rules for both modes
1. Every claim about the voice must cite a verbatim quote from the
corpus, with the filename. No quote, no rule. If you believe
something about the voice but cannot evidence it, write it under
"Unverified hunches" and say what sample would confirm it.
2. Never write a rule that could apply to any brand. "Clear and
concise" is banned. A rule is only valid if you can state what
the brand does INSTEAD of the obvious alternative.
3. Every rule gets a counterexample: a sentence, written by you,
that violates the rule. This is what makes the rule usable.
4. If the corpus is too thin or too internally inconsistent to
support a dimension, output `[MISSING: EVIDENCE]` for that
dimension. Do not fill the gap with a plausible guess.
5. Never invent metrics, customer quotes, or case study numbers
when demonstrating voice. Use `[MISSING: REAL NUMBER]`.
## Process for Mode A
1. Read all corpus files. Note register and author for each.
2. First pass: mark passages that feel distinctive, and say why.
3. Second pass: look for the same move appearing in three or more
different registers. Those are voice. Things appearing once are
style accidents. Say which is which.
4. Draft the profile. Then attack your own draft: for each rule,
try to find a corpus line that contradicts it. Report survivors
and casualties.
5. Output the profile only after step 4.
That step 4 is the difference between a voice doc and a voice doc that holds up. Ask the model to falsify itself before it hands you the answer.
references/rubric.md is what stops the output from being horoscope copy. Mine covers these dimensions, and each one has to come back with quotes:
# Voice dimensions to extract
For each: the rule, 2+ verbatim quotes as evidence, one
counterexample you write yourself, and the register where the
rule bends.
1. SENTENCE SHAPE. Typical length and rhythm. Does the brand use
fragments? Where? What is the longest sentence in the corpus
and what job was it doing?
2. OPENING MOVES. How do pieces start? Claim first, story first,
objection first, number first? Quote the first line of every
corpus piece and classify it.
3. STANCE. Does the brand tell the reader what to do, or lay out
the trade-off and let them choose? Evidence both ways.
4. HEDGING TOLERANCE. Find every "might", "could", "arguably".
Is hedging used for genuine uncertainty or for cowardice?
5. LEXICON IN. Words and constructions that recur and are not
generic. Minimum 10, each with a source line.
6. LEXICON OUT. Words a competitor in this category uses that
this brand demonstrably never does. Evidence by absence is
weak, so mark these as lower confidence.
7. PUNCTUATION HABITS. Em dashes, semicolons, ellipses, the
Oxford comma, exclamation marks. Count them.
8. EVIDENCE HABITS. When the brand makes a claim, what backs it?
Numbers, named examples, personal anecdote, nothing?
9. HUMOUR. Where it appears, what kind, and where it never goes.
10. HOW IT HANDLES BAD NEWS. The highest-signal dimension and the
one most voice docs skip entirely.
Number 10 earns its place. Anyone can sound on-brand in an announcement post. How a brand writes an apology, a price increase, or a "we got this wrong" tells you more than the rest of the list combined.
Remember those two pieces you held back. This is the test:
1. Write a one-line brief for each held-out piece. Just the brief a person would have been given. "Announce the pricing change, going up in October, existing customers grandfathered for a year." 2. New chat. Load the Skill and the freshly extracted profile. No corpus access. 3. Have Claude write it from the brief. 4. Put the generated version next to the real one and read them side by side.
You are not looking for a match. You're looking for the specific ways it misses. When I've run this the misses cluster: openings are too formal, the model over-uses parallel structure, and it will not commit to a flat statement of fact without softening it. Each miss becomes a new rule in the profile. Run it twice, and the second pass usually gets close enough that the remaining gap is judgement, not voice.
Then feed the holdouts back into the corpus. They've done their job.
| Failure | What you see | Fix |
|---|---|---|
| Corpus too clean | Profile reads like a style guide anyone could have written | Add the messy, off-the-cuff samples |
| Multiple authors, no shared voice | Contradictory rules, hedged language | Extract per-author profiles, then find the intersection. Or accept you don't have a voice yet |
| Skill never fires | Claude ignores it and writes normally | The description is too abstract. Put the literal phrases people type into it |
| Rules with no counterexamples | Output is on-topic but off-voice | Enforce rule 3. The counterexample is what makes a rule operational |
| Profile grows past useful | Every rewrite becomes a negotiation | Cap it. Fifteen rules you enforce beat forty you don't |
The honest limitation: this extracts voice, not judgement. It will tell you how you write a sentence. It will not tell you which sentence was worth writing. Anyone selling you the second thing is selling you something else.
Once the profile exists as a file, it stops being a chat thing. Point a background agent at it, and every draft it produces gets audited before it reaches you:
Read voice-profile.md.
Draft the October pricing email from brief.md.
Then switch to Mode B and audit your own draft against the profile.
Output the draft, then the audit table.
If any rule fails, fix it and re-audit. Show me both passes.
Self-audit as a required second step catches most of it. Not all. You still read the thing.
I already ship a finished Brand Voice Extractor as one of the four free Claude Skills at /skills/. No email gate, no signup, download the folder and use it. If you just want a working extractor today, take that one and skip everything above. Building your own is worth doing when your voice is genuinely unusual, or when you want the rubric to carry rules mine doesn't have.
The paid side is the Brand and Messaging single pack, $29, one discipline done properly. It's the extractor plus the prompts that come after it: the audit pass for existing site copy, the messaging hierarchy build, the positioning statement work, and the "rewrite this in our voice" chain that hands off cleanly to an agent. What it does not include is any of the campaign, SEO, or lifecycle material. That's other packs, and you shouldn't buy them until you need them.
If the free Skill covers you, use the free Skill. Genuinely. Most solo marketers never need more than that.
Voice Extractor, Competitive Teardown, SERP-Informed Brief, Performance Readout. Installable Skills, ready to drag into Claude Desktop or Claude Code. No email gate.
Open the Skills page