mcpField
L
last30days

last30days

github.com/trailofbits生産性523102 回インストール16 週間前に更新
リポジトリ

last30days について

last30daysは、Reddit、X、ウェブで過去30日間の話題を調べるリサーチスキルです。質問の種類を判別し、現在の意見や推奨、ニュースをまとめ、トレンド調査や判断材料の収集に役立ちます。

主な機能

  1. 01過去30日間の議論を調査
  2. 02Reddit、X、ウェブを検索
  3. 03推奨やニュースなど質問の種類を判別
  4. 04情報源間の傾向や相違点を統合
  5. 05調査から実用的な知見を抽出

活用シーン

  1. 01製品に関する最近のコミュニティ意見の確認
  2. 02ツールや手法の推奨候補の調査
  3. 03話題の最新動向の確認
  4. 04最近の議論を基にした意思決定

インストール

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

$npx skills add https://github.com/trailofbits/skills-curated --skill last30days

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

詳細

last30days:過去30日間のあらゆるトピックを調査

Reddit、X、ウェブ全体から、あらゆるトピックを調査します。今、人々が実際に何について話し、何を勧め、何を議論しているのかを明らかにします。

使用する場合

  • 過去30日間に、あるトピックについて人々が何を言っているか知りたい場合
  • 最近のコミュニティの反応、おすすめ、トレンドの議論について尋ねられた場合
  • 判断を下す前にトピック(ツール、製品、手法)を調査したい場合
  • 「Xの最新情報は?」「おすすめのYは?」「Zについてみんなは何と言っている?」と尋ねられた場合

使用しない場合

  • 30日より前の履歴データを知りたい場合
  • 公式ドキュメントやAPIリファレンスが必要な場合(代わりにドキュメント用ツールを使用してください)
  • 特定のコードベースを検索したい場合(代わりにコード検索ツールを使用してください)
  • コミュニティの反応を必要としない事実に関する質問の場合

重要:ユーザーの意図を解析する

何かを行う前に、ユーザーの入力を解析して次の内容を確認してください。

  1. トピック:知りたい内容(例:「ウェブアプリのモックアップ」「Claude Codeのスキル」「画像生成」)
  2. 対象ツール(指定されている場合):プロンプトを使用する場所(例:「Nano Banana Pro」「ChatGPT」「Midjourney」)
  3. クエリの種類:求められている調査の種類
    • プロンプト作成:「Xのプロンプト」「X向けのプロンプト作成」「Xのベストプラクティス」→ テクニックを学び、コピーして使えるプロンプトを得たい
    • おすすめ:「おすすめのX」「人気のX」「何を使えばよいか」「推奨されるX」→ 具体的な項目のリストを求めている
    • ニュース:「Xで何が起きているか」「Xのニュース」「Xの最新情報」→ 最新の出来事や更新情報を求めている
    • 一般:上記以外すべて → トピックの幅広い理解を求めている

よくあるパターン:

  • [topic] for [tool] → 「Nano Banana Pro向けのウェブモックアップ」→ ツールが指定されています
  • [topic] prompts for [tool] → 「Midjourney向けのUIデザインプロンプト」→ ツールが指定されています
  • [topic]のみ → 「iOSデザインのモックアップ」→ ツールは指定されていませんが、それで問題ありません
  • 「best [topic]」または「top [topic]」→ QUERY_TYPE = RECOMMENDATIONS
  • 「what are the best [topic]」→ QUERY_TYPE = RECOMMENDATIONS

重要:調査を始める前に対象ツールについて質問しないでください。

  • クエリでツールが指定されている場合は、そのツールを使用してください
  • ツールが指定されていない場合は、まず調査を実行し、その後、結果を示してから質問してください

次の変数に値を設定してください:

  • TOPIC = [抽出したトピック]
  • TARGET_TOOL = [抽出したツール。指定がない場合は "unknown"]
  • QUERY_TYPE = [RECOMMENDATIONS | NEWS | HOW-TO | GENERAL]

解析結果をユーザーに表示してください。 ツールを実行する前に、次の内容を出力してください。

I'll research {TOPIC} across Reddit, X, and the web to find what's been discussed in the last 30 days.

Parsed intent:
- TOPIC = {TOPIC}
- TARGET_TOOL = {TARGET_TOOL or "unknown"}
- QUERY_TYPE = {QUERY_TYPE}

Starting now.

TARGET_TOOLが判明している場合は、導入文で触れてください:「{TARGET_TOOL}で使用する{QUERY_TYPE}スタイルのコンテンツを探します。」

この文章は、ツールを呼び出す前に必ず表示してください。これにより、ユーザーのリクエストを理解したことを確認できます。


調査の実行

ステップ1:調査スクリプトを実行する

python3 "{baseDir}/scripts/last30days.py" "$ARGUMENTS" --emit=compact 2>&1

スクリプトは自動的に次の処理を行います。

  • 利用可能なAPIキーを検出します
  • キーがある場合はReddit/Xを検索します
  • WebSearchが必要な場合は、その旨を通知します

STEP 2: スクリプトの実行中にウェブ検索する

スクリプトはソース(API キーなど)を自動検出します。スクリプトの実行を待つ間に、ウェブ検索を行ってください。

すべてのモードで、ウェブ検索を行って情報を補足してください(ウェブのみのモードでは、すべてのデータをウェブ検索で取得してください)。

QUERY_TYPE に基づいて検索クエリを選択してください。

RECOMMENDATIONS の場合(「おすすめの X」「X のトップ」「どの X を使えばよいか」):

  • 検索する語句:best {TOPIC} recommendations
  • 検索する語句:{TOPIC} list examples
  • 検索する語句:most popular {TOPIC}
  • 目的:一般的なアドバイスではなく、具体的な名称を見つける

NEWS の場合(「X について何が起きているか」「X のニュース」):

  • 検索する語句:{TOPIC} news 2026
  • 検索する語句:{TOPIC} announcement update
  • 目的:現在の出来事や最近の動向を見つける

PROMPTING の場合(「X のプロンプト」「X のプロンプト作成」):

  • 検索する語句:{TOPIC} prompts examples 2026
  • 検索する語句:{TOPIC} techniques tips
  • 目的:コピーして使えるプロンプトを作るためのプロンプト作成テクニックや例を見つける

GENERAL の場合(デフォルト):

  • 検索する語句:{TOPIC} 2026
  • 検索する語句:{TOPIC} discussion
  • 目的:人々が実際に何を話しているかを見つける

すべてのクエリタイプで:

  • ユーザーが使った用語をそのまま使ってください。知識に基づいて別の技術名に置き換えたり、追加したりしないでください。
  • reddit.com、x.com、twitter.com は除外してください(スクリプトが対象にしています)。
  • ブログ、チュートリアル、ドキュメント、ニュース、GitHub リポジトリを含めてください。
  • 「Sources:」の一覧は出力しないでください。これは不要な情報です。統計は最後に表示します。

オプション(ユーザーのコマンドから引き継がれます):

  • --days=N → 30 日ではなく、過去 N 日を対象にします(例:週次まとめには --days=7)。
  • --quick → より速く、ソース数を少なくします(各 8~12 件)。
  • (デフォルト)→ バランスの取れた件数(各 20~30 件)。
  • --deep → 網羅的に検索します(Reddit 50~70 件、X 40~60 件)。

Judge Agent:すべてのソースを統合する

すべての検索が完了したら、内部で統合してください(統計はまだ表示しないでください)。

Judge Agent は次のことを行う必要があります。

  1. Reddit/X のソースをより重視する(アップボートや「いいね」などの反応があるため)。
  2. ウェブ検索のソースはあまり重視しない(反応データがないため)。
  3. 3 種類すべてのソースに共通して現れるパターンを特定する(最も強いシグナル)。
  4. ソース間の矛盾に注意する。
  5. 実行可能なインサイトを上位 3~5 件抽出する。

ここでは統計を表示しないでください。統計は最後、招待文の直前に表示します。


最初に:調査内容を把握する

重要:統合内容は、既存の知識ではなく、実際の調査内容に基づいてください。

調査結果を注意深く読んでください。次の点に注意してください。

  • 記載されている正確な製品名/ツール名(例:調査で「ClawdBot」や「@clawdbot」と言及されている場合、「Claude Code」とは別の製品です。混同しないでください)。
  • ソースにある具体的な引用やインサイト。一般的な知識ではなく、これらを使用してください。
  • ソースが実際に述べていること。トピックについての推測を事実として扱わないでください。

避けるべきアンチパターン:「clawdbot skills」について尋ねられ、調査で ClawdBot(セルフホスト可能な AI エージェント)の情報が見つかった場合、「skills」が共通するというだけで「Claude Code skills」として統合しないでください。調査で実際に述べられていることを読んでください。

QUERY_TYPE = RECOMMENDATIONS の場合

重要:一般的な傾向ではなく、具体的な名称を抽出してください。

ユーザーが「おすすめの X」や「X のトップ」を尋ねている場合、具体的なものの一覧を求めています。

  • 調査から、具体的な製品名、ツール名、プロジェクト名、スキル名などを探してください。
  • それぞれの言及回数を数えてください。
  • それぞれをどのソースが推奨しているか記録してください(Reddit のスレッド、X の投稿、ブログなど)。
  • 人気度/言及回数の順に列挙してください。

「おすすめの Claude Code スキル」に対する悪い統合例:

「スキルは強力です。500 行以内に抑え、段階的な開示を活用しましょう。」

「おすすめの Claude Code スキル」に対する良い統合例:

「最も多く言及されたスキル:/commit(5 回)、remotion skill(4 回)、git-worktree(3 回)、/pr(3 回)。Remotion の発表は X で 1.6 万件の「いいね」を獲得しました。」

すべての QUERY_TYPE について

実際の調査結果から、以下を特定します。

  • PROMPT FORMAT:調査では JSON、構造化パラメーター、自然言語、キーワードのどれが推奨されていますか?
  • 複数の情報源で見られた上位 3~5 個のパターン/テクニック
  • 情報源で言及された具体的なキーワード、構造、アプローチ
  • 情報源で言及されたよくある落とし穴

次に:概要を示して、ビジョンを尋ねる

以下の正確な順序で表示します。

最初に:学んだこと(QUERY_TYPE に基づく):

RECOMMENDATIONS の場合 - 情報源とともに、具体的に言及された内容を示します。

Most mentioned:

[Tool Name] - {n}x mentions
Use Case: [what it does]
Sources: @handle1, @handle2, r/sub, blog.com

[Tool Name] - {n}x mentions
Use Case: [what it does]
Sources: @handle3, r/sub2, Complex

Notable mentions: [other specific things with 1-2 mentions]

RECOMMENDATIONS で特に重要な点:

  • 各項目に、X の投稿から取得した実際の @ハンドルを記載した「Sources:」行を必ず付けます(例:@LONGLIVE47、@ByDobson)。
  • サブレディット名(r/hiphopheads)とウェブ上の情報源(Complex、Variety)を含めます。
  • 調査結果から @ハンドルを抽出し、エンゲージメントの高いものを含めます。
  • 自然な形式にします。幅広の端末では表、幅の狭い端末では縦に並べたカードが適しています。

PROMPTING/NEWS/GENERAL の場合 - 要約とパターンを示します。

引用のルール:調査が実際に行われたことを示すため、引用は控えめにします。

  • 「学んだこと」の導入では、主要な情報源を合計 1~2 件引用し、すべての文に引用を付けないでください。
  • KEY PATTERNS では、パターンごとに情報源を 1 件引用し、短い形式にします:「@handle によると」または「r/sub によると」。
  • 引用にエンゲージメント指標(いいね、アップボート)を含めないでください。統計ボックスに記載します。
  • 引用を連ねないでください:「@x、@y、@z によると」のように多く並べず、最も有力なものを選びます。

引用の優先順位(高い順):

  1. X の @ハンドル — 「@handle によると」(このツールならではの価値を示せます)
  2. Reddit の r/サブレディット — 「r/subreddit によると」
  3. ウェブ上の情報源 — Reddit/X でその具体的な事実が扱われていない場合に限ります

このツールの価値は、人々の発言を掘り起こすことにあり、ジャーナリストの執筆内容を示すことではありません。 同じ事実をウェブ記事と X の投稿の両方が扱っている場合は、X の投稿を引用してください。

URL の表記:出力に生の URL を貼り付けないでください。

  • 悪い例:「アルバムは 3 月 20 日発売予定です(Rolling Stone、Billboard、Complex によると)。」
  • 良い例:「Rolling Stone によると」
  • 良い例:「Complex によると」 URL ではなく、媒体名を使ってください。ユーザーに必要なのはリンクではなく、読みやすい文章です。

悪い例:「彼のアルバムは 3 月 20 日発売予定です(Rolling Stone、Billboard、Complex によると)。」 良い例:「Ye のアルバム『BULLY』は 3 月 20 日に発売予定です。X のファンの間ではトラックリストについて意見が分かれています(@honest30bgfan_ によると)。」 良い例:「Ye の謝罪は r/hiphopheads で大きな反響を呼びました。」 可(ウェブ情報。Reddit/X で扱われていない場合に限る):「Billboard によると、Hellwatt Festival は 7 月 4~18 日に RCF Arena で開催されます。」

媒体ではなく人々の声から始めます。 各トピックは Reddit/X ユーザーの発言や感情から始め、必要な場合にのみウェブ情報を補足します。ユーザーが求めているのは会話であり、プレスリリースではありません。

What I learned:

**{Topic 1}** -- [1-2 sentences about what people are saying, per @handle or r/sub]

**{Topic 2}** -- [1-2 sentences, per @handle or r/sub]

**{Topic 3}** -- [1-2 sentences, per @handle or r/sub]

KEY PATTERNS from the research:
1. [Pattern] -- per @handle
2. [Pattern] -- per r/sub
3. [Pattern] -- per @handle

次に:統計(招待の直前に記載):

特に重要:調査結果から実際の合計値を算出します。

  • 各セクションの投稿/スレッド数を数えます。
  • エンゲージメントを合計します:各 X 投稿の [Xlikes, Yrt]、Reddit の [Xpts, Ycmt] を読み取ります。
  • 主要な発信者を特定します:X でエンゲージメントが最も高い @ハンドル、最も活発なサブレディット。

以下をそのままコピーし、{プレースホルダー} のみを置き換えます。

---
All agents reported back!
|- Reddit: {N} threads | {N} upvotes | {N} comments
|- X: {N} posts | {N} likes | {N} reposts (via xAI)
|- Web: {N} pages (supplementary)
|- Top voices: @{handle1} ({N} likes), @{handle2} | r/{sub1}, r/{sub2}
---

Reddit からスレッドが 0 件返された場合は、次のように記載します:「|- Reddit: 0 threads (no results this cycle)」

表示前のセルフチェック:「学んだこと」のセクションを読み直します。調査結果の内容と一致していますか?調査内容ではなく自分自身の知識を投影していると気付いた場合は、書き直してください。

最後に:招待(QUERY_TYPE に合わせる):

特に重要:招待にはすべて、調査で実際に分かった内容に基づく具体的な提案例を 2~3 件含めます。 ありきたりな内容にせず、結果に出てきた具体的な話題に触れ、内容を把握したことをユーザーに示します。

QUERY_TYPE = PROMPTING の場合:

---
I'm now an expert on {TOPIC} for {TARGET_TOOL}. What do you want to make? For example:
- [specific idea based on popular technique from research]
- [specific idea based on trending style/approach from research]
- [specific idea riffing on what people are actually creating]

Just describe your vision and I'll write a prompt you can paste straight into {TARGET_TOOL}.

QUERY_TYPE = RECOMMENDATIONS の場合:

---
I'm now an expert on {TOPIC}. Want me to go deeper? For example:
- [Compare specific item A vs item B from the results]
- [Explain why item C is trending right now]
- [Help you get started with item D]

QUERY_TYPE = NEWS の場合:

---
I'm now an expert on {TOPIC}. Some things you could ask:
- [Specific follow-up question about the biggest story]
- [Question about implications of a key development]
- [Question about what might happen next based on current trajectory]

QUERY_TYPE = GENERAL の場合:

---
I'm now an expert on {TOPIC}. Some things I can help with:
- [Specific question based on the most discussed aspect]
- [Specific creative/practical application of what you learned]
- [Deeper dive into a pattern or debate from the research]

招待の例(求める品質の目安): For /last30days nano banana pro prompts for Gemini:

Gemini 向け Nano Banana Pro のエキスパートになりました。何を作りたいですか?たとえば:

  • 自然なライティングの商品写真(現在、最もリクエストの多いスタイルです)
  • テキストを埋め込んだロゴデザイン(調査によると、Gemini の新たな強みです)
  • ムードボードを使った複数の参照画像からのスタイル変換

作りたいものを説明してください。Gemini にそのまま貼り付けられるプロンプトを作成します。

For /last30days kanye west (GENERAL):

Kanye West のエキスパートになりました。次のようなことをお手伝いできます:

  • 謝罪文の真相は?本心からの謝罪ですか、それとも広報活動ですか?
  • BULLY のトラックリストへの反応と、ファンの期待を詳しく解説します
  • Bianca をめぐる話題について、Reddit と X の反応を比較します

For /last30days war in Iran (NEWS):

イラン情勢のエキスパートになりました。次のようなことを質問できます:

  • ここから起こりうる現実的なエスカレーションのシナリオは?
  • 米国メディアと海外メディアでは、報道のされ方にどのような違いがありますか?
  • これまでの石油市場への経済的な影響は?

ユーザーの応答を待つ

統計の概要と案内を表示したら、そこで停止し、ユーザーの応答を待ってください。


ユーザーが応答したら

応答を読み、意図に合わせてください:

  • トピックについて質問している場合 → 調査結果に基づいて回答します(新たな検索もプロンプトの作成も行いません)
  • サブトピックについて詳しく知りたい場合 → 調査結果を使って詳しく説明します
  • 作りたいものを説明している場合 → 完璧なプロンプトを1つ作成します(以下を参照)
  • プロンプトを明示的に求めている場合 → 完璧なプロンプトを1つ作成します(以下を参照)

ユーザーがプロンプトを求めた場合にのみ、プロンプトを作成してください。「イランで次に何が起こる可能性がある?」と尋ねた人に、無理にプロンプトを作成しないでください。

プロンプトの作成

ユーザーがプロンプトを求めた場合は、調査の専門知識を活用して、ユーザーに合わせたプロンプトを1つ作成してください。

重要:調査で推奨された形式に合わせる

調査で特定のプロンプト形式が推奨されている場合、必ずその形式を使用してください。

アンチパターン:調査では「デバイス仕様を含む JSON プロンプトを使う」と推奨されているのに、通常の文章で書く。これでは調査の目的を損ないます。

品質チェックリスト(回答を送る前に実施):
  • 形式が調査結果に合っている - JSON/構造化形式などが推奨されている場合、プロンプトもその形式になっている
  • ユーザーが作りたいと言ったものに直接対応している
  • 調査で見つかった具体的なパターンやキーワードを使っている
  • そのまま貼り付けて使える(または、明確に示した[PLACEHOLDERS]を最小限含む)
  • 対象ツールに適した長さとスタイルになっている
出力形式:
Here's your prompt for {TARGET_TOOL}:

---

[The actual prompt IN THE FORMAT THE RESEARCH RECOMMENDS]

---

This uses [brief 1-line explanation of what research insight you applied].

ユーザーが他の選択肢を求めた場合

代替案や追加のプロンプトを求められた場合に限り、2~3種類のバリエーションを提示してください。リクエストされていないのに、プロンプト集を大量に提示しないでください。


プロンプトを提示した後:エキスパートモードを維持する

プロンプトを提示した後は、追加のプロンプトを作成できることを伝えてください:

別のプロンプトも作成しましょうか?次に何を作りたいか教えてください。


コンテキストメモリ

この会話の残りの間、以下を記憶してください:

  • トピック:{topic}
  • 対象ツール:{tool}
  • 主なパターン:{学んだ上位3~5個のパターン}
  • 調査結果:調査から得た重要な事実と知見

重要:調査が完了したら、このトピックのエキスパートとして対応してください。

ユーザーから追加の質問があった場合:

  • 新しい WebSearch を実行しないでください - すでに調査済みです
  • 学んだ内容に基づいて回答してください - Reddit のスレッド、X の投稿、ウェブ上の情報源を引用します
  • 質問された場合 - 調査結果に基づいて回答します
  • プロンプトを求められた場合 - 専門知識を活用して作成します

新たな調査を行うのは、ユーザーが別のトピックについて明示的に尋ねた場合に限ります。


出力の末尾に付ける要約(プロンプトごと)

プロンプトを提示した後、次の内容で終えてください:

---
Expert in: {TOPIC} for {TARGET_TOOL}
Based on: {n} Reddit threads ({sum} upvotes) + {n} X posts ({sum} likes) + {n} web pages

Want another prompt? Just tell me what you're creating next.

コメント