Communitygithub.com

zinan92/boletín-diario

Pipeline de bandeja de entrada diaria local-first: obtén fuentes, ejecuta selección/redacción con IA, genera Markdown/HTML/PNG, monitorea salud de fuentes y envía recibos a Feishu.

¿Qué es boletín-diario?

Este skill implementa un pipeline operativo completo para una bandeja de entrada diaria (Daily Inbox) que prioriza el entorno local. Su función principal es extraer material de fuentes registradas, normalizarlo a un formato Markdown unificado, y luego utilizar inteligencia artificial para realizar tareas de comprensión de eventos, fusión, selección y redacción. El sistema produce artefactos finales en Markdown, HTML y PNG, registra la salud de cada fuente y opcionalmente envía el resumen completo a Feishu. Está diseñado para agentes como Claude Code y es útil para desarrolladores y operadores que necesitan ejecutar, depurar o verificar el pipeline de noticias, inspeccionar artefactos enviados, revisar la salud del pipeline o empaquetar el repositorio como un skill público. El skill se basa en una estructura de etapas bien definidas (fetch, markdown, coarse filter, digest building, archive, finalización local) y utiliza un conjunto de scripts y configuraciones que garantizan la integridad del flujo de trabajo.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add zinan92/daily-newsletter

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Boletín Diario

Boletín Diario es un pipeline operativo de bandeja de entrada diaria que prioriza el entorno local. Obtiene material fuente, lo normaliza a un Markdown unificado por ítem, permite que la IA realice comprensión/fusión/selección/redacción de eventos, finaliza artefactos en Markdown/HTML/PNG, registra la salud de las fuentes y opcionalmente envía el resumen completo a Feishu.

Cuándo Usarlo

Usa este skill cuando el usuario solicite:

  • ejecutar o verificar el pipeline del boletín diario con IA;
  • depurar elementos fuente faltantes, retrasados o degradados;
  • inspeccionar la entrega en Feishu o los artefactos locales enviados;
  • cambiar la salida del boletín diario orientada al lector;
  • revisar la salud del pipeline, el grafo de trabajo, el grafo de tareas o las invariantes de regresión;
  • empaquetar este repositorio como un skill de agente público.

No uses este skill para redacción de boletines no relacionados, consejos genéricos sobre RSS o extracción de contenido en vivo fuera de este repositorio.

Entradas

  • Raíz del repositorio: el checkout de daily-newsletter.
  • Registro de fuentes: $PARKIO_HOME/_source management/sources.md.
  • Datos de ejecución: $PARKIO_HOME/_inbox/{raw,unprocessed,processed}.
  • Artefactos enviados: $PARKIO_HOME/001_daily newsletter/ai/.
  • Secretos: variables de entorno o $PARKIO_HOME/_secrets/*.
  • Herramientas opcionales de autenticación/ejecución: variables de autenticación de X, cookies de YouTube, WeWe RSS, content-toolkit, Chrome, MLX Whisper.

El valor por defecto de $PARKIO_HOME es ~/park-io.

Flujo de Trabajo

  1. Lee README.md, AGENTS.md y GOTCHAS.md antes de cambiar el comportamiento.
  2. Verifica el estado de git y conserva los cambios sin commit del usuario.
  3. Para diagnósticos de solo lectura, comienza con los artefactos generados y los registros antes de volver a ejecutar comandos de producción.
  4. Para verificación pública, ejecuta:
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 una ejecución manual de producción, usa la ruta por 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. Después de cualquier cambio orientado al lector o de enrutamiento, vuelve a ejecutar las pruebas y al menos el validador del grafo de trabajo.

Salidas

  • 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} cuando existen candidatos profundos
  • sent/product-radar-YY-MM-DD.{md,html,png}
  • sent/daily-YY-MM-DD.{md,html,png}
  • status.html y JSON de salud de fuentes para visibilidad del operador

Seguridad

  • Nunca imprimas ni hagas commit de claves API, cookies, secretos de webhook de Feishu, tokens de Telegram o valores de autenticación de X.
  • No envíes mensajes a Feishu o Telegram a menos que el usuario lo solicite explícitamente para entrega o la tarea actual sea una verificación de entrega.
  • No ocultes fallos de fuentes como "sin actualizaciones"; usa channel-health.py, run-report.json y los artefactos de estado.
  • No crees boletines exitosos falsos cuando fallen el JSON de IA o la estructura final de Markdown.
  • No muevas el juicio de contenido de los prompts de IA a umbrales deterministas de scripts, excepto para el filtrado grosero de basura.
  • No reescribas HTML o PNG por separado del Markdown; Markdown es la única fuente orientada al lector.

Invariantes de Regresión

GOTCHAS.md es la fuente de verdad. Las invariantes más importantes son:

  • La IA es responsable de la fusión, puntuación, clasificación, selección y redacción final.
  • Los fallos estructurales en la salida de IA detienen la ejecución y escriben artefactos de error.
  • Las lecturas profundas deben ser subconjuntos trazables del universo breve.
  • Product Radar es una línea de producto separada y está enlazada por el paraguas diario.
  • La salud de las fuentes permanece en estado/informe de ejecución/alertas, no dentro del cuerpo del resumen para el consumidor.

Skills relacionados