blog-brand について
blog-brandは、ブログプロジェクトの編集コンテキストを作成・維持するスキルです。対象読者、ブランドの位置づけ、編集ルール、文体をBRAND.mdとVOICE.mdに記録し、ブログコマンドがセッションをまたいで読み込めるようにします。
主な機能
- 01BRAND.mdとVOICE.mdを作成
- 02読者層とブランドの位置づけを記録
- 03編集ルールとトピック範囲を整理
- 04文体と執筆上の制約を設定
- 05既存コンテキストの表示・更新
- 06ブログコマンドにコンテキストを提供
活用シーン
- 01ブログの編集方針を確立
- 02セッション間でブランド指針を維持
- 03読者層や文体の要件を更新
- 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])
表示ワークフロー
- プロジェクトルートに
BRAND.mdとVOICE.mdがあるか確認します。 - 両方ある場合は、主要なセクションのみをまとめた表と、ファイルパスを表示します。
- 片方または両方がない場合は、不足しているファイルを表示し、
/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-persona | blog-brand |
|---|---|---|
| プログラムで使用する構造化されたペルソナ JSON | はい | いいえ |
| スキルをまたぐプロンプト用の読みやすいブランドコンテキスト | いいえ | はい |
| オーディエンスとポジショニング | いいえ | はい |
| 禁止表現と編集上の禁止事項 | 一部(禁止事項の一覧) | 完全(禁止表現+開示事項+範囲) |
| 競合との差別化 | いいえ | はい |
| トピックの境界 | いいえ | はい |
| 声の特徴(トーンスライダー) | はい(正規の情報源) | ミラー(読み取り専用) |
blog-brand は blog-persona を置き換えるものではなく、その情報を利用します。ペルソナ JSON は、トーンの要素、文の長さの分布、短縮形の使用頻度に関する唯一の情報源です。VOICE.md は、プロンプトを単独で使用できるよう、読みやすい情報を反映します。
/blog brand init の実行時にペルソナが存在しない場合でも、声に関する質問から VOICE.md が作成されます。プログラムによる適用を希望するユーザーは、その後に /blog persona create を実行できます。
エラー処理
- プロジェクトのルートが不明確な場合:ファイルの書き込み先をユーザーに確認します。デフォルトは現在の作業ディレクトリです。
- 初期設定時にファイルがすでに存在する場合:上書きするか、代わりに更新を実行するかを確認します。
- 参照先のペルソナが存在しない場合:ペルソナへの参照を空欄のままにするか、作成するかを確認します。
- 回答が不十分な場合:オーディエンスに関する箇条書きを少なくとも 2 件、編集ルールを少なくとも 3 件入力するよう促します。ひな形だけを書き込むことはできません。