Daily Newsletter
Daily Newsletterは、ローカルファーストのDaily Inbox運用パイプラインです。ソース素材を取得し、1アイテム1Markdownに正規化し、AIにイベント理解・マージ・選択・執筆を実行させ、Markdown/HTML/PNGアーティファクトを最終化し、ソースヘルスを記録、必要に応じて完全なダイジェストをFeishuに送信します。
使用タイミング
このスキルは、ユーザーが以下のことを依頼した場合に使用します:
- 毎日のAIニュースレターパイプラインを実行または検証する
- 欠落、遅延、品質低下したソースアイテムをデバッグする
- Feishu配信またはローカルの送信済みアーティファクトを検査する
- 読み手向けDaily Inboxの出力を変更する
- パイプラインの健全性、ワークフローグラフ、タスクグラフ、リグレッション不変条件をレビューする
- このリポジトリを公開エージェントスキルとしてパッケージングする
このリポジトリ外での無関係なニュースレターのコピーライティング、汎用的な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です。
ワークフロー
- 動作を変更する前に、
README.md、AGENTS.md、GOTCHAS.mdを読む。 - gitの状態を確認し、未コミットのユーザー変更を保持する。
- 読み取り専用の診断の場合は、生成されたアーティファクトとログから開始し、本番コマンドを再実行する前に行う。
- 公開検証の場合は、以下を実行:
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
- 手動本番実行の場合は、ステージングされたパスを使用:
./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)"
- 読み手向けまたはルーティング変更後は、テストと少なくともワークフローグラフバリデーターを再実行する。
出力
processed/<YY-MM-DD>/run-report.jsonprocessed/receipts/feishu/*.jsonsent/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、Feishu webhookシークレット、Telegramトークン、X認証値を決して出力したりコミットしたりしないでください。
- ユーザーが明示的に配信を依頼した場合、または現在のタスクが配信検証である場合を除き、FeishuやTelegramメッセージを送信しないでください。
- ソースの障害を「更新なし」として隠蔽しないでください。
channel-health.py、run-report.json、ステータスアーティファクトを使用してください。 - AI JSONまたは最終Markdown構造が失敗した場合に、偽の成功したニュースレターを作成しないでください。
- AIプロンプトからのコンテンツ判断を、粗いガベージフィルタリング以外の決定論的スクリプトしきい値に移行しないでください。
- HTMLやPNGをMarkdownとは別に書き換えないでください。Markdownが唯一の読み手向けソースです。
リグレッション不変条件
GOTCHAS.mdが真実のソースです。最も重要な不変条件は以下の通りです:
- AIがマージ、スコアリング、分類、選択、最終執筆を所有します。
- 構造的なAI出力の失敗は実行を停止し、エラーアーティファクトを書き出します。
- 深掘り記事は、簡潔なユニバースのトレース可能なサブセットでなければなりません。
- Product Radarは独立したプロダクトレーンであり、日次傘ダイジェストによってリンクされます。
- ソースヘルスはstatus/run-report/alertsに残り、消費者向けダイジェスト本文には挿入されません。