fix(short): el primer plano gastaba el gancho en la fecha
El gancho de un Short es lo que se DIBUJA, no solo lo que se dice. El prompt llevaba la mitad hablada desde 4b («the first line is the whole hook») y no tenía nada sobre la mitad vista. De los diecisiete short_en generados, once abren mal: diez ponen la fecha en el titular —el texto más grande del vídeo— mientras el subline de debajo ya lleva el sitio, y el output 131 abre con document_quote. Medido sobre el renderizador a 5,5 s de plano: las cinco plantillas con `headline` lo ponen a tinta plena en 0,33-0,40 s, y shortsmith lo garantiza a cualquier duración desde db1ac7e. Las tres que no lo tienen dejan la banda superior del fotograma al nivel del fondo TODO el plano —su texto se escribe a máquina más abajo y no está entero hasta 2,6-2,8 s—. Con 6,9 s de visionado medio, abrir con una de esas regala el tercio de la ventana en el que se decide todo. La costura es `headline`, preguntada al esquema y no a una lista de nombres: una plantilla nueva de shortsmith con titular podrá abrir sin tocar este repo, y una sin él no podrá. El mismo pacto que el resto del contrato. Y `_closer_to_target` ordenaba SOLO por segundos, lo que hacía decorativo el aviso nuevo: una reescritura que arreglaba el titular pero se pasaba un segundo perdía contra el intento que abría con una fecha. Ahora el gancho va delante — los segundos son un gradiente, el gancho es binario. Comprobado contra los 17 specs reales de producción: avisa de once y de ninguno más. Los que pasan son los titulares que se quieren (62 CHILDREN, 23 HELICOPTERS, RELEASE 05). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -256,6 +256,33 @@ Available any time, zero researchowl changes, because the contract is fetched li
|
||||
hook → evidence → unresolved question → CTA arc. Costs one commit, no deploy risk
|
||||
beyond a prompt change.
|
||||
|
||||
### The visual hook — **done 2026-09-01**
|
||||
|
||||
The narration hook was already in the prompt (§3b, "the first line is the whole hook").
|
||||
What nobody had written down is that **the hook is also what is drawn**, and the specs
|
||||
show it: of the seventeen `short_en` generated, eleven open badly. Ten spend the
|
||||
headline — the largest text in the video — on a date, while the `subline` right below
|
||||
already carries the place; one (output 131) opens with `document_quote`.
|
||||
|
||||
Measured on the renderer at a 5.5 s shot: the five templates with a `headline` prop put
|
||||
it at full ink in **0.33–0.40 s**, and shortsmith guarantees that at any shot length
|
||||
since `db1ac7e`. The three without one leave the top band of the frame at background
|
||||
level for the *whole shot* — their content types in lower down and is not complete until
|
||||
**2.6–2.8 s**. With an average view of 6.9 s, opening with one of those spends a third
|
||||
of the window on a frame that has not said anything.
|
||||
|
||||
So the seam is `headline`, asked of the schema rather than of a hardcoded list: a new
|
||||
shortsmith template with a headline may open a video, one without may not, and neither
|
||||
case needs a change here. Prompt §3c states both halves; `opening_notes()` in
|
||||
`spec_contract.py` enforces them as editorial notes, and `_closer_to_target` now ranks
|
||||
the hook above the duration — without that, a rewrite that fixed the headline but ran a
|
||||
second long would lose to the attempt that opened with a date, and the note would be
|
||||
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).
|
||||
|
||||
---
|
||||
|
||||
## Implementation order
|
||||
|
||||
Reference in New Issue
Block a user