mcpField
S
sustainability-rss-fetch

sustainability-rss-fetch

github.com/tiangong-aiデータ・データベース1158 回インストール1 週間前に更新
リポジトリ

sustainability-rss-fetch について

sustainability-rss-fetchは、RSSとAtomの項目をDOIキーのSQLiteデータベースに取り込み、トピック別に選別するスキルです。選択項目のメタデータを保持し、対象外はDOIのみのレコードにします。

主な機能

  1. 01RSSとAtomフィードの取り込み
  2. 02DOIキーでのSQLite保存
  3. 03トピックプロンプトによる項目選別
  4. 04対象外の項目をDOIのみのレコードに整理
  5. 05フィード管理と項目の照会

活用シーン

  1. 01選別前にサステナビリティ関連フィードを取り込む
  2. 02後続処理用にDOIキーのレコードを保持する
  3. 03対象外項目の保存メタデータを減らす

インストール

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

$npx skills add https://github.com/tiangong-ai/agent-skills --skill sustainability-rss-fetch

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

同梱ファイル

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

agents/
openai.yaml
assets/
config.example.json
journal.opml
references/
input-model.md
output-rules.md
time-range-rules.md
scripts/
rss_subscribe.py

詳細

Sustainability RSS Fetch

主な目標

  • トピックでフィルタリングする前に、すべての RSS/Atom アイテムを SQLite に取り込みます。
  • entries の主キーとして doi を使用します。
  • RSS メタデータを専用の DB ファイルに分離します。
  • セマンティックなスクリーニング後、関連する行を保持し、関連しない行を DOI のみのレコードに整理します。

実行条件

  • サステナビリティ関連のフィードをインポートし、取得したすべてのレコードを最初に永続化するリクエストを受けた場合。
  • DB への取り込み後に、プロンプトベースのトピック審査を行うリクエストを受けた場合。
  • 関連しない行を軽量な DOI のみのレコードに変換するリクエストを受けた場合。
  • 下流の API/全文取得/要約処理に向けて、DOI をキーとする安定したストレージが必要な場合。

必須のワークフロー

  1. 実行環境と RSS メタデータ DB のパスを準備します。
python3 -m pip install feedparser
export SUSTAIN_RSS_DB_PATH="/absolute/path/to/workspace-rss-bot/sustainability_rss.db"
python3 scripts/rss_subscribe.py init-db --db "$SUSTAIN_RSS_DB_PATH"
  1. RSS の対象期間を収集し、取得したすべてのアイテムを先に取り込みます。
python3 scripts/rss_subscribe.py collect-window \
  --db "$SUSTAIN_RSS_DB_PATH" \
  --opml assets/journal.opml \
  --start 2026-02-01 \
  --end 2026-02-10 \
  --max-items-per-feed 150 \
  --topic-prompt "筛选与可持续主题相关的文章:生命周期评价、物质流分析、绿色供应链、绿电、绿色设计、减污降碳" \
  --output /tmp/sustainability-candidates.json \
  --pretty
  1. エージェントのコンテキスト内で候補を審査します(正規表現だけに頼らず、セマンティックに判定します)。
  • topic_prompt とユーザーの指示を使用します。
  • 選択した candidate_id のリストを作成します。
  1. 選択した行を関連ありとしてマークし、選択されていない行を整理します。
python3 scripts/rss_subscribe.py insert-selected \
  --db "$SUSTAIN_RSS_DB_PATH" \
  --candidates /tmp/sustainability-candidates.json \
  --selected-ids 3,7,12,21

結果:

  • 選択された候補:is_relevant=1 とし、メタデータを保持します。
  • 選択されていない候補:メタデータフィールドを消去し、DOI のみの行(is_relevant=0)を保持します。

任意のメンテナンス同期

python3 scripts/rss_subscribe.py sync --db "$SUSTAIN_RSS_DB_PATH" --max-feeds 20 --max-items-per-feed 100

ソース管理

python3 scripts/rss_subscribe.py add-feed --db "$SUSTAIN_RSS_DB_PATH" --url "https://example.com/feed.xml"
python3 scripts/rss_subscribe.py import-opml --db "$SUSTAIN_RSS_DB_PATH" --opml assets/journal.opml

データのクエリ

python3 scripts/rss_subscribe.py list-feeds --db "$SUSTAIN_RSS_DB_PATH" --limit 50
python3 scripts/rss_subscribe.py list-entries --db "$SUSTAIN_RSS_DB_PATH" --limit 100

データ契約

  • feeds テーブル:購読と取得の状態。
  • entries テーブル(doi が主キー):
    • メタデータフィールド(title/url/summary/categories/...)
    • doi_is_surrogate(ソースに DOI がない場合に使用)
    • is_relevant(関連ありは 1、関連なしとして整理済みは 0、未ラベルは NULL)
  • ストレージを効率化するため、関連しない行は DOI のみのペイロードに整理されます。

設定可能なパラメーター

  • --db
  • SUSTAIN_RSS_DB_PATH
  • --opml
  • --feed-url
  • --use-subscribed-feeds
  • --topic-prompt
  • --start/--end
  • --max-feeds
  • --max-items-per-feed
  • --user-agent
  • --cleanup-ttl-days

エラーと境界条件の処理

  • フィード/ネットワークの障害:ほかのフィードの処理を続行し、エラーはフィードの状態に保持します。
  • feedparser がない場合:インストール方法を案内します。
  • RSS アイテムに DOI がない場合:すべて取り込む保証を維持するため、決定的なサロゲート DOI キーを作成します。
  • 選択された ID が無効な場合:ラベル付け/整理の書き込み前に即座に失敗します。

参考資料

  • references/input-model.md
  • references/output-rules.md
  • references/time-range-rules.md

アセット

  • assets/journal.opml
  • assets/config.example.json

スクリプト

  • scripts/rss_subscribe.py

コメント