Arnés de historias
Flujo reutilizable para hacer (y repetir) cuentos ilustrados: Personajes → texto → still → validación Jev → vídeo → sync. Sirve para este libro y para los siguientes.
1 Guía de Personajes (canon)
Antes de escribir o dibujar nada, abre la guía. Es la versión actual de cómo se ven y cómo son. Todo still, vídeo y texto debe coincidir con ella. Los retratos de assets/personajes-*.jpg son la referencia que Jev usa en la validación.
Regla de oro: si un dibujo no cuadra con la ficha (pelo, cinturón, cara de Marco ≠ Tiago, etc.), no cuenta: se regenera. Sofía era provisional; el nombre canon es María.
2 Equipo (quién hace qué)
- Luna — escribe el cuento (voz infantil, ~220–240 palabras por escena).
- Eco — filtra claridad para ~7 años.
- Memoria — biblia de personajes; avisa si algo se sale del canon.
- Brújula — giros y tono (suspense suave, esperanza).
- Pincel — stills y prompts visuales coherentes con Personajes.
- Jake — HTML, tags de escena, llamada a Jev, media, sync; deploy solo si Gil lo pide.
3 Pipeline por escena (se repite)
- Beat — qué pasa y qué se siente (una frase).
- Texto — Luna escribe; Eco pasa el filtro; pegar en
capN-escenaM-…-video.html. - Tags de elenco — en la tarjeta/cover de la escena (índice y HTML), listar qué personajes deben salir. Ejemplo: TiagoMarcoMaríaFabio. Sin tags no se valida.
- Still — Pincel genera según Personajes; archivar la versión vieja como
*-viejo/*-viejo2. - Validación Jev — paso 4 (obligatorio antes del vídeo).
- Vídeo — image-to-video solo si Jev pasó (o Gil aceptó un FAIL consciente).
- Sync — copiar a
Documents/historias-con-tiago/. No publicar online hasta que Gil lo diga.
4 Validación de personajes (Jev)
Paso nombrado del arnés: evaluación programática con Jev (TypeSafe System One). No inventa el dibujo; juzga si el still es coherente con la guía y con los tags de la escena.
A. Preparar el request
- Header en cada request con imagen:
TypeSafe-Danger-Zone-Images: true - En
state: el still de la escena + un retrato guía por cada personaje tagueado (assets/personajes-tiago.jpg,…-marco.jpg, etc.). - Modelo:
jev-latest(Box necesita 1.14+).
B. Quién está en la imagen (tags ↔ still)
Por cada personaje en los tags de la cover, un Noul: «¿Aparece X en el still?» (con el retrato guía de X en state). Opcional: un Choice «¿quiénes aparecen?» con opciones nombradas (tiago, marco, maria, fabio, burlon, dragon, ninguno) — o Nouls independientes si pueden coincidir varios.
Si un tag dice que Marco está y Jev dice que no (Noul bajo), regenerar o corregir tags. Si Jev ve a alguien que no está tagueado, actualizar tags o regenerar.
C. ¿Es el mismo personaje? (consistencia con Personajes)
Por cada personaje presente, un Noul anclado al retrato guía: «¿El chico del cinturón naranja en el still es el mismo Marco del retrato guía (pelo negro muy corto, cara alargada, pecas)?». Criterios concretos de la ficha (cinturón, pelo, cara), no «¿se parece?» vago.
- Marco ≠ Tiago (amigo, no hermano mayor).
- María = cinturón amarillo, pelo castaño (no Sofía).
- Umbrales sugeridos: Noul ≥ 0.7 pasa; ≤ 0.3 falla → regenerar still; entre medias → revisar a ojo / Gil.
D. Escena: texto + imagen
En el mismo request (o uno siguiente con el mismo still): Nouls/Choice sobre si el still cuadra con el beat del texto («¿se ve el dojo?», «¿miran hacia la montaña?»). Así se revisan texto escrito e imagen juntos.
E. Ejemplo mínimo (idea de payload)
state: { scene: <still>, guide_marco: <personajes-marco.jpg>, guide_tiago: <…> }
questions:
marco_present: Noul "¿Hay un niño con cinturón naranja en `scene`?"
marco_same: Noul "¿Ese niño es el mismo que `guide_marco` (pelo negro muy corto, cara alargada)?"
tiago_present: Noul "¿Hay un niño con cinturón blanco en `scene`?"
distinct: Noul "¿Marco y Tiago se ven como amigos distintos, no el mismo niño crecido?"
Dreamer-ready: prototipos. Docs: images · box · Jev 1.14 · skill typesafe-ai/skills. Este paso se irá afinando; lo fijo es: tags en cada cover + Jev contra las fichas.
5 Receta Cap2 (plantilla viva)
Patrón a copiar en capítulos futuros:
- ~220–240 palabras por escena; HTML + still + mp4 por escena.
- Marco — linterna desde esc2; miedo a la oscuridad; pelo negro muy corto; look distinto a Tiago.
- María — cinturón amarillo; se une en esc3; manda el plan y acierta; chiste «Y tengo razón.»
- Escenas Cap2 (5): casa de Marco → linterna → María se une → burlón → prueba y cruce (tronco de puente sobre río frío; esc5 = antigua 5+6).
6 Entrega
- Actualizar
index.html(tarjeta de escena con tags de elenco + Personajes si hay alguien nuevo). - Guardar resultado de Validación Jev (PASS/FAIL + probs) junto a la escena o en el brief.
- Actualizar fichas en
personajes/*.mdypersonajes.html. - Sync a Mac: misma ruta bajo Documents.
- Deploy (Cloudflare Pages / Deployer) solo cuando Gil lo autorice en el chat de Deployer.
Para una historia nueva: clona este arnés, llena Personajes primero, luego repite el pipeline escena a escena (incluido el paso 4).