Auditoria
blume audit rastreia o site gerado e reporta problemas de SEO e de saúde do site — cada achado indica o arquivo-fonte e a linha do front matter que o corrige.
blume validate lê o seu conteúdo; blume audit lê o site gerado. Ele rastreia o HTML em dist/ depois de um build e reporta problemas de SEO e de saúde do site: títulos, meta descriptions, canonicals, cards do Open Graph e do X, headings, hreflang, imagens, o sitemap, robots.txt e dados estruturados.
Como foi o Blume que gerou o site, cada achado indica o arquivo-fonte e a linha do front matter que o corrige, e não só a URL que um crawler veria:
⚠ Meta description too long or too short 5 pages
/docs/configuration/export content/docs/configuration/export.mdx:3
fix: Rewrite `description` in the frontmatter to fit the length range.
Rode depois de um build:
blume build
blume audit
Os achados são agrupados por verificação em vez de listados por página, então o relatório funciona como uma lista de tarefas. Use --verbose para expandir cada página afetada com todos os detalhes, e --only/--skip para trabalhar uma categoria de cada vez. blume audit --list-checks imprime o catálogo completo, que também é o catálogo de verificações no fim desta página. O docsUrl de cada achado aponta para a entrada correspondente lá.
Flags
--fail-on error|warning|info: o gate de CI. Sai com código diferente de zero a partir dessa severidade. O padrão éerror;--stricté um alias para--fail-on warning.--url <origin>: também sonda um deploy ao vivo para verificar códigos de status, headers de resposta e cadeias de redirecionamento.--external: sonda os links externos pela rede.--only <check|category>/--skip <check|category>: restringe o relatório a essas verificações ou categorias, ou as exclui dele (separadas por vírgula). Um termo que não corresponde a nenhuma verificação ou categoria gera um erro que sugere a mais próxima, então um erro de digitação não esvazia o relatório sem você perceber.--list-checks: imprime todas as verificações que a auditoria pode reportar e sai.--verbose: lista cada página afetada com o detalhe completo de cada achado, em vez de só as primeiras.--json: emite o relatório como JSON no stdout.--claude/--codex: passa os achados para o Claude Code ou o Codex corrigirem de forma interativa.
Fazendo o CI falhar
O código de saída é o contrato. Por padrão, blume audit só falha em erros, ou seja, coisas que com certeza estão quebradas, como um link para uma página que nunca foi gerada, um loop de redirecionamento ou um sitemap inválido. Achados consultivos (uma description curta, um título duplicado) são avisos e não fazem o build falhar:
blume audit # fails on errors
blume audit --fail-on warning # also fails on warnings
Verificando um deploy ao vivo
Algumas coisas só o servidor real consegue dizer: se uma página que existe em dist/ na verdade retorna 404 por causa de um rewrite errado, se as respostas estão comprimidas e se um header X-Robots-Tag está desindexando silenciosamente uma página cujo HTML parece perfeitamente normal. Aponte a auditoria para um deploy para adicionar essas verificações:
blume audit --url https://docs.example.com
blume audit --url https://docs.example.com --external # also probe outbound links
Os links externos são classificados, em vez de simplesmente reprovados. Um 404 é um link quebrado que você pode corrigir, enquanto um 403 ou 5xx geralmente é rate limiting ou uma instabilidade no site de outra pessoa, e é reportado como aviso.
Corrigindo os achados com um agente
Se você usa o Claude Code ou o Codex, a auditoria pode passar os achados direto para ele:
blume audit --claude # or --codex
Isso grava o relatório JSON completo em um arquivo, com todas as páginas afetadas e não só a prévia de três páginas do terminal. Depois, abre o agente de forma interativa com um prompt que o guia pelos achados: editar o arquivo-fonte que cada achado indica, aplicar a correção sugerida e rodar blume build e blume audit de novo até o relatório ficar limpo. A sessão é interativa de propósito: você revisa as edições pelo próprio fluxo de permissões do agente, e o agente é instruído a nunca corrigir um achado apagando conteúdo.
--only e --skip restringem o que é repassado ao agente da mesma forma que restringem o relatório, então você pode enviar uma categoria de cada vez.
O que é e o que não é verificado
O conjunto de verificações é propositalmente mais enxuto que o de um crawler de SEO de uso geral. Boa parte do que um crawler desses reporta não tem como acontecer em um site Blume. Ele nunca emite rel=nofollow, e os bundles do Vite com hash de conteúdo nunca estão faltando nem redirecionam. Reportar isso como zeros permanentes só ensinaria você a ignorar o relatório.
Dois limites que vale deixar claros:
- Dados estruturados são validados quanto à boa formação (JSON válido, um
@context, um@typeem cada nó). O Blume não valida contra o vocabulário completo do schema.org nem contra as regras de rich results do Google. - Core Web Vitals não são verificados. Eles precisam de um navegador de verdade, e uma flag que silenciosamente não medisse nada seria pior do que não ter flag nenhuma. Por isso,
blume auditreporta as causas de layout shift que consegue ver offline (imagens semwidth/height, assets grandes demais) e deixa o resto de lado por enquanto.
Tudo o que a auditoria não executou é reportado como ignorado, em vez de passar silenciosamente:
⊘ network skipped — pass --url <origin> (11 checks)
⊘ external skipped — pass --external (2 checks)
Catálogo de verificações
Todas as verificações que blume audit pode reportar, agrupadas por categoria, com a severidade padrão, o nível em que rodam e a correção que o relatório sugere. --only e --skip aceitam esses ids (sem o prefixo BLUME_AUDIT_ também funciona) ou os nomes das categorias.
Conteúdo
Tag title ausente ou vazia
BLUME_AUDIT_TITLE_MISSING · erro · a partir do HTML gerado
Correção: adicione um title ao frontmatter da página.
Várias tags title
BLUME_AUDIT_TITLE_MULTIPLE · erro · a partir do HTML gerado
Correção: remova o <title> extra do layout ou do MDX da página.
Título longo ou curto demais
BLUME_AUDIT_TITLE_LENGTH · aviso · a partir do HTML gerado
Correção: reescreva o title no frontmatter para que fique dentro da faixa de tamanho.
Meta description ausente ou vazia
BLUME_AUDIT_DESCRIPTION_MISSING · aviso · a partir do HTML gerado
Correção: adicione uma description ao frontmatter da página.
Várias tags meta description
BLUME_AUDIT_DESCRIPTION_MULTIPLE · erro · a partir do HTML gerado
Correção: remova o <meta> de description extra do layout ou do MDX da página.
Meta description longa ou curta demais
BLUME_AUDIT_DESCRIPTION_LENGTH · aviso · a partir do HTML gerado
Correção: reescreva a description no frontmatter para que fique dentro da faixa de tamanho.
Tag H1 ausente ou vazia
BLUME_AUDIT_H1_MISSING · aviso · a partir do HTML gerado
Correção: dê um title à página. O Blume o renderiza como o <h1> da página.
Várias tags H1
BLUME_AUDIT_H1_MULTIPLE · aviso · a partir do HTML gerado
Correção: rebaixe o # Heading extra no corpo para ##. O Blume já renderiza o title como h1.
Poucas palavras
BLUME_AUDIT_LOW_WORD_COUNT · info · a partir do HTML gerado
Correção: expanda a página ou incorpore-a a uma página maior.
Níveis de heading pulados (ex.: de h2 para h4)
BLUME_AUDIT_HEADING_SKIP · info · a partir do HTML gerado
Correção: ajuste o heading para o nível imediatamente abaixo. Níveis pulados quebram o aninhamento do sumário e a estrutura lida por leitores de tela.
Página com data no futuro
BLUME_AUDIT_FUTURE_DATED_PAGE · info · a partir do HTML gerado
Correção: corrija a date ou segure a página até o momento em que ela deve ir ao ar.
Viewport não definido
BLUME_AUDIT_VIEWPORT_MISSING · erro · a partir do HTML gerado
Correção: restaure o <meta> de viewport no seu layout ejetado.
Duplicados
Título duplicado
BLUME_AUDIT_DUPLICATE_TITLE · aviso · a partir do HTML gerado
Correção: dê a cada página um title diferente. Os mecanismos de busca o mostram como o título do resultado.
Meta description duplicada
BLUME_AUDIT_DUPLICATE_DESCRIPTION · aviso · a partir do HTML gerado
Correção: dê a cada página uma description diferente.
Páginas duplicadas sem canonical
BLUME_AUDIT_DUPLICATE_CONTENT · aviso · a partir do HTML gerado
Correção: mescle as páginas ou defina seo.canonical em todas menos uma.
Indexabilidade
deployment.site não está definido
BLUME_AUDIT_SITE_NOT_SET · aviso · a partir do HTML gerado
Correção: defina deployment.site no blume.config.ts com a URL pública do site.
deployment.site é inferido no momento do deploy
BLUME_AUDIT_SITE_INFERRED_AT_DEPLOY · info · a partir do HTML gerado
Correção: audite um build parecido com o de produção (ex.: VERCEL=1 VERCEL_PROJECT_PRODUCTION_URL=<host> blume build) ou o próprio deploy com --url <origin>. Não fixe deployment.site no código, porque a plataforma o define a cada deploy.
Página é noindex, mas declara um canonical
BLUME_AUDIT_CANONICAL_ON_NOINDEX · aviso · a partir do HTML gerado
Correção: remova o canonical das páginas noindex. O Google trata essa combinação como contraditória e pode ignorar um dos dois.
Página de rascunho está no build
BLUME_AUDIT_DRAFT_PAGE_PUBLISHED · aviso · a partir do HTML gerado
Correção: gere o build de novo sem --preview antes de fazer o deploy, ou remova draft: true se a página já estiver pronta para ser publicada.
URL canonical ausente
BLUME_AUDIT_CANONICAL_MISSING · aviso · a partir do HTML gerado
Correção: defina deployment.site para que o Blume possa emitir URLs canonical absolutas.
Página não canônica
BLUME_AUDIT_CANONICAL_NOT_SELF · info · a partir do HTML gerado
Correção: aponte seo.canonical para esta página, ou remova-o para usar o canonical autorreferente padrão.
Canonical aponta para uma página quebrada ou que redireciona
BLUME_AUDIT_CANONICAL_BAD_TARGET · erro · a partir do HTML gerado
Correção: aponte seo.canonical para uma página que existe e não redireciona.
Protocolo do canonical não corresponde ao do site
BLUME_AUDIT_CANONICAL_PROTOCOL_MISMATCH · erro · a partir do HTML gerado
Correção: use em seo.canonical o mesmo protocolo de deployment.site.
Página não é indexável
BLUME_AUDIT_ROBOTS_META_UNEXPECTED · info · a partir do HTML gerado
Correção: remova noindex do frontmatter da página se ela deve ser indexada.
Página excede o limite de rastreamento de 2 MB do Googlebot
BLUME_AUDIT_HTML_TOO_LARGE · erro · a partir do HTML gerado
Correção: divida a página. O Googlebot para de ler um documento HTML em 2 MB.
Header X-Robots-Tag conflita com a meta robots da página
BLUME_AUDIT_ROBOTS_HEADER_CONFLICT · erro · requer --url
Correção: remova o header X-Robots-Tag ou alinhe-o com a meta robots da página.
Links
Página tem links para uma página quebrada
BLUME_AUDIT_LINK_TO_BROKEN · erro · a partir do HTML gerado
Correção: corrija o destino do link ou crie a página para a qual ele aponta.
Página tem links para um redirecionamento
BLUME_AUDIT_LINK_TO_REDIRECT · aviso · a partir do HTML gerado
Correção: aponte o link direto para o destino, sem passar pelo redirecionamento.
Página órfã (acessível só pela navegação)
BLUME_AUDIT_ORPHAN_PAGE · aviso · a partir do HTML gerado
Correção: adicione um link para esta página no corpo de uma página relacionada.
Link interno fixa a origem do próprio site
BLUME_AUDIT_INTERNAL_LINK_ABSOLUTE · aviso · a partir do HTML gerado
Correção: use um caminho relativo à raiz (/docs/x) para que o link continue funcionando em previews e com basePath.
Página tem links internos de saída com nofollow
BLUME_AUDIT_INTERNAL_LINK_NOFOLLOW · info · a partir do HTML gerado
Correção: remova rel="nofollow", porque ele impede que esta página transmita autoridade internamente.
Barra dupla na URL
BLUME_AUDIT_DOUBLE_SLASH_URL · erro · a partir do HTML gerado
Correção: verifique basePath / deployment.base. Uma barra no final de um deles produz //.
Fragmento do link não corresponde a nenhum id na página de destino
BLUME_AUDIT_ANCHOR_BROKEN · aviso · a partir do HTML gerado
Correção: aponte o fragmento para um heading que existe na página de destino, ou corrija o heading ao qual ele se referia.
URL contém maiúsculas, underscores ou espaços
BLUME_AUDIT_URL_STYLE · info · a partir do HTML gerado
Correção: renomeie o arquivo-fonte para um slug em minúsculas e com hifens. Se a URL antiga já tiver sido publicada, adicione um redirecionamento a partir dela.
Redirecionamentos
Redirecionamento quebrado
BLUME_AUDIT_REDIRECT_BROKEN · erro · a partir do HTML gerado
Correção: aponte o redirecionamento para uma página que existe.
Loop de redirecionamento
BLUME_AUDIT_REDIRECT_LOOP · erro · a partir do HTML gerado
Correção: quebre o ciclo em redirects, porque ele nunca se resolve.
Cadeia de redirecionamentos
BLUME_AUDIT_REDIRECT_CHAIN · aviso · a partir do HTML gerado
Correção: aponte cada salto direto para o destino final.
Redirecionamento por meta refresh
BLUME_AUDIT_META_REFRESH · aviso · a partir do HTML gerado
Correção: use um redirecionamento de verdade no blume.config.ts em vez de um meta refresh.
Origem do redirecionamento também é uma página real
BLUME_AUDIT_REDIRECT_SOURCE_IS_PAGE · erro · a partir do HTML gerado
Correção: remova o redirecionamento ou apague a página que ele encobre. A página tem prioridade, então o redirecionamento nunca é acionado.
Redirecionamento de HTTPS para HTTP
BLUME_AUDIT_REDIRECT_TO_HTTP · erro · requer --url
Correção: redirecione para a URL HTTPS.
Cards sociais
Tags Open Graph ausentes ou incompletas
BLUME_AUDIT_OG_INCOMPLETE · aviso · a partir do HTML gerado
Correção: adicione uma description. O Blume preenche o resto das tags Open Graph para você.
Imagem Open Graph ausente
BLUME_AUDIT_OG_IMAGE_MISSING · aviso · a partir do HTML gerado
Correção: defina deployment.site para ativar as imagens OG geradas, ou defina seo.image na página.
Imagem Open Graph não está no build
BLUME_AUDIT_OG_IMAGE_BROKEN · aviso · a partir do HTML gerado
Correção: aponte seo.image para um arquivo que existe, ou gere o build de novo. Uma og quebrada aparece como um card em branco em todo lugar em que a página for compartilhada.
Imagem Open Graph pequena demais para cards grandes
BLUME_AUDIT_OG_IMAGE_SMALL · aviso · a partir do HTML gerado
Correção: use uma imagem de pelo menos 1200×630. Imagens menores ficam borradas ou são cortadas em layouts de card pequeno.
URL do Open Graph não corresponde ao canonical
BLUME_AUDIT_OG_URL_MISMATCH · aviso · a partir do HTML gerado
Correção: alinhe o og:url com a URL canonical da página.
Card do X (Twitter) ausente ou incompleto
BLUME_AUDIT_TWITTER_CARD_INCOMPLETE · aviso · a partir do HTML gerado
Correção: defina seo.x.handle no blume.config.ts para que o X possa atribuir a autoria do card.
Internacionalização
Atributo lang do HTML ausente
BLUME_AUDIT_HTML_LANG_MISSING · erro · a partir do HTML gerado
Correção: restaure o atributo lang no <html> do seu layout ejetado.
Atributo lang do HTML inválido
BLUME_AUDIT_HTML_LANG_INVALID · erro · a partir do HTML gerado
Correção: use uma tag BCP 47 válida (ex.: en, en-GB) para o locale.
Hreflang e lang do HTML não correspondem
BLUME_AUDIT_HREFLANG_LANG_MISMATCH · erro · a partir do HTML gerado
Correção: o <html lang> da página deve corresponder à anotação hreflang dela mesma.
Anotação hreflang inválida
BLUME_AUDIT_HREFLANG_INVALID · erro · a partir do HTML gerado
Correção: use uma tag BCP 47 válida na anotação hreflang.
Anotação hreflang autorreferente ausente
BLUME_AUDIT_HREFLANG_SELF_MISSING · aviso · a partir do HTML gerado
Correção: o conjunto de hreflang de uma página deve incluir uma autorreferência.
Anotação hreflang x-default ausente
BLUME_AUDIT_HREFLANG_XDEFAULT_MISSING · info · a partir do HTML gerado
Correção: adicione um alternate x-default apontando para a página do locale padrão.
Hreflang recíproco ausente (sem tag de retorno)
BLUME_AUDIT_HREFLANG_NO_RETURN_TAG · erro · a partir do HTML gerado
Correção: cada página de um grupo hreflang deve ter um link de volta para todas as outras.
Hreflang aponta para uma página quebrada, que redireciona ou não canônica
BLUME_AUDIT_HREFLANG_BAD_TARGET · erro · a partir do HTML gerado
Correção: aponte o alternate hreflang para uma página que existe e é canônica.
Grupo hreflang tem um conflito de idioma
BLUME_AUDIT_HREFLANG_CONFLICT · erro · a partir do HTML gerado
Correção: cada idioma de um grupo hreflang deve indicar exatamente uma página.
Assets
Texto alternativo ausente
BLUME_AUDIT_IMAGE_ALT_MISSING · aviso · a partir do HTML gerado
Correção: adicione um texto alt descritivo, ou alt="" se a imagem for decorativa.
Imagem quebrada
BLUME_AUDIT_IMAGE_BROKEN · erro · a partir do HTML gerado
Correção: corrija o caminho da imagem ou adicione o arquivo em public/.
Arquivo de asset grande demais
BLUME_AUDIT_ASSET_TOO_LARGE · aviso · a partir do HTML gerado
Correção: comprima o asset ou sirva um formato moderno (WebP/AVIF).
Imagem sem width/height
BLUME_AUDIT_IMAGE_MISSING_DIMENSIONS · aviso · a partir do HTML gerado
Correção: defina width e height para que o navegador possa reservar espaço (evita layout shift).
Script, estilo ou asset referenciado não está no build
BLUME_AUDIT_SUBRESOURCE_MISSING · erro · a partir do HTML gerado
Correção: corrija a referência ou restaure o arquivo que está faltando.
Conteúdo misto HTTPS/HTTP
BLUME_AUDIT_MIXED_CONTENT · erro · a partir do HTML gerado
Correção: carregue o sub-recurso via HTTPS. Os navegadores bloqueiam conteúdo misto.
Sitemap
Página indexável fora do sitemap
BLUME_AUDIT_INDEXABLE_PAGE_NOT_IN_SITEMAP · aviso · a partir do HTML gerado
Correção: remova draft/hidden/noindex do frontmatter da página se ela deve ser indexada.
Página noindex no sitemap
BLUME_AUDIT_NOINDEX_IN_SITEMAP · erro · a partir do HTML gerado
Correção: uma página noindex não deve ser anunciada no sitemap.
Página não canônica no sitemap
BLUME_AUDIT_NON_CANONICAL_IN_SITEMAP · erro · a partir do HTML gerado
Correção: liste só URLs canônicas no sitemap.
Sitemap indica uma página que não existe ou que redireciona
BLUME_AUDIT_SITEMAP_BAD_URL · erro · a partir do HTML gerado
Correção: remova a URL do sitemap ou gere a página que ele indica.
Sitemap tem erro de sintaxe ou formato incorreto
BLUME_AUDIT_SITEMAP_INVALID · erro · a partir do HTML gerado
Correção: sitemaps devem ser XML válido no formato urlset do sitemaps.org.
Sitemap excede 50 MB ou 50.000 URLs
BLUME_AUDIT_SITEMAP_TOO_LARGE · erro · a partir do HTML gerado
Correção: divida o sitemap. Os limites são 50 MB e 50.000 URLs.
lastmod do sitemap é inválido ou está no futuro
BLUME_AUDIT_SITEMAP_LASTMOD_INVALID · aviso · a partir do HTML gerado
Correção: use uma data W3C real que não esteja no futuro. Quando um mecanismo de busca pega um sitemap mentindo sobre atualização, ele deixa de confiar no lastmod desse sitemap por completo.
Sitemap inclui URLs fora do seu escopo
BLUME_AUDIT_SITEMAP_OUT_OF_SCOPE · aviso · a partir do HTML gerado
Correção: um sitemap só pode listar URLs da sua própria origem.
Sitemap não está acessível
BLUME_AUDIT_SITEMAP_NOT_ACCESSIBLE · erro · requer --url
Correção: deixe o sitemap.xml acessível na raiz do site.
robots.txt
robots.txt ausente
BLUME_AUDIT_ROBOTS_MISSING · aviso · a partir do HTML gerado
Correção: defina seo.robots: true para gerar o robots.txt.
robots.txt tem erro de sintaxe
BLUME_AUDIT_ROBOTS_INVALID · erro · a partir do HTML gerado
Correção: cada linha do robots.txt deve ser uma diretiva Field: value ou um comentário.
robots.txt bloqueia uma página que está no sitemap
BLUME_AUDIT_ROBOTS_DISALLOWS_INDEXABLE · erro · a partir do HTML gerado
Correção: uma página não pode ser bloqueada no robots.txt e anunciada no sitemap ao mesmo tempo.
robots.txt não referencia o sitemap
BLUME_AUDIT_ROBOTS_SITEMAP_MISSING · info · a partir do HTML gerado
Correção: defina deployment.site para que o robots.txt possa referenciar o sitemap.
robots.txt não está acessível
BLUME_AUDIT_ROBOTS_NOT_ACCESSIBLE · erro · requer --url
Correção: deixe o robots.txt acessível na raiz do site.
Descoberta por IA
llms.txt ausente do build
BLUME_AUDIT_LLMS_TXT_MISSING · aviso · a partir do HTML gerado
Correção: gere o build de novo. agents.llmsTxt está ativado, mas o build não tem llms.txt. Se isso for intencional, defina agents.llmsTxt: false.
llms.txt lista uma página que o build não serve
BLUME_AUDIT_LLMS_TXT_STALE_ENTRY · aviso · a partir do HTML gerado
Correção: gere o build de novo para que o llms.txt corresponda ao site. Uma entrada desatualizada manda um agente de IA para uma página que não existe.
Página indexável ausente do llms.txt
BLUME_AUDIT_LLMS_TXT_PAGE_MISSING · aviso · a partir do HTML gerado
Correção: gere o build de novo para que o llms.txt corresponda ao site. Se a página foi excluída de propósito, marque-a com seo.noindex ou sidebar.hidden.
Nenhum registro de descoberta de agentes DNS-AID
BLUME_AUDIT_DNS_AID_MISSING · info · requer --url
Correção: publique um registro SVCB ou HTTPS em ServiceMode em _index._agents.<host> no seu provedor de DNS para que agentes possam descobrir o site via DNS (DNS-AID).
Registros DNS-AID não são autenticados por DNSSEC
BLUME_AUDIT_DNS_AID_UNSIGNED · info · requer --url
Correção: ative o DNSSEC para a zona para que resolvers com validação retornem respostas DNS-AID autenticadas. Se o seu provedor de DNS não oferece suporte a DNSSEC, os registros continuam funcionando sem assinatura.
Dados estruturados
Dados estruturados não são JSON válido
BLUME_AUDIT_JSONLD_INVALID · erro · a partir do HTML gerado
Correção: o bloco JSON-LD deve ser JSON válido.
Dados estruturados sem propriedades obrigatórias
BLUME_AUDIT_JSONLD_INCOMPLETE · aviso · a partir do HTML gerado
Correção: cada nó JSON-LD precisa de @context e @type.
Deploy ao vivo
Página 4XX
BLUME_AUDIT_HTTP_4XX · erro · requer --url
Correção: a página recebe links ou está no sitemap, mas o deploy retorna 404 para ela.
Página 5XX
BLUME_AUDIT_HTTP_5XX · erro · requer --url
Correção: o deploy está dando erro nesta página.
Tempo esgotado
BLUME_AUDIT_HTTP_TIMEOUT · erro · requer --url
Correção: a página não respondeu a tempo.
Sem compressão
BLUME_AUDIT_NOT_COMPRESSED · aviso · requer --url
Correção: ative gzip ou brotli no host.
Página lenta
BLUME_AUDIT_SLOW_RESPONSE · aviso · requer --url
Correção: a página demorou para responder.
Link externo quebrado
BLUME_AUDIT_EXTERNAL_LINK_BROKEN · erro · requer --external
Correção: corrija ou remova o link externo.
Link externo redireciona
BLUME_AUDIT_EXTERNAL_LINK_REDIRECT · info · requer --external
Correção: aponte o link direto para o destino.