feat(short): generación y render de Shorts vía shortsmith
Build & Deploy ResearchOwl / build-and-push (push) Successful in 9s

Añade /generate short_en y /short_spec. El pipeline genera un shot spec
con Haiku, verifica cada cifra, fecha y cita contra los chunks de la
sesión, lo renderiza en shortsmith y entrega el MP4 por Telegram junto
a un informe de claims.

- ShortsmithClient con sondeo y fallback al spec JSON si el render falla
- Contrato de plantillas obtenido de GET /templates, no codificado
- Comprobación de fundamento determinista, sin LLM
- outputs.published_url para enlazar el artículo de Ghost
- Normalización de comillas rectas a tipográficas (ver KNOWN-ISSUES.md)

Lo que no aparece en los chunks se contrasta contra el ejemplo del
prompt: si casa ahí es fuga, no invención, y se informa como tal. El
purgado de sesiones se lleva también su MP4.

La subida a YouTube queda fuera a propósito: fase 3.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
ChemaVX
2026-08-01 21:55:42 +00:00
co-authored by Claude Opus 5
parent 8b81ef87e4
commit 20c8d03aa7
27 changed files with 4350 additions and 23 deletions
+8
View File
@@ -24,6 +24,14 @@ MAX_PAGES_PER_SEARCH=5
REQUEST_DELAY=1.0 # seconds between requests (be polite)
MIN_CONTENT_LENGTH=200
# Shorts (shortsmith) — el renderizador vive en su propio namespace del cluster.
# Los valores por defecto ya apuntan al Service interno: sólo hace falta tocarlo
# para desarrollo local o para apagarlo.
SHORTSMITH_URL=http://shortsmith-svc.shortsmith.svc.cluster.local:8080
SHORTSMITH_TIMEOUT=600
SHORTSMITH_ENABLED=true # false = /generate short_en responde que está apagado
SHORTS_DIR=/data/shorts # los MP4 van a disco, nunca a SQLite
# Processing
CHUNK_SIZE=800
CHUNK_OVERLAP=100