---
name: voice-writer
description: Learns your writing voice from 3-5 samples, then writes posts, emails and drafts that sound like you. Use when asked to write in my voice, sound like me, or build a voice profile.
---

# Voice Writer

You write in the user's real voice, not in "AI voice". You work in two modes:

- **Calibrate**: build a voice profile from 3-5 writing samples.
- **Write**: draft new text using a saved voice profile.

## Step 0: Find the voice profile

Look for a voice profile in this order:

1. A file named `voice-profile.md` in this skill's folder.
2. A file named `voice-profile.md` (or similar: "voice", "tone", "style guide") in the project knowledge, the current folder, or attached to the conversation.
3. A voice profile pasted earlier in this conversation.

If you find one, read it fully and go to **Write mode**.
If you don't, tell the user in one line: "I don't have your voice yet. Paste 3-5 things you wrote yourself (posts, emails, messages). Unedited is better than polished." Then go to **Calibrate mode**.

## Calibrate mode

### What counts as a good sample
- Text the user wrote themselves, without AI help. Ask if unsure.
- 3-5 samples, ideally 150+ words each, ideally from the channel they want to write for.
- Mixed formats are fine (a post + an email + a Slack message). Note which is which.

If the user gives fewer than 3 samples or under ~400 words in total, build the profile anyway and mark it `confidence: low`, then ask for more samples later.

### Analyze the samples
Read every sample twice. Then fill in the template in `voice-profile-template.md` (in this folder). Base every line on evidence. For each trait, quote a short real phrase from the samples as proof. Do not invent traits you can't quote.

Measure, don't guess:
- **Sentence length**: average words per sentence, and how often they use very short sentences (1-5 words).
- **Paragraph length**: typical number of sentences per paragraph.
- **Openers**: how the samples start (question, claim, story, number, "So", etc.).
- **Closers**: how they end (question, CTA, punchline, no closer).
- **Vocabulary**: words and phrases they repeat; slang; jargon level; contractions (yes/no).
- **Punctuation habits**: dashes, ellipses, exclamation marks, emojis, capitalization, line breaks.
- **Stance**: how sure they sound; do they admit doubt; do they use humor; do they swear.
- **Structure**: lists vs prose; story-first vs point-first.
- **Never-list**: words and moves that never appear and would feel wrong (for example "delve", "game-changer", rhetorical triplets, "In today's fast-paced world").

### Deliver the profile
1. Show the finished profile.
2. Write one short test paragraph on a neutral topic in that voice.
3. Ask: "Does this sound like you? Tell me what's off (too formal, too long, a word you'd never use)." Update the profile from the feedback. Repeat at most 2 times.
4. Tell the user how to save it so it persists:
   - **Claude Code**: offer to write it to `voice-profile.md` inside this skill's folder (`~/.claude/skills/voice-writer/` or `.claude/skills/voice-writer/`). Do it if they agree.
   - **Claude.ai**: give the profile as a downloadable file named `voice-profile.md` and tell them to either add it to their Project knowledge, or add it into the `voice-writer` folder, re-zip and re-upload the skill.

## Write mode

### 1. Get the brief
You need: **what** (the piece and the channel), **who** it's for, **the one point**, and **length**. If any of these is missing and you can't infer it from context, ask once, in a single message, max 3 questions. If the user says "just write it", make sensible assumptions and state them in one line at the end.

### 2. Draft
- Write in the profile's voice: match sentence length, openers, punctuation, vocabulary and stance.
- Use the user's real details (numbers, names, stories) from the conversation. Never invent personal anecdotes, results or numbers. If a story would help, write `[STORY: e.g., the time you ...]` as a placeholder.
- One idea per piece. Cut anything that doesn't serve the one point.

### 3. Self-check before showing
Run this checklist silently and fix every failure:
- [ ] Sentence length roughly matches the profile (within ~30%).
- [ ] No word from the never-list. No generic AI phrases: "delve", "unlock", "game-changer", "in today's", "it's not just X, it's Y", "let's dive in", "elevate", "seamless", "robust", "furthermore".
- [ ] No rhetorical triplets unless the profile shows the user uses them.
- [ ] Emojis, dashes and exclamation marks used at the same rate as the samples.
- [ ] The opener matches one of the user's real opener patterns.
- [ ] Read it as the user's friend: would they believe the user wrote it? If not, fix the lines that give it away.

### 4. Deliver
- Show the draft only (no preamble like "Here's a draft").
- Below it, one line: `Voice notes:` and the 1-2 choices you made that the user may want to change.
- If the user edits your draft, compare their edit with your version. If the edit shows a stable preference (for example they always cut your first line), suggest a one-line addition to the profile.

## Rules
- Never claim the text "sounds exactly like you". Let the user judge.
- Keep the profile under ~60 lines. A long profile gets ignored.
- If the user asks for a different voice (brand voice, a client's voice), build a separate profile with a different name. Never mix profiles.
