Communitygithub.com

zinan92/daily-newsletter

本地優先的每日收件匣管線:擷取來源摘要,執行 AI 篩選與撰寫,產生 Markdown/HTML/PNG,追蹤來源健康狀態,並發送飛書回條。

daily-newsletter 是什麼?

Daily Newsletter 是一條以本地端為優先的「每日收件匣」操作管線,旨在協助開發者或代理程式自動化處理每日資訊彙總流程。它能先從多種來源(如 RSS、X 認證、YouTube cookie、WeWe RSS)擷取原始資料,並正規化為統一的 Markdown 格式,接著交由 AI 進行事件理解、合併、篩選與最終撰寫,產出 Markdown/HTML/PNG 成品。同時,它會記錄每個來源的健康狀態(透過 `channel-health.py` 與 `run-report.json`),並可選擇性地將完整摘要發送至飛書(Lark),確保團隊能即時收到高品質的每日簡報。此工具支援 `~/park-io` 路徑結構,並提供完整的回歸測試與工作流程驗證腳本,適合用於調試延遲、缺失項目、飛書傳送問題,或封裝為公開代理技能。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add zinan92/daily-newsletter

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Daily Newsletter

Daily Newsletter 是一條以本地端為優先的「每日收件匣」操作管線。它會擷取來源素材、正規化為單一項目的 Markdown,讓 AI 執行事件理解/合併/篩選/撰寫,最終產出 Markdown/HTML/PNG 成品,記錄來源健康狀態,並可選擇性地將完整摘要傳送至飛書。

使用時機

當使用者要求以下事項時,請使用此技能:

  • 執行或驗證每日 AI 新聞簡報管線;
  • 偵錯遺失、延遲或品質降級的來源項目;
  • 檢查飛書傳送結果或本地已發送的成品;
  • 修改面向讀者的每日收件匣輸出;
  • 檢視管線健康狀態、工作流程圖、任務圖或回歸不變量;
  • 將此儲存庫打包為公開代理技能。

請勿在此儲存庫範圍內使用此技能處理不相關的新聞稿撰寫、通用 RSS 建議或即時內容擷取。

輸入

  • 儲存庫根目錄:daily-newsletter 檢出路徑。
  • 來源註冊檔:$PARKIO_HOME/_source management/sources.md。
  • 執行時期資料:$PARKIO_HOME/_inbox/{raw,unprocessed,processed}。
  • 已發送成品:$PARKIO_HOME/001_daily newsletter/ai/。
  • 秘密:環境變數或 $PARKIO_HOME/_secrets/*。
  • 可選的認證/執行工具:X 認證環境變數、YouTube cookie、WeWe RSS、content-toolkit、Chrome、MLX Whisper。

預設 $PARKIO_HOME 為 ~/park-io。

工作流程

  1. 在變更行為前,請先閱讀 README.md、AGENTS.md 與 GOTCHAS.md。
  2. 檢查 Git 狀態,並保留使用者尚未提交的更動。
  3. 針對唯讀診斷,請先從已產生的成品與日誌開始,再重新執行正式指令。
  4. 進行公開驗證時,請執行:
python3 -m pytest -q
python3 scripts/task_graph_validate.py
python3 scripts/workflow_graph_validate.py
python3 scripts/workflow_graph_dry_run.py
python3 scripts/n8n_import_diff.py
  1. 若要執行手動正式執行,請使用分階段路徑:
./fetch-all.sh
python3 stages/to_md/run.py
BATCH=$(python3 stages/coarse_filter/run.py | tail -1)
PARKIO_BATCH_ID=$BATCH python3 build-digest.py
PARKIO_BATCH_ID=$BATCH python3 stages/archive/run.py
PARKIO_BATCH_ID=$BATCH python3 finalize-local.py
python3 build-product-radar.py --date "$(date +%F)"
python3 build-daily-bundle.py --date "$(date +%F)"
python3 reader_quality.py --date "$(date +%F)"
python3 send-feishu-digest.py --date "$(date +%F)"
  1. 在任何影響讀者或路由的變更後,請重新執行測試,並至少執行工作流程圖驗證工具。

輸出

  • processed/<YY-MM-DD>/run-report.json
  • processed/receipts/feishu/*.json
  • sent/YY-MM-DD.{md,html,png}
  • sent/deep-YY-MM-DD.{md,html,png}(當有深度候選項目時)
  • sent/product-radar-YY-MM-DD.{md,html,png}
  • sent/daily-YY-MM-DD.{md,html,png}
  • status.html 與來源健康 JSON,供操作者檢視

安全性

  • 絕對不要印出或提交 API 金鑰、Cookie、飛書 Webhook 密鑰、Telegram 權杖或 X 認證值。
  • 除非使用者明確要求傳送,或當前任務是傳送驗證,否則請勿傳送飛書或 Telegram 訊息。
  • 請勿將來源失敗隱藏為「無更新」;請使用 channel-health.py、run-report.json 與狀態成品。
  • 當 AI JSON 或最終 Markdown 結構失敗時,請勿偽造成功的新聞簡報。
  • 請勿將 AI 提示中的內容判斷移入確定性的指令碼門檻,粗垃圾過濾除外。
  • 請勿分別改寫 HTML 或 PNG;Markdown 是唯一面向讀者的原始素材。

回歸不變量

GOTCHAS.md 是最終權威。最重要的不變量包括:

  • AI 負責合併、評分、分類、篩選與最終撰寫。
  • 結構性 AI 輸出失敗會中止執行並寫入錯誤成品。
  • 深度閱讀必須是簡要宇宙中可追蹤的子集。
  • Product Radar 是獨立的產品軌道,並由每日總覽連結。
  • 來源健康狀態應留在 status/run-report/alerts 中,而非置於消費者摘要正文內。

相關技能