Dónde acaba el editor y empieza el modelo.
En casi todas las herramientas hay una costura. Se exporta, se sube, se espera, se descarga, se vuelve a meter el resultado y se confía en que siga encajando. A un lado de esa costura está el proyecto; al otro, un programa que jamás ha oído hablar de él. Sparkle no tiene esa costura, y quitarla es la mayor parte de la ingeniería que describe esta página.
Un editor es un documento y las operaciones que lo cambian
Debajo de los paneles, un editor es una sola cosa: un documento que describe qué ocurre y cuándo, y un conjunto de operaciones con nombre que son la única forma de cambiarlo. Dividir un clip, cambiarle la velocidad, fijar un color, añadir una pista de subtítulos. Nada más toca el documento.
Suena a detalle de implementación y es la arquitectura entera. Cuando las operaciones son la única puerta, todo lo que importa después —deshacer, concurrencia, replay, una auditoría de lo ocurrido— es una propiedad de la puerta y no algo atornillado a cada función que la cruza.
Así que el asistente es un llamador más, no otro programa
El asistente no genera código ni genera fotogramas. Emite las mismas operaciones con nombre que emite una opción de menú, con los mismos parámetros tipados, sobre el mismo documento. Si se le pide que monte una versión vertical, llama a la operación que el editor ya tenía.
De ahí se siguen dos cosas, y ambas son la clave. No puede expresar nada que el editor no sepa hacer, así que no existe una categoría de salida de la IA que haya que reconciliar después con el proyecto. Y todo lo que ha hecho se podría haber hecho a mano, lo que significa que se puede leer, modificar o desmontar pieza a pieza.
Una operación, un deshacer
Una operación del asistente puede tocar cien clips: cambiarles la velocidad, recolorearlos, reestilizar todos los subtítulos. Aun así se reduce a un único checkpoint, de modo que un solo deshacer devuelve el proyecto al momento anterior a la petición.
Esto no es una comodidad. Lo que hace utilizable a un asistente de montaje no es cuántas veces acierta, sino lo barato que sale llevarle la contraria. Un asistente que no se puede rechazar en limpio es un asistente al que hay que supervisar, y supervisarlo cuesta más que hacer el trabajo.
El modelo es la parte fácil. Todo lo que hay alrededor es el editor.
Dos manos, un documento
Mientras se ejecuta una operación larga se sigue trabajando, así que el documento tiene dos autores. La versión ingenua de esto pierde una edición: quien escribe más despacio guarda el último y sobrescribe en silencio lo que hizo el otro.
Cada guardado es un compare-and-swap contra la operación head actual del documento. Una escritura construida sobre una versión que ya se ha movido se rechaza: no se fusiona ni se aplica en silencio. Rechazar es el comportamiento útil —un guardado rechazado puede reintentarse contra la verdad, mientras que una edición perdida la descubre días más tarde quien la hizo.
Exactly once, o nada en absoluto
Un paso del plan de un asistente acabará encontrándose con un reintento, un doble clic, una conexión caída, una recarga, un fallo a mitad de camino o dos ejecutores que creen los dos que el paso es suyo. Cualquiera de esas cosas puede aplicar una edición dos veces, y una edición aplicada dos veces a una línea de tiempo no es un duplicado: es otra línea de tiempo.
Por eso al ejecutor no se le permite decidir. Antes de cambiar nada tiene que pedir el claim del paso al almacén de planes, que lo concede de forma atómica bajo un bloqueo; solo un claim concedido autoriza la edición, y un replay devuelve el primer resultado sin tocar el documento. Lo que demuestra que una operación ha ocurrido es un id de operación registrado, no una marca en una pestaña del navegador.
Los modelos están junto a la línea de tiempo, no detrás de una subida
El recorte de fondo, la segmentación y la profundidad se ejecutan en el mismo proceso que el editor, sobre los fotogramas que este ya tiene en la mano. No hay exportación, ni subida, ni espera, ni reimportación, ni nada que volver a encajar después.
Es una decisión de diseño sobre la latencia, y de paso zanja una pregunta que la costura suele dejar abierta: el material bajo embargo sigue bajo embargo, porque nunca salió. Cuando un trabajo necesita de verdad la nube, pasa por una única pasarela que lo mide contra la cuenta que lo pidió.
Una vista previa que es la exportación
Los mismos shaders dibujan el recorrido de la línea de tiempo y el render final, de modo que lo que se aprueba es lo que se entrega. Sin eso, toda edición hecha por la IA es provisional: se estaría aprobando una imagen para volver a revisar el archivo más tarde, que es la costura reapareciendo al otro extremo de la cadena.
En conjunto —un documento, un conjunto de operaciones, un deshacer, una operación head, una ejecución, una sola ruta de renderizado—, la pregunta interesante deja de ser lo bueno que es el modelo. Pasa a ser lo barato que resulta llevarle la contraria. Esa es la parte que construimos nosotros.