mcpField
N
news-aggregator-skill

news-aggregator-skill

github.com/cclank生産性1.3k6.0k 回インストール22 週間前に更新
リポジトリ

news-aggregator-skill について

ニュース、AI関連刊行物、ポッドキャスト、エッセイ、ユーザーのOPMLフィードなど、44以上の情報源から記事を取得するスキルです。共通形式の中国語レポートを作成し、情報源別のルールや記事本文の取得にも対応します。

主な機能

  1. 0144以上の情報源から取得
  2. 02情報源とキーワードで絞り込み
  3. 03分析用の記事本文取得
  4. 04構造化された中国語レポート
  5. 05カスタムOPMLフィード対応
  6. 06デイリーブリーフィング設定

活用シーン

  1. 01毎日のニュースブリーフィング作成
  2. 02AI論文やニュースレターの追跡
  3. 03直近24時間の国際ニュース確認
  4. 04個人RSSフィードの集約

インストール

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

$npx skills add https://github.com/cclank/news-aggregator-skill --skill news-aggregator-skill

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

同梱ファイル

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

.gitignore
MISTAKES.md
implementation_plan.md
README.md
requirements.txt
user_sources.opml.example
templates.md
.agent/workflows/
daily_briefing.md
instructions/
briefing_github.md
briefing_general.md
briefing_ai_daily.md
briefing_finance.md
briefing_social.md
briefing_tech.md
scripts/
daily_briefing.py
fetch_generic_playwright.py
debug_hf_detail.py
fetch_hf_papers_playwright.py
fetch_bensbites.py
fetch_news.py
fetch_user_feeds.py
rss_parser.py
process_general_json.py
test_all_sources.py

詳細

ニュースアグリゲーター スキル

国際ニュース、AI が厳選したアグリゲーター、ユーザー定義の OPML フィードなど、44 以上のソースからリアルタイムの注目ニュースを取得し、中国語で詳細な分析レポートを生成します。


🔄 共通ワークフロー(3 ステップ)

ソースや組み合わせにかかわらず、すべてのニュースリクエストで同じワークフローに従います。

ステップ 1:データを取得
# Single source
python3 scripts/fetch_news.py --source <source_key> --no-save

# Multiple sources (comma-separated)
python3 scripts/fetch_news.py --source hackernews,github,wallstreetcn --no-save

# All sources (broad scan)
python3 scripts/fetch_news.py --source all --limit 15 --deep --no-save

# With keyword filter (auto-expand: "AI" → "AI,LLM,GPT,Claude,Agent,RAG")
python3 scripts/fetch_news.py --source hackernews --keyword "AI,LLM,GPT" --deep --no-save
ステップ 2:レポートを生成

出力 JSON を読み取り、以下の統一レポートテンプレートを使ってすべての項目を整形します。すべての内容を簡体字中国語に翻訳します。

ステップ 3:保存して提示

レポートを reports/YYYY-MM-DD/<source>_report.md に保存し、全内容をユーザーに表示します。


📰 統一レポートテンプレート

すべてのソースで、この単一のテンプレートを使用します。 データの有無に応じて、任意項目の表示・非表示を切り替えます。

#### N. [标题 (中文翻译)](https://original-url.com)
- **Source**: 源名 | **Time**: 时间 | **Heat**: 🔥 热度值
- **Links**: [Discussion](hn_url) | [GitHub](gh_url)     ← 仅在数据存在时显示
- **Summary**: 一句话中文摘要。
- **Deep Dive**: 💡 **Insight**: 深度分析(背景、影响、技术价值)。
ソース別の調整

共通テンプレートとの相違点のみを示します。

ソース調整内容
Hacker News[Discussion](hn_url) リンクを必ず含めます
GitHubHeat には 🌟 Stars を使用し、Lang フィールドを追加し、Deep Dive に #Tags を追加します
Hugging FaceHeat には 🔥 +N のアップボート数を使用し、存在する場合は [GitHub](url) を含め、アブストラクトの翻訳だけでなく、深掘りした解説を記載します
Weibo正確なヒート表示(例:「108万」)をそのまま保持します
AIHOTsummary はすでに中国語の編集済み原稿なので、そのまま引用し、再翻訳しないでください。Heat フィールドが空でも、データを捏造しないでください。推薦理由 のスタイルによる一言コメントを残します
TLDR AI1 つのタイトルに複数のトピックが混在することがよくあります(Topic A 💻, Topic B ⚡, Topic C ⛪)。各トピックを bullet に分けて列挙します。summary は HTML の段落なので、各トピックに対応する 1~2 文の概要を抜き出します
Import AI長文の週刊記事です。タイトルは Import AI 458: テーマ1; テーマ2; テーマ3 のような形式です。デフォルトで --deep を指定することを推奨します。指定しない場合、RSS の summary は冒頭の数文しか含みません。Deep Dive では事実を並べるのではなく、Jack Clark の核心的な見解を抽出します
International Newsすべての記事に統一レポートテンプレートを必ず使用します。直近 24 時間以内の RSS 項目のみを使い、それ以前のニュースを Smart Fill に使用しません。英語のタイトルと概要を簡体字中国語に翻訳し、元のメディア名とリンクを保持します。同じ出来事を複数のメディアが報じている場合、見解をまとめてもかまいませんが、リンクは統合しないでください
Reutersreuters は Google News RSS の site:reuters.com フォールバックを使用します。レポートではソースを Reuters (Google News fallback) のまま保持し、公式の公開 RSS と記載しないでください

🛠️ ツール

fetch_news.py
引数説明デフォルト
--sourceソースキー(複数指定する場合はカンマ区切り)。下の表を参照してください。all
--limitソースごとの最大項目数15
--keywordカンマ区切りのキーワードフィルターなし
--deep詳細な分析のために記事本文をダウンロードしますオフ
--saveレポートディレクトリへの保存を強制します単一ソースの場合は自動
--outdirカスタム出力ディレクトリreports/YYYY-MM-DD/
利用可能なソース(ユーザー OPML を含め 44 件以上)
カテゴリキー名前
グローバルニュースhackernewsHacker News
36kr36氪
wallstreetcn华尔街见闻
tencent腾讯新闻
weibo微博热搜
v2exV2EX
producthuntProduct Hunt
githubGitHub Trending
テックコミュニティ(v2)lobstersLobsters
devtoDev.to
AI/テックhuggingfaceHF Daily Papers
arxivarXiv (cs.AI/cs.CL/cs.LG, v2)
ai_newslettersすべての AI ニュースレター(集約)
bensbitesBen's Bites
interconnectsInterconnects (Nathan Lambert)
oneusefulthingOne Useful Thing (Ethan Mollick)
chinaiChinAI (Jeffrey Ding)
memiaMemia
aitoroiAI to ROI
kdnuggetsKDnuggets
中国語(v2)sspai少数派
infoq_cnInfoQ 中文站(RSS ではタイトルのみ提供されるため、本文の取得には --deep の併用を推奨)
AI キュレーション(v3)aihotAIHOT 中国語 AI 厳選記事(複数ソース+中国語編集記事)
tldr_aiTLDR AI 英語日刊
import_aiImport AI by Jack Clark 週刊(--deep を推奨)
国際ニュースinternational過去 24 時間の国際ニュース集約(BBC/Guardian/Al Jazeera/France 24/Reuters フォールバック)
bbc_topBBC トップニュース(24h)
bbc_worldBBC ワールド(24h)
bbc_chineseBBC 中国語(24h)
guardian_worldThe Guardian ワールド(24h)
aljazeeraAl Jazeera(24h)
france24France 24(24h)
reutersGoogle News RSS フォールバック経由の Reuters(24h)
ポッドキャストpodcastsすべてのポッドキャスト(集約)
lexfridmanLex Fridman
80000hours80,000 Hours
latentspaceLatent Space
エッセイessaysすべてのエッセイ(集約)
paulgrahamPaul Graham
waitbutwhyWait But Why
jamesclearJames Clear
farnamstreetFarnam Street
scottyoungScott Young
dankoeDan Koe
カスタム(v2)userOPML フィード(下記参照)
カスタム購読ソース(ユーザー OPML)

よく読む RSS/Atom フィードを OPML に記述すると、--source user でまとめて取得できます。

1. OPML ファイルを配置する(優先順位順に検索):

  • ~/.config/news-aggregator/user_sources.opml(推奨。複数の skill で再利用できます)
  • <skill_root>/user_sources.opml(このリポジトリ内)

2. ファイル形式:標準の OPML 2.0。Feedly/Inoreader/NetNewsWire から直接エクスポートできます。user_sources.opml.example を参照してください。

<outline type="rss" text="Simon Willison" title="Simon Willison"
         xmlUrl="https://simonwillison.net/atom/everything/" />

必須なのは xmlUrl のみで、その他は任意です。

3. 実行:python3 scripts/fetch_news.py --source user --limit 15

daily_briefing.py(朝のルーティン)

事前設定済みの複数ソースのプロファイル:

python3 scripts/daily_briefing.py --profile <profile>
プロファイルソース指示ファイル
generalHN、36Kr、GitHub、Weibo、PH、WallStreetCNinstructions/briefing_general.md
financeWallStreetCN、36Kr、Tencentinstructions/briefing_finance.md
techGitHub、HN、Product Huntinstructions/briefing_tech.md
socialWeibo、V2EX、Tencentinstructions/briefing_social.md
ai_dailyHF Papers、AI ニュースレターinstructions/briefing_ai_daily.md
reading_listエッセイ、ポッドキャスト(共通テンプレートを使用)

ワークフロー:スクリプトを実行 → 対応する指示ファイルを読む → 指示ファイルと共通テンプレートの両方に従ってレポートを生成します。


⚠️ ルール(厳守)

  1. 言語:出力はすべて**簡体字中国語(简体中文)**にしてください。よく知られた英語の固有名詞(ChatGPT、Python など)はそのままにします。
  2. 時刻:必須のフィールドです。省略しないでください。JSON にない場合は「Unknown Time」と記載します。「Real-time」/「Today」/「Hot」はそのまま保持します。
  3. ハルシネーション対策:JSON のデータのみを使用してください。ニュース項目を捏造しないでください。単純な SVO 文を使用してください。因果関係を捏造しないでください。
  4. キーワードのスマートな拡張:ユーザーが「AI」と言った場合、自動的に「AI,LLM,GPT,Claude,Agent,RAG,DeepSeek」へ拡張します。他の分野も同様に拡張します。
  5. スマート補完:指定した期間内の結果が5件未満の場合、より広い期間から価値の高い項目を補います。補足した項目には ⚠️ を付けます。例外:海外ニュースの情報源は厳密に24時間以内とし、古い項目で補完しないでください。
  6. 保存:表示する前に、必ずレポートを reports/YYYY-MM-DD/ に保存してください。

📋 インタラクティブメニュー

ユーザーが 「如意如意」 と言うか、「menu/help」を求めた場合:

  1. templates.md を読み込みます
  2. メニューを表示します
  3. 上記の ユニバーサルワークフロー を使用して、ユーザーの選択を実行します

要件

  • Python 3.8以降、pip install -r requirements.txt
  • Playwright(HF Papers と Ben's Bites 用):playwright install chromium

コメント