brand-voice-copy-generator
Paste into Claude Code, Claude.ai, the desktop app, or the browser extension — ⌘/Ctrl+V. ✓ Copied. Switch to Claude and paste — ⌘/Ctrl+V.
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 |
Recommended inputs (request if missing)
| 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
- Lead with the user benefit, not the product feature.
- Use active voice. Passive voice is permitted only for legal or technical caveats.
- Front-load key information: readers scan, not read.
- Vary sentence length deliberately: short punchy sentence first, then elaboration.
- Avoid weasel words: "world-class", "best-in-class", "cutting-edge", "seamless", "robust".
- 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.
UrlShortenerfield: 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
-
ReadWriteEditBash(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.