mcpField
C
content-ideas

content-ideas

github.com/bradautomatesマーケティング・グロース14785 回インストール22 週間前に更新
リポジトリ

content-ideas について

content-ideasは、SNSコンテンツの成果を継続的に調べたいクリエイター向けのマーケティングスキルです。追跡中のアカウントの投稿とニッチ分野の注目投稿をまとめ、反応を今後のアイデアに反映するHTMLフィードを作成します。

主な機能

  1. 01日付別のデイリー調査保存
  2. 02追跡中のクリエイター投稿の取得
  3. 03投稿の評価とニッチ分野の注目投稿発見
  4. 04PostsとIdeasタブ付きの絞り込み可能なHTMLフィード
  5. 05反応を使った今後のアイデアのパーソナライズ

活用シーン

  1. 01競合投稿やニッチ分野の動向確認
  2. 02エンゲージメントを基にしたアイデア探し
  3. 03日々の調査記録の保存

インストール

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

$npx skills add https://github.com/bradautomates/content-ideas --skill content-ideas

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

同梱ファイル

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

assets/
for-you-template.html
references/
content-strategy.md
scripts/
generate_feed.py
scrape.py
scripts/lib/
__init__.py
analyze.py
dates.py
env.py
http.py
instagram.py
log.py
pipeline.py
platforms.py
relevance.py
scoring.py
tiktok.py
urls.py
x.py
youtube.py

詳細

content-ideas

あなた専用ページです。追跡しているクリエイターが投稿しているすべてのプラットフォームをスクレイピングし、成果を上げているコンテンツを評価して、実行に移せるコンテンツのアイデアにします。毎日実行するように設計されており、実行のたびに $CONTENT_HOME/research/ の下に日付入りのフィードが作成されます。

出力は自己完結型の単一 HTML ページです(タブは 2 つです。投稿 — 追跡対象アカウントの投稿と見つかったニッチな突出コンテンツをまとめた、並べ替えとフィルタリングが可能なフィード — と アイデア)。ブラウザーで開いて、リアクションを残し、保存できます。リアクションは今後のパーソナライズに利用されます。

スキルディレクトリを解決する

このスキルが実行するものはすべて、専用フォルダー内にあります。このスキルは Claude Code と Codex で同じ方法でインストールされるため、何よりも先に、両方のプラグインキャッシュと通常のリポジトリチェックアウトを対象に SKILL_DIR を一度解決してください。

# 1) Codex plugin cache, or a repo cloned into ~/.codex/skills/ (latest wins on upgrade).
SKILL_DIR="$(ls -d "$HOME/.codex/plugins/cache/"*/content-ideas/*/skills/content-ideas/ "$HOME/.codex/skills/"*/skills/content-ideas/ 2>/dev/null | sort -V | tail -1)"
SKILL_DIR="${SKILL_DIR%/}"

# 2) Claude Code plugin cache.
if [ -z "$SKILL_DIR" ] || [ ! -f "$SKILL_DIR/scripts/scrape.py" ]; then
  CLAUDE_ROOT="$(ls -d "$HOME/.claude/plugins/cache/content-ideas/content-ideas/"*/ 2>/dev/null | sort -V | tail -1)"
  CLAUDE_ROOT="${CLAUDE_ROOT%/}"
  [ -n "$CLAUDE_ROOT" ] && [ -f "$CLAUDE_ROOT/skills/content-ideas/scripts/scrape.py" ] && SKILL_DIR="$CLAUDE_ROOT/skills/content-ideas"
fi

# 3) Plugin root passed by the host, or a repo checkout / local dev.
if [ -z "$SKILL_DIR" ] || [ ! -f "$SKILL_DIR/scripts/scrape.py" ]; then
  for dir in "${CLAUDE_PLUGIN_ROOT:-}/skills/content-ideas" "${CLAUDE_PLUGIN_ROOT:-}" "${GEMINI_EXTENSION_DIR:-}/skills/content-ideas" "./skills/content-ideas" "."; do
    [ -n "$dir" ] && [ -f "$dir/scripts/scrape.py" ] && SKILL_DIR="$dir" && break
  done
fi

echo "$SKILL_DIR"

このファイルのパスがすでにわかる場合は、そのディレクトリを使ってください。呼び出す 2 つのスクリプトは $SKILL_DIR/scripts/scrape.py と $SKILL_DIR/scripts/generate_feed.py です。レンダラーテンプレートは $SKILL_DIR/assets/for-you-template.html です(ジェネレーターが自動的に見つけます)。

コンテンツの保存先を解決する

このスキルが読み書きする永続ファイル(brand/ プロファイルと日付入りの research/ 実行結果)はすべて、1 つの安定したベースディレクトリに保存されます。現在の作業ディレクトリは決して使いません。このスキルは毎日実行され、どこからでも呼び出されるため、ベースディレクトリは毎回同じでなければ、プロファイルと実行履歴が失われます。一度解決し、具体的なパスを記録してください。

CONTENT_HOME="${CONTENT_HOME:-$HOME/Documents/Content}"
mkdir -p "$CONTENT_HOME/brand" "$CONTENT_HOME/research"
echo "$CONTENT_HOME"

このガイド全体で、すべての brand/... と research/... のパスは $CONTENT_HOME を基準とします(つまり、brand/profile.md は $CONTENT_HOME/brand/profile.md を意味します)。これらのファイルを読み書きする際は、出力された絶対パスを使ってください。ファイルツールはシェル変数を展開しないため、brand/profile.md のように記述すると、誤ったディレクトリに保存されます。(認証情報は別に ~/.config/content/.env に保存します。)スクレイピング/生成スクリプトはそれぞれ CONTENT_HOME を読み取るため、渡された research/{today} のような相対パスもここを基準に解決されます。


ステップ 0:初回セットアップ

ユーザーがトピックを指定していても、何よりも先にこれを実行してください。 ~/.config/content/.env が存在し、SETUP_COMPLETE=true が含まれているかを確認して、初回実行かどうかを判定します。確認はユーザーに知らせずに行ってください。すでにセットアップ済みの場合は、ステップ 1 に進んでください。

0a. ようこそメッセージと API キー

セットアップは、API キー、あなた自身のプロフィール(自分のチャンネルをもとに作成)、追跡したい競合相手の 3 つの簡単な手順で構成されています。必須なのはキーだけです。残りはスキルが自動で準備し、いつでも調整できます。インストールは不要です。ScrapeCreators の API キー 1 つで、4 つすべてのプラットフォーム(X、Instagram、TikTok、YouTube(文字起こしを含む))を利用できます。

これを通常のメッセージとして表示してから、AskUserQuestion を呼び出してください(モーダル内でようこそメッセージを繰り返さないでください)。

ソーシャルメディアでの活動を、毎日の For You フィードにまとめます。あなた自身のチャンネルからプロフィールを作成し、選んだ競合相手を追跡して、実際のエンゲージメントに裏付けられた、成果を上げているコンテンツのアイデアを見つけます。ScrapeCreators の API キーだけ必要です(1 つのキーですべてのプラットフォームを利用でき、無料で 100 回呼び出せます。カードは不要です)。

AskUserQuestion — 「ScrapeCreators の API キーを追加しますか?」

  • scrapecreators.com を開いて無料のキーを取得する
  • ここにキーを貼り付ける
  • 今はスキップする

「scrapecreators.com を開く」を選んだ場合は、open https://scrapecreators.com を実行し、キーを貼り付けるよう尋ねます。ユーザーがキーを貼り付けたら、~/.config/content/.env に書き込んでください(ディレクトリを作成し、ほかのキーを上書きせずに追記します)。

SCRAPECREATORS_API_KEY={key}
SETUP_COMPLETE=true

スキップした場合は、SETUP_COMPLETE=true のみを書き込んでください。

0b. 手動で設定する方法

手動で設定する場合は、~/.config/content/.env にこの 2 行を追加するよう伝えてください。ここにキーを貼り付けてもらえれば、ファイルへの書き込みを申し出てください。

0c. ブランドプロフィールを作成する

ここで、すべての内容をパーソナライズします。アイデアは、ユーザー自身のニッチ、コンテンツの柱、目標に照らして構成され、すでに投稿した内容との重複も確認されます。長い質問票ではなく、ユーザー自身の発信内容をもとにプロフィールを作成します。

ユーザー自身のチャンネルについて尋ねます(AskUserQuestion:「今すぐプロフィールを設定しますか?」→ ハンドルを共有する / スキップ — 後で追加する)。ハンドルを共有してもらったら(@me on X、YouTube チャンネル、TikTok など、プラットフォームを問わず自由形式で受け付けます)、{platform: [handle]} の形式に正規化し、競合と同じ方法でスクレイピングします。ただし、対象期間は大幅に広げて(--days 90、最大値)、直近の投稿だけでなく、四半期全体の活動からユーザーの発信内容を把握します。

python3 "$SKILL_DIR/scripts/scrape.py" \
  '{"x": ["me"], "youtube": ["@mychannel"]}' \
  --pillars "" --days 90

取得した投稿(コメントや文字起こしも含む)をもとに、プロフィールの草案を作成します。

  • ニッチ、オーディエンス、トーンに関するメモ — 繰り返し登場するトピック、切り口、トーンから推測します。
  • コンテンツの柱 — 実際の投稿がまとまっている3〜5つのテーマです。今後のすべての実行で --pillars に指定するため、正確に設定してください。
  • ソーシャルプロフィール — スクレイピング結果から、プラットフォームごとにハンドル、フォロワー数、自己紹介、コンテンツのスタイルに関する一行メモを記載します。
  • 対象プラットフォーム/調査チャンネル — ユーザーが活動しているプラットフォームです。
  • 検索語 — 主なトピックから抽出した具体的なキーワードです。

スクレイピングできない項目が2つあります。AskUserQuestion でユーザーに尋ねて、回答を反映してください。

  • コンテンツの目標 — 投稿する理由(リード獲得/認知向上/成長/ソートリーダーシップ/販売など)、トラフィックの誘導先、宣伝しているものを尋ねます。
  • コンテンツの柱の確認 — 推測した3〜5つの柱を提示し、執筆前に編集または確認してもらいます。

FILE-SCHEMAS.md のスキーマに従って brand/profile.md を作成します。ユーザー自身の投稿を十分に取得できた場合は、初期版の brand/my-content.md も作成します(パフォーマンスの概要、効果のある内容、扱ったトピック、コメントから抽出したオーディエンスの要望)。これは、初日からカニバリゼーションの防止と「あなたのオーディエンスが求めていること」のバナーに活用されます。

スキップされた場合(またはスクレイピング用の API キーがまだない場合)も、処理を止めないでください。2〜3問の質疑応答(ニッチ、大まかなコンテンツの柱、目標)から brand/profile.md の最小構成を作成し、キーを設定してセットアップを再実行すれば自動的に内容が充実することを伝えて、次に進みます。

0d. 競合を追跡する

追跡したい相手を尋ねます(AskUserQuestion:今すぐ一覧を作成する/スキップして例を使う)。ハンドルを挙げてもらった場合は、プラグインの FILE-SCHEMAS.md にあるスキーマに従い、brand/tracked-accounts/{platform}.md ファイルを作成します。スキップされた場合は、形式を確認してもらうために簡単な例を実行し、実際の競合は後から追加できると伝えます。

初回セットアップはここまでです。 続けて、ユーザーの元のリクエストに対応します。


ステップ 1:コンテキストを読み込む

1a. 前回の実行で得たフィードバックを好みの記憶に取り込む

何よりも先に、前回の実行に対するリアクションを記憶に取り込んでください。これが、実行を重ねるごとに改善していくための仕組みです。$CONTENT_HOME/research/ にある日付形式のサブフォルダー(YYYY-MM-DD)を一覧表示し、最も新しいものを選びます。feedback.json があれば読み込み、reviews[] の各項目(▲「もっと見たい」/▼「これは控えてほしい」/メモ)を、一度きりの反応ではなく、汎用化できる好みの傾向として整理します。

  • 「ユーザーのニッチ分野の逆張りの見解3件に▲」→「逆張りの見解を好む」、「箇条書き記事に▼」→「箇条書き形式は響かない」。メモには理由が直接書かれていることが多いので、それを活用してください。
  • これらをプロジェクトの記憶(維持している自動メモリー)に、ユーザーのコンテンツの好みとして記録してください。1b で思い出すのと同じ場所に記録します。既存の好みのメモを更新し、重複させないでください。単独の▼は参考にとどめ、確立された好みを覆さないようにします。傾向の見られない一度きりの反応、brand/profile.md から明らかな内容、投稿や実行固有の情報(これらは research/ に保存します)は記録しないでください。記録するのは好みだけです。

過去の日付フォルダーがない場合、feedback.json がない場合、またはリアクションが含まれていない場合は、何もせずスキップしてください。この環境で自動メモリーを利用できない場合もスキップしてください。リアクションは、後から利用できるようになるまで feedback.json に残ります。(今回の実行に対するリアクションは、同じ方法で次回の実行時に取り込まれます。実行終了時に整理する手順はありません。)

1b. 好みを思い出し、ブランドのコンテキストを読み込む

存在するブランドコンテキストを読み込みます(すべて任意です。不足していても適切に対応してください)。

  • brand/profile.md — ニッチ分野、柱、検索語、コンテンツの目標、対象読者
  • brand/tracked-accounts/*.md — プラットフォームごとに追跡しているクリエイター
  • brand/my-content.md — ユーザー自身のコンテンツの実績と、対象読者からのリクエスト

ユーザーのコンテンツの好みを記憶から思い出してください。 このスキルでは、プロジェクトの記憶(維持している自動メモリー)に、変化していく好みのプロフィールを保存します。アイデアを生成する前に、このユーザーが何を好むかについて把握していることを思い出してください。好みのトピック、形式、切り口、よく保存するクリエイター、響かないものなどが対象です。関連する好みの情報がすでにコンテキストに示されている場合は、それを活用してください。示されておらず、メモリーを利用できる場合は、このスキル用のタグが付いた好みのメモを探してください。これは、パーソナライズにおいて最も重要な情報です。エンゲージメント指標が測るのはオーディエンスの好みですが、好みの記憶が示すのはこのユーザー自身の好みです。自動メモリーを利用できない場合は、エンゲージメントのシグナルだけに頼ってください(brand/my-content.md があれば、それも参照します)。

追跡アカウントがなく、トピックの絞り込みも指定されていない場合は、スクレイピングを始める前にアカウント名またはトピックを尋ねてください。

1c. 自分のコンテンツを更新する(my-content.md)

アイデアを生成する前に、brand/my-content.md を最新の状態にしてください。これは、Step 0c の一度限りのビルドに対応する毎回の実行時の処理であり、ユーザーが投稿を続けても、カニバリゼーション防止と「あなたのオーディエンスが求めているもの」バナーの内容を正確に保つためのものです(my-content.md は FILE-SCHEMAS.md で毎回更新すると定められており、このステップで更新します)。

先ほど読み込んだ brand/profile.md の ## My Social Profiles セクションからユーザー自身のハンドルを取得し、{platform: [handle]} の形式に正規化して、ユーザー自身の投稿頻度を捉えられる十分な期間を指定して再スクレイピングします(--days 30 — クリエイター自身の投稿は、競合アカウントをまとめたフィードよりも少ないため、「最近」の投稿を対象にします。Step 0c のプロフィール作成で使う90日間ではありません)。

python3 "$SKILL_DIR/scripts/scrape.py" \
  '{"x": ["me"], "youtube": ["@mychannel"]}' \
  --pillars "<pillars from profile.md>" --days 30

スクレイパーは人気投稿のコメントもすでに取得しているため、返されるデータには必要なオーディエンスの返信も含まれています。そのデータをもとに、FILE-SCHEMAS.md のスキーマに従って brand/my-content.md を書き換えてください(パフォーマンスの概要、うまくいっていること/いないこと、取り上げたトピック、コメントから抽出したオーディエンスのリクエスト)。内容は追記ではなく置き換えます。以降の実行では、1b で読んだ内容ではなく、この最新のバージョンを使用してください。

ベストエフォート — フィードを止めないでください。 profile.md にユーザー自身のハンドルがない場合(ユーザーがプロフィール設定をスキップした場合)、またはスクレイピングの結果が空かエラーになった場合は、既存の my-content.md をそのままにして続行してください。この更新は情報の補完であり、必須条件ではありません。


Step 2: 毎日の実行フォルダーを作成する

$CONTENT_HOME/research/ 内の、日付形式(YYYY-MM-DD)の既存サブフォルダーを一覧表示します。今日ではないもののうち最も新しい日付を前回の実行日として、Step 3 で --since に渡し、その日以降の投稿のみをスクレイピングします。日付付きフォルダーがない場合は、--since を指定しません。

いずれの場合も、スクレイパーは最近の投稿のみを対象とする期間を適用するため、毎日のフィードに古い投稿が表示されることはありません。デフォルトでは過去7日間のみを対象にします(--days)。--since で期間を狭めることはできますが、広げることはできません。そのため、初回実行も、期間が空いた後の実行も、デフォルトでは1週間以内に制限されます(スクリプトの上限は90日です。毎日のフィードでは対象を絞り、最大でも1か月にしてください。90日間の期間は、毎日のフィードではなく、Step 0c の一度限りのプロフィール作成に使います)。

$CONTENT_HOME/research/{today}/ を作成します。

$CONTENT_HOME/research/{today}/feed-data.json がすでに存在する場合は、次のどれを行うか尋ねてください。

  • 更新 — 再取得して再構築する(同じ --since / --days を再利用)
  • 拡張 — ユーザーが過去1週間より多くの投稿を求める場合、--since を外す、または --days を増やして期間を広げる(フィードは約30日以内に保つ)
  • 表示 — 既存のフィードを開き直すだけにする(Step 6 に進む)

Step 3: 競合をスクレイピングする

各プラットフォームと、追跡対象のハンドルを対応付けた JSON オブジェクトを作成します。スクリプトが関連性をスコア化できるように、コンテンツの柱(brand/profile.md またはユーザーのニッチ/トピックから)を --pillars で渡し、前回の実行日を --since で渡します。ユーザーがより長い期間を求めない限り、--days はデフォルトの7のままにします。求められた場合は増やします(最大31)。

python3 "$SKILL_DIR/scripts/scrape.py" \
  '{"x": ["h1","h2"], "instagram": ["h3"], "youtube": ["@h4"]}' \
  --pillars "<the user's content pillars>" \
  --since 2026-04-15 \
  --days 7

数分かかること、進捗は stderr に出力されることをユーザーに伝えてください。スクリプトはすべてのアカウントを並列に取得し、最近の投稿のみを対象とする期間外のものを除外し、エンゲージメントと関連性をスコア化し、外れ値にフラグを付け、人気投稿のコメント/文字起こしを取得します。返される内容は次のとおりです。

{ "results": { "x": { "h1": [ {post}, ... ] } }, "errors": [] }

各投稿には text、url、author、date、platform、engagement、score(重み付け済み)、relevance(柱との関連度、0~1)、baseline(アカウントの平均に対する倍率)、outlier(bool)があり、人気投稿には comments / transcript も含まれます。

エラーが発生した場合: 失敗したアカウントを報告し、取得できた内容で処理を続けてください。

アドホック:URLで特定の投稿を取得する

ユーザーから特定の投稿 URL(競合のバズった投稿や、ユーザーが見つけたリンク)が渡された場合は、プロフィールモードではなく URL モードを使います。同じ形式のフラットな [post] 配列が返されます。

python3 "$SKILL_DIR/scripts/scrape.py" urls "https://x.com/u/status/1" "https://www.tiktok.com/@u/video/2" --pillars "..."

ステップ 4:スコアリング済みデータを確認する

スクリプトは score、baseline、relevance、outlier を事前に計算します。 最も成果を上げた投稿と、エンゲージメントを促進しているトピック/テーマ/切り口を特定します。特に関連性の高いものに注目してください。これらが Ideas タブの素材になります。


ステップ 5:フィードを作成する

タブは 2 つです。表示される内容はすべて、エンゲージメントが実証されています。FEED_DATA オブジェクトを作成し、それを書き込みます(ステップ 6)。フィールドごとの構造については、プラグインの FILE-SCHEMAS.md(feed-data.json)を参照してください。

タブ 1 — Posts。 2 つのソースを 1 つの並べ替え・フィルタリング可能なフィードに統合した、単一のフラットな posts[] 配列です(ページ側でクライアントサイドの並べ替えとグループ化を処理するため、事前に並べ替えたりグループ化したりしないでください)。

  • 追跡対象アカウントの投稿 — 追跡対象アカウントのすべての投稿(エンゲージメントのしきい値なし)。アカウントのベースラインに対する performance/performanceDirection を設定します(例:"+210% vs baseline"、"up")。

  • 発見したニッチな外れ値 — 統計的な外れ値(outlier: true、z スコア 2 以上、またはベースラインの 2 倍以上)。zScore と why の説明を設定します。

    ソースにかかわらず、投稿ごとに以下を指定します。1~3 文の text 要約、url、handle と displayName(クリエイターフィルター用)、platform、engagement オブジェクト、注目すべき場合はフックの説明、そしてフィードを機能させる 2 つのフィールド、timestamp(ISO 8601。Recent の並べ替えと相対時間表示に使用)と sortValue(エンゲージメント/リーチの合計を示す数値。デフォルトの Popular の並べ替えに使用)です。zScore がある、または performanceDirection: "up" の投稿には、外れ値としてフラグが付きます(強度に応じたバッジとアクセントバー)。そのため、ベースラインを上回った追跡対象の投稿も外れ値として表示されます。

タブ 2 — Ideas。 編集者としての見解を加える唯一の場所です(AI の提案であることを明記してください)。各アイデアには、具体的で差別化された切り口、競合のパフォーマンスに基づく実際の根拠、競合がすでに取り上げた内容との明確な差別化を含め、最大 10 件生成します。

トピックを差別化された切り口に変換する、フックを書く、ファネル段階(TOFU/MOFU/BOFU)を分類する、CTA を整合させる、複数のプラットフォーム向けに再利用する、完全なブリーフを作成するといった生成面の工夫については、references/content-strategy.md を読んでください。このタブを作成する際に覚えておくべき要点は次のとおりです。

  • 他者の内容を再パッケージせず、独自のバージョンを作りましょう。 優れた切り口は、少なくとも次のいずれかに答えるものです。元のクリエイターより何を知っているか(専門知識)、読者がまだ見たことのない何を経験したか(アクセス)、または何に異論があるか(逆張り)。
  • カニバリゼーションを防ぎます。 brand/my-content.md がある場合、ユーザーがすでに扱ったトピックを再提案しないでください。ただし、真に差別化できる要素(より掘り下げる、異なる形式にする、更新する、フィードバックに応える)がある場合は除きます。過去に扱った内容を明記してください。
  • 自分のオーディエンスからの需要を優先します。 ユーザー自身のオーディエンスからのリクエスト(brand/my-content.md)は、競合のシグナルより優先し、ブリーフの「why now」で前面に出してください。
  • 好みの記憶を選定に反映します。 ステップ 1 で想起した好みのシグナル(このユーザーが好むトピック/形式/切り口)に合うアイデアは、エンゲージメントだけを根拠にしたアイデアより有力な候補です。また、その点を明記する価値があります(「これは、あなたが繰り返し取り上げているパターンに合っています」)。反対に、記録された「反応がよくない」シグナルに当てはまるものは優先度を下げてください。

ステップ 6:フィードを書き込み、開く

フィードデータを $CONTENT_HOME/research/{today}/feed-data.json に書き込みます。meta、posts、ideas をキーとする JSON オブジェクトです(FILE-SCHEMAS.md を参照)。 HTML を自分で書かないでください。ジェネレーターがこの JSON をテンプレートに埋め込みます。

次に、フィードを表示します。デフォルトではライブサーバーを使用します(ユーザーがアイテムにリアクションでき、その内容は今後のパーソナライズに利用する feedback.json に保存されます)。

python3 "$SKILL_DIR/scripts/generate_feed.py" "$CONTENT_HOME/research/{today}"

ローカルサーバーが起動し、ユーザーのデフォルトブラウザーでフィードが自動的に開きます。タブを閉じた場合に再度開けるよう、コマンドが出力する http://localhost:<port> の URL もユーザーに伝えてください。(自動で開かないようにするには --no-browser を渡します。どちらの場合も URL は出力されます。)コマンドはユーザーが Ctrl+C で停止するまでフォアグラウンドで実行されるため、作業を続ける必要がある場合はバックグラウンドで実行してください。

ヘッドレス/ディスプレイのない環境では、代わりに単体で動作するファイルを書き込み、ユーザーにその場所を伝えてください(ページからリアクションをダウンロードできます)。

python3 "$SKILL_DIR/scripts/generate_feed.py" "$CONTENT_HOME/research/{today}" --static
# → $CONTENT_HOME/research/{today}/for-you.html

その後、短いテキストで概要(投稿数、外れ値の数、注目すべき投稿をいくつか)とページの場所を伝えます。


ステップ 7:次のステップを提案する

ユーザーはブラウザーでフィードにリアクションします。リアクションは research/{today}/feedback.json に自動的に保存されます。サーバーモードでは自動保存され、静的モードではページのダウンロードボタンから保存されます。「完了」を示す合図はなく、今すぐ読み取ったり要約したりするものもありません。このファイルにはリアクションが蓄積され、次回の実行時にステップ 1a で好みの記憶に反映されます。これによりワークフローがシンプルになり、何より、この会話が終わった後にユーザーが行ったリアクションも確実に記録できます。

次のことを提案してください。アイデアをさらに深掘りする、追跡対象のアカウントを追加/削除する、またはトピックの焦点を変えて再実行する。


注記

  • リアクション/フィードバックから好みの記憶へ。 フィードページでは、どちらのタブでもアイテムに印(▲ これに似たものを増やす/▼ これに似たものを減らす/メモ)を付けられます。サーバーモードでは、ユーザーがクリックすると research/{date}/feedback.json に自動保存されます。静的モードでは、ユーザーがこのファイルをダウンロードして実行フォルダーに保存します。このファイルはリアクションが蓄積されるリストにすぎず、ステータスも送信手順もありません。次回の実行では、ステップ 1a で前回の feedback.json を読み込み、プロジェクトの記憶に反映するため、今後の実行がパーソナライズされます。好みを記録するファイルはありません。好みは自動メモリに保存されます。
  • API キーがなければ実行できません。 プロファイルモードと URL モードの両方で SCRAPECREATORS_API_KEY が必要です。YouTube の文字起こしを含むすべてのプラットフォームで、ScrapeCreators を経由します。キーがない場合、スクリプトはエラーを返します。データを捏造せず、処理を停止してセットアップ手順を提示してください。

コメント