Newsletter quotidienne
La Newsletter quotidienne est un pipeline d'exploitation d'inbox quotidienne local-first. Il récupère le matériel source, le normalise en un élément Markdown unique, laisse l'IA effectuer la compréhension/fusion/sélection/rédaction des événements, finalise les artefacts Markdown/HTML/PNG, enregistre la santé des sources et envoie éventuellement le digest complet à Feishu.
Quand l'utiliser
Utilisez cette compétence lorsque l'utilisateur demande :
- d'exécuter ou de vérifier le pipeline de newsletter IA quotidienne ;
- de déboguer des éléments source manquants, en retard ou dégradés ;
- d'inspecter la livraison Feishu ou les artefacts locaux envoyés ;
- de modifier la sortie de l'inbox quotidienne orientée lecteur ;
- d'examiner la santé du pipeline, le graphe de workflow, le graphe de tâches ou les invariants de régression ;
- de conditionner ce dépôt en tant que compétence d'agent publique.
N'utilisez pas cette compétence pour une rédaction de newsletter non liée, des conseils RSS génériques ou un scraping de contenu en direct en dehors de ce dépôt.
Entrées
- Racine du dépôt : l'extraction
daily-newsletter. - Registre des sources :
$PARKIO_HOME/_source management/sources.md. - Données d'exécution :
$PARKIO_HOME/_inbox/{raw,unprocessed,processed}. - Artefacts envoyés :
$PARKIO_HOME/001_daily newsletter/ai/. - Secrets : variables d'environnement ou
$PARKIO_HOME/_secrets/*. - Outils d'authentification/exécution optionnels : variables d'environnement X auth, cookies YouTube, WeWe RSS, content-toolkit, Chrome, MLX Whisper.
$PARKIO_HOME par défaut est ~/park-io.
Workflow
- Lisez
README.md,AGENTS.mdetGOTCHAS.mdavant de modifier le comportement. - Vérifiez l'état du dépôt git et conservez les modifications utilisateur non validées.
- Pour un diagnostic en lecture seule, commencez par les artefacts générés et les journaux avant de réexécuter les commandes de production.
- Pour une vérification publique, exécutez :
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
- Pour une exécution manuelle de production, utilisez le chemin par étapes :
./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)"
- Après toute modification orientée lecteur ou de routage, réexécutez les tests et au moins le validateur de graphe de workflow.
Sorties
processed/<YY-MM-DD>/run-report.jsonprocessed/receipts/feishu/*.jsonsent/YY-MM-DD.{md,html,png}sent/deep-YY-MM-DD.{md,html,png}lorsque des candidats profonds existentsent/product-radar-YY-MM-DD.{md,html,png}sent/daily-YY-MM-DD.{md,html,png}status.htmlet JSON de santé des sources pour la visibilité de l'opérateur
Sécurité
- Ne jamais imprimer ou valider les clés API, cookies, secrets de webhook Feishu, jetons Telegram ou valeurs X auth.
- N'envoyez pas de messages Feishu ou Telegram sauf si l'utilisateur demande explicitement la livraison ou que la tâche en cours est une vérification de livraison.
- Ne masquez pas les échecs de source comme "aucune mise à jour" ; utilisez
channel-health.py,run-report.jsonet les artefacts d'état. - Ne créez pas de fausses newsletters réussies lorsque le JSON IA ou la structure Markdown finale échoue.
- Ne déplacez pas le jugement de contenu des invites IA vers des seuils de script déterministes, sauf pour le filtrage grossier des déchets.
- Ne réécrivez pas le HTML ou le PNG séparément du Markdown ; le Markdown est la source unique orientée lecteur.
Invariants de régression
GOTCHAS.md est la source de vérité. Les invariants les plus importants sont :
- L'IA gère la fusion, le score, la classification, la sélection et la rédaction finale.
- Les échecs de sortie structurelle de l'IA stoppent l'exécution et écrivent des artefacts d'erreur.
- Les lectures profondes doivent être des sous-ensembles traçables de l'univers concis.
- Le Product Radar est une voie de produit distincte et est liée par le parapluie quotidien.
- La santé des sources reste dans l'état/rapport d'exécution/alertes, pas à l'intérieur du corps du digest consommateur.