blog-calendar について
blog-calendar は、トピッククラスターや公開頻度から更新・配信まで、ブログの編集計画を立てるスキルです。コンテンツの陳腐化やクラスターの進捗も追跡でき、Notion 接続時には予定を登録できます。
主な機能
- 01トピッククラスターと公開カレンダーの設計
- 02古いコンテンツの検出と更新計画
- 03コンテンツテンプレートと構成比の提案
- 04季節テーマとチャネル配信の計画
- 05クラスター進捗と更新タスクの追跡
活用シーン
- 01月次または四半期のブログ公開を計画
- 02古くなった記事の更新優先度を決定
- 03新しい記事のチャネル配信を予定
- 04トピッククラスターの網羅状況を追跡
MCP 対応
任意で Notion MCP ツールを使い、コンテンツカレンダーデータベースの検索・作成、項目の追加、カレンダービューの作成ができます。Notion が利用できない場合は、チャットにカレンダーを出力します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill blog-calendarインストール後、Claude Code で/blog-calendarを入力して読み込まれたか確認します。
詳細
ブログカレンダー:編集計画
トピッククラスター、公開頻度、鮮度を保つための更新スケジュール、コンテンツの陳腐化の検出、テンプレートの推奨、配信計画、季節ごとの切り口を盛り込んだ編集カレンダーを生成します。トピックにおける権威性(Google)の構築と、AI プラットフォームで引用されるコンテンツの鮮度維持に最適化されています。
相互参照
このスキルは FLOW の Find ステージで動作します。トピックを選ぶ前に、/blog flow find を実行してキーワードを発見し、コンテンツの優先順位を決め、クラスターの選定とトピックの順序付けに役立つオーディエンスのペルソナプロンプトを用意してください。
ワークフロー
ステップ 1:ブログを把握する
以下の情報を収集します。
- ニッチ/業界:ブログのテーマは何ですか?
- 既存のコンテンツ:既存のブログ投稿を検索します(
*.md、*.mdx、*.htmlを Glob で検索) - 公開頻度:どれくらいの頻度で公開できますか?(デフォルト:週 2 回)
- 期間:月間または四半期のカレンダーですか?
- ビジネス目標:ブログで何を促進したいですか?(トラフィック、リード、権威性)
ステップ 2:トピッククラスターを設計する
ピラーページと関連コンテンツで構成されるトピッククラスターを 3~5 個設計します。
Cluster: [Pillar Topic]
├── Pillar Page: [Comprehensive guide - 3,000+ words]
├── Supporting: [Subtopic 1 - 2,000 words]
├── Supporting: [Subtopic 2 - 2,000 words]
├── Supporting: [Subtopic 3 - 1,500 words]
├── Comparison: [X vs Y - 1,500 words]
└── FAQ: [Common questions - 1,500 words]
各クラスターでは、以下を満たす必要があります。
- 中心となるキーワードテーマをターゲットにする
- トピックにおける権威性を確立できるよう、トピックを包括的に扱う
- 多様なコンテンツ形式(ガイド、比較、ハウツー、リスト記事)を含める
- クラスター内のページ同士を内部リンクでつなぐ
ステップ 2.5:コンテンツの陳腐化を検出する
既存のブログ投稿を検索し、フロントマターにある lastUpdated または date フィールドを確認します。以下の基準に基づいて、投稿ごとに鮮度を分類します。
| トラフィックレベル | 陳腐化のしきい値 | 要注意のしきい値 |
|---|---|---|
| トラフィックの多い投稿 | 更新から 30 日超 | 90 日超 |
| トラフィックが中程度の投稿 | 更新から 90 日超 | 180 日超 |
| トラフィックの少ない投稿 | 更新から 180 日超 | 365 日超 |
参考:AI の引用上位の 76%は、過去 30 日以内に更新されたコンテンツです。
陳腐化レポートを出力します。
## Content Decay Report
| Post | Last Updated | Days Stale | Priority | Action |
|------|-------------|-----------|----------|--------|
| [slug] | [date] | [N] | Critical | Refresh immediately |
| [slug] | [date] | [N] | High | Schedule this month |
| [slug] | [date] | [N] | Medium | Schedule this quarter |
優先度:
- 緊急:トラフィックの多い投稿が 30 日超更新されていない場合:ただちに更新します
- 高:いずれかの投稿が陳腐化のしきい値を超えている場合:今月中に予定します
- 中:しきい値に近づいている投稿:今四半期中に予定します
- 低:しきい値以内の投稿:対応不要です
ステップ 3:鮮度維持のための更新スケジュール
AI プラットフォームは鮮度の高いコンテンツを非常に重視します(引用上位の 76%は過去 30 日以内に更新されています)。
更新サイクルを計画します。
- 優先度の高い投稿(トラフィックを促進する投稿):30 日ごとに更新
- 優先度が中程度の投稿:90 日ごとに更新
- 優先度の低い投稿:年 1 回更新
- エバーグリーン投稿:データが変わったときに更新
ステップ 4:季節性とトレンドの切り口
季節ごとの機会を調査します。
- 業界イベント:カンファレンス、製品のローンチ、アルゴリズムの更新
- 季節トレンド:WebSearch を使って、そのニッチの Google トレンドを確認します
- 年次レポート:主要な調査で新しいデータが公開される時期
- アルゴリズムの更新:Google のコアアップデート(通常は年 3~4 回)
季節トレンドの統合
- 季節的なピークをコンテンツ制作スケジュールに反映します
- インデックスにかかる時間を考慮し、季節的なピークの 4~6 週間前にコンテンツを計画します
- 「季節性の切り口を加えたエバーグリーン」コンテンツを作成します(例:「X ガイド[年]」を毎年更新)
- 業界レポートの公開サイクルを追跡します。
- Ahrefs Annual State of SEO(通常は第 1 四半期)
- Google Year in Search(12 月)
- HubSpot State of Marketing(第 1 四半期)
- Gartner Hype Cycle(8 月)
- そのニッチにおける主要カンファレンスの日程
- スケジュールを決める前に、WebSearch を使ってトレンドの時期を確認します
ステップ 5:カレンダーを生成する
コンテンツ構成比
推奨されるコンテンツ構成比を適用します。 新規コンテンツ 60%/鮮度向上のための更新 30%/再利用コンテンツ 10%
| 頻度 | 月間投稿数 | 新規 | 更新 | 再利用 |
|---|---|---|---|---|
| 週2件 | 8 | 5 | 2 | 1 |
| 週3件 | 12 | 7 | 4 | 1 |
| 週4件 | 16 | 10 | 5 | 1 |
| 週1件 | 4 | 2-3 | 1 | 0-1 |
新規投稿では、コンテンツタイプに多様性を持たせます。
- ガイド/ハウツー:新規コンテンツの30-40%
- 比較/代替案:15-20%
- リスト記事/まとめ:15-20%
- 事例研究/データ調査:10-15%
- オピニオンリーダーシップ/ニュース分析:10-15%
テンプレートの組み込み
新規投稿の各項目について、利用可能な以下12種類のコンテンツテンプレートから推奨するテンプレートを選びます。
how-to-guide、listicle、case-study、comparison、pillar-page、
product-review、thought-leadership、roundup、tutorial、
news-analysis、data-research、faq-knowledge
詳細なテンプレートについては、references/content-templates.md を参照してください。
月間カレンダー形式
# Editorial Calendar: [Month Year]
## Publishing Cadence: [N] posts/week
## Content Mix: [N] new / [N] refreshes / [N] repurposed
### Week 1: [Date Range]
| Day | Type | Title | Template | Cluster | Target Keyword | Status |
|-----|------|-------|----------|---------|---------------|--------|
| Mon | New | [Title] | how-to-guide | [Cluster] | [keyword] | Draft |
| Thu | Update | [Existing post] | - | [Cluster] | [keyword] | Refresh |
### Week 2: [Date Range]
| Day | Type | Title | Template | Cluster | Target Keyword | Status |
|-----|------|-------|----------|---------|---------------|--------|
| Mon | New | [Title] | comparison | [Cluster] | [keyword] | Brief |
| Thu | New | [Title] | listicle | [Cluster] | [keyword] | Brief |
### Week 3: [Date Range]
[...]
### Week 4: [Date Range]
[...]
## Content Mix This Month
- New posts: [N]
- Freshness updates: [N]
- Repurposed content: [N]
- Content types: [guides, comparisons, how-tos, listicles, ...]
## Freshness Update Queue
| Post | Last Updated | Priority | Scheduled |
|------|-------------|----------|-----------|
| [slug] | [date] | High | Week 2 |
| [slug] | [date] | Medium | Week 4 |
## Seasonal Hooks
- [Event/trend and how to leverage it]
四半期カレンダー形式
# Quarterly Editorial Plan: Q[N] [Year]
## Content Strategy
- Topic clusters: [N] active
- New posts planned: [N]
- Freshness updates planned: [N]
- Repurposed content: [N]
- Total content actions: [N]
## Month 1: [Month]
### Focus: [Primary cluster or theme]
| Week | Type | Title | Template | Cluster | Keyword |
|------|------|-------|----------|---------|---------|
| W1 | New | ... | how-to-guide | ... | ... |
| W1 | Update | ... | - | ... | ... |
| W2 | New | ... | comparison | ... | ... |
[...]
## Month 2: [Month]
### Focus: [Primary cluster or theme]
[...]
## Month 3: [Month]
### Focus: [Primary cluster or theme]
[...]
## Quarterly Goals
- [ ] Publish [N] new posts
- [ ] Update [N] existing posts for freshness
- [ ] Complete [Cluster] pillar + [N] supporting pages
- [ ] Achieve [metric target]
ステップ5.5:トピッククラスターの進捗管理
各トピッククラスターの構築状況を追跡します。新しいクラスターに着手するよりも、構築途中のクラスターを完成させることを優先します。
## Topic Cluster Progress
| Cluster | Pillar | Spokes Published | Spokes Planned | Coverage |
|---------|--------|-----------------|----------------|----------|
| [Topic] | Published | 5/10 | 5 this quarter | 50% |
| [Topic] | Draft | 2/8 | 3 this quarter | 25% |
| [Topic] | Not started | 0/6 | 1 this quarter | 0% |
クラスターの優先順位付けルール:
- カバー率が50%以上のクラスター:完成を最優先します
- ピラーページは公開済みでも、スポークページが少ないクラスター:2番目に優先します
- 新しいクラスター:既存クラスターのカバー率が75%以上になった場合にのみ着手します
- 同時に構築を進めるクラスターは、3つを超えないようにします
ステップ5.6:配信スケジュールの設定
新しい投稿ごとに、各チャネルでの配信を計画します。カレンダーの出力には配信タイミングを含めます。
## Distribution Schedule
| Post | Publish Date | LinkedIn | Reddit | Email | YouTube |
|------|-------------|----------|--------|-------|---------|
| [Title] | [Date] | Same day | +2-3 days | Next batch | If pillar |
チャネルごとのタイミングルール:
- LinkedIn:公開当日(重要なインサイトとリンクを共有)
- Reddit:公開から2-3日後(リンクを貼るだけではなく、価値あるインサイトを共有)
- メールニュースレター:週ごとにまとめて配信(各ニュースレターに2-3件の投稿を含める)
- YouTube:ピラーページのみ、関連動画を計画(リソースを多く必要とします)
- Twitter/X:公開当日(重要なポイントをスレッド形式で紹介)
各チャネルの詳細な戦略については、references/distribution-playbook.md を参照してください。
ステップ5.7:鮮度維持の自動化
鮮度を継続的に維持する仕組みを設定します。
## Freshness Schedule: Next 30 Days
| Post | Last Updated | Next Refresh Date | Priority | Owner |
|------|-------------|-------------------|----------|-------|
| [slug] | [date] | [date + 30] | High | [name] |
| [slug] | [date] | [date + 90] | Medium | [name] |
自動化に関する推奨事項:
- トラフィックの多い投稿について、30日ごとの更新サイクルをカレンダーでリマインドします
- 投稿を「次回更新日」の昇順(緊急度の高いものを先頭)に並べます
- トラフィック/重要度に基づいて更新の順序を優先します
- 更新のたびに、frontmatter の
lastUpdatedフィールドを更新します - 検索順位や引用に対する鮮度の影響を測定できるよう、更新履歴を追跡します
- 予定されている各更新で
/blog rewriteを実行するよう提案します
ステップ6:保存と次のステップ
カレンダーを保存し、次の手順を提案します。
/blog brief <first-topic>から始めて、最初のコンテンツブリーフを作成します/blog writeを使って、ブリーフから記事を生成します/blog rewriteを使って、既存コンテンツの鮮度を向上させる更新を行います- 次の計画を作成するため、翌月または翌四半期に
/blog calendarを再実行します - コンテンツの劣化レポートを毎週確認し、まず「重大」項目に対処します
- トピッククラスターの進捗を毎月追跡し、クラスターが完成に達するようにします
ステップ 7:Notion MCP(任意)
カレンダーをチャットに出力した後、notion-query-data-sources を試します。結果が返れば、Notion に接続されています。以下の手順でプッシュします。失敗するか利用できない場合は、スキップしてアラートを追加します。
Notion に接続されている場合:
編集カレンダーは、タイトル、タイプ、テンプレート、クラスター、キーワード、ステータス、公開日、作成者からなる構造化データであり、Notion データベースに適しています。直接プッシュします。
notion-searchを呼び出して、ワークスペース内に既存のコンテンツカレンダーデータベースがあるか検索します- 見つかった場合:
notion-create-pagesを呼び出して、各新規記事/更新エントリーを既存のデータベースに追加します。すでに存在するエントリーはスキップします(タイトルと公開日で照合) - 見つからない場合:
notion-create-databaseを呼び出して、以下のプロパティを持つコンテンツカレンダーデータベースを作成します:- タイトル(タイトル)、タイプ(セレクト:新規/更新/再利用)、テンプレート(セレクト)、クラスター(セレクト)、キーワード(リッチテキスト)、ステータス(セレクト:ブリーフ/下書き/レビュー/公開済み)、公開日(日付)、作成者(ユーザー)
次に、
notion-create-pagesを呼び出して、カレンダーのすべてのエントリーを追加します
- タイトル(タイトル)、タイプ(セレクト:新規/更新/再利用)、テンプレート(セレクト)、クラスター(セレクト)、キーワード(リッチテキスト)、ステータス(セレクト:ブリーフ/下書き/レビュー/公開済み)、公開日(日付)、作成者(ユーザー)
次に、
notion-create-viewを呼び出して、公開日ごとにグループ化したカレンダービューを追加します(チームがスケジュールを視覚的に確認できます)- 次のように確認します:「✅ 編集カレンダーを Notion にプッシュしました — [N] 件のエントリーを追加しました。カレンダービューを作成しました。」
再実行時(翌月/翌四半期):最初に notion-query-database-view を呼び出して既存のエントリーを取得し、重複をスキップして新しいエントリーだけを追加します。
Notion に接続されていない場合:
💡 Notion に接続されていません — 編集カレンダーはチャットにのみ出力されます。Notion MCP コネクターを接続すると、チーム全員が確認できるカレンダービュー付きの Notion データベースに自動でプッシュできます。セットアップ:notion-mcp-server