mcpField
B
blog-brand

blog-brand

github.com/infrasity-labsマーケティング・グロース15195 回インストール18 週間前に更新
リポジトリ

blog-brand について

blog-brandは、ブログプロジェクトの編集コンテキストを作成・維持するスキルです。対象読者、ブランドの位置づけ、編集ルール、文体をBRAND.mdとVOICE.mdに記録し、ブログコマンドがセッションをまたいで読み込めるようにします。

主な機能

  1. 01BRAND.mdとVOICE.mdを作成
  2. 02読者層とブランドの位置づけを記録
  3. 03編集ルールとトピック範囲を整理
  4. 04文体と執筆上の制約を設定
  5. 05既存コンテキストの表示・更新
  6. 06ブログコマンドにコンテキストを提供

活用シーン

  1. 01ブログの編集方針を確立
  2. 02セッション間でブランド指針を維持
  3. 03読者層や文体の要件を更新
  4. 04ブログ執筆ワークフローに共通の背景を提供

インストール

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

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill blog-brand

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

詳細

ブログブランド:持続する編集コンテキスト

プロジェクトルートに2つのファイルを生成します。ファイルが存在する場合、すべてのブログサブスキルが自動的に読み込みます。

  • BRAND.md:対象読者、ブランドが大切にすること、決して言わないこと
  • VOICE.md:ブランドの文体と語彙

これらのファイルにより、セッションをまたいで維持され、すべてのコマンドに反映される、永続的な編集コンテキストを提供します。

これが必要な理由

現在、ペルソナ JSON(blog-persona 由来)は、一部のスキルでは読み込まれますが、そうでないスキルもあります。トピッククラスターのコンテキストはクラスターの保管領域内にあり、競合他社のポジショニングはどこにもありません。各ブログコマンドは、手元にあるコンテキストから「ブランドとは何か」を毎回導き出しています。

BRAND.md と VOICE.md によって、この問題を解決します。これらを唯一の正規ソースとし、blog オーケストレーターが各コマンドの開始時に読み込みます。

どちらのファイルも存在しない場合、動作は変わりません。後方互換性があります。

コマンド

コマンド目的
/blog brand init対話形式のヒアリングを行い、プロジェクトルートに BRAND.md と VOICE.md を書き込みます
/blog brand show現在の内容を表示します(ファイルがない場合はその旨を報告します)
/blog brand update現在の値をデフォルトとして、ヒアリングを再実行します

初期化ワークフロー

5段階の対話形式のヒアリングを実行します。各ステップで質問し、回答を待ってから次に進みます。blog-persona JSON がすでに存在する場合は、そこから文体に関する回答を事前入力します。

ステップ 1:対象読者

質問する項目:

  • 主な対象読者の役職(例:「従業員数50~500人の B2B SaaS 企業のマーケティング責任者」)
  • 副次的な対象読者(任意)
  • 読者の専門知識レベル:初心者/中級者/上級者/混在
  • 読者が積極的に解決しようとしている問題(箇条書きで3~5項目)
  • 対象読者によくある誤解(情報価値を高めるために使用)
ステップ 2:ポジショニング

質問する項目:

  • ブランドのミッションを一文で(ブランドが人々の何を支援するか)
  • 独自の視点(コンテンツの方向性を決める、通説に反する、または意外性のある信念)
  • このブランドが該当しないもの(反ポジショニング。間違っても混同されたくないもの)
  • 主な直接競合他社を3社。それぞれに対する1行の差別化ポイントも尋ねます
ステップ 3:編集ルール

質問する項目:

  • 必ず行うことのリスト(ブログで常に行うことを3~7項目。例:「一次情報のみを引用する」「製品ではなく実務担当者の名前を挙げる」)
  • 決して行わないことのリスト(ブログで決して行わないことを3~7項目。例:「クリックベイトの見出しは使わない」「中身のないリスト記事は作らない」)
  • タブー表現(このブランドが決して使わない特定の単語や表現。AI 検出用の禁止リストとは別のもので、補完的に使います)
  • 必須の開示事項(例:アフィリエイトの開示、AI 生成コンテンツの開示、利益相反に関する定型表現)
ステップ 4:トピックの範囲

質問する項目:

  • 全面的に扱うトピック(中核となるコンテンツの柱)
  • 一部のみ扱うトピック(隣接領域。独自の切り口がある場合に限って取り上げます)
  • 対象外のトピック(扱わないもの。パートナーのコンテンツへ誘導します)
  • 定期的なフォーマット/コラム名(該当する場合。例:「月刊フィールドノート」「読者 Q&A」)
ステップ 5:文体(blog-persona が存在する場合は自動入力)

質問する項目:

  • 代名詞の使い方:一人称(we/I)、二人称(you)、三人称(the team)、または混在
  • 使用可能な短縮形:すべて/一部/なし
  • 文の長さの上限:1文あたりの最大語数(厳守)
  • 段落の長さの上限:1段落あたりの最大語数(デフォルトは150)
  • 推奨する見出しのパターン:番号付き/疑問形/約束/断定
  • 避ける見出しのパターン:このブランドで禁止するパターン
  • サマリーボックスのラベル:blog-persona から取得するか、選択します

出力ファイル

BRAND.md テンプレート

プロジェクトルートに次の内容で書き込みます:

# Brand Context

> This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.

## Audience

- **Primary**: [role + context]
- **Secondary**: [if any]
- **Expertise**: [level]
- **Active problems**:
  - [problem 1]
  - [problem 2]
  - [problem 3]
- **Common misconceptions**:
  - [misconception 1]
  - [misconception 2]

## Positioning

- **Mission**: [one sentence]
- **Distinctive POV**: [contrarian or non-obvious belief]
- **What we are NOT**: [anti-positioning]
- **Competitors**:
  - [Competitor A]: [our one-line differentiator]
  - [Competitor B]: [our one-line differentiator]
  - [Competitor C]: [our one-line differentiator]

## Editorial Rules

### Always do
- [rule 1]
- [rule 2]
- [rule 3]

### Never do
- [rule 1]
- [rule 2]
- [rule 3]

### Taboo phrases
- [phrase 1]
- [phrase 2]

### Required disclosures
- [disclosure rule]

## Topic Scope

- **In scope**: [pillars]
- **Partial scope**: [adjacent topics]
- **Out of scope**: [topics to refuse]
- **Recurring formats**: [if any]
VOICE.md テンプレート

プロジェクトルートに次の内容で書き込みます:

# Voice Context

> This file is auto-loaded by all blog sub-skills. Last updated: YYYY-MM-DD.

## Pronoun stance
[first-person / second-person / third-person / mixed]

## Lexical rules
- **Contractions**: [full / partial / none]
- **Sentence ceiling**: [N words max]
- **Paragraph ceiling**: [N words max, default 150]
- **Summary label**: [Key Takeaways / TL;DR / etc.]

## Headline patterns
- **Favor**: [list]
- **Avoid**: [list]

## Voice fingerprint (from blog-persona)
- Funny vs serious: [0.0 to 1.0]
- Formal vs casual: [0.0 to 1.0]
- Respectful vs irreverent: [0.0 to 1.0]
- Enthusiastic vs matter-of-fact: [0.0 to 1.0]

## Readability target
- Audience tier: [consumer / professional / technical]
- Flesch Grade: [range]
- Flesch Ease: [range]

## Reference samples
- [URL 1] (extracted patterns: [summary])
- [URL 2] (extracted patterns: [summary])

表示ワークフロー

  1. プロジェクトルートに BRAND.md と VOICE.md があるか確認します。
  2. 両方ある場合は、主要なセクションのみをまとめた表と、ファイルパスを表示します。
  3. 片方または両方がない場合は、不足しているファイルを表示し、/blog brand init を提案します。

更新ワークフロー

初期設定と同じですが、すべての回答に現在の値があらかじめ入力されています。ユーザーは Enter キーを押してそのまま確定するか、新しい値を入力できます。すべての回答を収集した後、両方のファイルを新しい内容で上書きし、Last updated: 行を更新します。

ブログオーケストレーターとの連携

/blog write、/blog rewrite、/blog brief、/blog outline、/blog calendar、または /blog strategy の実行時に、オーケストレーター(skills/blog/SKILL.md)はプロジェクトのルートに BRAND.md と VOICE.md があるか確認します。存在する場合、その内容が後続のエージェント(blog-researcher、blog-writer、blog-seo、blog-reviewer)向けのシステムプロンプトに挿入されます。

ファイルが存在しない場合、動作は変わりません。オーケストレーターがユーザーにファイルの作成を促すことはありません。これらは任意で追加できるコンテキストです。

blog-persona との関係

項目blog-personablog-brand
プログラムで使用する構造化されたペルソナ JSONはいいいえ
スキルをまたぐプロンプト用の読みやすいブランドコンテキストいいえはい
オーディエンスとポジショニングいいえはい
禁止表現と編集上の禁止事項一部(禁止事項の一覧)完全(禁止表現+開示事項+範囲)
競合との差別化いいえはい
トピックの境界いいえはい
声の特徴(トーンスライダー)はい(正規の情報源)ミラー(読み取り専用)

blog-brand は blog-persona を置き換えるものではなく、その情報を利用します。ペルソナ JSON は、トーンの要素、文の長さの分布、短縮形の使用頻度に関する唯一の情報源です。VOICE.md は、プロンプトを単独で使用できるよう、読みやすい情報を反映します。

/blog brand init の実行時にペルソナが存在しない場合でも、声に関する質問から VOICE.md が作成されます。プログラムによる適用を希望するユーザーは、その後に /blog persona create を実行できます。

エラー処理

  • プロジェクトのルートが不明確な場合:ファイルの書き込み先をユーザーに確認します。デフォルトは現在の作業ディレクトリです。
  • 初期設定時にファイルがすでに存在する場合:上書きするか、代わりに更新を実行するかを確認します。
  • 参照先のペルソナが存在しない場合:ペルソナへの参照を空欄のままにするか、作成するかを確認します。
  • 回答が不十分な場合:オーディエンスに関する箇条書きを少なくとも 2 件、編集ルールを少なくとも 3 件入力するよう促します。ひな形だけを書き込むことはできません。

コメント