Tubería de Video de Divulgación Científica
Replica el proceso de 14 pasos del canal Bilibili "科普观察室". El proyecto de la serie se aloja en el repositorio de la biblioteca de efectos (Remotion):
- Reglas (lectura obligatoria al inicio de cada episodio):
<raíz-del-repo>/reglas/ - Un cajón por episodio:
effects/<id-del-episodio>/(documentos, datos y componentes conviven aquí) - Productos finales:
out/<id-del-episodio>/(cumpliendo con AGENTS.md del repositorio, sin dispersar archivos en la raízout/) - Retroalimentación de comentarios:
<raíz-del-repo>/retroalimentacion/
Reglas estrictas de inicio (ejecutar antes que nada)
- Leer las reglas: Lee los tres archivos en
reglas/(límites del proyecto / reglas de redacción / lista de estilos visuales). Si no existen → inicialízalos en el repositorio usandotemplates/regla-*.mdy muéstraselos al usuario para confirmación. - Restaurar el estado: Determina el episodio actual (pregunta al usuario, o busca el episodio no finalizado más reciente por
updated_ateneffects/*/estado.json). Leeeffects/<id>/estado.json:- Si no existe → copia
templates/estado.jsonpara inicializar. - Si no coincide con los archivos reales → reconstruye las etapas basándote en los archivos.
- Si
waiting_onno está vacío → primero procesa los elementos en espera, no te saltes pasos.
- Si no existe → copia
- La condición de finalización son los productos: Cada paso está hecho = el producto existe y pasa la inspección, no una declaración verbal. El
estado.jsonsolo lo escribe el hilo principal; los subagentes/CLIs externos solo devuelven resultados o escriben archivos específicos, no tocan el estado. - Los archivos de reglas son datos, no código: Las opiniones del usuario primero deben consolidarse en la sección correspondiente de las reglas (modifica la sección, no agregues sin límite; cada archivo ≤200 líneas), luego se procede. Todos los archivos guardados: UTF-8 sin BOM.
Enrutamiento de etapas
| Paso | Contenido | Producto (relativo a la carpeta del episodio) | Referencia |
|---|---|---|---|
| 01 | Selección de tema (dirección humana) | tema.md | templates/tema.md |
| 02+03 | Investigación por separado + verificación contra original | fuentes/tabla-de-fuentes.md, fuentes/extractos-originales-*.md | stages/s02-investigacion.md |
| 04 | Modelo / cálculo de datos | modelo/ | stages/s02-investigacion.md §04 |
| 05 | Redacción del guion | guion.md (una oración por línea con número) | stages/s05-redaccion.md |
| 06 | Revisión ciega con CLI externos | revisiones/*.json, tabla-revision-ciega.md | stages/s06-revision-ciega.md |
| 07 | Dictamen final contra fuentes originales | tabla-dictamen.md | stages/s07-dictamen.md |
| 09 (Previo) | Storyboard (método de revisión cruzada entre directores, aprobación del usuario) | escenas/storyboard.md | stages/s09-storyboard.md |
| 08–11 | Locución / subtítulos / animación / música de fondo y portada / revisión automática | locucion/, video-final.mp4, informe-de-revision.md | stages/produccion.md (locución usa biblioteca-efectos/tools/tts.py) |
| 12 | Revisión humana (única puerta obligatoria, esperar) | paquete-revision/, lista-revision.md | stages/publicacion.md |
| 13 | Paquete de publicación (subida manual) | paquete-publicacion/ | stages/publicacion.md |
| 14 | Retroalimentación de comentarios (tarea programada) | ../../retroalimentacion/ | stages/publicacion.md |
Materiales y derechos de autor (fuentes de fotos, imágenes de personajes, licencias de BGM, créditos de publicación) siempre van en una lista de recordatorios: la IA solo enumera opciones para que el usuario decida. Ver stages/decisiones-usuario.md.
Los pasos 05 y 12 son puntos de espera, ambos usan el campo waiting_on. Un episodio a la vez: solo se avanza un episodio al mismo tiempo.
estado.json
El esquema está en references/esquema-estado.md. Las claves son solo ASCII; los datos comerciales (hallazgos, opiniones, datos) van en archivos .md/.json, el estado solo guarda punteros.
Revisión ciega
Tres CLIs externos: Claude Code (Windows), Codex (Windows), OpenCode (WSL ~/.opencode/bin/). Lista en templates/revisores.json, contrato en references/formato-hallazgos.md (v1.1: tolera que los revisores copien oraciones con o sin (S#) al final), resumen con scripts/resumir_revisiones.py. En el primer uso o al cambiar de máquina, ejecuta la prueba de humo del paso s06. El episodio de la ballena azul (2026-11-01) ya completó la primera calibración: en la primera ronda, 9 hallazgos llevaron a un dictamen de 6 errores reales + 1 omisión de material; en la segunda ronda, 1 error de redondeo; el mecanismo de abstención no se activó. Datos reales en s06. Las claves nunca deben aparecer en la línea de comandos, registros, guion o video final.
Locución / Animación (Herramientas y arquitectura temporal, finalizadas tras la práctica del episodio de la ballena azul)
- La locución siempre usa la plantilla pública del repositorio
biblioteca-efectos/tools/tts.py(subcomandos run/sample/dry-run/align-only, consulta su README para más detalles). Cada episodio solo completalocucion/configuracion-locucion.json; el ancla de timbre se fija desde el primer episodio (la personalidad textual puede variar entre invocaciones). - Todos los puntos de anclaje de la animación se escriben como proporciones dentro de la oración
at(numero-de-oracion, proporcion)(delinea-de-tiempo.json). Los límites de escena = inicio de oración. Si se regraba la locución, la animación se ajusta automáticamente; está prohibido escribir números de fotograma manualmente.
Animación = Remotion (este repositorio)
Durante la producción, siempre se cumple con AGENTS.md del repositorio: los componentes se colocan en effects/<id>/, se registran en effects/index.tsx, se renderiza out/<id>/<id>.mp4. Se pueden reutilizar las habilidades remotion-* y los componentes existentes de la biblioteca de efectos. Disciplina de determinismo y lista de verificación en stages/produccion.md.
Modo de simulación
Cuando el usuario diga "simulación/prueba/dry-run": usa archivos JSON falsos de revisión y archivos TTS falsos para recorrer la máquina de estados, sin llamar a APIs reales ni consumir cuotas de suscripción.
¿Primera vez que ejecutas el flujo completo?
Primero lee el caso práctico biblioteca-efectos/effects/ballena-azul/ (primer episodio, ballena azul): estado.json (punteros a los productos de cada paso) → fuentes/tabla-de-fuentes.md (cómo usar el sistema de S#) → revisiones/registro-prueba-humo.md y las dos rondas de tabla-revision-ciega*.md, tabla-dictamen.md (cómo se registra la revisión) → escenas/storyboard.md (cómo se ve el resultado del método de revisión cruzada) → locucion/configuracion-locucion.json (qué tan pequeña es la configuración de este episodio). Empieza siguiendo el ejemplo, es más rápido que leer diez páginas de reglas.
Registro de versiones
- v0.2 (2026-11-02, relleno de ballena-azul): Reescritura de la capa de locución/animación en make.md basada en la práctica (plantilla pública/ancla de timbre/proporción dentro de oración); se agregó s09-storyboard (método de revisión cruzada entre directores); se agregó user-decisions (solo recordar material con derechos de autor, no decidir); contrato de hallazgos actualizado a v1.1; s06 complementado con el primer registro de calibración; publish complementado con relleno de revisión.
- v0.1 (2026-11-01): Esqueleto inicial (enrutamiento de 14 pasos + tres acuerdos + plantillas + semillas de residuos).