Skip to content
Beta Multi-model support (OpenAI, Gemini, and more) launching soon.

brand-voice-copy-generator

Installable Ships in copy-localization-generator — or copy the raw skill below.
Open Claude.ai

Paste into Claude Code, Claude.ai, the desktop app, or the browser extension — ⌘/Ctrl+V.

ExperimentalNo security review

Brand Voice Copy Generator

Generate structured, on-brand page copy from a content brief and brand voice guide. Every output block is annotated with character counts, heading hierarchy, and CMS field names so designers and content editors can drop it directly into Figma or the CMS without reformatting.

Usage

/brand-voice-copy-generator <brief or page file> [--section hero|values|features|about|faq|all]
  [--voice <voice-guide-file>] [--cms sitecore|optimizely|umbraco|headless]
  [--tone formal|conversational|bold]

Examples:

  • /brand-voice-copy-generator briefs/homepage.md --section hero --cms sitecore
  • /brand-voice-copy-generator briefs/product-page.md --section all --voice docs/brand-voice.md
  • /brand-voice-copy-generator "B2B fintech platform — homepage hero" --tone bold

Phase 1 — Intake

Before generating copy, collect the following. If any are missing, ask; do not guess brand voice.

Required inputs

Input Source Fallback
Content brief File path or inline description Prompt the user for page goal, audience, top 3 messages
Target section(s) --section flag Default to hero
CMS target --cms flag Default to headless — no field-limit constraints
Input Why it matters
Brand voice guide Sets tone, vocabulary, prohibited phrases, sentence-length rules
Audience persona Shapes reading level, pain-point framing, and trust signals
Competitor context Avoids mirroring competitor messaging verbatim
Page URL (existing) Read current copy to preserve SEO-equity-bearing phrases

Voice extraction (when a voice guide is provided)

Read the guide and extract:

  • Tone keywords (e.g. "confident", "human", "direct") — 3–5 adjectives max
  • Prohibited terms — words or phrases the brand explicitly avoids
  • Sentence length rule — avg words per sentence target
  • POV rule — first-person plural ("we"), second-person ("you"), or third-person brand name
  • CTA style — action-verb lead, benefit-first, urgency level

If no voice guide is supplied, use the --tone flag to select a preset. See reference.md for preset definitions. For RBA's own content, the canonical voice source is the standalone rba-brand-voice skill — use it instead of a --tone preset.


Phase 2 — Section generation

Generate each requested section using the templates and rules below. Produce output as a Copy Block Sheet — a Markdown table with one row per CMS field.

Universal copy rules

  1. Lead with the user benefit, not the product feature.
  2. Use active voice. Passive voice is permitted only for legal or technical caveats.
  3. Front-load key information: readers scan, not read.
  4. Vary sentence length deliberately: short punchy sentence first, then elaboration.
  5. Avoid weasel words: "world-class", "best-in-class", "cutting-edge", "seamless", "robust".
  6. Match reading level to the persona (B2C consumer: Flesch 60+; B2B enterprise: Flesch 50–65).

Section: Hero

Headline       — 6–12 words, benefit-first, no full stop
Sub-headline   — 1–2 sentences, 20–35 words, expands the headline promise
Primary CTA    — 2–5 words, imperative verb, tells user what happens next
Secondary CTA  — 2–5 words (optional), lower commitment
Background alt — descriptive alt text for hero image (if visual brief supplied)

Section: Value propositions

Produce 3–4 value prop cards. Each card:

Icon label     — 1–3 words (icon semantic label)
Card headline  — 4–8 words
Card body      — 2–3 sentences, 30–50 words

Section: Feature overview

Produce feature rows (alternating layout pattern). Each row:

Feature title      — 4–8 words
Feature body       — 3–5 sentences, 60–90 words
Feature caption    — 10–20 words (image caption / supporting stat)
Feature CTA label  — 2–5 words

Section: About / brand narrative

Section heading    — 4–8 words
Opening paragraph  — 40–60 words, brand origin / mission
Body paragraphs    — 2–3 × 50–80 words, values and proof points
Closing line       — 1 sentence, forward-looking

Section: FAQ

Produce 5–8 FAQs. Each item:

Question   — phrased as the user would actually ask it
Answer     — 2–4 sentences, direct answer first, elaboration second

Section: CTA banner / conversion block

Heading        — 5–10 words, urgency or exclusivity framing
Sub-copy       — 1 sentence, 15–25 words, removes friction
CTA label      — 2–5 words
Trust signal   — 1 line (e.g. "No credit card required", "SOC 2 certified")

Phase 3 — CMS field mapping

After generating copy, produce a CMS Field Map table adapted to the target platform.

Sitecore XM Cloud adapter

Field name Content Char count Limit Status
Page_Title {headline} {n} 60 PASS/WARN
Page_Description {sub-headline} {n} 160 PASS/WARN
Hero_CTA_Label {cta} {n} 30 PASS/WARN

Key Sitecore constraints:

  • Single-line text fields: max 256 chars (configurable; flag if copy exceeds 200).
  • Rich text fields: no hard limit; flag blocks over 800 words for editorial review.
  • UrlShortener field: auto-generated from Page Title; note if headline will produce a poor URL slug.

Optimizely CMS adapter

Map to Optimizely ContentArea, XhtmlString, and LongString property types. Flag LongString fields approaching the 4000-char limit. Note language branch field inheritance rules when copy will be localized.

Umbraco adapter

Map to Umbraco Textstring (512 chars default), Textarea, and RichText (TinyMCE / Blocklist) property editors. Flag when copy will flow into Blocklist Grid elements where character counts affect layout reflow.

Headless / composable adapter

Output as a flat JSON content object with field keys matching the front-end prop names supplied in the brief. If no prop names supplied, use camelCase versions of the field labels above.


Phase 4 — Output format

Deliver two artefacts:

1. Copy Block Sheet (Markdown)

## [Page Name] — Copy Block Sheet
Generated: [date] | Section: [section] | CMS: [cms] | Tone: [tone]

### Hero
| Field | Copy | Chars | Limit | Status |
|---|---|---|---|---|
| Headline | … | 48 | 70 | PASS |
| Sub-headline | … | 112 | 160 | PASS |
| Primary CTA | … | 14 | 30 | PASS |

2. Brand voice notes

List any decisions made (e.g. "Used second-person 'you' throughout — aligns with voice guide section 3.2; brief mentioned enterprise audience so formality kept at conversational-professional"). Flag any brief gaps that required assumptions.


Quality checks before delivering

  • Every prohibited term from the voice guide is absent
  • All fields are within CMS character limits
  • No weasel words ("seamless", "world-class", "innovative", "cutting-edge")
  • Active voice throughout (flag passive exceptions)
  • CTAs lead with an imperative verb
  • Headline and sub-headline do not repeat the same phrase
  • FAQ questions are phrased in the user's voice, not the brand's

Reference

See reference.md in this skill folder for:

  • Tone preset definitions (formal / conversational / bold)
  • Common prohibited-word lists by industry vertical
  • Flesch–Kincaid reading level targets by persona type
  • CMS field limit quick-reference table (Sitecore, Optimizely, Umbraco)
Technical details
Plugin
copy-localization-generator
Author
Dakota Smith
Skill name
brand-voice-copy-generator
Maturity
experimental
Security review
No security review
Owners
  • design
  • strategy
Argument hint
<brief or page URL> [--section hero|values|features|about|faq|all] [--voice <voice-file>] [--cms sitecore|optimizely|umbraco|headless] [--tone formal|conversational|bold]
Allowed tools
  • Read
  • Write
  • Edit
  • Bash(find *)
  • Bash(ls *)
  • Bash(cat *)
  • Bash(grep *)
  • WebFetch(domain:localhost)
Source
plugins/copy-localization-generator/skills/brand-voice-copy-generator/SKILL.md

Edit this skill on GitHub — opens GitHub's web editor. No git knowledge needed.