{
  "schemaVersion": 1,
  "title": "Evidencia publica — A politica se corrige sozinha; o texto publicado nao",
  "preparedAt": "2026-09-04",
  "scope": "Extrato autocontido dos fatos proprios citados no post 23 do Fluxonar. O repositorio do blog e privado, entao os arquivos citados sao proveniencia e nao fonte publica; este extrato reproduz aqui, na integra, os trechos e numeros de que o texto depende, para que qualquer leitor confira sem acesso ao repositorio.",
  "disclosure": "Todos os dados abaixo sao do proprio site do autor. As medicoes de desempenho foram feitas na maquina do autor contra um servidor local, exceto onde indicado que a origem e o registro de integracao continua.",
  "janelaSemPortao": {
    "descricao": "Intervalo em que o carregador do AdSense esteve no ramo principal sem condicao de ambiente.",
    "inicio": "2026-09-01T21:51:31-03:00",
    "fim": "2026-09-04T09:18:40-03:00",
    "decorrido": "2 dias, 11 horas e 27 minutos",
    "decorridoHoras": 59.45,
    "datasDeCalendarioTocadas": 4,
    "observacao": "O tempo em producao acompanha esse intervalo com a defasagem de cada implantacao; o extrato mede o ramo principal, nao o servidor de producao."
  },
  "gateDeDesempenho": {
    "origem": "Registro de execucao da integracao continua, etapa lighthouse, no commit de merge que introduziu o carregador sem portao.",
    "citacaoLiteral": [
      "GATE DE CORE WEB VITALS (requisitos.md 7.5/9) NAO PASSOU:",
      "  - Home: LCP 7092ms >= 2500ms (meta requisitos.md 7.5)",
      "  - Post: tops-npu-ia-no-chip-marketing-realidade: LCP 2554ms >= 2500ms (meta requisitos.md 7.5)"
    ],
    "naoBloqueante": "A etapa roda com continue-on-error por decisao documentada em agosto de 2026: o script sai com erro e o vermelho aparece na integracao, mas o job nao impede o merge sozinho.",
    "integracoesComVermelhoAntesDaCorrecao": 4
  },
  "portaoPorVariavel": {
    "variavel": "PUBLIC_ADSENSE_CLIENT",
    "pontosGovernados": [
      "carregador do AdSense no head",
      "componente de consentimento",
      "seis espacos de anuncio",
      "botao de gerenciar consentimento no rodape",
      "secao de cookies e anuncios da politica de privacidade",
      "frase sobre cookies do arquivo servido a modelos de linguagem (/llms.txt)"
    ],
    "medicaoSemAVariavel": {
      "paginasComCarregador": 0,
      "paginasComConsentimento": 0,
      "paginasComBotao": 0,
      "totalDePaginasGeradas": 46
    },
    "medicaoComAVariavel": {
      "paginasComCarregador": 46,
      "paginasComConsentimento": 46,
      "paginasComBotao": 46,
      "totalDePaginasGeradas": 46
    },
    "ordemNoHead": "Com a variavel definida, a declaracao de consentimento aparece antes do carregador no HTML gerado da pagina inicial (posicao 316 contra 518)."
  },
  "sinaisDeConsentimento": {
    "valorGerado": "gtag('consent', 'default', {\"ad_storage\":\"denied\",\"ad_user_data\":\"denied\",\"ad_personalization\":\"denied\",\"analytics_storage\":\"denied\",\"wait_for_update\":500})",
    "pendencia": "Os nomes e o formato vieram de documentacao secundaria consistente entre si, nao da Central de Ajuda do Google. A confirmacao na origem exige a conta aprovada e esta declarada no cabecalho do proprio componente."
  },
  "guardaDeCompilacao": {
    "constante": "DATA_TEXTO_ANUNCIOS",
    "estadoAtual": "vazia",
    "comportamento": "Se a variavel de ambiente existir e a constante continuar vazia, a compilacao lanca erro e nada e publicado.",
    "mensagemLiteral": "politica-de-privacidade.astro: PUBLIC_ADSENSE_CLIENT esta definida, mas DATA_TEXTO_ANUNCIOS esta vazia. Preencha com a data em que o texto de anuncios passou por revisao de advogado (condicao 3 de docs/legal-trechos-adsense.md) antes de ativar os anuncios."
  },
  "lacunaEncontradaContraOAutor": {
    "onde": "componente do contador de visitas",
    "chave": "sessionStorage['fluxonar-viewed:<id>']",
    "valor": "'1'",
    "quando": "Na primeira pagina de cada aba, sem clique, assim que o endereco de contagem responde.",
    "presenteEm": "46 paginas geradas",
    "naturezaTecnica": "Nao e cookie, nao e identificador de visitante, e apagado ao fechar a aba e nao e enviado a lugar nenhum.",
    "problemaEncontrado": "Nao estava declarado na secao 2 da politica de privacidade, que listava tres itens de armazenamento.",
    "situacao": "CORRIGIDO em 2026-09-04, na mesma rodada em que foi encontrado. A secao 2 passou a descrever a marca de sessao, com a chave, o valor e o momento em que e escrita."
  },
  "afirmacoesColateraisSemPortao": [
    {
      "onde": "arquivo servido a modelos de linguagem (/llms.txt)",
      "citacaoLiteralAntes": "Site estatico (Astro) hospedado no Cloudflare Pages. Nao usa cookies, nao rastreia visitantes e nao exige cadastro para baixar os materiais gratuitos.",
      "situacao": "CORRIGIDO em 2026-09-04. A frase era verdadeira hoje e ficaria falsa na ativacao, escrita a mao e sem portao. Como o arquivo e gerado por codigo, recebeu o mesmo portao por variavel de ambiente: sem a variavel serve a frase original; com a variavel serve \"Exibe anuncios do Google AdSense, que so personalizam com consentimento do visitante, e nao exige cadastro para baixar os materiais gratuitos.\" Verificado nos dois estados."
    },
    {
      "onde": "pagina de divulgacao de afiliados",
      "citacaoLiteralAntes": "cobre o uso do Google AdSense e a base legal sob a LGPD.",
      "problemaEncontrado": "Ja imprecisa em 2026-09-04, sem depender de ativacao: a politica publicada ia da secao 1 a 9 sem nenhuma secao de cookies ou anuncios.",
      "situacao": "CORRIGIDO em 2026-09-04. A frase passou a dizer que a politica \"descreve o que o site coleta hoje e a base legal sob a LGPD\"."
    },
    {
      "onde": "post de 10/07/2026 sobre o orcamento anti-CLS do AdSense",
      "problemaEncontrado": "Descreve no presente do indicativo um carregamento de anuncio que hoje nao acontece.",
      "situacao": "SEM CONSERTO DE CODIGO. E markdown estatico e nao tem estado onde pendurar um portao. Fica declarado neste extrato e no post que o cita."
    }
  ],
  "metodologia": {
    "contagemDozeEDoze": "A classificacao das afirmacoes do post de julho em \"cai\" e \"fica\" e do autor, pelo criterio exposto no texto: cai o que tem como sujeito este site, fica o que descreve a ferramenta de medicao, a LGPD ou o Google Analytics. Nao e uma medida objetiva.",
    "cookieDeTerceiro": "O test_cookie de googleads.g.doubleclick.net foi observado em auditoria local do autor no periodo sem portao, nao em artefato de integracao continua. Depois do portao, deixou de aparecer nas mesmas condicoes.",
    "limites": [
      "As medicoes de desempenho e de conteudo rodam contra o servidor local do projeto, nao contra o dominio ao vivo.",
      "Cookie eventualmente gravado pela camada de hospedagem nao e observavel por este metodo.",
      "O repositorio e privado; este extrato existe justamente porque o link para os arquivos nao abre para leitor anonimo."
    ]
  },
  "correcoesDaMesmaRodada": {
    "descricao": "Tres itens encontrados por esta auditoria foram corrigidos antes da publicacao do post que os relata, e nao depois.",
    "itens": [
      "Marca de sessao do contador declarada na secao 2 da politica de privacidade.",
      "Frase da pagina de divulgacao de afiliados reescrita para descrever o que a politica de fato cobre.",
      "Frase sobre cookies do /llms.txt posta atras do portao por variavel de ambiente, com os dois estados verificados no build."
    ],
    "naoCorrigido": "A afirmacao do post de 10/07 e as doze afirmacoes do post de 22/07 seguem sem portao, porque sao prosa publicada em markdown."
  }
}
