fix(short): los textos ilegibles se avisaban con el render ya pagado
Build & Deploy ResearchOwl / build-and-push (push) Successful in 1m18s
Build & Deploy ResearchOwl / build-and-push (push) Successful in 1m18s
La nota que teníamos era falsa: los avisos `severe` de shortsmith SÍ llegan a
un humano — el informe de Telegram los saca en rojo. Lo que pasa es que llegan
colgados del render TERMINADO, así que hacerles caso significa editar el spec a
mano y pagar un segundo. Por eso nadie actuó nunca.
`x-fits` tampoco podía ser la comprobación, y a propósito: es guía blanda que el
propio ejemplo de referencia se salta por uno o tres caracteres viéndose bien.
Parar ahí sería gritar con specs buenos, y un aviso que grita se ignora — que es
justo cómo sobrevivieron los graves. Así que shortsmith publica desde 289d50e un
segundo número medido por campo, `x-fits-hard`, y esto lo comprueba antes de
gastar el render: cuesta un reintento del modelo en vez de un render. El mismo
movimiento que hizo `MAX_CUE_CHARS` con los captions en e32c59f.
Auditado contra los 17 short_en de producción: OCHO llevan al menos un texto que
se dibuja ilegible.
- El ya conocido, Cash-Landrum: `ALL THREE DEVELOPED SYMPTOMS CONSISTENT WITH
RADIATION EXPOSURE`, 36 px pedidos y 20 dibujados. Salta con 63 caracteres
contra un presupuesto de 61 — así de vertical es la curva pegada al muro.
- El que nadie había visto es peor y más común: el CARTEL DE CIERRE.
`counter_close.lines` pide 110 px y se dibujó a 28 en el peor caso, y por
debajo de 64 en cinco de los ocho. Es la llamada a la acción, y en un tercio
del catálogo es el texto más pequeño del fotograma.
- Y la tolerancia aguanta sobre datos reales: `STILL UNEXPLAINED` encoge de 110
a 84 px y no se avisa, que es lo correcto.
El desempate entre intentos pasa a contar averías —gancho y texto ilegible—
antes que segundos, por la misma razón que en 6d9b602: una reescritura que
arregla un rótulo pero se pasa un segundo perdía contra la que no lo arreglaba.
Un campo sin presupuesto propio (`Bar.unit`, que se dibuja dentro de la cadena
de `value_label`) se salta a conciencia: reconstruir esa cadena aquí pediría
conocer el formato de la plantilla, que es lo que este repo no sabe ni debe.
Y contra un shortsmith anterior a 289d50e esto se calla — no puede inventarse el
número —, así que de que el contrato traiga el campo se encarga
test_shortsmith_live.py, que es quien habla con el servicio.
Suite: 274 pasan.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -280,8 +280,34 @@ second long would lose to the attempt that opened with a date, and the note woul
|
||||
decoration.
|
||||
|
||||
Still open on the generator side: `document_quote` is also weak as the *second* shot for
|
||||
the same reason, and nothing yet reads the `severe: true` auto-fit warnings shortsmith
|
||||
already emits (one real caption was drawn at 20 px).
|
||||
the same reason.
|
||||
|
||||
### Text drawn unreadable — **done 2026-09-01**
|
||||
|
||||
The `severe: true` auto-fit warnings were never the problem we had written down. They
|
||||
*do* reach a human: the Telegram report prints them in red with "quedaron ILEGIBLES".
|
||||
They just arrive attached to the **finished render**, so acting on one means editing the
|
||||
spec by hand and paying for a second one — which is why nobody ever did.
|
||||
|
||||
`x-fits` could not be the check either, and deliberately so: it is soft guidance the
|
||||
reference example itself exceeds by a character or three while looking right. A check
|
||||
there would fire on good specs and get ignored, which is how the genuinely bad ones
|
||||
survived. So shortsmith now publishes a second measured number per field (`289d50e`):
|
||||
`x-fits-hard`, the length past which auto-fit's shrink turns severe. `unreadable_notes()`
|
||||
checks it before the render, at the cost of one model retry instead of one render —
|
||||
the same move `MAX_CUE_CHARS` made for captions in `e32c59f`.
|
||||
|
||||
Audited against the seventeen `short_en` in production: **eight carry at least one text
|
||||
that is drawn unreadable.** The one already known — Cash-Landrum's
|
||||
`ALL THREE DEVELOPED SYMPTOMS CONSISTENT WITH RADIATION EXPOSURE`, 36 px requested and
|
||||
20 px drawn — is flagged at 63 characters against a budget of 61, which is how steep the
|
||||
curve is near the wall. The one nobody had noticed is worse and more common: the
|
||||
**closing card**, `counter_close.lines`, asks for 110 px and was drawn at **28** in the
|
||||
worst case and under 64 in five of the eight. That is the call to action, and in a third
|
||||
of the catalogue it is the smallest type on the frame.
|
||||
|
||||
The tolerance holds on real data too: `STILL UNEXPLAINED` is shrunk 110 → 84 px and is
|
||||
correctly left alone.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user