Agent skill

Brand Voice

by ericrisco in ericrisco/rsc-harness

A skill your agent uses when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block —…

MITAuto-check passedWriting & Content

Install Brand Voice

skills CLI
$ npx skills add ericrisco/rsc-harness --skill brand-voice -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ericrisco/rsc-harness brand-voice --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/brand-voice .claude/skills/brand-voice && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
brand-voice
GitHub stars
180
Token cost
~3k tokens
SKILL.md length
1,320 words
Files
6 (incl. scripts, references)
Skills in repo
233
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block —…

  • Works in 6 steps: Traits (pick 3–5) → Rules (each trait → 2–3 linguistic rules) → Plot the four dimensions (decision table) → …
  • Defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules
  • SKILL.md covers Voice vs. tone (the…, The flow (six steps), Auditing for drift and Anti-patterns, plus 1 more section
  • Runs Shell scripts from its folder

What it does

Brand Voice is an agent skill from ericrisco/rsc-harness. Use when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block — so content stops sounding like five different writers. NOT the finished copy written against it (that is landing-copy / marketing), NOT the brand's look (brand-identity).

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/voice-guide-template.md`).

It sits in Writing & Content, covering Brand voice and tone and Brand strategy and identity. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.

When your agent uses it

  • Defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules
  • Four tone dimensions as ratios
  • A use/avoid word bank
  • An AI voice-DNA block — so content stops sounding like five different writers

Example prompts

  • “/brand-voice”

Requirements

  • A Bash shell

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Traits (pick 3–5)
  2. Rules (each trait → 2–3 linguistic rules)
  3. Plot the four dimensions (decision table)
  4. Word bank
  5. Tone-by-context matrix
  6. The AI voice-DNA block

What it can do on your machine

Read from SKILL.md and the folder at commit 1f8d9bb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brand Voice loads about 3k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 92 tokens; SKILL.md has 1,320 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from ericrisco/rsc-harness at commit 1f8d9bb, republished under its MIT licence (© ericrisco). 1,320 words, ~2,999 tokens.

Download SKILL.mdSave it as .claude/skills/brand-voice/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
brand-voice
description
Use when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block — so content stops sounding like five different writers. NOT the finished copy written against it (that is `landing-copy` / `marketing`), NOT the brand's look (`brand-identity`).
tags
brand-voice, tone-of-voice, messaging, brand, voice-guide
recommends
landing-copy, brand-identity, marketing, content-engine, customer-support
origin
risco

Brand Voice — How the Brand Sounds

You own the reusable voice-and-tone system: 3–5 personality traits → concrete linguistic rules → a position on the four tone dimensions → a use/avoid word bank → a tone-by-context matrix → a paste-into-the-prompt voice-DNA block. The output is a persisted document, never a finished piece of copy.

The line: brand-voice owns the reusable definition of how the brand sounds. The moment you write one finished piece against it, that is a copywriting skill — page hero/value prop/CTA is landing-copy; launch emails and channel posts are ../marketing/SKILL.md; blog and article systems are content-engine, article-writing, newsletter, social-publisher; an investor narrative is ../pitch-deck/SKILL.md; a live customer ticket is customer-support (it consumes this guide, it does not author it). The way the brand looks — logo, color, type, design tokens — is brand-identity, and layout/motion is ../design/SKILL.md.

Voice vs. tone (the load-bearing distinction)

Voice is constant; tone flexes by context. Voice is the brand's fixed personality across everything it writes. Tone is the local adjustment for the reader's emotional state and the topic's sensitivity. A frustrated user does not want a joke; a celebration screen does not read like a financial disclosure — yet both are the same voice. (Nielsen Norman Group, "The Four Dimensions of Tone of Voice," pub. 2016-07-17, updated 2023-08-16.)

Why it matters: you author one voice and apply many tones. Conflate them and you get a guide that says "be playful" on a fraud-alert page — unusable. The guide locks voice once and tabulates tone per context (Step 5).

Why bother at all: consistent brand presentation correlates with revenue uplift — ~23% average, up to ~33% at the upper range across 1,800 brands in 14 industries (Lucidpress/Marq, "State of Brand Consistency"). Treat it as calibration for the effort, not a causal promise — it is a correlational study.

The flow (six steps)

text
1 Traits (3–5)  →  2 Rules (Bad→Good)  →  3 Four dimensions (ratios)
       →  4 Word bank (use/ban)  →  5 Tone-by-context matrix
              →  6 AI voice-DNA block  →  persist + audit
Step 1 — Traits (pick 3–5)

Distill the brand to 3–5 adjectives. Fewer than 3 is not a personality; more than 5 is unmemorable and nobody applies them. (Sprout Social brand-voice guide; Inkbot Design brand-voice chart.)

Reject brand-neutral adjectives. If a competitor would never claim the opposite, the word is filler and says nothing. "Innovative," "passionate," "customer-focused," "cutting-edge" — no brand claims "stagnant" or "indifferent," so these traits exclude nothing.

Each trait gets a one-line this means / this does not mean, so it is testable:

text
Plain-spoken
  this means:        we say "we fixed it" — short Anglo-Saxon words, no hedging
  this does NOT mean: dumbed-down or curt; we still explain the why
Quietly confident
  this means:        we state the benefit and stop; no exclamation marks
  this does NOT mean: arrogant, or making claims we can't back with proof
Step 2 — Rules (each trait → 2–3 linguistic rules)

Vague directives fail, especially for an LLM: "be professional" produces nothing reproducible. Voice only transfers when quantified into linguistic rules. (Search Engine Land, "How to train in-house LLMs on brand voice," 2025; Fishtank, "Train Generative AI to Speak in Your Brand Voice," 2025.)

Per trait, write 2–3 rules across these levers — person, sentence-length ceiling, active vs. passive, contractions, jargon policy — and show one Bad→Good rewrite per cluster:

text
Trait: Plain-spoken
  R1  Active voice. Subject does the verb.
  R2  Sentence ceiling ~20 words; break anything longer.
  R3  Jargon only when defined in-line on first use.

  Bad : "Optimal outcomes are facilitated through the leveraging of our
         platform's robust capabilities."  (passive, 12-word abstraction, banned words)
  Good: "Our platform does the heavy lifting so your team ships faster."
text
Trait: Quietly confident
  R1  First person plural ("we"), second person for the reader ("you").
  R2  Use contractions ("we're", "you'll") — formal-but-human, not stiff.
  R3  Zero exclamation marks; the claim carries the energy.

  Bad : "We are SO excited to announce our amazing new feature!!!"
  Good: "New: branch previews ship with every PR. No config."
Step 3 — Plot the four dimensions (decision table)

Tone of voice is measurable on four sliding scales, not switches. (Nielsen Norman Group, same article.) Pick a position on each as a ratio, not "somewhere in the middle" — a ratio forces a defensible choice. (Sprinklr / Bigeye brand-voice frameworks, 2025.) A financial brand might run 80/20 formal; a fitness app 30/70 serious-vs-playful.

This branches per brand, so the table earns its place:

DimensionPosition (ratio)Why this brand sits here
Formal ↔ Casual65 / 35 casualBuyers are technical and busy; warmth without slang.
Serious ↔ Funny80 / 20 seriousWe handle money/data; humor only in low-stakes moments.
Respectful ↔ Irreverent70 / 30 respectfulWe challenge category clichés, never the reader.
Matter-of-fact ↔ Enthusiastic60 / 40 matter-of-factProof over hype; energy lives in verbs, not adjectives.

Fill the ratios from the traits, not from taste. If a ratio contradicts a trait, one of them is wrong — reconcile before moving on.

Step 4 — Word bank

Two lists. Power words and a ban list. (Oxford College of Marketing, "AI Brand Voice Guidelines," 2025-08-04.)

  • Power words (15–20): the vocabulary the brand leans on, derived from the traits. "Plain-spoken + confident" → ship, fix, build, fast, clear, done, plain, real, works. Not a thesaurus dump — words a human would recognize as this brand.
  • Ban list (the drift killer): corporate filler and AI tells. This list is what stops off-brand drift and the generated-by-a-bot smell. Starter set: leverage, seamless, elevate, delve, robust, unlock, game-changer, in today's fast-paced world, revolutionize, synergy, cutting-edge, best-in-class. Add brand-specific bans (e.g. never say "users," say "teams").

The full starter ban list and the method for deriving power words from traits live in references/word-bank.md.

Show full SKILL.md (591 more words)Show less
Step 5 — Tone-by-context matrix

Voice stays fixed (the row content proves it); tone shifts per context. Build the matrix so writers and the LLM know which dial to turn where:

ContextVoice (constant)Tone shiftExample line
Onboardingplain-spoken, confidentwarm, encouraging"You're in. Let's connect your first repo."
Error / failureplain-spoken, confidentplain, reassuring, zero humor"That upload failed. Your data is safe — try again."
Success / celebrationplain-spoken, confidenta little warmth, still no hype"Done. Your preview is live."
Billing / accountplain-spoken, confidentprecise, calm, no jokes"Your plan renews June 30. Cancel anytime, no fees."
Legal / security noticeplain-spoken, confidentformal, exact, literal"We encrypt data in transit and at rest. See our DPA."

The voice column never changes line to line — that is the whole point. Only the tone column moves.

Step 6 — The AI voice-DNA block

Assemble the guide into one paste-into-a-system-prompt block so an LLM (or any writer) reproduces the brand. Concrete rules + lexicon, never adjectives alone:

text
VOICE DNA — <brand>
Traits: plain-spoken, quietly confident, technical-but-human.
Rules: active voice; sentences <=20 words; use contractions; first person
  plural "we", reader as "you"; no exclamation marks; jargon only if defined.
Dimensions: 65/35 casual, 80/20 serious, 70/30 respectful, 60/40 matter-of-fact.
Use: ship, fix, build, fast, clear, real, works, plain.
Never use: leverage, seamless, elevate, delve, robust, unlock, game-changer,
  "in today's fast-paced world", revolutionize, synergy, best-in-class.
Tone by context: onboarding=warm; error=plain+reassuring, no humor;
  success=light warmth, no hype; billing=precise+calm; legal=formal+exact.

Persist it. Write the compiled guide under 02-DOCS/wiki/brand/voice-guide.md and the voice-DNA block beside it, per the harness Karpathy-wiki convention (compiled brand articles under 02-DOCS/wiki/brand/, raw user inputs under 02-DOCS/raw/brand/). The persisted file is an OKF v0.1 wiki article: open it with YAML frontmatter carrying a non-empty type: (use type: brand-voice) — see the frontmatter block in references/voice-guide-template.md, which is also the fill-in-the-blanks skeleton for the whole guide (traits → rules → 4-D ratios → word bank → context matrix → voice-DNA block) with one fully worked mini-example brand. This is the exact study marketing, landing-copy, and content-engine read to ground their copy. A guide in a slide deck is invisible to them.

Auditing for drift

To score a sample against the guide, run three passes:

  1. Ban scan — does the sample use any banned word? Each hit is a drift point.
  2. Rule check — passive voice, sentences over the ceiling, exclamation marks, undefined jargon. Count violations.
  3. Trait test — read it cold: which traits surface? If "plain-spoken + confident" reads as "hypey + vague," it is off-brand regardless of word count.

Off-brand reads like everyone else: abstract nouns, hedged claims, AI tells, energy faked with punctuation instead of verbs. The fix is always a rewrite toward a rule, never "make it pop."

Anti-patterns

Anti-patternWhy it failsDo this instead
Traits = "innovative, passionate, customer-focused"No competitor claims the opposite; excludes nothingPick traits a rival would reject; add this-means/this-does-not-mean
"Be professional" as the only guidanceAn LLM and a junior writer can't reproduce an adjectiveQuantify into rules (person, length, voice, jargon) + a Bad→Good
Tone "somewhere in the middle" on every axisVague middle = no decision = generic outputCommit to a ratio (80/20) and justify it from a trait
Voice changes per channelChannel-by-channel voices = no recognizable brandVoice fixed; tone flexes per context (Step 5)
No ban listDrift and AI tells creep in uncheckedThe ban list is the drift killer — ship it first
Guide lives in a deck or someone's headDownstream skills and LLMs can't read itPersist machine-readable under 02-DOCS/wiki/brand/
Writing the actual landing/email/articleThat is a finished piece, not the definitionStop; hand to landing-copy / marketing / content-engine

Verify

scripts/verify.sh <guide.md> is a read-only structural linter for a produced voice guide: it checks the required sections are present (traits, rules with Bad→Good, four-dimension ratios, a non-empty ban list, context matrix, voice-DNA block), flags a trait count outside 3–5, warns on brand-neutral filler used as a trait, and greps the guide's own prose for words it lists in its own ban list (self-consistency). Empty or clean input exits 0 — no false failure.

© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts, references) in skills/brand-voice of ericrisco/rsc-harness.

  • SKILL.md
  • evals/README.md
  • evals/cases.yaml
  • references/voice-guide-template.md
  • references/word-bank.md
  • scripts/verify.sh

Open the folder on GitHubat commit 1f8d9bb

Compare with similar skills

Brand Voice next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brand Voice compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brand Voice this skillericrisco/rsc-harness180—~3kAutomated safety check: PassMIT
BrandOhh-889/skyroc79513 repos~733Automated safety check: PassMIT
Blog BrandAgriciDaniel/claude-blog2.3k1 repos~2.3kAutomated safety check: PassMIT
Afa Brandafadtc/afa-dtc-skills168—~4.3kAutomated safety check: PassCustom licence
Guideline Generationw95/awesome-claude-corporate-skills244—~1.7kAutomated safety check: PassMIT
Brand Guidelinesalirezarezvani/claude-skills28k1 repos~1.3kAutomated safety check: PassMIT

Similar skills

  • Brand

    Ohh-889/skyroc

    Brand voice, visual identity, messaging frameworks, asset management, brand consistency.

    795 GitHub starsUsed in 13 repos~733 tokens
    Writing & ContentAuto-check passed
  • Blog Brand

    AgriciDaniel/claude-blog

    Establish durable brand and voice context for cross-skill consumption.

    2.3k GitHub starsUsed in 1 repo~2.3k tokens
    Writing & ContentAuto-check passed
  • Afa Brand

    afadtc/afa-dtc-skills

    DTC 品牌定位与识别——定位画布、品牌声音、品牌故事、视觉识别。触发词: 品牌定位, brand positioning, 品牌声音, 品牌故事, 视觉识别, 品牌规范, 品牌升级, brand voice, brand story, visual identity, rebrand。复杂问题先经 afa。

    168 GitHub stars~4.3k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Guideline Generation

    w95/awesome-claude-corporate-skills

    This skill generates, creates, or builds brand voice guidelines from source materials.

    244 GitHub stars~1.7k tokensUpdated 7 mo ago
    Writing & ContentAuto-check passed
  • Brand Guidelines

    alirezarezvani/claude-skills

    When the user wants to apply, document, or enforce brand guidelines for any product or company.

    28k GitHub starsUsed in 1 repo~1.3k tokens
    Writing & ContentAuto-check passed
  • Brand Voice Guidelines

    thatrebeccarae/claude-marketing

    Develop brand voice, tone matrices, messaging frameworks, and brand book documentation.

    161 GitHub stars~1.5k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed

More from ericrisco/rsc-harness

All 233 skills in this repo
  • Ab Testing

    ericrisco/rsc-harness

    A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…

    180 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    180 GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Ads

    ericrisco/rsc-harness

    A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…

    180 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Agent Eval

    ericrisco/rsc-harness

    A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…

    180 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • AI Media

    ericrisco/rsc-harness

    A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…

    180 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Analytics

    ericrisco/rsc-harness

    A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.

    180 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Questions about Brand Voice

What does Brand Voice do?

A skill your agent uses when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block —…. Brand Voice is an agent skill from ericrisco/rsc-harness. Use when defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules, four tone dimensions as ratios, a use/avoid word bank, an AI voice-DNA block — so content stops sounding like five different writers.

When should I use Brand Voice?

Brand Voice fits situations like: defining how a brand SOUNDS as a reusable system: adjectives turned into linguistic rules; four tone dimensions as ratios; A use/avoid word bank; an AI voice-DNA block — so content stops sounding like five different writers.

How do I install Brand Voice in Claude Code?

Run `npx skills add ericrisco/rsc-harness --skill brand-voice -a claude-code`. Or copy the skill folder (skills/brand-voice in ericrisco/rsc-harness) into .claude/skills/brand-voice in your project. Claude Code loads it when a task matches its description.

How do I install Brand Voice in Codex?

Run `npx skills add ericrisco/rsc-harness --skill brand-voice -a codex`. Or copy the skill folder (skills/brand-voice in ericrisco/rsc-harness) into .agents/skills/brand-voice in your project. Codex loads it when a task matches its description.

Can I use Brand Voice in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill brand-voice -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brand-voice, .gemini/skills/brand-voice, .github/skills/brand-voice and .opencode/skills/brand-voice in your project.

What does Brand Voice need to run?

Going by SKILL.md and its folder, Brand Voice needs a shell for the scripts in its folder. Our summary lists: A Bash shell.

Does Brand Voice access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Brand Voice safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Brand Voice use?

Brand Voice is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brand Voice use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.

What are the alternatives to Brand Voice?

Skills that share tags, products or a category with Brand Voice: Brand (Ohh-889/skyroc, 795 stars), Blog Brand (AgriciDaniel/claude-blog, 2.3k stars), Afa Brand (afadtc/afa-dtc-skills, 168 stars) and Guideline Generation (w95/awesome-claude-corporate-skills, 244 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brand Voice?

ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 180 GitHub stars. The repository holds 233 skills in this directory. The repository was last updated on October 9, 2026.

Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.