Daily Newsletter
Daily Newsletter é um pipeline operacional de Caixa de Entrada Diária local-first. Ele busca material de fontes, normaliza para um Markdown por item, permite que a IA realize entendimento/mesclagem/seleção/redação de eventos, finaliza artefatos em Markdown/HTML/PNG, registra a saúde das fontes e, opcionalmente, envia o resumo completo para o Feishu.
Quando Usar
Use este skill quando o usuário solicitar:
- executar ou verificar o pipeline diário de newsletter com IA;
- depurar itens de fonte ausentes, atrasados ou degradados;
- inspecionar a entrega via Feishu ou artefatos enviados localmente;
- alterar a saída da Caixa de Entrada Diária voltada ao leitor;
- revisar a saúde do pipeline, grafo de fluxo de trabalho, grafo de tarefas ou invariantes de regressão;
- empacotar este repositório como um skill público de agente.
Não use este skill para redação de newsletter não relacionada, conselhos genéricos sobre RSS ou raspagem de conteúdo ao vivo fora deste repositório.
Entradas
- Raiz do repositório: o checkout de
daily-newsletter. - Registro de fontes:
$PARKIO_HOME/_source management/sources.md. - Dados de execução:
$PARKIO_HOME/_inbox/{raw,unprocessed,processed}. - Artefatos enviados:
$PARKIO_HOME/001_daily newsletter/ai/. - Segredos: variáveis de ambiente ou
$PARKIO_HOME/_secrets/*. - Ferramentas opcionais de autenticação/execução: env X auth, cookies do YouTube, WeWe RSS, content-toolkit, Chrome, MLX Whisper.
O padrão de $PARKIO_HOME é ~/park-io.
Fluxo de Trabalho
- Leia
README.md,AGENTS.mdeGOTCHAS.mdantes de alterar o comportamento. - Verifique o estado do git e preserve alterações não commitadas do usuário.
- Para diagnóstico somente leitura, comece pelos artefatos gerados e logs antes de reexecutar comandos de produção.
- Para verificação pública, execute:
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
- Para uma execução manual de produção, use o caminho em etapas:
./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)"
- Após qualquer alteração voltada ao leitor ou de roteamento, reexecute os testes e pelo menos o validador do grafo de fluxo de trabalho.
Saídas
processed/<YY-MM-DD>/run-report.jsonprocessed/receipts/feishu/*.jsonsent/YY-MM-DD.{md,html,png}sent/deep-YY-MM-DD.{md,html,png}quando houver candidatos a leitura aprofundadasent/product-radar-YY-MM-DD.{md,html,png}sent/daily-YY-MM-DD.{md,html,png}status.htmle JSON de saúde das fontes para visibilidade do operador
Segurança
- Nunca imprima ou faça commit de chaves de API, cookies, segredos de webhook do Feishu, tokens do Telegram ou valores de autenticação X.
- Não envie mensagens para o Feishu ou Telegram a menos que o usuário peça explicitamente a entrega ou a tarefa atual seja uma verificação de entrega.
- Não oculte falhas de fonte como "sem atualizações"; use
channel-health.py,run-report.jsone artefatos de status. - Não crie newsletters de sucesso falsas quando o JSON da IA ou a estrutura final do Markdown falhar.
- Não mova o julgamento de conteúdo dos prompts da IA para limites determinísticos de script, exceto para filtragem grosseira de lixo.
- Não reescreva HTML ou PNG separadamente do Markdown; o Markdown é a única fonte voltada ao leitor.
Invariantes de Regressão
GOTCHAS.md é a fonte da verdade. As invariantes mais importantes são:
- A IA é responsável pela mesclagem, pontuação, classificação, seleção e redação final.
- Falhas estruturais na saída da IA interrompem a execução e escrevem artefatos de erro.
- Leituras aprofundadas devem ser subconjuntos rastreáveis do universo breve.
- O Product Radar é uma linha de produto separada e é vinculado pelo guarda-chuva diário.
- A Saúde das Fontes permanece em status/run-report/alertas, não dentro do corpo do resumo do consumidor.