Storyarn docs
Documentación

Diseño Narrativo

Salud del flujo

Comprobaciones deterministas sobre el grafo de un flujo y el contenido de sus nodos, en el editor y en todo el proyecto.

La salud del flujo revisa dos cosas a la vez: la forma del grafo – entradas ausentes, ramas inalcanzables, callejones sin salida, pines rotos, destinos que ya no existen – y el contenido de cada nodo – líneas de diálogo vacías, condiciones a medias, personajes sin asignar, referencias de variable obsoletas.

Ambas mitades comparten un único catálogo de comprobaciones, así que el editor de flujos y el panel de Flujos nunca pueden describir el mismo problema de forma distinta, ni ocultar uno que el otro sí muestra.

Cada comprobación es determinista: el mismo flujo produce siempre los mismos hallazgos, calculados solo a partir de tus datos. La salud del flujo es una capacidad gratuita: no hace ninguna llamada a IA, no consume cuota de IA y funciona incluso con todos los proveedores de IA desactivados.

El indicador de salud

El indicador está en la cabecera del editor de flujos, justo después del contador de palabras: el mismo widget que usan las fichas y las escenas. Cuenta los hallazgos por severidad:

SeveridadQué significa
ErroresConfiguración inválida: el flujo no puede ejecutarse tal como está
AdvertenciasAutoría incompleta o arriesgada
InfoVálido, pero el nodo no hará nada en ejecución

Cuando un flujo no tiene ningún hallazgo, el indicador se reduce a un check verde.

Ábrelo para ver los hallazgos agrupados por ubicación – el propio flujo o un nodo concreto –, de modo que un nodo con tres problemas es una sola entrada con tres líneas debajo. Al seleccionar la entrada de un nodo, el lienzo se centra en ese nodo, lo resalta y lo selecciona. Los hallazgos que pertenecen al flujo y no a un nodo (sin nodo Entry, varios nodos Entry) se listan pero no son clicables: no hay ningún sitio al que ir.

La salud se recalcula mientras editas. No hay ningún análisis que lanzar ni instantánea que refrescar: lo que ves está siempre al día y un hallazgo desaparece en cuanto el problema subyacente deja de existir. No hay nada que “marcar como arreglado”: la resolución se deriva del propio flujo.

El indicador forma parte del editor normal de flujos. Las vistas compacta y de comparación no lo incluyen; abre el flujo en el editor para revisar su salud.

Comprobaciones sobre el grafo

Estas necesitan el grafo completo: la estructura y los destinos a los que apuntan tus nodos.

HallazgoSeveridadQué significa
El flow no tiene nodo EntryErrorNada declara dónde empieza la reproducción
El flow tiene N nodos EntryErrorMás de un inicio; la alcanzabilidad se calcula desde todos ellos
Conexión en un pin de salida eliminado: pinesErrorEl pin del que parte la conexión ya no existe
Conexión en un pin de entrada inválido: pinesErrorEl pin al que llega la conexión ya no es válido
Jump sin hub de destinoErrorAl Jump nunca se le asignó destino
Jump apunta a un hub inexistenteErrorSu hub de destino ya no está en este flujo
Subflow sin flow referenciadoErrorAl nodo Subflow nunca se le asignó un flujo
Subflow referencia un flow eliminadoErrorEl flujo referenciado ya no existe
Exit sin flow referenciadoErrorUn Exit en modo Referencia a flujo sin destino
Exit referencia un flow eliminadoErrorEl flujo de destino ya no existe
Nodo inalcanzable desde EntryAdvertenciaNingún camino de conexiones o jumps llega hasta él
Nodo sin conexionesAdvertenciaAislado en el lienzo, en ninguna dirección
Nodo sin conexión de salidaAdvertenciaUn callejón sin salida alcanzable que no es un Exit
Pins de salida sin conexión: pinesAdvertenciaUna rama quedó colgando: el pin Falso de una condición, una respuesta
Hub “id del hub” nunca alcanzado por conexión o jumpAdvertenciaNada apunta al Hub, así que nada puede converger en él

Lo que aquí aparece en cursiva se rellena con tus propios datos: el número de nodos Entry, los nombres de los pines afectados, el id del hub. El mensaje nombra el pin o el hub exacto, así que no tienes que buscarlo en el lienzo.

La alcanzabilidad es topológica, nunca una evaluación simbólica de tus condiciones:

  • una Entry: el recorrido empieza ahí;
  • ninguna Entry: se informa del hallazgo de Entry ausente y no se afirma nada sobre alcanzabilidad;
  • varias Entries: se informa del hallazgo y el recorrido empieza desde todas;
  • los ciclos son válidos y el recorrido es seguro frente a ellos;
  • un Jump cuenta como arista hacia su Hub, tanto para alcanzabilidad como para aislamiento.

Comprobaciones de contenido

Estas leen los datos de un solo nodo.

HallazgoSeveridadQué significa
Referencia de variable obsoletaErrorUna ficha o variable referenciada se renombró o se eliminó
Advertencia de tipo de variableAdvertenciaEl valor asignado o comparado no encaja con el tipo de la variable
Advertencia de tipo en asignación de respuestaAdvertenciaEl mismo desajuste dentro de una respuesta de diálogo
Sin texto de diálogoAdvertenciaEl nodo de diálogo no tiene línea
Falta el personaje del diálogoAdvertenciaNo hay ninguna ficha asignada como hablante
Respuesta de diálogo vacíaAdvertenciaUna opción de respuesta sin texto
Condición de respuesta incompletaAdvertenciaUna regla de respuesta a la que le falta variable, operador o valor
Asignación de respuesta incompletaAdvertenciaUna asignación de respuesta a medio rellenar
Condición incompletaAdvertenciaUn nodo de condición con una regla sin terminar o un grupo vacío
Asignación de instrucción incompletaAdvertenciaUna asignación de instrucción a medio rellenar
La condición no tiene reglasInfoEl nodo tomará siempre la misma rama
Sin asignaciones de instrucciónInfoEl nodo no cambiará nada

Lo que las comprobaciones no demuestran

Cada hallazgo afirma un hecho sobre tus datos. Ninguno lee tu intención, y varios son más estrechos de lo que parecen. Saber dónde se detiene cada comprobación es lo que hace que un hallazgo resulte útil en lugar de sonar a acusación.

ComprobaciónLo que no hace
El flow no tiene nodo EntrySolo comprueba tipos de nodo; no juzga dónde debería empezar la historia.
El flow tiene varios nodos EntryLa alcanzabilidad se calcula desde todas las entries; no decide cuál es la correcta.
Nodo inalcanzable desde EntrySolo topológico: no evalúa condiciones, así que un nodo alcanzable puede seguir siendo inalcanzable al jugar.
Nodo sin conexionesSolo cuenta conexiones válidas y enlaces de jump; no sabe si el nodo es un borrador mantenido a propósito.
Nodo sin conexión de salidaNo evalúa condiciones; un final intencionado modelado sin nodo Exit también lo activa.
Pins de salida sin conexiónInforma de pins obligatorios sin conectar; no distingue si la rama está sin terminar o abandonada.
Conexión en un pin de salida eliminadoCompara conexiones almacenadas con los pins actuales; no puede recuperar qué significaba el pin eliminado.
Conexión en un pin de entrada inválidoCompara conexiones almacenadas con las entradas actuales; no puede recuperar la intención original.
Hub nunca alcanzadoSolo considera conexiones y jumps dentro del flujo; no detecta hubs usados por otros medios.
Jump sin hub de destinoSolo comprueba el id de destino almacenado.
Jump apunta a un hub inexistenteLos hubs se comparan por id solo dentro de este flujo.
Subflow sin flow referenciadoSolo comprueba la referencia almacenada.
Subflow referencia un flow eliminadoComprueba que el flujo exista en este proyecto; no inspecciona su contenido.
Exit sin flow referenciadoSolo comprueba la referencia almacenada.
Exit referencia un flow eliminadoComprueba que el flujo exista en este proyecto; no inspecciona su contenido.

Las comprobaciones de contenido son igual de literales: una línea de diálogo vacía se informa tanto si es un marcador de posición como si es un silencio deliberado, y una advertencia de tipo compara tipos declarados, no el valor que habrá en ejecución.

En todo el proyecto

El panel de Flujos lista bajo Problemas todos los hallazgos de todos los flujos del proyecto, primero los errores, luego las advertencias y por último los informativos. Cada fila lleva su propio icono de severidad y nombra su ubicación – el flujo, más el nodo cuando el hallazgo pertenece a uno. Al seguir una fila se abre ese flujo y, cuando el hallazgo pertenece a un nodo, además se enfoca ese nodo en el lienzo: aterrizas en el problema en lugar de en un lienzo que aún tienes que recorrer.

Es el mismo catálogo con las mismas palabras: el panel no puede informar de un problema que el editor oculte, ni ocultar uno del que el editor informe. El panel del proyecto agrupa esos mismos hallazgos un nivel más arriba, una línea por flujo: solo errores y advertencias, porque un hallazgo informativo no es algo sobre lo que el responsable del proyecto tenga que actuar.

Los resultados de los paneles se cachean unos segundos en lugar de recalcularse en cada pulsación, así que un hallazgo que acabas de arreglar puede seguir ahí un momento mientras el indicador del editor ya está al día.

Alcance

Los hallazgos son informativos y siempre derivados. No hay forma de descartarlos, posponerlos ni darlos por vistos: la única manera de eliminar un hallazgo es cambiar el flujo para que deje de cumplirse. El análisis semántico de proyecto completo, la satisfacibilidad de condiciones y la puntuación de calidad narrativa quedan fuera de alcance por diseño.