mcpField
B
brand-voice-synthesizer

brand-voice-synthesizer

github.com/respira-pressマーケティング・グロース4988 回インストール2 週間前に更新
リポジトリ

brand-voice-synthesizer について

Respira for WordPress向けのスキルで、公開済み投稿からサイトの語調、語彙、文章の傾向を抽出し、後続のコンテンツ制作で使える要約をSite Memoryに保存します。最近のコンテンツのブランド一貫性も確認でき、推定内容の保存前に承認を求めます。

主な機能

  1. 01公開済み投稿の文体を分析
  2. 02語調、文型、好みの語彙を抽出
  3. 03要約をSite Memoryに保存
  4. 04最近のコンテンツのブランド一貫性を確認
  5. 05更新前に既存の語調との差分を提示

活用シーン

  1. 01コンテンツ制作のブランドボイス基準を設定
  2. 02ブランド変更後に文体を再分析
  3. 03最近の投稿がブランドボイスに沿うか確認

MCP 対応

Respira MCP サーバーが必要です。Respiraツールで投稿とSite Memoryを参照し、承認後に語調の要約を保存します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/respira-press/agent-skills-wordpress --skill brand-voice-synthesizer

インストール後、Claude Code で/brand-voice-synthesizerを入力して読み込まれたか確認します。

詳細

ブランドボイスシンセサイザー

バージョン: 1.2.0 更新日: 2026-09-13 最新アップデート: v1.2.0では、respira_rememberを使ってボイスをサイトメモリに保存するため、以降のすべてのセッションで、どのAIクライアントからでも追加の呼び出しなしにrespira_get_site_contextを通じて読み込めます。完全なプロフィールはユーザーの手元に残り、サイトにはメモリの500文字のエントリーに収まる要約版が保存されます。8.3より前のプラグインでは、引き続きrespira_brand_voiceオプションを使用します。v1.1.0では、ボイスプロフィールをブランドシステムの残りの部分に接続しました。抽出したプロフィールは、respira_get_option(最初に差分を確認)とrespira_update_optionを使ってサイトごとのメモリに保存されるようになりました。また、Page Template LibraryスキルおよびDesign System Synthesizerスキルとの相互リンクを明示し、コピーとレイアウトが同じブランド基盤を共有できるようにしました。さらに、respira_generate_activity_reportから生成したブランド一貫性レポートを追加し、最近のコンテンツがどの程度ブランドの声に沿っているかを確認できるようになりました。 カテゴリ: インテリジェンス ステータス: 安定 必要条件: サイトメモリにはWordPressプラグインRespira 8.3以降(それより前のプラグインではオプションにフォールバック)+MCP サーバー


説明

WordPressサイトで公開済みの投稿を5~10件読み込み、ブランドボイス(トーン、語彙、文のパターン、使用する人称、フォーマル度、特徴的なフレーズ、サイトで決して使わないフレーズ)を抽出します。これをサイトに保存することで、今後のコンテンツ作成スキルがすべて、汎用的なAIではなくブランドらしいコピーを生成できるようになります。

これは、Design System Synthesizerの言語面における対となるものです。この2つを組み合わせることで、今後のすべてのコンテンツ生成スキルが参照できる、完全なブランド基盤が形成されます。


生成されるもの

サイトレベルに保存される、構造化されたbrand_voiceアーティファクトです。スキーマ:

{
  "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!"
  }
}

完全なアーティファクトはユーザーが保持するためのものです。スタイルガイドに貼り付けるか、ファイルとして保存してください。サイトに保存されるのは、サイトメモリの要約版(ステップ6)です。メモリはrespira_get_site_contextを通じて今後のすべてのセッションで利用できますが、オプションにアクセスできるのは、それを取得するよう指定されたスキルだけだからです。以前のバージョンでは独立したアーティファクトストアを予定していましたが、その計画はサイトメモリに置き換えられました。


使用するタイミング

  • コンテンツ量の多いサイトでAIワークフローを初めて設定するとき
  • 文章を作成するコンテンツ生成スキルを実行する前
  • ブランドボイスを更新した後(新しいスタイルガイド、新しいコンテンツ責任者、リブランディングなど)
  • 四半期ごとの更新時 — ボイスは変化するため、再合成して変化を把握します

トリガーフレーズ

  • 「ブランドボイスを抽出して」
  • 「私の文章スタイルは?」
  • 「私のトーンを分析して」
  • 「ボイスガイドを作成して」
  • 「私のボイスを合成して」
  • 「私の文章スタイルを記録して」
  • 「このサイトのボイスは?」

実行ワークフロー

ステップ1 — サイトを確認する

respira_get_active_siteとrespira_get_site_contextを呼び出します。

ステップ2 — 代表的な投稿を選ぶ

respira_list_postsをstatus=publish、limit=20で呼び出します。一覧から、ボイスを代表する投稿を5~10件選びます。

  • 古い投稿よりも最近の投稿(過去6か月)を優先します — ボイスは変化します
  • ゲスト投稿よりもサイト所有者の投稿を優先します(authorを確認してください)
  • 長さが偏らないよう、短い投稿と長文の両方を含めます
  • 自動生成されたコンテンツは除外します(テンプレート化されたリリースノートや自動生成された変更履歴など)
  • 翻訳されたコンテンツは除外します(翻訳者の声が分析に混ざるため)

投稿が5件未満の場合は、あるものを使い、n_samplesには正確な件数を記録します。

ステップ3 — 各投稿のコンテンツを抽出する

選んだ投稿ごとに、使用中のビルダーに応じてrespira_read_post(post_id)またはrespira_extract_builder_content(post_id)を呼び出します。次の要素は取り除きます。

  • コードブロック(説明文は残しますが、コードはボイス分析の対象から除外します)
  • 埋め込みショートコード
  • 画像キャプション(通常、本文とは異なるボイスです)
  • 自動生成されたフッター(リンクバック、「購読」CTAなど)
ステップ 4 — 分析

クリーニング済みテキストのコーパスについて、以下を算出します。

  1. 人称: 最もよく使われる代名詞(I / we / you / 代名詞なし)。混在している場合は、その内訳を記します。
  2. フォーマル度: 無作為に選んだ段落を 5~10 個読みます。カジュアル/親しみやすくプロフェッショナル/フォーマル/アカデミックの尺度で判定します。
  3. 文の長さ: 平均、中央値、90 パーセンタイル。
  4. 段落の長さ: 1 段落あたりの平均文数。
  5. 読解学年: Flesch-Kincaid などの指標。
  6. トーンを表す形容詞: コーパスに基づく形容詞を 3~5 個。自信がある?慎重?遊び心がある?率直?根拠を重視する?ストーリーテラー?
  7. 特徴的なフレーズ: 複数の投稿に繰り返し登場する、複数語からなるフレーズ。書き手らしさが表れる表現です。
  8. よく使う書き出し/締めくくり: 段落はどのように始まり、終わることが多いですか?
  9. 好んで使う語彙: この書き手が使いがちな動詞や名詞。(「release」ではなく「ship」、「integrate」ではなく「wire」、「launch」ではなく「land」)
  10. 避ける語彙: コーパスに明らかに見られない、競合他社や一般的な AI が使いそうな言葉。(「leverage」、「synergy」、「best-in-class」、「innovative」、「revolutionary」など。)使われていないこと自体が手がかりになります。
  11. 句読点のパターン: em ダッシュを使う?感嘆符を使う?オックスフォードコンマを使う?括弧書きを挟む?
  12. 構成のパターン: 投稿は疑問形で始まる?見出しを使う?箇条書きを使う?CTA で終わる?
ステップ 5 — 合成した文体をユーザーに提示する

人が読んでわかる要約を出力します。

## Brand voice synthesized for {site_url}

Based on {n_samples} published posts ({total_words_sampled:,} words sampled, mostly from the last 6 months).

**Person:** {person} ("we" / "I" / "you" / mixed)
**Formality:** {formality}
**Sentence length:** ~{sentence_length_avg_words} words avg ({sentence_length_p90_words}-word p90)
**Reading grade:** {reading_grade_avg}
**Tone:** {tone_descriptors joined}

**Signature phrases this site uses repeatedly:**
{signature_phrases as bulleted list}

**Words this site reaches for:**
{lexicon_preferred as inline list}

**Words this site conspicuously avoids:**
{lexicon_avoided as inline list}

**Punctuation quirks:**
- em dashes: {em_dash_usage}
- exclamation marks: {exclamation_marks}
- oxford comma: {oxford_comma}

**Structural patterns:**
- Opens with a question? {opens_with_question}
- Uses headings? {uses_headings}
- Ends with a CTA? {ends_with_call_to_action}

**A paragraph that sounds like you:**
> {examples.good_paragraph from the corpus}

**A paragraph that does NOT sound like you (generic AI):**
> {examples.bad_paragraph as a constructed counter-example}

ユーザーに尋ねます:"これはご自身の文体の説明として合っていますか?追加や訂正はありますか?"

ステップ 6: 文体を Site Memory に保存する

Site Memory はサイト独自のメモリです。すべてのエントリーは、以降のすべてのセッションとすべての AI クライアントで、追加の呼び出しなしに respira_get_site_context の site_memory に含まれます。エントリーは 500 文字以内のため、JSON ではなく要約した文体を保存します。

  1. 現在の内容を確認します。 respira_list_memory を呼び出し、brand-voice と brand-voice-avoid のキーを探します。存在する場合は、置き換える前に、変更される内容(人称、トーン、追加または削除される語句)をユーザーに提示します。保存済みの文体を黙って置き換えてはいけません。
  2. 2 つのエントリーに要約します。 それぞれ 500 文字以内にします。
    • brand-voice、type preference:人称、フォーマル度、文の長さ、トーン、特徴的なフレーズを 2~3 文で記します。例:「一人称複数を使い、親しみやすく率直に書きます。文の平均は 14 語で、段落は 4 文未満にします。ship、wire、land、tighten を使います。特徴的な書き出しは『the short version is』です。」
    • brand-voice-avoid、type preference:避ける語句と句読点の習慣を記します。例:「使用禁止:leverage、synergy、best-in-class、world-class、innovative、cutting-edge、revolutionary。感嘆符は使いません。オックスフォードコンマを使います。」
  3. 確認を求めてから保存します。 文体は推定したもので、ユーザー自身が述べたものではないため、両方のエントリーを提示し、ユーザーが承諾してから respira_remember で保存します。type には preference を指定し、rule は決して使いません。ルールは書き込みのたびに適用され、所有者しか削除できないため、文体の指定には適しません。
  4. 確認します。 respira_list_memory で、今日の日付とともに両方のキーが表示されることを確認します。

8.3 より古いプラグインにはメモリツールがありません。その場合は代わりに、respira_get_option('respira_brand_voice') の内容との差分を確認し、ユーザーが承諾した後に respira_update_option('respira_brand_voice', <json>) で書き込み、再度読み込んで確認します。

出力:"ブランドボイスを、このサイトのメモリに brand-voice と brand-voice-avoid の 2 つのエントリーとして保存しました。以降のすべてのセッションで、どの AI クライアントからサイトを開いても自動的に読み込まれます。避ける語句のエントリーが最も強いシグナルになります。プロンプトで使うよう促されても、エージェントはそれらの語句を使いません。"

ステップ 7 — ブランド一貫性レポート(任意)

ボイスプロファイルは基準としても使えます。サイトにすでに掲載されているコンテンツがブランドに合った語り口かどうかを確認できます。respira_generate_activity_report で最近の作業ログを取得します(公開・編集された内容と日時が返されます)。次に、該当するページや投稿をサンプルとして選び、保存済みのプロファイルに照らして評価します。

  • ボイスに合致: 人称や文の長さが一致し、推奨する語彙を使っています。
  • ボイスに不一致: 避ける語彙を使っている、人称が違う、またはマーケティング的な最上級表現に流れています。

率直に報告します。「直近で公開された12件の投稿のうち、9件はボイスに合致しています。3件は避ける語彙(「革命的」「業界最高水準」)に寄っています。テンプレート化されたローンチ投稿と思われます。これらをボイスに合うよう書き直しましょうか?」 これにより、ボイスプロファイルは受動的な成果物から能動的な一貫性チェックへと変わり、書き換えスキルとも自然に連携します。


他のスキルでのブランドボイスの活用方法

保存すると、ボイスは respira_get_site_context の site_memory ブロックに含まれるため、すべてのコンテンツ作成スキル(ページ生成、ブログ投稿の下書き、ソーシャル投稿の作成)は、追加の呼び出しなしでワークフローの最初から参照できます。respira_list_memory では、キーごとに2つのエントリを確認できます。バージョン8.3より古いプラグインでは、代わりに respira_brand_voice オプションを読み取ります。スキルはボイスを使って、次のことを行います。

  • サイトの人称に合う代名詞を選ぶ
  • 文の長さと読解レベルを合わせる
  • 推奨する語彙を使う
  • 避ける語彙を使わない
  • 句読点のパターンを合わせる
  • 構成のパターンを合わせる(質問で始めるか? CTA で終えるか?)

最も強いシグナルは避ける語彙です。エージェントが「革命的」や「業界最高水準」と書こうとしたとき、ボイスの成果物は*「このサイトではその言葉を使いません」*と示し、エージェントはより誠実な動詞を選びます。

連携先

ブランドボイスはブランド基盤の一部です。次の2つの関連スキルと組み合わせると、最も効果を発揮します。

  • デザインシステム統合 — 視覚面(色、タイポグラフィ、余白、コンポーネント。respira_design_system として保存)を担います。ボイスは言葉の読み心地を、デザインシステムはページの見た目を扱います。両方を実行すると、生成コンテンツの最初から最後までブランドに沿ったものになります。デザインシステム統合のスタイルガイドページからは、ボイス全体を確認できるこのページにもリンクされています。
  • ページテンプレートライブラリ — 保存済みテンプレートからページを組み立てる際、brand-voice メモリエントリを使うことで、挿入されるプレースホルダーのコピーも、ダミーテキストや汎用的なAIの文ではなく、サイトらしい語り口になります。ボイスが言葉を、テンプレートがレイアウトを提供します。

2つの成果物のうち一方しか存在しない場合でも、コンテンツスキルは存在するものを活用します。ただし、存在しない方の統合スキルを実行すると結果がより洗練されることを、ユーザーに伝えてください。


厳守事項

  • ボイスは観察するものであり、設計するものではありません。創作しないでください。各記述はすべてコーパス内の根拠に基づく必要があります。
  • 避ける語彙は逆方向のシグナル、つまり目立って使われていない語です。一般的なストップワード(「the」「and」「is」)は含めないでください。競合サイトでは多用される一方、このサイトでは使われていない語を含めてください。
  • 「良い段落」の例には、コーパスから実際の段落を選び、一字一句そのまま引用する必要があります。「悪い段落」の例は、避ける語彙を使って作成した反例です。
  • 既存のブランドボイスを、知らせずに上書きしてはいけません。保存する前に差分を提示してください。
  • ボイスは preference として保存し、rule として保存してはいけません。また、ユーザーが同意した後にのみ保存してください。
  • コーパスに複数の著者の声が混在している場合は、正直に伝えてください。「サンプルに含まれる投稿には、3つの異なる声があります。1人の著者を選んで統合するか、3つを別々の声として記録してください。」

ツール

コーパスの読み取り(信頼できる情報源)

  • respira_get_active_site
  • respira_get_site_context
  • respira_list_posts
  • respira_read_post
  • respira_extract_builder_content

保存とレポート

  • respira_list_memory:置き換える前に、既存のbrand-voiceエントリーを確認します
  • respira_remember:抽出した2つのエントリーを、タイプpreferenceとして保存します
  • respira_forget:ユーザーが誤りだと伝えた古いトーンのエントリーを削除します
  • respira_get_optionとrespira_update_option:8.3より前の古いプラグインでの代替手段です
  • respira_generate_activity_report:ブランドの一貫性チェックに使用する、最近公開・編集されたコンテンツです(プラグイン9.0以降ではツールとして利用できます。古いプラグインでは、respira_invoke_abilityをability: "respira/generate-activity-report"と同じ引数をargsの下に指定して呼び出してください)

Design System Synthesizer(respira_get_option経由のrespira_design_system)およびPage Template Libraryと連携します。respira-wordpress MCPツールのみを使用し、ツール名を決して捏造しないでください。


テレメトリー

記録する内容:サイトURLのハッシュ、サンプルとして取得した投稿数、分析した総単語数、検出した人物、検出したフォーマル度、成功/失敗。実際のフレーズ、避けるべき単語、段落の例は送信されません。

エンドポイント:POST https://www.respira.press/api/skills/track-usage

コメント