linkedin-post-generator について
会議の記録、Slackのメッセージ、文書をもとに、個人の文体に沿ったLinkedIn投稿を作成するスキルです。素材の手動追加に加え、Fireflies、Slack、Google Driveの情報源を設定できます。
主な機能
- 01投稿例から文体プロフィールを作成
- 02共有素材から2~4件の投稿案を生成
- 03Fireflies、Slack、Google Driveの情報源を設定
- 04素材と文体プロフィールの更新・確認
- 05機密保持ルールを生成内容に適用
活用シーン
- 01会議記録をLinkedIn投稿に変換
- 02Slackの会話を個人の文体の投稿に編集
- 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.mdsource-integrations.mdstyle-setup.mdsource-material/README.md詳細
LinkedIn 投稿ジェネレーター
共有されたソース素材から、各ユーザーの個人的なスタイルで LinkedIn 投稿を生成します。
仕組み
- 個人のスタイルプロファイル — ローカルの
~/.config/casper/linkedin-style.mdに保存されます(コミットされません) - ソース設定 — ローカルの
~/.config/casper/linkedin-sources.mdに保存されます(コミットされません) - 共有ソース素材 —
source-material/内の会議の文字起こし、Slack のダンプ、ドキュメント - プロンプトテンプレート — 抽出ルール、文体のガイドライン、少数ショットの例が記載された
references/prompt-template.md
初回実行:スタイルの設定
~/.config/casper/linkedin-style.md が存在するか確認します。
存在しない場合は、スタイル設定の手順を実行します。
- 次のように伝えます:「LinkedIn 投稿ジェネレーターへようこそ!開始する前に、あなたの文章のスタイルを把握させてください。」
- 次のように伝えます:「希望するスタイルに合った LinkedIn 投稿を3件共有してください。投稿リンク(例:
https://linkedin.com/posts/...)を貼り付けるか、本文を直接貼り付けてください。」 - ユーザーが3件の投稿を提供するまで待ちます
- ユーザーが LinkedIn の URL を提供した場合は、
researchプラグインのapify-scrapersスキルを使って投稿内容を取得します。
スクリプトが見つからない場合(python ${CLAUDE_PLUGIN_ROOT}/../../bizdev/research/skills/apify-scrapers/scripts/scrape_linkedin_posts.py search "{url}" --max-posts 1researchプラグインがインストールされていない場合)、または呼び出しに失敗した場合は、ユーザーに次のように伝えます:「LinkedIn URL の取得にはresearchプラグインが必要です(/plugin install research)。ひとまず投稿の本文を貼り付けてください。」その後、貼り付けられたテキストを使って続行します。 - 投稿から、トーン、文の長さ、語彙、書式の習慣、書き出しのスタイル、CTA のスタイル、疑問文の使い方、段落の長さ、全体的な熱量を分析します
~/.config/casper/ディレクトリが存在しない場合は作成します- 次の形式で分析結果を
~/.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]
- 次のように伝えて確認します:「了解しました!スタイルプロファイルを保存しました。
/content-marketing:generate-linkedin-post --setupでいつでも更新できます。」
初回実行:ソース素材の確認
スタイルの設定が完了した後(またはスタイルは設定済みでも source-material/ が空の場合)、ソース素材を確認します。
source-material/にREADME.md以外の.mdファイルがあるか確認します- 空の場合は、ユーザーを案内します。
- 次のように伝えます:「ソース素材がまだありません。投稿を生成するには、会議の文字起こし、メモ、Slack の会話などのコンテンツが必要です。」
- 次の選択肢を提示します。
- 「インテグレーションに接続」 —
--setup-sourcesの手順を実行して、Fireflies、Slack、Google Drive からの自動取得を設定します - 「手動で貼り付ける」 —
--add-sourceの手順を実行して、ユーザーが文字起こし、メモ、その他のコンテンツを貼り付けられるようにします
- 「インテグレーションに接続」 —
- ユーザーの選択を待ち、選択された手順に進みます
- ソース素材が存在する場合は、生成に進みます
通常実行:投稿の生成
スタイル設定が存在し、ソース素材を利用できる場合は、生成に進みます。
~/.config/casper/linkedin-style.mdを読み取ります${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/内のすべてのファイルを読み取ります(README.md を除く)${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/references/prompt-template.mdを読み取ります- プロンプトテンプレートの機密保持ルールを適用します(財務情報、クライアント名、パイプライン、チームメンバー名は使用しません)
- ソース素材に基づいて、ユーザー個人のスタイルで投稿案を2〜4件生成します
- 整った、コピーしてすぐに使える形式で提示します
フラグ
| フラグ | 動作 |
|---|---|
| (なし) | 通常の生成フロー |
--setup | スタイル設定を再実行し、既存の設定を上書きします |
--setup-sources | Fireflies、Slack、Drive のどのソースから取得するかを設定します |
--refresh | 設定済みのインテグレーションから最新のソース素材を取得してから、生成します |
--view-style | ~/.config/casper/linkedin-style.md を読み取り、表示します |
--view-sources | source-material/ 内のすべてのファイルを一覧表示し、要約します |
--add-source | 新しいコンテンツを貼り付けるようユーザーに促し、source-material/ に新しい .md ファイルとして保存します |
フラグの詳細
--setup-sources
ソースを自動取得するための対話型セットアップです。詳細は references/source-integrations.md をお読みください。
- 次のように尋ねます:「仕事用のメールアドレスを教えてください。参加した会議の議事録だけに絞り込むために使用します。」
user_emailとして設定に保存します
- 次のように尋ねます:「接続するソースを選択してください。」選択肢を提示します。
- Fireflies.ai — 会議の議事録を取得します(
brainプラグインとFIREFLIES_API_KEY環境変数が必要です) - Slack — チャンネルのメッセージを取得します(
commsプラグインとSLACK_BOT_TOKEN環境変数が必要です) - Google Drive — ドキュメントと議事録を取得します(
integrationsプラグインと、その google-workspace スキルによる OAuth のセットアップが必要です)
- Fireflies.ai — 会議の議事録を取得します(
- 選択したソースごとに、対応するプラグインがインストールされているか、必要な環境変数/認証情報が存在するか確認します。不足している場合は、セットアップ手順を案内します。
- 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 を設定してください。」
- Fireflies:「
- 有効にしたソースごとに、設定情報を収集します。
- Fireflies:検索語(または、すべての最近の項目を対象にする場合は空欄)と
days_back - Slack:取得元のチャンネル。可能であれば利用可能なチャンネルの一覧を表示し、できない場合はユーザーに尋ねます
- Google Drive:検索語と
days_back
- Fireflies:検索語(または、すべての最近の項目を対象にする場合は空欄)と
~/.config/casper/linkedin-sources.mdに保存します- 次のように確認します:「ソース設定を保存しました。最新のコンテンツを取得するには、
/content-marketing:generate-linkedin-post --refreshを実行してください。」
--refresh
投稿を生成する前に、設定済みのすべての連携から最新のソース資料を取得します。連携のワークフロー全体については references/source-integrations.md をお読みください。
処理の概要:
~/.config/casper/linkedin-sources.mdを読み込みます。存在しない場合は、先に--setup-sourcesを実行します- 有効なソースごとに、対応するプラグインのスキルスクリプトを呼び出します。いずれも任意です。スクリプトが見つからない場合(対応するプラグインがインストールされていない場合)や、呼び出しに失敗した場合は、そのソースをスキップし、インストールが必要なプラグインをユーザーに伝えます(エラー処理の一覧は
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
- Fireflies(
- 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
- Fireflies:
- 通常の生成処理を続行します
--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
- 質問します:「ソース素材として追加するコンテンツ(会議の議事録、Slack のダンプ、メモなど)を貼り付けてください」
- 質問します:「このソースファイルにどのような名前を付けますか?(例:
team-standup-jan-2025)」 ${CLAUDE_PLUGIN_ROOT}/skills/linkedin-post-generator/source-material/[name].mdに保存します- 確認します:「ソース素材を保存しました。今後の投稿生成に含まれます。」
参照ファイル
| ファイル | 読み込むタイミング |
|---|---|
references/prompt-template.md | 生成を実行するたび — 音声ルール、フューショット例、機密保持ルールが含まれています |
references/source-integrations.md | --refresh または --setup-sources を実行するとき — スクリプトのパス、引数、出力の変換方法が含まれています |
references/style-setup.md | --setup を実行するとき — スタイルプロファイリングの分析フレームワークが含まれています |
source-material/*.md | 生成を実行するたび — 投稿のアイデアを抽出する元となる生のコンテンツです |