The reason voice-builder is interesting is not the interview, which is short, or the sample analysis, which is conventional. It is the decision to write the result to two files at the project root and let every other skill in the system read those files at the start of every task. Voice-builder is the foundation; every other Charlie Hills skill is downstream of it.
Most "voice clone" prompts ask the model to imitate a tone in the same conversation, which means the imitation lasts as long as the chat window does. voice-builder takes the opposite path. It writes two files to disk, hands them to every downstream skill, and treats your voice as a piece of project state rather than a runtime instruction. The interview is the smallest part of the skill. The architectural choice is the rest of it.
§01What it does
The skill runs in four moves. First, a six-question interview delivered through Claude's AskUserQuestion form rather than chat text, which is faster to fill in and structures the answers cleanly for the file write. The questions cover role, audience, topic pillars, point of view, brand promise, and off-limits topics. Answers go into about-me.md, capped at 300 words.
Second, the skill asks for three to five writing samples. Newsletter issues, posts, essays, emails, anything published. If you have nothing ready, the skill loads a starter set from its own references/sample-content.md so the rest of the workflow can run.
Third, sample analysis. The skill reads every sample and pulls patterns across all of them, not quirks from any single piece. Sentence length distribution, paragraph rhythm, hook style, tone register, signature phrases, closing CTAs. This is conventional voice analysis. The interesting twist is the fourth category.
Fourth, the absence pass. The skill catalogues what is consistently missing across the samples. Em-dashes in zero of five samples. Rhetorical questions never used. Specific corporate vocabulary the author refuses. The result lands in voice.md under sections called Off-limits and What this voice never does. Both are written from observation, not from a generic banned-words template.
§02Why two files
The split between about-me.md and voice.md looks redundant until you watch the downstream skills load them. about-me.md holds the positioning layer: who the writer is, who they serve, what they argue, what they refuse. voice.md holds the mechanical layer: how their sentences move, how they open, how they close, what punctuation they avoid.
Most downstream tasks need both. A LinkedIn post draft has to hit the positioning and the rhythm. A profile rewrite has to hit the positioning more than the rhythm. A graphic prompt only needs the positioning. Splitting the files lets each skill load only the layer it needs, and lets the writer edit either layer without touching the other.
It also lets the writer rewrite their voice.md without touching their about-me.md, which is the more common edit. Voice changes as the writer writes. Positioning rarely does.
§03Absence signals are the move
The standard mistake when teaching a model your voice is to give it a long list of things you like. The model averages those toward its prior, which is the most statistically common version of "good writing", and you end up with output that is technically faithful and emotionally generic.
What works better, and what voice-builder formalises, is telling the model what your voice does not do. Em-dashes do not appear. The phrase imagine a world where never opens a piece. The conclusion never starts with in conclusion. Lists of three almost never appear.
Absence is more discriminating than presence. Most professional writers share most positive habits. The character of a voice lives in what it refuses, and refusing is what the model cannot guess from a tone description. By reading absence signals out of the samples and writing them down, voice-builder gives the model the part of the voice that prompting alone cannot reach.
§04Setup
# Clone the full charlie947/social-media-skills bundle
mkdir -p ~/.claude/skills
git clone https://github.com/charlie947/social-media-skills.git \
~/.claude/skills/social-media-skills
# Or install via the Claude Code plugin marketplace
/plugin marketplace add charlie947/social-media-skills
/plugin install social-media-skills
Trigger phrases include build my voice, learn my voice, train on my writing, or simply pasting a batch of samples at the start of a Cowork project. The skill is configured to auto-start the moment it loads, with no preamble, which is unusual and worth knowing about. The first message you see after triggering is the interview form itself.
◆ pull quote
“Absence signals are drawn from observation, not from a generic banned-words template. Every item must be backed by absence across the samples.”
§05Caveats
The whole system rests on the assumption that the writer has three to five real samples on hand. If the starter set is used as a permanent voice, the downstream skills will draft in the starter author's voice, not yours. The skill warns about this and tells you whose samples you have borrowed. Heed the warning.
The skill defaults to British English unless the samples are clearly American, which is a Charlie Hills choice rather than a universal one. Worth flagging to your co-writer before they inherit a stray colour in the middle of a New York post.
And like every voice tool, it is downstream of having something to say. A clean voice profile applied to a piece without a thesis just produces fluent fog. The interview's point of view question is the one to spend real time on. The voice rhythm is the wrapping; the position is the gift.
- 01Interview
- ▸role and audience
- ▸topic pillars
- ▸point of view
- ▸brand promise
- ▸off-limits topics
- 02Samples
- ▸paste 3 to 5 pieces of writing
- ▸own work or admired voices
- ▸fallback starter set if needed
- 03Analyse
- ▸sentence rhythm
- ▸hook patterns
- ▸tone register
- ▸signature phrases
- ▸absence signals
- 04Output
- ▸about-me.md (positioning)
- ▸voice.md (rhythm and avoidance)
- ▸read by every skill below