mcpField
L
linkedin-post-generator

linkedin-post-generator

github.com/casper-studiosマーケティング・グロース15300 回インストール8 週間前に更新
リポジトリ

linkedin-post-generator について

会議の記録、Slackのメッセージ、文書をもとに、個人の文体に沿ったLinkedIn投稿を作成するスキルです。素材の手動追加に加え、Fireflies、Slack、Google Driveの情報源を設定できます。

主な機能

  1. 01投稿例から文体プロフィールを作成
  2. 02共有素材から2~4件の投稿案を生成
  3. 03Fireflies、Slack、Google Driveの情報源を設定
  4. 04素材と文体プロフィールの更新・確認
  5. 05機密保持ルールを生成内容に適用

活用シーン

  1. 01会議記録をLinkedIn投稿に変換
  2. 02Slackの会話を個人の文体の投稿に編集
  3. 03文書から投稿のアイデアを抽出

インストール

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

$npx skills add https://github.com/casper-studios/casper-marketplace --skill linkedin-post-generator

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
prompt-template.md
source-integrations.md
style-setup.md
source-material/
README.md

詳細

LinkedIn 投稿ジェネレーター

共有されたソース素材から、各ユーザーの個人的なスタイルで LinkedIn 投稿を生成します。

仕組み

  1. 個人のスタイルプロファイル — ローカルの ~/.config/casper/linkedin-style.md に保存されます(コミットされません)
  2. ソース設定 — ローカルの ~/.config/casper/linkedin-sources.md に保存されます(コミットされません)
  3. 共有ソース素材 — source-material/ 内の会議の文字起こし、Slack のダンプ、ドキュメント
  4. プロンプトテンプレート — 抽出ルール、文体のガイドライン、少数ショットの例が記載された references/prompt-template.md

初回実行:スタイルの設定

~/.config/casper/linkedin-style.md が存在するか確認します。

存在しない場合は、スタイル設定の手順を実行します。

  1. 次のように伝えます:「LinkedIn 投稿ジェネレーターへようこそ!開始する前に、あなたの文章のスタイルを把握させてください。」
  2. 次のように伝えます:「希望するスタイルに合った LinkedIn 投稿を3件共有してください。投稿リンク(例:https://linkedin.com/posts/...)を貼り付けるか、本文を直接貼り付けてください。」
  3. ユーザーが3件の投稿を提供するまで待ちます
  4. ユーザーが LinkedIn の URL を提供した場合は、research プラグインの apify-scrapers スキルを使って投稿内容を取得します。
    python ${CLAUDE_PLUGIN_ROOT}/../../bizdev/research/skills/apify-scrapers/scripts/scrape_linkedin_posts.py search "{url}" --max-posts 1
    
    スクリプトが見つからない場合(research プラグインがインストールされていない場合)、または呼び出しに失敗した場合は、ユーザーに次のように伝えます:「LinkedIn URL の取得には research プラグインが必要です(/plugin install research)。ひとまず投稿の本文を貼り付けてください。」その後、貼り付けられたテキストを使って続行します。
  5. 投稿から、トーン、文の長さ、語彙、書式の習慣、書き出しのスタイル、CTA のスタイル、疑問文の使い方、段落の長さ、全体的な熱量を分析します
  6. ~/.config/casper/ ディレクトリが存在しない場合は作成します
  7. 次の形式で分析結果を ~/.config/casper/linkedin-style.md に保存します。
# LinkedIn Style Profile
Generated: [date]

## Tone
[analysis]

## Structure Patterns
[paragraph length, line breaks, formatting habits]

## Hook Style
[how they open posts]

## CTA / Closing Style
[how they end posts — questions, challenges, etc.]

## Vocabulary & Phrases
[distinctive phrases, word choices, energy level]

## Sample Posts
[the 3 original posts, for reference]
  1. 次のように伝えて確認します:「了解しました!スタイルプロファイルを保存しました。/content-marketing:generate-linkedin-post --setup でいつでも更新できます。」

初回実行:ソース素材の確認

スタイルの設定が完了した後(またはスタイルは設定済みでも source-material/ が空の場合)、ソース素材を確認します。

  1. source-material/ に README.md 以外の .md ファイルがあるか確認します
  2. 空の場合は、ユーザーを案内します。
    • 次のように伝えます:「ソース素材がまだありません。投稿を生成するには、会議の文字起こし、メモ、Slack の会話などのコンテンツが必要です。」
    • 次の選択肢を提示します。
      • 「インテグレーションに接続」 — --setup-sources の手順を実行して、Fireflies、Slack、Google Drive からの自動取得を設定します
      • 「手動で貼り付ける」 — --add-source の手順を実行して、ユーザーが文字起こし、メモ、その他のコンテンツを貼り付けられるようにします
    • ユーザーの選択を待ち、選択された手順に進みます
  3. ソース素材が存在する場合は、生成に進みます

通常実行:投稿の生成

スタイル設定が存在し、ソース素材を利用できる場合は、生成に進みます。

  1. ~/.config/casper/linkedin-style.md を読み取ります
  2. ${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/ 内のすべてのファイルを読み取ります(README.md を除く)
  3. ${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/references/prompt-template.md を読み取ります
  4. プロンプトテンプレートの機密保持ルールを適用します(財務情報、クライアント名、パイプライン、チームメンバー名は使用しません)
  5. ソース素材に基づいて、ユーザー個人のスタイルで投稿案を2〜4件生成します
  6. 整った、コピーしてすぐに使える形式で提示します

フラグ

フラグ動作
(なし)通常の生成フロー
--setupスタイル設定を再実行し、既存の設定を上書きします
--setup-sourcesFireflies、Slack、Drive のどのソースから取得するかを設定します
--refresh設定済みのインテグレーションから最新のソース素材を取得してから、生成します
--view-style~/.config/casper/linkedin-style.md を読み取り、表示します
--view-sourcessource-material/ 内のすべてのファイルを一覧表示し、要約します
--add-source新しいコンテンツを貼り付けるようユーザーに促し、source-material/ に新しい .md ファイルとして保存します

フラグの詳細

--setup-sources

ソースを自動取得するための対話型セットアップです。詳細は references/source-integrations.md をお読みください。

  1. 次のように尋ねます:「仕事用のメールアドレスを教えてください。参加した会議の議事録だけに絞り込むために使用します。」
    • user_email として設定に保存します
  2. 次のように尋ねます:「接続するソースを選択してください。」選択肢を提示します。
    • Fireflies.ai — 会議の議事録を取得します(brain プラグインと FIREFLIES_API_KEY 環境変数が必要です)
    • Slack — チャンネルのメッセージを取得します(comms プラグインと SLACK_BOT_TOKEN 環境変数が必要です)
    • Google Drive — ドキュメントと議事録を取得します(integrations プラグインと、その google-workspace スキルによる OAuth のセットアップが必要です)
  3. 選択したソースごとに、対応するプラグインがインストールされているか、必要な環境変数/認証情報が存在するか確認します。不足している場合は、セットアップ手順を案内します。
    • Fireflies:「brain プラグインをインストールし(/plugin install brain)、環境変数に FIREFLIES_API_KEY を設定してください。API キーは https://app.fireflies.ai/api で取得できます。」
    • Slack:「comms プラグインをインストールし(/plugin install comms)、環境変数に SLACK_BOT_TOKEN を設定してください。https://api.slack.com/apps で Slack アプリを作成してください。」
    • Google Drive:「integrations プラグインをインストールし(/plugin install integrations)、google-workspace スキルのセットアップを実行して OAuth を設定してください。」
  4. 有効にしたソースごとに、設定情報を収集します。
    • Fireflies:検索語(または、すべての最近の項目を対象にする場合は空欄)と days_back
    • Slack:取得元のチャンネル。可能であれば利用可能なチャンネルの一覧を表示し、できない場合はユーザーに尋ねます
    • Google Drive:検索語と days_back
  5. ~/.config/casper/linkedin-sources.md に保存します
  6. 次のように確認します:「ソース設定を保存しました。最新のコンテンツを取得するには、/content-marketing:generate-linkedin-post --refresh を実行してください。」
--refresh

投稿を生成する前に、設定済みのすべての連携から最新のソース資料を取得します。連携のワークフロー全体については references/source-integrations.md をお読みください。

処理の概要:

  1. ~/.config/casper/linkedin-sources.md を読み込みます。存在しない場合は、先に --setup-sources を実行します
  2. 有効なソースごとに、対応するプラグインのスキルスクリプトを呼び出します。いずれも任意です。スクリプトが見つからない場合(対応するプラグインがインストールされていない場合)や、呼び出しに失敗した場合は、そのソースをスキップし、インストールが必要なプラグインをユーザーに伝えます(エラー処理の一覧は references/source-integrations.md をご覧ください)。
    • Fireflies(brain プラグインが必要):python ${CLAUDE_PLUGIN_ROOT}/../../project-management/brain/skills/transcript-search/scripts/fireflies_transcript_search.py "{term}" --days-back {N} --content --json
      • 取得後、ソース設定の user_email が議事録の participants 配列に含まれるものだけに絞り込みます
    • Slack(comms プラグインが必要):python ${CLAUDE_PLUGIN_ROOT}/../../project-management/comms/skills/slack-automation/scripts/slack_search.py read "{channel}" --days {N}
    • Google Drive(integrations プラグインが必要):python ${CLAUDE_PLUGIN_ROOT}/../../engineering/integrations/skills/google-workspace/scripts/gdrive_search.py files "{term}" --modified-days {N} --json
  3. JSON 出力を整形された Markdown に変換し、source-material/ に保存します。
    • Fireflies:fireflies-{YYYY-MM-DD}-{title-slug}.md
    • Slack:slack-{channel}-{YYYY-MM-DD}.md
    • Google Drive:gdrive-{title-slug}-{YYYY-MM-DD}.md
  4. 通常の生成処理を続行します
--view-style

~/.config/casper/linkedin-style.md を読み込んで表示します。存在しない場合は、「スタイルプロファイルが見つかりません。作成するには /content-marketing:generate-linkedin-post --setup を実行してください。」と伝えます。

--view-sources

${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/ にあるすべての .md ファイル(README.md を除く)を一覧表示します。各ファイルについて、ファイル名と内容の1行要約を表示します。

--add-source
  1. 質問します:「ソース素材として追加するコンテンツ(会議の議事録、Slack のダンプ、メモなど)を貼り付けてください」
  2. 質問します:「このソースファイルにどのような名前を付けますか?(例:team-standup-jan-2025)」
  3. ${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/[name].md に保存します
  4. 確認します:「ソース素材を保存しました。今後の投稿生成に含まれます。」

参照ファイル

ファイル読み込むタイミング
references/prompt-template.md生成を実行するたび — 音声ルール、フューショット例、機密保持ルールが含まれています
references/source-integrations.md--refresh または --setup-sources を実行するとき — スクリプトのパス、引数、出力の変換方法が含まれています
references/style-setup.md--setup を実行するとき — スタイルプロファイリングの分析フレームワークが含まれています
source-material/*.md生成を実行するたび — 投稿のアイデアを抽出する元となる生のコンテンツです

コメント