Skip to content
Content
Skill

/brand-voice-synthesizer

Use when the user says 'extract my brand voice', 'what is my writing style', or 'analyze my tone', or before any skill that writes copy for the site. Reads 5-10 published posts and persists tone, lexicon, sentence patterns, formality, signature phrases, and phrases the site

From plugin
respira-wordpress-skills
5155 skills

Claude Code

$ npx -y skills add respira-press/agent-skills-wordpress --skill brand-voice-synthesizer --agent claude-code

SKILL.md

brand-voice-synthesizer.SKILL.md
name: brand-voice-synthesizer
description: "Use when the user says 'extract my brand voice', 'what is my writing style', or 'analyze my tone', or before any skill that writes copy for the site. Reads 5-10 published posts and persists tone, lexicon, sentence patterns, formality, signature phrases, and phrases the site never uses."
license: MIT
metadata:
  author: Respira for WordPress
  author_url: https://respira.press
  version: 1.2.0
  mcp-server: respira-wordpress
  category: intelligence

Brand Voice Synthesizer

**Version:** 1.2.0 **Updated:** 2026-09-13 **Freshly updated:** v1.2.0 saves the voice to Site Memory with `respira_remember`, so every later session, in any AI client, reads it through `respira_get_site_context` with no extra call. The full profile stays with the user; the site keeps a distilled form that fits memory's 500-character entries. Plugins older than 8.3 keep the `respira_brand_voice` option. v1.1.0 wired the voice profile into the rest of the brand system. The extracted profile now persists to per-site memory via `respira_get_option` (diff first) + `respira_update_option`, cross-links explicitly with the Page Template Library and Design System Synthesizer skills so copy and layout share one brand foundation, and adds a brand-consistency report built from `respira_generate_activity_report` so you can see how on-voice recent content actually is. **Category:** intelligence **Status:** stable **Requires:** Respira for WordPress plugin 8.3+ for Site Memory (older plugins fall back to an option) + MCP server

---

Description

Read 5–10 published posts on a WordPress site and extract the **brand voice** — tone, lexicon, sentence patterns, person used, formality, signature phrases, phrases the site never uses. Persist it to the site so every future content-writing skill produces copy that sounds like the brand, not like generic AI.

This is the verbal counterpart to the [Design System Synthesizer](https://respira.press/skills/design-system-synthesizer). The two together form a complete brand foundation that every future content-generation skill references.

---

What it produces

A structured `brand_voice` artifact stored at the site level. Schema:

{
  "version": "1.1.0",
  "synthesized_at": "2026-05-24T14:30:00Z",
  "synthesized_from": ["/blog/post-a/", "/blog/post-b/", "..."],
  "n_samples": 8,
  "total_words_sampled": 12450,
  "person": "we",
  "formality": "approachable_professional",
  "sentence_length_avg_words": 14,
  "sentence_length_median_words": 12,
  "sentence_length_p90_words": 28,
  "paragraph_length_avg_sentences": 3.2,
  "reading_grade_avg": 8.4,
  "tone_descriptors": ["confident", "direct", "lightly playful", "evidence-driven"],
  "signature_phrases": [
    "the short version is",
    "here's what we learned",
    "let's break that down"
  ],
  "common_openers": ["here's", "the", "we"],
  "common_closers": ["that's the lesson", "more soon", "questions welcome"],
  "lexicon_preferred": ["ship", "wire", "land", "tighten", "lean into"],
  "lexicon_avoided": ["leverage", "synergy", "best-in-class", "world-class", "innovative", "cutting-edge", "revolutionary"],
  "punctuation_patterns": {
    "em_dash_usage": "frequent",
    "exclamation_marks": "never",
    "oxford_comma": true,
    "ellipsis_usage": "rare",
    "parenthetical_asides": "frequent"
  },
  "structural_patterns": {
    "opens_with_question": "sometimes",
    "uses_headings": "every_post",
    "uses_bullet_lists": "often",
    "uses_code_blocks": "for_technical_posts",
    "uses_blockquotes": "rare",
    "ends_with_call_to_action": "never"
  },
  "examples": {
    "good_paragraph": "We shipped the redesign last week. The short version is: fewer pages, more density, one CTA per screen. Conversion is up 18% on the new pricing page so far. We'll know more by end of month.",
    "bad_paragraph": "We are thrilled to announce the launch of our revolutionary new design! This best-in-class experience leverages cutting-edge UX innovations to deliver unparalleled value!"
  }
}

The full artifact is for the user to keep: paste it into a style guide or save it as a file. What the site keeps is a distilled form in Site Memory (Step 6), because memory arrives in every future session through `respira_get_site_context`, while an option only reaches a skill that knows to ask for it. Earlier versions planned a separate artifact store; Site Memory replaced that plan.

---

When to Use

  • First time setting up an AI workflow for a content-heavy site
  • Before running any content-generation skill that produces written copy
  • After a brand voice update (new style guide, new chief content officer, rebrand)
  • Quarterly refresh — voice drifts; resynthesize to catch it

---

Trigger Phrases

  • "extract my brand voice"
  • "what's my writing style"
  • "analyze my tone"
  • "build a voice guide"
  • "synthesize my voice"
  • "capture my writing style"
  • "what's the voice of this site"

---

Execution Workflow

Step 1 — Confirm site

Call `respira_get_active_site` + `respira_get_site_context`.

Step 2 — Pick representative posts

Call `respira_list_posts` with status=publish, limit=20. From the list, pick 5–10 posts that should represent the voice:

  • Prefer recent posts (last 6 months) over older ones — voice drifts
  • Prefer the site owner's posts over guest posts (look at `author`)
  • Mix lengths: include short posts and long-form
  • Skip auto-generated content (release notes if they're templated, automated changelogs)
  • Skip translated content (the translator's voice contaminates the analysis)

If fewer than 5 posts exist, use whatever's there but note `n_samples` honestly.

Step 3 — Extract each post's content

For each picked post, call `respira_read_post(post_id)` or `respira_extract_builder_content(post_id)` depending on the active builder. Strip:

  • Code blocks (keep the descriptor but exclude the code from voice analysis)
  • Embed shortcodes
  • Image captions (usually different v
Read more
@respira-press
Ships withrespira-wordpress-skills

The community hub for WordPress AI workflows. Skills that run inside Claude Code, Codex, Antigravity, Cursor, and any AI agent that supports Skills + MCP to analyze, audit, optimize, and fix WordPress sites. Built by the community. Curated by Respira.

Stars on GitHub

Momentum

stars in total
51
Star history of respira-press/agent-skills-wordpress on GitHub, a chart by star-history.com

Other skills on respira-wordpress-skills.

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about brand-voice-synthesizer.

Which coding agents can use brand-voice-synthesizer?
brand-voice-synthesizer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.