mcpField
W
wow-digest

wow-digest

github.com/glebis生産性401141 回インストール1 日前に更新
リポジトリ

wow-digest について

wow-digestは、最近のニュースレターとTelegram投稿を処理し、関心事や最近の調査に基づいて注目項目を選ぶスキルです。選んだ項目をデイリーノートに追記し、プレビューやフィードバックにも対応します。

主な機能

  1. 01ニュースレターとTelegram投稿の取り込み
  2. 02リンクのみの内容の補完
  3. 03ノイズ除去と新規性の評価
  4. 04最近の候補の重複排除
  5. 05選定項目のデイリーノートへの追記
  6. 06人によるフィードバックの収集

活用シーン

  1. 01過去1日の注目情報の確認
  2. 02ノートを変更せずにダイジェストをプレビュー
  3. 03複数の情報源にある記事の重複回避
  4. 04関連性のフィードバックに基づく選定調整

インストール

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

$npx skills add https://github.com/glebis/claude-skills --skill wow-digest

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

同梱ファイル

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

requirements.txt
config/
sources.yaml
wow_prompt.txt
scripts/
enrich.py
feedback.py
ingest.py
salience_filter.py
wow_score.py

詳細

wow-digest

目的

過去24時間分のニュースレター(メール)とTelegramチャンネルの投稿を取得し、ノイズを除去します。ユーザーの関心事や最近の調査内容を踏まえて、予想外の発見としての価値を評価し、選んだ3〜7件のWOW項目を今日のデイリーノートに追記します。

ワークフロー

  1. scripts/ingest.py を実行して、すべてのソースから候補を取得し、形式を統一します
  2. scripts/enrich.py を実行して、リンクのみのニュースレター(LinkedIn、beehiiv、Substack)の全文を取得します
  3. scripts/salience_filter.py を実行して、明らかなノイズ(マーケティング、支払い、あいさつ)を除外します
  4. フィルタリング済みの候補に対して scripts/wow_score.py を実行し、WOW項目を評価して選択します
  5. 選択した項目を、今日のデイリーノートの ## Reading の下に追記します
  6. 再実行に備えて、候補の生データを .wow-eval/candidates/YYYYMMDD.jsonl に保存します
  7. 処理済みのニュースレールメールをGWS経由でアーカイブします
  8. 評価期間中:scripts/feedback.py を実行して、人間による判定を収集します

手動実行

python3 scripts/ingest.py --days 1 --output /tmp/wow-candidates.jsonl
python3 scripts/enrich.py --input /tmp/wow-candidates.jsonl --output /tmp/wow-enriched.jsonl
python3 scripts/salience_filter.py --input /tmp/wow-enriched.jsonl --output /tmp/wow-filtered.jsonl
python3 scripts/wow_score.py --input /tmp/wow-filtered.jsonl --output /tmp/wow-selected.json
# Then the skill appends to daily note and archives emails

ドライランモード

ユーザーが /wow-digest --dry-run または「ダイジェストをプレビュー」と指示した場合は、パイプライン全体を実行しますが、次のようにします:

  1. デイリーノートには追記しないでください
  2. メールをアーカイブしないでください
  3. 選択した項目とスコア、フックを、会話内に直接表示してください

これにより、副作用を発生させずに、追記される内容をユーザーがプレビューできます。

コンテキストの取得元

評価プロンプトでは、vault(~/Brains/brain/)から次の3つのコンテキスト情報を使用します:

  • {focus} — My Focus.md の ## Current、## Base、## Primary セクションから取得します(## Nice to have で終了)。評価器にユーザーが今何を重視しているかを伝えます。
  • {research} — ai-research/*.md ファイル(過去30日分)から取得し、ファイル名(YYYYMMDD-topic.md)と research_topic: フロントマターを解析します。ユーザーがすでに調査した内容を示します。
  • {recent_topics} — Daily/YYYYMMDD.md の見出し(過去7日分)から取得し、## do と ## log は除外します。最近のデイリーノートのテーマを示します。

これらのファイルが存在しなくても評価は機能しますが、パーソナライズの精度は低下します。

重複排除

取り込み時に、.wow-eval/candidates/*.jsonl の過去7日分と照合し、title|source_name のSHA-256ハッシュ(大文字と小文字を区別しない)を使って重複を排除します。複数のチャンネルで共有された同じ記事や、ニュースレターで再送された記事は重複して表示されません。スキップするには、ingest.py に --no-dedup を渡します。

設定

メールパターンやTelegramチャンネルを追加または削除するには、config/sources.yaml を編集します。 評価プロンプトを調整するには、config/wow_prompt.txt を編集します。

出力形式

評価後、今日のデイリーノート(Daily/YYYYMMDD.md)の - - - 区切りより上、既存の内容の下に追記します:

## Reading

- **[Title]** (Source) — hook explaining WHY it's surprising
- **[Title]** (Source) — hook
...

_WOW digest · N candidates → M selected · YYYY-MM-DD_

重要:必ず date +"%Y%m%d" を実行して今日の日付を取得してください。決して日付を推測しないでください。

デイリーノートにすでに ## Reading がある場合は、重複するセクションを作成せず、そこに項目を追記してください。

アーカイブ

デイリーノートへの追記後、処理済みのニュースレターのメールをアーカイブします:

  1. メール候補からすべての message_id の値を収集します
  2. GWSのbatchModifyを実行して、INBOXラベルを削除します
gws gmail users messages batchModify \
  --params '{"userId":"me"}' \
  --json '{"ids":["ID1","ID2",...],"removeLabelIds":["INBOX"]}'

評価モード(最初の2週間)

評価期間中は、自動アーカイブしないでください。代わりに、次の手順を実行します:

  1. 通常どおり、取り込みと評価を実行します
  2. 選択した項目をタイトルだけでなく、全文とともにユーザーに提示します。各項目について、次の内容を表示します:
    • タイトルとソース
    • スニペット(実際の内容の先頭300〜500文字)
    • LLMのフックと challenged_assumption
    • WOWスコアの内訳(関連性、意外性、橋渡しの価値、予測可能性)
  3. ユーザーが内容を読めるように、まずすべての項目を1つのテキストブロックにまとめて表示します
  4. 次にAskUserQuestionで「実際にWOWでしたか?」と尋ね、選択肢としてwow / meh / noise / already_knewを提示します
  5. scripts/feedback.py でフィードバックを記録します
  6. 現在のフィードバック統計を表示します
  7. ユーザーの確認後にのみアーカイブします

重要:ユーザーはタイトルだけではWOWかどうかを判断できません。必ずスニペットの内容を表示してください。 スニペットが空、または短すぎる場合は、提示する前にGWS経由でメール本文全体を取得してください。

評価モードが有効かどうかを確認するには:

  • .wow-eval/feedback.jsonl のエントリが50件未満 → 評価モード
  • 50件以上 → 自動モード(確認せずにアーカイブ)

コメント