Comprobación previa de YAML entre entornos

Pega un documento YAML (workflow de GitHub Actions, archivo Docker Compose, manifiesto Kubernetes o YAML genérico) para descubrir qué características estructurales y valores ambiguos pueden comportarse de manera distinta según la herramienta que lo lea. Esta herramienta amplía el Analizador de diferencias semánticas de YAML: reutiliza su detección de ambigüedades escalares YAML 1.1/1.2 (el «problema de Noruega» y casos relacionados) y añade comprobaciones estructurales relevantes para consumidores YAML reales: anclajes/alias, claves de combinación, tabuladores, claves duplicadas y uso de estilo flow.

El análisis se realiza localmente en tu navegador. El archivo nunca se carga al servidor.

Cómo usar esta herramienta

  1. Pega tu YAML o carga un archivo .yaml/.yml; los datos no salen de tu navegador.
  2. Selecciona «Analizar YAML».
  3. Revisa cada problema señalado: qué entornos o herramientas afecta y por qué.
  4. Aplica la reescritura portable sugerida (tabuladores convertidos en espacios, escalares ambiguos entrecomillados) cuando se ofrezca. Algunos problemas (anclajes, claves de combinación, claves duplicadas) solo se señalan: no se pueden corregir automáticamente sin arriesgar un cambio estructural que no solicitaste.

Supuestos

Fuentes y datos de referencia

Metodología

El documento se analiza en dos niveles. Primero, cada escalar plain se resuelve según las reglas de YAML 1.1 y el Core Schema de YAML 1.2 (la misma lógica que el Analizador de diferencias semánticas de YAML); las discrepancias se señalan y explican según su relevancia para entornos concretos. Después se buscan características estructurales que varían entre consumidores YAML reales: uso de anclajes/alias (advertencia: algunas herramientas los restringen o desactivan para prevenir agotamiento de recursos por expansión recursiva), claves de combinación (error: extensión de YAML 1.1 ajena a la especificación YAML 1.2, no compatible con Kubernetes y muchos analizadores estrictos), indentación con tabuladores (error: prohibida por la propia especificación YAML), claves duplicadas en una asignación (advertencia: la especificación no define su comportamiento y la mayoría de los analizadores conserva silenciosamente la última) y colecciones de estilo flow dentro de un documento de bloques (informativo: indicio de baja confianza, no un problema real).

Ejemplo resuelto

Valor de matriz de GitHub Actions con apariencia de indicador

Datos de entrada: flag: on

Resultado: Reutiliza la detección del problema de Noruega de la herramienta semántica: YAML 1.1 interpreta "on" como booleano true y YAML 1.2 como la cadena "on". En una matriz o valor env de GitHub Actions, probablemente debería seguir siendo una cadena.

Clave de combinación de Docker Compose

Datos de entrada: <<: *defaults

Resultado: Se señala como error: las claves de combinación son una extensión de YAML 1.1, no forman parte de la especificación YAML 1.2 y no son compatibles con el procesamiento YAML de Kubernetes ni con varios analizadores estrictos. No se ofrece una reescritura automática; si necesitas una versión portable, resuelve manualmente el contenido del anclaje referenciado.

Manifiesto Kubernetes indentado con tabuladores

Datos de entrada: \tname: demo

Resultado: Se señala como error (los tabuladores están prohibidos por la especificación YAML, no solo desaconsejados) y se sugiere convertir cada tabulador inicial en dos espacios.

Orientación práctica
Errores comunes

Preguntas frecuentes

¿Por qué esta herramienta se solapa con el Analizador de diferencias semánticas de YAML?

No duplica la lógica, la reutiliza. La regla 1 llama directamente a la lógica de resolución escalar de aquella herramienta en vez de volver a resolver lo mismo, y añade comprobaciones estructurales (anclajes, claves de combinación, tabuladores, claves duplicadas y estilo flow) que el analizador semántico deja deliberadamente fuera de alcance.

¿Por qué las claves de combinación son un error y los anclajes/alias solo una advertencia?

Las claves de combinación quedan completamente fuera de la especificación YAML 1.2 y herramientas como el procesamiento YAML de Kubernetes las declaran expresamente incompatibles; es muy probable que fallen. Los anclajes/alias son parte del núcleo YAML, válidos y ampliamente compatibles, aunque algunas herramientas los restringen por seguridad. Es un riesgo real, pero menos seguro.

¿Por qué la herramienta no corrige automáticamente anclajes, claves de combinación ni claves duplicadas?

Cada caso exige entender el significado del documento (el contenido expandido de un anclaje o cuál de las apariciones duplicadas se pretendía usar), no una modificación mecánica del texto. La herramienta los señala y explica la corrección manual en vez de adivinar.

Última revisión:

Estas son comprobaciones estructurales limitadas basadas en patrones más una comparación reutilizada de ambigüedad escalar; no es un analizador YAML completo ni valida el comportamiento exacto de una herramienta específica. Los valores internos de colecciones de estilo flow no se examinan por ambigüedades escalares (igual que en el alcance documentado del analizador semántico), y la detección de claves duplicadas sigue niveles de asignación según la indentación en vez de construir el árbol completo del documento.

Las preferencias de tema y de herramientas, junto con las listas de herramientas guardadas y recientes, se almacenan solo en este navegador.