news-aggregator-skill について
ニュース、AI関連刊行物、ポッドキャスト、エッセイ、ユーザーのOPMLフィードなど、44以上の情報源から記事を取得するスキルです。共通形式の中国語レポートを作成し、情報源別のルールや記事本文の取得にも対応します。
主な機能
- 0144以上の情報源から取得
- 02情報源とキーワードで絞り込み
- 03分析用の記事本文取得
- 04構造化された中国語レポート
- 05カスタムOPMLフィード対応
- 06デイリーブリーフィング設定
活用シーン
- 01毎日のニュースブリーフィング作成
- 02AI論文やニュースレターの追跡
- 03直近24時間の国際ニュース確認
- 04個人RSSフィードの集約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cclank/ news-aggregator-skill --skill news-aggregator-skillインストール後、Claude Code で/news-aggregator-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreMISTAKES.mdimplementation_plan.mdREADME.mdrequirements.txtuser_sources.opml.exampletemplates.md.agent/workflows/daily_briefing.mdinstructions/briefing_github.mdbriefing_general.mdbriefing_ai_daily.mdbriefing_finance.mdbriefing_social.mdbriefing_tech.mdscripts/daily_briefing.pyfetch_generic_playwright.pydebug_hf_detail.pyfetch_hf_papers_playwright.pyfetch_bensbites.pyfetch_news.pyfetch_user_feeds.pyrss_parser.pyprocess_general_json.pytest_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) リンクを必ず含めます |
| GitHub | Heat には 🌟 Stars を使用し、Lang フィールドを追加し、Deep Dive に #Tags を追加します |
| Hugging Face | Heat には 🔥 +N のアップボート数を使用し、存在する場合は [GitHub](url) を含め、アブストラクトの翻訳だけでなく、深掘りした解説を記載します |
| 正確なヒート表示(例:「108万」)をそのまま保持します | |
| AIHOT | summary はすでに中国語の編集済み原稿なので、そのまま引用し、再翻訳しないでください。Heat フィールドが空でも、データを捏造しないでください。推薦理由 のスタイルによる一言コメントを残します |
| TLDR AI | 1 つのタイトルに複数のトピックが混在することがよくあります(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 に使用しません。英語のタイトルと概要を簡体字中国語に翻訳し、元のメディア名とリンクを保持します。同じ出来事を複数のメディアが報じている場合、見解をまとめてもかまいませんが、リンクは統合しないでください |
| Reuters | reuters は 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 件以上)
| カテゴリ | キー | 名前 |
|---|---|---|
| グローバルニュース | hackernews | Hacker News |
36kr | 36氪 | |
wallstreetcn | 华尔街见闻 | |
tencent | 腾讯新闻 | |
weibo | 微博热搜 | |
v2ex | V2EX | |
producthunt | Product Hunt | |
github | GitHub Trending | |
| テックコミュニティ(v2) | lobsters | Lobsters |
devto | Dev.to | |
| AI/テック | huggingface | HF Daily Papers |
arxiv | arXiv (cs.AI/cs.CL/cs.LG, v2) | |
ai_newsletters | すべての AI ニュースレター(集約) | |
bensbites | Ben's Bites | |
interconnects | Interconnects (Nathan Lambert) | |
oneusefulthing | One Useful Thing (Ethan Mollick) | |
chinai | ChinAI (Jeffrey Ding) | |
memia | Memia | |
aitoroi | AI to ROI | |
kdnuggets | KDnuggets | |
| 中国語(v2) | sspai | 少数派 |
infoq_cn | InfoQ 中文站(RSS ではタイトルのみ提供されるため、本文の取得には --deep の併用を推奨) | |
| AI キュレーション(v3) | aihot | AIHOT 中国語 AI 厳選記事(複数ソース+中国語編集記事) |
tldr_ai | TLDR AI 英語日刊 | |
import_ai | Import AI by Jack Clark 週刊(--deep を推奨) | |
| 国際ニュース | international | 過去 24 時間の国際ニュース集約(BBC/Guardian/Al Jazeera/France 24/Reuters フォールバック) |
bbc_top | BBC トップニュース(24h) | |
bbc_world | BBC ワールド(24h) | |
bbc_chinese | BBC 中国語(24h) | |
guardian_world | The Guardian ワールド(24h) | |
aljazeera | Al Jazeera(24h) | |
france24 | France 24(24h) | |
reuters | Google News RSS フォールバック経由の Reuters(24h) | |
| ポッドキャスト | podcasts | すべてのポッドキャスト(集約) |
lexfridman | Lex Fridman | |
80000hours | 80,000 Hours | |
latentspace | Latent Space | |
| エッセイ | essays | すべてのエッセイ(集約) |
paulgraham | Paul Graham | |
waitbutwhy | Wait But Why | |
jamesclear | James Clear | |
farnamstreet | Farnam Street | |
scottyoung | Scott Young | |
dankoe | Dan Koe | |
| カスタム(v2) | user | OPML フィード(下記参照) |
カスタム購読ソース(ユーザー 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>
| プロファイル | ソース | 指示ファイル |
|---|---|---|
general | HN、36Kr、GitHub、Weibo、PH、WallStreetCN | instructions/briefing_general.md |
finance | WallStreetCN、36Kr、Tencent | instructions/briefing_finance.md |
tech | GitHub、HN、Product Hunt | instructions/briefing_tech.md |
social | Weibo、V2EX、Tencent | instructions/briefing_social.md |
ai_daily | HF Papers、AI ニュースレター | instructions/briefing_ai_daily.md |
reading_list | エッセイ、ポッドキャスト | (共通テンプレートを使用) |
ワークフロー:スクリプトを実行 → 対応する指示ファイルを読む → 指示ファイルと共通テンプレートの両方に従ってレポートを生成します。
⚠️ ルール(厳守)
- 言語:出力はすべて**簡体字中国語(简体中文)**にしてください。よく知られた英語の固有名詞(ChatGPT、Python など)はそのままにします。
- 時刻:必須のフィールドです。省略しないでください。JSON にない場合は「Unknown Time」と記載します。「Real-time」/「Today」/「Hot」はそのまま保持します。
- ハルシネーション対策:JSON のデータのみを使用してください。ニュース項目を捏造しないでください。単純な SVO 文を使用してください。因果関係を捏造しないでください。
- キーワードのスマートな拡張:ユーザーが「AI」と言った場合、自動的に「AI,LLM,GPT,Claude,Agent,RAG,DeepSeek」へ拡張します。他の分野も同様に拡張します。
- スマート補完:指定した期間内の結果が5件未満の場合、より広い期間から価値の高い項目を補います。補足した項目には ⚠️ を付けます。例外:海外ニュースの情報源は厳密に24時間以内とし、古い項目で補完しないでください。
- 保存:表示する前に、必ずレポートを
reports/YYYY-MM-DD/に保存してください。
📋 インタラクティブメニュー
ユーザーが 「如意如意」 と言うか、「menu/help」を求めた場合:
templates.mdを読み込みます- メニューを表示します
- 上記の ユニバーサルワークフロー を使用して、ユーザーの選択を実行します
要件
- Python 3.8以降、
pip install -r requirements.txt - Playwright(HF Papers と Ben's Bites 用):
playwright install chromium