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
4351 skills
Install
$ npx -y skills add respira-press/agent-skills-wordpress --skill brand-voice-synthesizer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/brand-voice-synthesizer

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

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
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.

Get the whole plugin
Stats
43
Stars
8
Forks
Active
Maintenance
JavaScript
Language
MIT
License
6d ago
Last commit
6mo ago
Created

Repo: respira-press/agent-skills-wordpress

Other skills on respira-wordpress-skills.