sustainability-rss-fetch について
sustainability-rss-fetchは、RSSとAtomの項目をDOIキーのSQLiteデータベースに取り込み、トピック別に選別するスキルです。選択項目のメタデータを保持し、対象外はDOIのみのレコードにします。
主な機能
- 01RSSとAtomフィードの取り込み
- 02DOIキーでのSQLite保存
- 03トピックプロンプトによる項目選別
- 04対象外の項目をDOIのみのレコードに整理
- 05フィード管理と項目の照会
活用シーン
- 01選別前にサステナビリティ関連フィードを取り込む
- 02後続処理用にDOIキーのレコードを保持する
- 03対象外項目の保存メタデータを減らす
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tiangong-ai/ agent-skills --skill sustainability-rss-fetchインストール後、Claude Code で/sustainability-rss-fetchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/config.example.jsonjournal.opmlreferences/input-model.mdoutput-rules.mdtime-range-rules.mdscripts/rss_subscribe.py詳細
Sustainability RSS Fetch
主な目標
- トピックでフィルタリングする前に、すべての RSS/Atom アイテムを SQLite に取り込みます。
entriesの主キーとしてdoiを使用します。- RSS メタデータを専用の DB ファイルに分離します。
- セマンティックなスクリーニング後、関連する行を保持し、関連しない行を DOI のみのレコードに整理します。
実行条件
- サステナビリティ関連のフィードをインポートし、取得したすべてのレコードを最初に永続化するリクエストを受けた場合。
- DB への取り込み後に、プロンプトベースのトピック審査を行うリクエストを受けた場合。
- 関連しない行を軽量な DOI のみのレコードに変換するリクエストを受けた場合。
- 下流の API/全文取得/要約処理に向けて、DOI をキーとする安定したストレージが必要な場合。
必須のワークフロー
- 実行環境と 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"
- 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
- エージェントのコンテキスト内で候補を審査します(正規表現だけに頼らず、セマンティックに判定します)。
topic_promptとユーザーの指示を使用します。- 選択した
candidate_idのリストを作成します。
- 選択した行を関連ありとしてマークし、選択されていない行を整理します。
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 のみのペイロードに整理されます。
設定可能なパラメーター
--dbSUSTAIN_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.mdreferences/output-rules.mdreferences/time-range-rules.md
アセット
assets/journal.opmlassets/config.example.json
スクリプト
scripts/rss_subscribe.py
コメント
Markdown 対応