Video de hallazgo
El producto es el hallazgo, no el sitio web. El video muestra el material real que lo demuestra, grande y claro, mantiene una cosa constante para que el espectador vea qué cambió, y termina con una pregunta que la gente responde en los comentarios. El sitio aparece solo al final, como fuente.
Surgió a partir del clip satelital de Cluj (mismo lugar, 1968 → 2025, imágenes a pantalla completa, una etiqueta de año, dos líneas, sin sitio web), que funcionó mucho mejor que navegar por el sitio.
Qué entregas
- Dos cortes, 1080×1920, 30 fps, H.264 + AAC, 15–25 s: A abre con la pregunta o la primera imagen y se repite; B abre en frío con el payoff. Carátulas para ambos.
post.txt: archivos y especificaciones, notas de publicación, la tabla de afirmaciones (cada número y línea en pantalla → su archivo fuente o URL), créditos de imágenes, fuentes de sonido. Sin texto de publicación a menos que el usuario lo solicite (los agentes no redactan publicaciones).- Los videos en una carpeta fuera del repositorio (
~/Videos/<project>-finding-<date>/); el storyboard, guiones y recortes de material enreports/finding-<date>/del proyecto, con un README: qué hay, dónde está el material multimedia, qué necesitan los guiones. - Publicar es trabajo del usuario: nunca publicar por él.
Flujo de trabajo: tres aprobaciones baratas antes del render largo
- El hallazgo. Enumera 2–4 candidatos de hallazgo de los datos del propio proyecto, cada uno con la tensión que conlleva y su denominador. Elige el que tenga tirón (dinero, la ciudad, una molestia compartida). Verifica cada número contra los datos, no contra la página que los resume.
- El material. Para el hallazgo, encuentra la cosa real más vívida que lo muestre: una captura de menú guardada, un cuadro satelital, un documento, una foto, los datos mismos como gráfico. Anota los derechos de cada pieza (ver
references/craft.md, Material). Los recortes se mantienen exactamente como se capturaron: sin retoques, sin precios añadidos. - Verificación de historia (aprobación 1). Una tabla de tiempos: tiempo, qué llena el encuadre, el título, el sonido y la afirmación que hace cada tiempo con su fuente. Nombra la constante (lo que permanece igual mientras el resto cambia) y el dispositivo (la única idea que podrías decir en una oración). Espera el sí o los cambios del usuario.
- Verificación visual (aprobación 2). Usa el diseño actual de la página: lee sus colores, tipo y estilo de gráfico desde el código fuente del sitio cada vez, ya que las páginas se rediseñan (2026-11-06). Renderiza 2–3 fotogramas a tamaño completo (
frames.py --stills, oseek_capture.mjs ... stills) y muéstralos. Espera un pulgar arriba por fotograma. - Storyboard (aprobación 3). Dibújalo con
scripts/storyboard.py: un fotograma clave por tiempo en proporciones reales, con la hora, el sonido y la transición al siguiente tiempo. Muéstralo y espera un sí. El usuario solicitó esta verificación: no renderizar el video antes (2026-11-06). - Construcción. Renderiza, luego ejecuta las verificaciones a continuación y revisa cada hoja tú mismo.
- Entrega.
post.txt, tablero, e informa al usuario lo que no pudiste verificar (al menos sonido de oído) y que la retención de 2 segundos, el tiempo de visualización y los comentarios son el veredicto real.
Omite una aprobación solo cuando el usuario lo diga para este video.
Renderizadores
Elige según el material; todos escriben fotogramas PNG 1080×1920 y codifican con tv-range BT.709 yuv420p.
| Material | Renderizador | Cómo |
|---|---|---|
| Fotos, escaneos, cuadros satelitales, recortes de documentos | scripts/frames.py (del clip satelital) | un frame_fn(t) de Python que compone imágenes a pantalla completa, shade_top detrás de los títulos, overlay/text para títulos; synth para eventos de sonido; render() codifica |
| Un gráfico o un número que se mueve | una página HTML con window.seek(t) (el método de gráfico a continuación) + scripts/seek_capture.mjs | node seek_capture.mjs <page.html> <out> stills para fotogramas de verificación, luego fotogramas para el video; codifica con ffmpeg como en frames.encode |
| Una escena ilustrada (ambiente, una metáfora) | opcional: cth9191/animate (MIT), una habilidad de terceros | preguntar antes de instalarlo |
El método de gráfico (de charlie947/motion-graphics-skills animated-chart, MIT): cuatro estados — inicio, un cambio (nada se desvanece y se reemplaza), mantener con el valor del titular etiquetado, regresar para que el bucle no tenga salto. Cada fotograma se calcula solo a partir de t. El título, las etiquetas y los ejes nunca se mueven. Nunca redondear, reformatear o agregar un número. Después de construir, captura fotogramas en 0, 1, 2, 4 y 7 s y busca texto superpuesto o cortado antes del video.
Requiere numpy y Pillow para frames.py, Playwright para seek_capture.mjs (establece PLAYWRIGHT= en su node_modules/playwright si no es resoluble), y ffmpeg.
Verificaciones
python3 ../demo-video/scripts/check.py <out dir> --name <name>(desde la carpeta de esta habilidad) (nombra los cortes<nombre>-A.mp4/<nombre>-B.mp4): tamaño, velocidad de fotogramas, color, sonoridad, SSIM de bucle, zona segura y hojas de contacto. Informa y no falla: lee cada línea y verifica cada número contra su objetivo tú mismo.- Mira la hoja de zona segura: ningún título, número o línea de fuente debajo de rojo.
- Lee cada título a tamaño de teléfono (360 px de ancho) en la hoja de contacto.
- Nombra al héroe de cada tiempo principal y verifica que ocupe al menos el 40% de la altura del fotograma, y nombra el giro (
references/craft.md). Di qué tiempos fallan. - Tabla de afirmaciones: cada número en pantalla rastreado hasta un archivo; cada comparación dice su base (qué pizzas, qué fecha, cuántos).
- Mide el sonido tiempo por tiempo, tanto en rango completo como por encima de 250 Hz (lo que reproduce un altavoz de teléfono). El payoff debe ser el más fuerte en ambos, y el casi silencio debe ser silencioso. Luego escucha una vez si puedes; de lo contrario, di que no lo hiciste. Usa
frames.mixpara darle al payoff su propio nivel, luegoframes.level; en el piloto de pizza el compresor antiguo dejó el zumbido más fuerte que el golpe.
Advertencias
-
Un título junto a un número hereda su unidad. "la brecha más grande" debajo de "4 lei" se lee como lei; di "în procente" o elimínalo. (Treponti fue la más grande en porcentaje, La Crosta en lei.)
-
No reutilices las fotos de productos o la interfaz de usuario de las aplicaciones (los términos de Wolt y Glovo reservan derechos de imagen). Transcribe un listado a tu propia tarjeta neutral, fechada, o recorta solo el texto que necesitas como evidencia y di de dónde es.
-
El metraje generado por IA se queda fuera de los videos sobre lugares reales o precios reales; se lee como escenificado. La atmósfera proviene del metraje propio del usuario, archivos de dominio público (verifica los derechos de cada elemento) o un estilo claramente ilustrado.
-
ElevenLabs "Chris" falla los números en rumano, incluso como dígitos (49 y 67 en el video de pizza, 88 en el video de permisos, 2026-11-06). La transcripción no lo detecta. Audiciona cada número hablado y haz que el usuario escuche antes de mezclar.
-
Antes de publicar, la página debe estar activa y los números deben ser verificados nuevamente si los datos cambiaron.
-
Las voces sintéticas leen mal los números, y la transcripción no lo detectará. "optzeci" escrito salió como "opt zece", la transcripción seguía diciendo "Optzeci", y una toma con dígitos estaba bien. La siguiente toma del mismo número salió mal de nuevo, por lo que la generación varía: una vez que el usuario aprueba una toma, empalma ese audio y no lo regeneres. Solo un oído humano puede verificar la pronunciación (2026-11-06).
De dónde vienen las reglas
references/craft.md contiene el oficio: la hoja de tiempos del hallazgo, las reglas de la historia, títulos, material y derechos, sonido. Fuentes: un clip de imágenes satelitales de Cluj-Napoca (2026-11-03), notas de oficio de demo-video, gramática de historia de cth9191/animate (MIT), animated-chart y reglas de vox-explainer de charlie947 (MIT), reglas de fotograma y giro de StewdioAI/blank-page (MIT), y una consulta a Codex (2026-11-04).