Verificação prévia de YAML entre ambientes

Cole um documento YAML — workflow do GitHub Actions, arquivo Docker Compose, manifesto Kubernetes ou YAML simples para uma biblioteca genérica — e veja quais recursos estruturais e valores ambíguos se comportariam de maneira diferente conforme a ferramenta que o lê. Esta ferramenta se baseia no Analisador de diferenças semânticas de YAML: reutiliza integralmente a detecção de ambiguidade de escalares entre YAML 1.1 e 1.2 (‘problema da Noruega’ e casos relacionados) e acrescenta verificações estruturais importantes para consumidores reais: âncoras/aliases, merge keys, indentação com tabulação, chaves duplicadas e uso de estilo flow.

O processamento é feito localmente no seu navegador. Seu arquivo nunca é enviado.

Como usar esta ferramenta ferramenta

  1. Cole seu YAML ou carregue arquivo .yaml/.yml; nada sai do navegador.
  2. Selecione ‘Verificar YAML’.
  3. Confira cada problema sinalizado: quais ambientes/ferramentas são afetados e por quê.
  4. Use a reescrita portátil sugerida (tabs convertidos em espaços, escalares ambíguos entre aspas) quando oferecida. Alguns problemas (âncoras, merge keys, chaves duplicadas) são apenas sinalizados, pois uma correção automática pode alterar a estrutura.

Premissas

Fontes e dados de referência

Metodologia

O documento é analisado em duas camadas. Primeiro, cada escalar plain é resolvido pelas regras Core Schema de YAML 1.1 e YAML 1.2 (lógica idêntica à do Analisador de diferenças semânticas de YAML); divergências são sinalizadas e explicadas quanto à relevância para ambientes específicos. Depois, o documento é examinado em busca de recursos estruturais com variação entre consumidores reais: uso de âncora/alias (aviso: algumas ferramentas restringem ou desativam para impedir exaustão de recursos por expansão recursiva), merge keys (erro: extensão de YAML 1.1 fora da especificação YAML 1.2, sem suporte no Kubernetes e em muitos parsers estritos), indentação com tabulação (erro: proibida pela especificação YAML), chaves duplicadas no mesmo mapeamento (aviso: comportamento não especificado; a maioria dos parsers mantém silenciosamente a última) e coleções flow em documento de estilo bloco (informação: dica de baixa confiança, não problema real).

Exemplo resolvido

Valor de matriz do GitHub Actions com aparência de sinalizador

Dados de entrada: flag: on

Resultado: Reutiliza a detecção do problema da Noruega: YAML 1.1 lê ‘on’ como booleano true; YAML 1.2 lê como string ‘on’. Em uma matriz ou valor env do GitHub Actions, esse é exatamente o tipo de valor que provavelmente deveria permanecer string.

Merge key do Docker Compose

Dados de entrada: <<: *defaults

Resultado: Sinalizada como erro: merge keys são extensão de YAML 1.1, não fazem parte da especificação YAML 1.2 e não têm suporte no processamento YAML do Kubernetes nem em vários parsers estritos. Não há reescrita automática; se precisar de versão portátil, resolva manualmente o conteúdo da âncora referenciada.

Manifesto Kubernetes indentado com tabs

Dados de entrada: \tname: demo

Resultado: Sinalizado como erro (tabs são proibidos pela especificação YAML, não apenas desaconselhados) com reescrita sugerida convertendo cada tab inicial em 2 espaços.

Orientações práticas
Erros comuns

Perguntas frequentes

Por que esta ferramenta se sobrepõe ao Analisador de diferenças semânticas de YAML?

Ela não duplica a lógica: reutiliza-a. A regra 1 chama diretamente a lógica de resolução de escalares daquela ferramenta e acrescenta verificações estruturais (âncoras, merge keys, tabs, chaves duplicadas, estilo flow) que o analisador semântico deliberadamente não cobre.

Por que merge keys são erro, mas âncoras/aliases são apenas aviso?

Merge keys estão fora da especificação YAML 1.2 e ferramentas como o processamento YAML do Kubernetes não as suportam explicitamente: é uma falha quase certa. Âncoras/aliases são recursos válidos e amplamente suportados do YAML básico, mas algumas ferramentas os restringem por segurança, um risco real porém menos certo.

Por que a ferramenta não corrige automaticamente âncoras, merge keys ou chaves duplicadas?

Cada caso exige entender o significado pretendido do documento (conteúdo expandido da âncora, qual duplicata é intencional), não apenas alterar mecanicamente o texto. A ferramenta sinaliza e explica a correção manual em vez de adivinhar.

Última revisão:

Conjunto de verificações estruturais restritas e baseadas em padrões, mais comparação reutilizada de ambiguidade de escalares; não é parser YAML completo nem validador do comportamento exato de uma ferramenta. Valores internos de coleções flow não são examinados quanto a ambiguidades de escalares (como no escopo documentado do analisador semântico), e a detecção de chaves duplicadas acompanha níveis de mapeamento pela indentação, sem construir uma árvore completa do documento.

As preferências de tema e de ferramentas, além das listas de itens salvos e usados recentemente, são armazenadas somente neste navegador.