Communitygithub.com

zinan92/daily-newsletter

Pipeline de Caixa de Entrada Diária local-first: buscar fontes, realizar seleção/redação com IA, finalizar artefatos em Markdown/HTML/PNG, monitorar a saúde das fontes e enviar recibos para o Feishu.

O que é daily-newsletter?

Este skill implementa um pipeline operacional de 'Caixa de Entrada Diária' (Daily Inbox) que é executado localmente. Ele começa buscando materiais de fontes configuradas, normaliza os itens para um formato Markdown padronizado e, em seguida, utiliza IA para realizar entendimento de eventos, mesclagem, seleção e redação do conteúdo final. O pipeline gera artefatos finais nos formatos Markdown, HTML e PNG, registra a saúde de cada fonte (source health) e, opcionalmente, envia o resumo completo para o Feishu (plataforma de comunicação). É projetado para ser executado pelo usuário sob demanda, sendo útil para depuração de pipelines, inspeção de entregas, alteração de saídas voltadas ao leitor e revisão da saúde geral do sistema. O skill suporta ambientes com ferramentas como X auth, YouTube cookies, WeWe RSS, content-toolkit, Chrome e MLX Whisper, e seu diretório base padrão é `~/park-io`.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add zinan92/daily-newsletter

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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

  1. Leia README.md, AGENTS.md e GOTCHAS.md antes de alterar o comportamento.
  2. Verifique o estado do git e preserve alterações não commitadas do usuário.
  3. Para diagnóstico somente leitura, comece pelos artefatos gerados e logs antes de reexecutar comandos de produção.
  4. 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
  1. 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)"
  1. 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.json
  • processed/receipts/feishu/*.json
  • sent/YY-MM-DD.{md,html,png}
  • sent/deep-YY-MM-DD.{md,html,png} quando houver candidatos a leitura aprofundada
  • sent/product-radar-YY-MM-DD.{md,html,png}
  • sent/daily-YY-MM-DD.{md,html,png}
  • status.html e 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.json e 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.

Habilidades Relacionadas