Skip to content
← ALL WRITING

2026-04-23 / 12 MIN READ

Building a brand voice prompt library that actually holds

A step by step walkthrough for building a brand voice prompt library inside Claude Code, with persona files, calibration tests, and a quarterly drift check.

Most brand voice prompts fail because they read like a SaaS landing page. "Write in a friendly, professional, confident voice" is not a voice. It is three adjectives a stock image could wear. A brand voice prompt library that holds up in production has a specific shape: real writing samples, a documented voice dossier, banned phrases, and calibration tests that catch drift before it reaches a client deliverable. This walkthrough is the version I actually ship for brand work, grounded in the architecture engagement I describe in the brand architecture case study.

By the end you will have a Claude Code skill that produces drafts in a specific brand's voice, a reviewer-surprise test to validate it, and a quarterly drift check that keeps it calibrated as the brand evolves.

voice skill: build order
  1. 01 / activationSKILL.md24 lines
    scoped to brand copy tasks only
  2. 02 / dossiervoice-dossier.md480 lines
    vocabulary, rhythm, tone, constructions
  3. 03 / real samplesreferences/samples/22 lines
    22 published pieces, tagged by register
  4. 04 / guardrailsbanned-phrases.md38 lines
    phrase + pattern + tone bans, self-audited
  5. 05 / drift checkdrift-log.md12 lines
    quarterly re-calibration, edit-ratio tracked
calibration result: reviewer-surprise test passes on 3 of 3 drafts
Five files build the library. Density, not clever prompting, is what makes it hold.

Prerequisites

You need four things before this walkthrough is useful.

A Claude Code subscription, Max tier or equivalent API access with long context. The pattern works with shorter context windows but calibration gets noticeably thinner below the 200k mark.

Brand guidelines in a real form, not a moodboard. A PDF that documents voice, tone register, and common constructions. If all you have is a color palette and three adjectives, stop and write the voice dossier first as a deliverable before trying to encode it.

Around 20 to 30 real writing samples from the brand: published emails, product copy, founder posts, social posts, long-form content. Published, not aspirational. The things the brand actually shipped, not what the marketing director wishes they had shipped.

A repo. I put voice skills in a ~/.claude/skills/brand-voice-<client>/ directory so Claude Code picks them up automatically. Any repo works as long as the skill lives somewhere stable.

Step 1: collect the voice samples

Pull 15 to 30 writing samples from the brand's real output over the last 12 to 18 months. Include a mix: polished product copy, casual social posts, transactional emails, at least two long-form pieces (blog, long email, founder letter).

Drop them into a references/samples/ folder as individual markdown files, one per sample. Add a short frontmatter header on each:

---
source: "product page - the XYZ feature"
date: 2025-09-14
author: "founder"
register: "polished"
---

[sample text]

The register field matters. A brand voice usually has a formal register for press and product copy, and a casual register for social. The skill needs to know which register a given draft is supposed to hit. Without that distinction the model averages the two into a tone nobody actually uses.

Reject aspirational samples. If the marketing director says "this is the voice we want to become," do not include it. The library has to match the brand that exists, not the brand that is in someone's head.

Step 2: write the voice dossier

One file: references/voice-dossier.md. This is the backbone. Without a dossier, the samples alone will produce drifting, averaged output.

The dossier has six sections.

Vocabulary. The words this brand uses and the words it avoids. Real examples: "we ship" not "we deliver," "members" not "customers," "quiet" is fine but "serene" is not. 20 to 40 entries. Pull them from the samples, not from guesses.

Rhythm. How sentences are built. Short and declarative? Long and clause-heavy? Mixed with a specific cadence? Describe it with two or three sample constructions, each annotated.

Banned phrases. The specific phrases this brand never uses. Staccato negation lists, filler power words, triple-beat rhythms, em dashes. Call them out by name with examples of what to write instead. For a brand I work with in the Pacific Time Zone, the banned list includes "leverage," "elevate," "at the end of the day," any use of em dashes, and the phrase "built, not briefed." The list is specific to the brand and the writer.

Tone register. What polished sounds like, what casual sounds like, and when each applies. Give a sample of each.

Common constructions. The three to five sentence shapes the brand leans on. A brand might start most product copy with a specific-to-concrete arc: one specific detail, then the broader claim. Document the shape so the model can reproduce it.

Blind spots. What this brand gets wrong when it writes in its own voice. If the founder tends to over-hedge on social, note it. The dossier is a tool for catching drift, not a vanity document.

Budget 400 to 600 lines when the dossier is complete. The density is the point. A two-page voice doc will not calibrate a model.

Step 3: structure the Claude Code skill

Build the skill as a directory:

~/.claude/skills/brand-voice-<client>/
  SKILL.md
  references/
    voice-dossier.md
    samples/
      2025-09-14-product-xyz.md
      2025-10-02-founder-letter.md
      ...
    banned-phrases.md
    examples/
      good-draft-1.md
      good-draft-1-annotated.md

The SKILL.md file has frontmatter that tells Claude Code when to activate the skill and what it does:

---
name: brand-voice-<client>
description: Writes drafts in the <client> brand voice. Use when writing any brand copy for <client>: product pages, emails, social posts, founder letters. Loads the dossier, samples, and banned-phrases files automatically.
---

# Brand voice for <client>

## Activation rules

Activate this skill when the task involves writing copy that will be attributed to the <client> brand or the <founder> persona, including:

- Product page copy
- Email drafts for <client> campaigns
- Social posts in the <client> voice
- Founder letters and long-form pieces

Do NOT activate for internal planning docs, engineering notes, or drafts meant to be read internally only.

## Workflow

1. Read `references/voice-dossier.md` in full.
2. Read 3-5 representative samples from `references/samples/` matching the register of the requested draft.
3. Draft the requested copy.
4. Run the banned-pattern self-audit (see below) before returning output.
5. Return the draft with a one-line note on which register it hit and which samples were used as calibration.

## Banned-pattern self-audit

Before returning any draft, check it against `references/banned-phrases.md`. If any banned pattern appears, rewrite that sentence and re-check. Do this silently; do not tell the human you did it.

The activation rules matter. A voice skill that fires on every task will produce branded drafts for engineering notes, which is annoying. A skill that fires only on explicit brand copy stays useful.

Step 4: calibrate with a reviewer-surprise test

The test is cheap and fast. Generate three drafts on three different tasks the skill would handle in production. Send them to the brand owner (the person whose voice this is) with one instruction:

"These are AI-drafted in your voice. Tell me which of these sounds like you and which doesn't, and where the misses are."

Two outcomes. Either they say "this is basically what I would have written, I would just change three things," or they say "this sounds nothing like me." The first outcome means the skill is calibrated. The second means the voice dossier or the samples are too thin, and you need to go back to step 2 and densify.

There is a third outcome that looks like the first but is not: the brand owner says "this is fine" and moves on. That usually means they did not read the drafts carefully. Push back. Ask them to mark specific words they would change. If they cannot find any, the drafts are either perfectly calibrated (rare) or the brand owner is not actually paying attention (more common). Assume the latter until proven otherwise.

Step 5: add a banned-pattern self-audit

The self-audit is the piece most voice libraries skip, and it is what separates a skill that holds up from a skill that produces occasional embarrassing drafts.

Create references/banned-phrases.md with the explicit list of patterns the skill must never return:

# Banned patterns for brand-voice-<client>

## Phrases
- "Here's the thing:"
- "Imagine a world where"
- "At the end of the day"
- "Needless to say"
- "leverage," "elevate," "unlock," "supercharge," "robust," "seamless"
- "built, not briefed"
- Em dashes (U+2014). Replace with period, comma, colon, or " - "

## Structural patterns
- Staccato negation lists (three or more consecutive "No X. No Y. No Z." sentences)
- Triple-beat rhythmic declarations ("Shipped, not promised. Built, not theorized.")
- Rhetorical question + immediate answer
- Paragraph-final summation that restates the paragraph

## Tone patterns
- LinkedIn-post cadence (short punchy sentences with no variation)
- Motivational-speaker cadence (imperative + universal + emotional)

Inside the skill's workflow, add an explicit self-check step. The skill reads the banned list, generates its draft, scans the draft against the banned list, rewrites any matches, and only then returns output. Claude is capable of doing this silently if the workflow instructs it to.

If you want a harder guarantee, add a Bash hook that greps the output before it gets returned to the user. That works but is overkill for most brand voice work; the in-skill check is usually enough.

Common mistakes

Two-line persona prompts. Every failed voice skill I have seen starts with a two-paragraph "this brand is warm and approachable" description and zero samples. The model produces generic warm-and-approachable voice that sounds like every SaaS landing page in 2021. Fix: density. 400+ lines of dossier plus 20+ samples.

Using aspirational writing as samples. The marketing director shares a doc titled "voice we're moving toward" and you use it as calibration. The skill then produces drafts in a voice the brand has never actually shipped in, which the brand owner rejects on sight. Fix: use only published, real, representative writing.

No drift check. Executive voice and brand voice drift over time. A calibration from Q1 2025 will not hold by Q3 2026 if the founder has been actively writing in new directions. Fix: schedule a quarterly re-calibration. Pull fresh samples, re-run the reviewer-surprise test, update the dossier.

Prompt engineering instead of context density. "You are a professional copywriter who writes in a warm but direct voice with occasional humor." I see this in half of failed skills. The magic is not in the instructions, it is in the reference material the skill loads. Fix: spend the time on the dossier and samples, not on the system prompt.

What to try next

Add a second brand. The skill structure is portable. Copy the directory, swap the dossier and samples, and the new brand's voice skill is running inside an afternoon. The orchestration mechanism I described in the five-persona decision-support skill writeup uses the same underlying calibration approach, just with multiple personas in one skill instead of one brand in one skill.

Track drift across quarters. Keep a drift-log.md inside the skill directory. Each quarter, note where the calibration is slipping (specific sentences the brand owner rejected, new phrases the brand started using, old phrases the brand abandoned). The log makes the re-calibration a small update instead of a rebuild.

Connect the voice skill to your morning workflow. If you start the day with a triage pass, having brand voice drafts ready for review before the first meeting compresses the review cycle substantially. I describe that loop in the AI studio morning routine. The voice library itself is one of the surfaces inside the creative-tech operator playbook that lets a solo practice hold brand work at a level that used to require a team.

The magic is not in the instructions. It is in the reference material the skill loads.

Frequently asked questions

How long does it take to build a voice skill from scratch?

For one brand at production calibration, budget four to six focused hours. Most of that is writing the dossier and annotating samples. The SKILL.md authoring itself is under an hour. The calibration loop with the brand owner adds another hour or two depending on their responsiveness.

Does this work for personal voice, not just brand voice?

Yes, and it is often easier because there is more consistent material. My own voice skill uses about 300 writing samples from this site, emails, and Slack messages to my clients. The self-audit catches my own drift into tired AI-sounding patterns before a draft ships.

What models work best for voice calibration?

Claude 3.7 Sonnet and newer handle voice with high fidelity, especially with the full context of samples and dossier loaded. Claude 4 tier models produce even less drift. GPT-4 class models work but tend to smooth out specific voice tics faster, which is the failure mode you are trying to prevent.

Can I share the voice skill with other people on my team?

The skill is a directory of markdown files. Commit it to a private repo and any Claude Code user on your team can pull it. Do not share externally: the dossier typically contains brand-confidential material, and the samples may include unpublished internal drafts.

How do I know if the calibration is actually holding?

Run the reviewer-surprise test quarterly on fresh drafts. Also track the edit ratio: for drafts going to production, how much text did the human edit before shipping? If edits drop below 15 percent the skill is in a good calibration band. If edits climb above 40 percent the skill needs a refresh.

Sources and specifics

  • Pattern grounded in brand voice work delivered on the brand architecture engagement in 2025 and extended across later brand engagements.
  • Context-density threshold observed: dossier of 400 to 600 lines plus 20+ annotated writing samples consistently calibrated; thinner inputs produced generic voice.
  • Reviewer-surprise test and banned-pattern self-audit are specific to the brand-voice skill structure I ship; the underlying voice-conditioning mechanism is the same one I describe in the council pattern for voice-matched drafting.
  • Quarterly drift check based on tracking edit-ratio on production drafts across multiple brand engagements; ratio below 15 percent correlates with strong calibration.
  • Voice skills are packaged in the skills pack product page with templates for the dossier, samples, and banned-phrases files.

// related

Let us talk

If something in here connected, feel free to reach out. No pitch deck, no intake form. Just a direct conversation.

>Get in touch