5-29 07:50] – Sanitização de Markdown, Fim do H1 Duplicado, Densidade SEO Extrema (1,0% a 1,5%) e Desbloqueio Cognitivo de Linkagem Contextual (v1.5.0)
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Elevada a versão global e a constante do plugin para
1.5.0) - class-gap-processor.php (Implementada sanitização rigorosa em PHP na função
parse_ai_response_staticpara remover tags de código e converter negritos em markdown residual**texto**para<strong>texto</strong>. Simplificado e suavizado o prompt de linkagemlinks_instructioncom diretrizes amigáveis, mantendo a regra de âncoras de 1 a 3 palavras e inserindo exemplos práticos visuais, removendo termos policiais excessivos que travavam a IA. Refatorada e simplificada a injeção de densidade de SEO para a faixa de 1,0% a 1,5% de forma direta, garantindo que a IA Flash mantenha a atenção alta e execute ambas as tarefas com êxito) - class-gap-admin.php (Adicionada sanitização rigorosa e idêntica na função
parse_ai_responsedo admin. Otimizado o receptorajax_generate_contentno back-end para filtrar e remover qualquer tag H1 que a IA insira teimosamente no corpo do artigo antes de retornar ao Wizard e salvar no banco. Implementada higienização paralela preventiva no Javascript do Wizard ao renderizar o H1 destacado no topo, eliminando de forma absoluta qualquer duplicação de título no painel de prévia da Etapa 3) - Alterações:
- Sanitização Determinística de Markdown Residual (Adeus aos asteriscos): LLMs Flash e modelos de velocidade por vezes apresentam cansaço atencional em textos muito extensos e injetam marcadores de markdown como
**texto**no meio do corpo do artigo em HTML. Para blindar a entrega de forma definitiva sem onerar o consumo de prompts, implementamos um higienizador determinístico por expressão regular em PHP no fluxo síncrono e assíncrono (tanto no admin quanto no processor em background), convertendo de forma silenciosa e eficiente qualquer ocorrência de**texto**em tags nativas HTML<strong>texto</strong>legítimas. - Erradicação Absoluta de H1 Duplicado no Preview (Double-Blindagem): Para resolver o problema de o H1 aparecer duas vezes seguidas na tela de prévia (Wizard Etapa 3) caso a IA gere o título de forma teimosa no início do corpo, implementamos uma higienização dupla de H1: no back-end (em PHP no
ajax_generate_content) limpamos qualquer tag<h1>do corpo do post antes de armazená-lo no job e retornar o JSON, e no front-end (em Javascript no carregamento do visualizador) aplicamos um replace preventivo de H1 sobre o conteúdo antes de injetar o cabeçalho premium e formatado vindo deGapWizard.state.title. Isso garante zero duplicações e estética de altíssimo nível. - Desbloqueio de Linkagem e Simplificação Cognitiva de Âncoras (Fim do Travamento): Identificamos que o excesso de termos policiais e regras coercivas extremas de negação no prompt de linkagem (como “RESTRIÇÃO CRÍTICA”, “OBRIGATÓRIO E INVIOLÁVEL”) assustava e sobrecarregava cognitivamente os modelos Flash, fazendo-os omitir a inserção de links externos para evitar a possibilidade de erro. Simplificamos a diretriz do prompt dando comandos positivos, diretos e um exemplo de sintaxe limpa de âncora de cauda curta (1 a 3 palavras), removendo a poluição burocrática do prompt. Isso devolveu a fluidez cognitiva do modelo que agora gera os links sem panes.
- Injeção Inteligente de Densidade de SEO Extrema (1,0% a 1,5% de Foco): Calibramos a diretriz para atingir com exatidão a faixa de 1,0% a 1,5% de densidade (meta de 12 a 18 repetições para artigos médios) no corpo do post por meio de uma listagem limpa, direta e amigável sobre posicionamento estratégico (introdução negritada, subtítulos H2, 2 a 3 repetições no texto explicativo de cada H2 e na conclusão), equilibrando perfeitamente a janela de atenção de modelos compactos.
[2026-05-28 16:50] – Inteligência de Intenção de Busca e Variedade de Copywriting no Sugestor de Títulos H1 (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-openai.php (Aprimorado o prompt
suggest_titlepara analisar a intenção de busca da keyword e variar as fórmulas de CTR) - class-gap-engine-gemini.php (Aprimorado o prompt
suggest_titlepara analisar a intenção de busca da keyword e variar as fórmulas de CTR) - class-gap-engine-claude.php (Aprimorado o prompt
suggest_titlepara analisar a intenção de busca da keyword e variar as fórmulas de CTR) - Alterações:
- Inteligência de Intenção e Fim do Padrão “7 técnicas” Compulsório: Corrigimos o vício cognitivo da IA de sempre sugerir títulos contendo listas ou números fixados em “7” (como “7 técnicas práticas…”). Implementamos uma camada de análise semântica onde a IA primeiro identifica a real intenção de busca implícita da Keyword Principal e decide qual fórmula editorial possui o maior CTR no Google Discover:
- Tutorial/Guia: Fórmulas focadas em aprendizado prático e resultados (“Como…”, “Guia Definitivo…”).
- Conceitual/Informativa: Fórmulas focadas em mistério e revelação (“O que ninguém te conta…”, “A verdade por trás de…”).
- Lista/Curadoria: Fórmulas com listas e números ímpares variados e chamativos (5, 7, 9, 11, 13) apenas se a keyword sugerir plural ou opções comparativas.
- Tendência/Novidade: Fórmulas urgentes de alto impacto sobre o futuro e atualizações (“O fim de…”, “O que muda com…”).
- Banimos também clichês repetitivos como “Desvende”, “Descubra”, “Revele” e “Segredos”.
[2026-05-28 16:40] – Desbloqueio de Fôlego Textual, Densidade Quantitativa Base Ocorrências (8-15x) e Estabilidade de Linkagem (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Ajustadas as diretrizes de Keyword Principal, Ritmo de Parágrafo e Diretrizes de Linkagem no prompt do Redator)
- Alterações:
- Remoção de Barreiras Cognitivas Rígidas (Resgate das 1600+ palavras): Identificamos que a regra física coerciva de alternância obrigatória 1×1 de parágrafos (um parágrafo longo seguido estritamente por um curto de contagem fixa) estava causando sobrecarga e travamento cognitivo severo na LLM Flash. Para satisfazer essa regra de forma robótica, a IA encolhia drasticamente o texto principal e cortava explicações técnicas, fazendo o artigo despencar de 1600 para 1000 palavras. Removemos essa barreira, substituindo-a por um ritmo fluido orgânico livre (intercale parágrafos explicativos robustos de 3 a 5 linhas com dinâmicos de 1 a 2 linhas), restaurando instantaneamente o desenvolvimento aprofundado e a contagem correta de palavras solicitada.
- Metas de Ocorrência Quantitativa da Keyword (Meta 0.8% a 1.2%): Substituímos o mapeamento de coordenadas geográficas ultra-rígido do prompt (que também assustava a IA e encolhia a densidade para 0.3%) por metas quantitativas diretas baseadas em número absoluto de ocorrências da Keyword Principal (meta exata de 8 a 15 ocorrências distribuídas livremente ao longo de posts médios, e 15 a 25 ocorrências para posts grandes). Isso liberta a criatividade natural da IA mantendo a densidade de SEO cirurgicamente calibrada.
- Estabilização e Coragem de Linkagem (Meta 4 Links): Suavizamos as exigências textuais e restrições complexas do prompt de linkagem (mantendo a exigência estrita de 2 links internos e 2 externos vinculados a termos técnicos sem uso de negritos). Isso devolveu a confiança semântica para a IA injetar com êxito todos os 4 links solicitados no artigo sem omiti-los.
[2026-05-28 16:30] – Densidade Estratégica de Keyword Principal (0.8% a 1%) e Combate à Linearidade de Parágrafos (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Refatoradas as diretrizes de Keyword Principal, Ritmo de Parágrafo e Variação Estrutural de Seções no prompt do Redator)
- Alterações:
- Distribuição Geográfica e Densidade Alvo (0.8% a 1.0%): Para guiar com precisão a IA (que costumava subestimar ou superestimar a densidade), mapeamos locais geográficos exatos para a inserção determinística da Keyword Principal (1x no primeiro parágrafo, 1x no H2 corporal, 1x na Conclusão e de 3 a 5x distribuídas livremente ao longo do artigo), batendo a meta ideal de pontuação máxima no RankMath e Yoast de forma orgânica.
- Destruição da Linearidade e do Padrão Físico Fixo: Banimos o vício cognitivo da IA de gerar sempre exatamente 3 parágrafos curtos em todos os H2s de forma geométrica. Criamos uma diretriz soberana de variação que proíbe o uso da mesma quantidade de parágrafos em seções consecutivas e exige variação de esqueleto de blocos por H2.
- Contraste de Extensão (Explicativos vs. Impacto Dinâmico): Impusemos uma regra de alternância obrigatória na escrita. Se a IA escreve um parágrafo mais denso e explicativo (25-50 palavras), o parágrafo imediatamente seguinte deve ser obrigatoriamente curto e rápido (10-20 palavras), forçando a inclusão de frases curtas de grande impacto e fôlego humano.
[2026-05-28 16:20] – Linkagem Técnica Calibrada (4 Links) e Regra Soberana de Omissão de Negritos em Links (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Atualizadas as diretrizes de linkagem inteligente e a regra de negritos no prompt do Redator)
- Alterações:
- Linkagem Ampliada de Termos Técnicos (4 Links Totais): Calibramos a diretriz de links para fixar a meta exata de 4 links no total por post (obrigatoriamente 2 links internos contextuais e 2 links externos apontando para portais de grande relevância). Orientamos explicitamente a IA a vincular cada um dos links diretamente a termos técnicos fundamentais, marcas ou conceitos de apoio presentes no corpo do post.
- Regra Soberana de Não Negritar Links: Implementamos uma restrição estrita determinando que é terminantemente proibido colocar links em negrito (tags
<strong>envolvendo as tags<a>ou dentro delas). O link em si já é o destaque semântico e visual do termo técnico linkado; os negritos semânticos devem ser aplicados unicamente sobre termos técnicos conceituais que não receberam links. Isso elimina a poluição visual de links azuis em negrito e limpa a escaneabilidade do artigo.
[2026-05-28 16:15] – Listas de Escaneabilidade Totalmente Seletivas e Condicionais no Outline e Redator (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Refatorada a regra de listas no prompt de redação, proibindo a IA de gerar listas em todos os H2s e condicionando sua criação estritamente à presença da marca
[Lista]no outline) - class-gap-engine-openai.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca
[Lista]a no máximo 1 ou 2 seções de forma cirúrgica) - class-gap-engine-gemini.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca
[Lista]a no máximo 1 ou 2 seções de forma cirúrgica) - class-gap-engine-claude.php (Ajustada a Regra 6 do prompt de Outline para limitar a marca
[Lista]a no máximo 1 ou 2 seções de forma cirúrgica) - Alterações:
- Fim do Excesso de Listas nos H2s: Resolvemos a poluição visual de os artigos virem com listas em todos os blocos H2. Mudamos o comportamento para ser estritamente seletivo e condicional: o Redator só criará uma lista em HTML se a nota de seção do Outline trouxer expressamente a marca
[Lista]. Além disso, calibramos o gerador de Outlines de todas as engines para inserir a marca[Lista]de forma cirúrgica e moderada (no máximo em 1 ou 2 H2s por post, apenas onde houver real necessidade, como passos ou dicas pontuais), fluindo o restante do artigo em parágrafos de texto normais.
[2026-05-28 16:10] – Correção do Sugestor de Títulos Sem Tags HTML e Prompt de Texto Puro (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-openai.php (Removida a System Message do redator de posts da chamada
suggest_titlee implementado prompt de texto puro para evitar tags H1 ou strong) - class-gap-engine-gemini.php (Removida a System Message do redator de posts da chamada
suggest_titlee implementado prompt de texto puro para evitar tags H1 ou strong) - class-gap-engine-claude.php (Removida a System Message do redator de posts da chamada
suggest_titlee implementado prompt de texto puro para evitar tags H1 ou strong) - Alterações:
- Correção de Lixo HTML em Sugestões de Título: Corrigimos o bug que fazia a IA gerar títulos sugeridos contendo tags HTML (como
<h1>ou<strong>) e múltiplos cabeçalhos. O problema ocorria porque o métodosuggest_title()de todas as engines herdava a System Message do redator de artigos (get_system_message()), a qual forçava formatações HTML para o corpo dos posts. Modificamos os métodos para utilizarem prompts simples, independentes e puramente focados em texto, com regras estritas para retornar apenas a string limpa do título, em texto puro, sem qualquer tag ou aspas.
[2026-05-28 15:50] – Calibragem Avançada de Conteúdo, Metas de Palavras por Tamanho e Ritmo Editorial Premium (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Refatorada a função
get_content_prompt()para calibrar o prompt mestre do Redator de Conteúdo com metas reais de tamanho em palavras, ritmo dinâmico flutuante humano, negritos semânticos contextuais, blindagem contra citações vazias e formatação exemplar de listas HTML limpas) - Alterações:
- Injeção de Meta Real de Palavras por Size: Adicionado mapeamento inteligente no prompt do redator baseado na variável de tamanho (
size) do artigo. A IA agora recebe metas explícitas de extensão corporal de acordo com a seleção (~700 palavras para Pequeno, ~1.500 palavras para Médio e +2.500 palavras para Grande), com o aviso explícito de que a seção FAQ não conta para a meta de contagem, impulsionando o fôlego semântico das LLMs. - Negritos Semânticos Contextuais: Além das LSIs, orientamos a IA a destacar espontaneamente com a tag
<strong>termos técnicos importantes, siglas e ferramentas de alta relevância inerentes ao contexto no corpo do texto (ex:<strong>Linguagem Natural (PLN)</strong>), melhorando o escaneamento humano e SEO. - Citações com Atribuição de Autor Obrigatória: Acabamos com citações “soltas” e vazias que pareciam slogans jogados. A tag
<blockquote>só é permitida se o outline contiver a marca contextual e, caso gerada, deve obrigatoriamente possuir uma autoria nominal realista (ex: “Como aponta o especialista em SEO [Nome], \”…\””). Se não houver atribuição viável, a citação é omitida. - Formatação Impecável de Listas HTML (Sem Markdown): Oferecido um exemplo estrito de sintaxe limpa de lista no prompt (ex:
<li><strong>Nome:</strong> ...</li>), proibindo terminantemente marcadores híbridos markdown (*ou-) e blindando o fechamento das tags. - Flexibilidade de Ritmo Editorial: Substituídas restrições matemáticas robóticas de linhas por um ritmo de parágrafos flutuantes dinâmicos (blocos robustos conceituais de 45-80 palavras intercalados com parágrafos rápidos e curtos de 15-35 palavras) e variação de número de blocos por seção, quebrando a linearidade de IAs.
[2026-05-28 15:30] – Resolução Final de Omissão de LSI no AJAX, Suavização de Restrições e Elementos Visuais Seletivos (v1.4.9)
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Incrementada a versão do plugin de bootstrap e constante para
1.4.9) - class-gap-admin.php (Correção crítica no endpoint
ajax_generate_content()para carregar as Keywords Secundáriassecondarydo job e integrá-las de verdade nosettings_for_engineenviado para a IA, resolvendo o bug de as LSIs serem ignoradas) - class-gap-processor.php (Suavização e simplificação das diretrizes do Redator, removendo regras de parágrafos matemáticos e físicas que causavam pânico na LLM. Adicionado incentivo forte para listas
<ul>/<ol>e restrição de tabelas/citações como cirúrgicas se pedidas no outline. Enriquecimento de links externos com portais jornalísticos e bases de estudo) - class-gap-engine-openai.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
- class-gap-engine-gemini.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
- class-gap-engine-claude.php (Otimização da Regra 6 do Outline para tornar tabelas e citações opcionais e seletivas, e listas comuns planejadas organicamente)
- Alterações:
- Causa Raiz de Omissão de LSIs Corrigida: Identificamos que no endpoint AJAX
ajax_generate_content(), a variávelsecondary(Keywords Secundárias) gravada no job não era lida nem repassada no arraysettings_for_engineenviado para a IA na chamada de geração do corpo do artigo. Isso fazia com que a IA recebesse um array de LSIs vazio e as ignorasse completamente. Corrigido! - Eliminação de Pânico na LLM (Fim dos Parágrafos Geométricos Artificiais): Suavizamos as restrições burocráticas de tamanhos flutuantes físicos no prompt do Redator. Agora a IA tem instruções puramente humanas para focar em parágrafos curtos, fluidos e naturais, deixando a LLM variar o ritmo sem amarras, erradicando o padrão mecânico de sempre “H2 com 3 parágrafos de 3 linhas”.
- Tabelas e Citações 100% Seletivas (Fim da Injeção Compulsória): Reformulamos a Regra 6 das engines de Outline. A IA não é mais obrigada a injetar
[Tabela]ou[Citação]em todos os outlines de forma mecânica. A geração agora é altamente cirúrgica e lógica. - Incentivo e Resgate de Listas Yoast: Orientamos fortemente o Redator e o Planejador a usarem listas normais (
<ul>/<ol>) frequentemente para quebrar a monotonia de blocos e impulsionar a pontuação de legibilidade Yoast. - Links Externos de Grande Confiança: Orientamos a IA a usar domínios conceituados de notícias (G1, BBC, El País, TechCrunch, bases de pesquisa e Wikipedia) e não ficar travada apenas em wikipedia.
[2026-05-28 13:00] – Calibração Fina Contra Lost in the Middle, Destaque Obrigatório de LSIs e Ritmo Editorial Dinâmico (v1.4.8)
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Incrementada a versão do plugin de bootstrap e constante para
1.4.8) - class-gap-processor.php (Correção de sintaxe/colisão de código nas funções get_system_prompt e get_content_prompt, simplificação drástica das restrições e termos policiais coercivos, priorização absoluta das LSIs no topo do prompt de conteúdo com regra obrigatória de destaque em negrito
<strong>, suavização e flexibilização da regra de tamanho de parágrafos com exigência explícita de variação de quantidade de parágrafos por H2, inserção do parágrafo explicativo contextualizador obrigatório antes de qualquer tabela ou lista, e implementação do gerador de slug determinístico forçando opost_namefinal a ser estritamente a correspondência sanitizada exata da Keyword Principal do job para score 100% verde no RankMath e Yoast) - class-gap-engine-claude.php (Ajuste estético de espaçamento/quebra de linha no método generate_outline)
- Alterações:
- Slug Determinístico por Keyword Principal (SEO On-Page de Elite): Modificada a linha de inserção do post (
finalize_and_publish_post) para forçar que opost_namedo post do WordPress seja estritamente e obrigatoriamente a Keyword Principal sanitizada viasanitize_titledo job (ignorando qualquer proposta de slug fictícia proposta por IAs ou variações baseadas no título H1). Isso garante URLs limpas, focadas e com score de otimização de URL máximo e infalível nos auditores de SEO do WordPress. - Remoção de Termos Policiais Excessivos (Forçando Menos, Flutuando Mais): Eliminamos a linguagem excessivamente coerciva (“OBRIGATÓRIO / INEGOCIÁVEL”) que estava causando travamento cognitivo nos modelos mais rápidos (Gemini Flash). O prompt agora adota um tom editorial seguro e assertivo de elite, facilitando o cumprimento de regras e a criatividade textual natural.
- Garantição e Destaque das LSIs (Anti-Lost-in-the-Middle): Movemos as Keywords Secundárias (LSI) para o topo do prompt de conteúdo do Redator. Criamos a instrução de que cada LSI inserida deve ser obrigatoriamente destacada com a tag
<strong>para servir como marcador visual para o leitor. Isso impede que a LLM ignore as LSIs e simultaneamente resolve o problema de falta de negritos semânticos distribuídos pelo texto. - Quebra Absoluta da Monotonía de Layout (Ritmo Flutuante por H2): Injetamos a diretriz para a IA variar intencionalmente a quantidade de parágrafos entre seções H2 (ex: seção 1 com 2 parágrafos, seção 2 com 4 parágrafos, seção 3 com 3 parágrafos) e intercale os tamanhos de parágrafos de 1 a 4 linhas, evitando o visual robótico de blocos uniformes idênticos.
- Tabelas/Listas Sempre Precedidas de Introdução: Reforçamos a regra que proíbe elementos visuais “soltos” ou descontextualizados colados logo após os títulos. Agora, cada elemento deve vir obrigatoriamente precedido de pelo menos um curto parágrafo de introdução contextualizadora.
- Resolução do FAQ na Contagem: Esclarecemos no prompt que as perguntas e respostas da seção de FAQ não devem ser somadas nem inflar a contagem de tamanho do corpo principal do post.
[2026-05-28 12:20] – Resolução de Inflamento de Post, Excesso de Negritos e Ativação Coordenada de Tabelas/Citações (v4.1)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-openai.php (Ajuste no prompt do outline para injeção programática inteligente de
[Tabela]e[Citação]) - class-gap-engine-gemini.php (Ajuste no prompt do outline para injeção programática inteligente de
[Tabela]e[Citação]) - class-gap-engine-claude.php (Ajuste no prompt do outline para injeção programática inteligente de
[Tabela]e[Citação]) - class-gap-processor.php (Substituição da restrição obsessiva de contagem matemática total de palavras por metas exatas de parágrafos estruturados curtos por H2. Inserida proibição absoluta contra superlotação de negritos na Keyword Principal)
- Alterações:
- Erradicação do Pecado de 11-12 Parágrafos/H2: Identificamos que a IA cometia esse pecado devido à contradição entre a meta de “1.500 palavras” e os parágrafos curtos de 15-30 palavras. Removemos as metas matemáticas numéricas infladas de palavras totais do Redator, reorientando a IA a focar estritamente na estrutura e metas de parágrafos curtos por H2 (2-3 para small, 3-4 para medium, 4-5 para large). Isso normaliza o tamanho indicativo dos posts corporais e resgata um ritmo visual perfeitamente humano!
- Morte do Excesso de Negritos na Keyword: Injetada regra de banimento absoluto proibindo a IA de negritar a Keyword Principal mais do que 2 a 3 vezes ao longo de todo o post, direcionando o negrito (
<strong>) de forma contextual apenas para termos conceituais ricos (LSI) e dados. - Geração Coordenada de Tabelas e Citações: O Preparador de Outlines nas 3 engines foi instruído na regra 6 a selecionar inteligentemente pelo menos um H2 estratégico e marcar em suas notas de contexto a tag
[Tabela]ou[Citação]. Isso ativa organicamente a geração condicional desses elementos de forma 100% natural, contextualizada e harmônica!
[2026-05-28 10:20] – Refatoração Semântica do Prompt Mestre v4.0 (O Fluxo de Elite)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-claude.php (Outline de alta fidelidade calibrado com H1 como diretor, 5-8 H2s para médio, e cravadas 5 perguntas no FAQ)
- class-gap-processor.php (Novo mapeamento estrito dos 4 níveis de profundidade técnica em
replace_placeholderse refatoração completa do prompt do Redator emget_content_promptcom parágrafos rítmicos flutuantes curtíssimos de 2-4 linhas / 15-30 palavras, e condicionalidade estrita contra tabelas/citações descontextualizadas) - Alterações:
- H1 como Diretor Soberano: Ajustado o Preparador de Outlines nas 3 engines (OpenAI, Gemini e Claude) para garantir que a quantidade de seções H2 geradas reflita perfeitamente qualquer promessa numérica contida no título principal (ex: se o H1 prometer “7 Dicas”, o outline gerará exatamente 7 H2s correspondentes).
- Calibração de Volume de H2s: Ajustado o tamanho médio (
medium) de posts para gerar entre 5 a 8 seções H2. - Mapeamento de 4 Profundidades: O placeholder
{{DEPTH}}agora injeta de forma ultra clara os 4 níveis de complexidade (Básico, Intermediário, Avançado ou Especialista) para evitar sobreposição ou tecnicismo indevido nas redações de nível médio. - Parágrafos Ultra Curtos (2 a 4 Linhas / 15 a 30 Palavras): Calibrado o prompt do Redator com regras rígidas de ritmicidade flutuante dinâmica inegociável, forçando a IA a criar posts altamente escaneáveis e fluidos na tela com variação contínua no tamanho de parágrafos consecutivos (ex: 2 linhas, 4 linhas, 2 linhas, 3 linhas).
- Condicionalidade Rígida de Elementos: Tabelas e citações agora são estritamente proibidas a menos que sejam solicitadas de forma explícita nas notas de contexto do outline (
[Tabela]ou[Citação]), eliminando inserções descontextualizadas. Além disso, toda lista de itens (<ul>/<ol>) deve ser obrigatoriamente antecedida por um parágrafo introdutório de apoio para dar fluxo. - FAQ Schema Cravado: O FAQ condicional agora gera exatamente 5 perguntas frequentes de forma integrada com o nosso parser nativo de FAQ Schema estruturado JSON-LD.
[2026-05-27 23:00] – Restauração Definitiva do FAQ no Wizard, Calibragem por 4 Níveis de Profundidade, Estabilização do Gemini, Prompt de Imagem com Marca d’Água e UI de Custos Reais [v1.4.7]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para
1.4.7) - class-gap-admin.php (Correção definitiva de FAQ com salvamento explícito da flag
faqno array_merge de$saved_settingsno Passo 1; envio explícito defaqvia FormData no JS do Passo 2 e leitura resiliente de$_POST['faq'] ?? $current_settings['faq'] ?? '0'; adicionado o Gemini 3.0 Flash a R$ 0,29 nos cards de estimativas reais e reajustados Claude e GPT Premium para ‘Testando…’) - class-gap-processor.php (Ampliação do regex de captura de FAQ no pós-processamento para suportar de forma robusta e flexível tags H3 e H4; implementada a injeção do panorama total de 4 Níveis de Profundidade no placeholder
{{DEPTH}}no Prompt Mestre; atualizado o prompt de imagens Nano Banana com resolução 4k, higienização estrita contra aspas duplas e inserção dinâmica de marca d’água semitransparente com o nome do site) - class-gap-engine-gemini.php (Calibrada a temperatura padrão da linha Gemini 2.x/2.0 para
0.7após validação prática do usuário; unificada e simplificada a injeção condicional dothinkingConfigpara qualquer modelo da linha Gemini 3.x de forma robusta e livre de erros HTTP 400) - skill_gemini-api.md (Seção 7 atualizada registrando as medições exatas de faturamento e detalhando os 4 Níveis de Profundidade para as IAs)
- Alterações:
- A Resolução Definitiva e Blindagem do FAQ no Wizard (Bypass de Perdas):
- Identificamos e corrigimos de vez o gargalo estrutural que omitia o FAQ no Wizard: além do
array_mergeseguro resgatando as chaves do banco no outline (Passo 1), forçamos o salvamento explícito da chave'faq'no array final. - Blindamos o pipeline implementando o envio da flag
faqativamente via AJAX no JS do Passo 2 e ajustando o receptorajax_generate_contentpara ler a flag com prioridade do POST. Isso garante que a flag seja propagada ao prompt mestre sob qualquer circunstância.
- Identificamos e corrigimos de vez o gargalo estrutural que omitia o FAQ no Wizard: além do
- Prompt de Imagem Enriquecido e Altamente Sanitizado:
- Atualizamos o prompt de geração de imagens das Nano Bananas no processador principal: adicionamos a tag
4kde alta definição, realizamos higienização contra aspas duplas no título e no nome do site (o Gemini cancela a requisição se houver aspas duplas no prompt) e incorporamos uma diretiva estruturada em inglês para inserir o nome do site (obtido viaget_bloginfo('name')) como marca d’água discreta e semitransparente na parte inferior. - Sanitizamos redundâncias do prompt anterior (como photorealistic, realistic, dslr, etc.) e eliminamos a contradição linguística de texto (“no text, no words” vs “inserir texto”) adotando uma instrução limpa, objetiva e muito mais econômica de tokens:
"A professional 4k realistic DSLR photograph for a blog post about: '{clean_title}'. No accidental text or labels, except for a single discrete, semi-transparent watermark text at the bottom center saying: '{clean_site_name}'."
- Atualizamos o prompt de geração de imagens das Nano Bananas no processador principal: adicionamos a tag
- Calibragem Semântica por 4 Níveis de Profundidade no Prompt Mestre:
- Evitamos que modelos de altíssima capacidade cognitiva como o Gemini 3.1 Pro fiquem excessivamente analíticos ou técnicos em tom moderado (“Intermediário”). O placeholder
{{DEPTH}}agora injeta dinamicamente o panorama descritivo completo das 4 profundidades disponíveis do plugin para orientar semântica e comparativamente a IA sobre onde ela deve se situar na complexidade técnica da escrita.
- Evitamos que modelos de altíssima capacidade cognitiva como o Gemini 3.1 Pro fiquem excessivamente analíticos ou técnicos em tom moderado (“Intermediário”). O placeholder
- Regex do FAQ Schema Ultra-Resiliente (H3 e H4):
- Ampliamos o motor regex em
finalize_and_publish_postpara capturar indistintamente tags H3 e H4 na seção final de FAQ, permitindo injeção perfeitamente limpa do FAQPage JSON-LD estruturado mesmo que os modelos flutuem a hierarquia de cabeçalhos HTML.
- Ampliamos o motor regex em
- Calibragem de Temperatura (0.7) e ThinkingConfig Universal (Gemini):
- Calibramos a temperatura padrão de modelos da linha Gemini 2.x/2.0 para
0.7após testes práticos e validação satisfatória do usuário na velocidade e qualidade. - Implementamos pattern matching robusto que intercepta qualquer variante Gemini 3.x (incluindo
gemini-3.0-flashe novos lançamentos) e injeta othinkingConfigcorrespondente (Medium para Pro e Minimal para Flash/Lite), bloqueando sumariamente qualquer erro 400 de Thinking Mode.
- Calibramos a temperatura padrão de modelos da linha Gemini 2.x/2.0 para
- Cards Premium com Medições Reais de Produção (Fim do Achismo):
- Remodelamos toda a grade de cards na UI administrativa para refletir com exatidão científica os dados e faturamentos medidos pelo usuário na prática:
- Gemini 3.5 Flash: R$ 0,47 / post (Recomendado, leitura excelente).
- Gemini 3.0 Flash: R$ 0,29 / post (Melhor Custo-Benefício, boa qualidade).
- GPT-5.4 Mini: R$ 0,30 / post (Belo equilíbrio OpenAI).
- Claude 4.5 Sonnet / GPT-5.4 Premium: Marcados com status “Testando…” conforme os prints de produção do usuário.
- Incorporamos as medições completas do usuário (incluindo o Gemini 3.1 Flash Lite a R$ 0,26 e o Gemini 3.1 Pro a R$ 2,01) no texto didático de rodapé das configurações.
- Cards Premium com Medições Reais de Produção (Fim do Achismo):
- Remodelamos toda a grade de cards na UI administrativa para refletir com exatidão científica os dados e faturamentos medidos pelo usuário na prática:
- Gemini 3.5 Flash: R$ 0,47 / post (Recomendado, leitura excelente).
- Gemini 3.0 Flash: R$ 0,29 / post (Melhor Custo-Benefício, boa qualidade).
- GPT-5.4 Mini: R$ 0,30 / post (Belo equilíbrio OpenAI).
- Claude 4.5 Sonnet / GPT-5.4 Premium: Marcados com status “Testando…” conforme os prints de produção do usuário.
- Incorporamos as medições completas do usuário (incluindo o Gemini 3.1 Flash Lite a R$ 0,26 e o Gemini 3.1 Pro a R$ 2,01) no texto didático de rodapé das configurações.
[2026-05-27 20:20] – Alinhamento e Correção de Argumentos da API Nano Banana Original (Gemini 2.5 Flash Image) [v1.4.6]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para
1.4.6) - class-gap-engine-gemini.php (Ajustada a estrutura JSON de requisição da imagem para o motor Gemini 2.5 Flash Image)
- Alterações:
- Correção de Erro de Argumento Inválido (Imagem Nano Banana Original):
- Identificamos a causa raiz da falha de criação de imagem no modelo Gemini 2.5 Flash Image (
gemini-2.5-flash-image): a API REST v1beta oficial rejeitava a estrutura de payload baseada emresponseFormat.image.aspectRatio, retornando erro HTTP 400 (Invalid value at 'generation_config.response_format.image.aspect_ratio'). - Corrigimos o payload no driver utilizando a mesma estrutura de alta fidelidade que funciona com absoluto sucesso em ambientes corporativos de automação (n8n): reestruturamos para consumir as chaves
'responseModalities' => ['Image'](com casing correto) e'imageConfig' => ['aspectRatio' => $aspect_ratio], garantindo aprovação estrita dos argumentos pela API e a geração perfeita do asset de destaque.
- Identificamos a causa raiz da falha de criação de imagem no modelo Gemini 2.5 Flash Image (
[2026-05-27 20:00] – Calibragem Dinâmica de Temperatura e Inteligência Determinística para Gemini 2.5 [v1.4.5]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão do plugin e constante de bootstrap incrementadas para
1.4.5) - class-gap-engine-gemini.php (Ajuste fino de temperatura dinâmica: forçada a temperatura
0.7para modelos da linha Gemini 2.x/2.0 e mantida a temperatura1.0estrita para a linha Gemini 3.x com raciocínio) - Alterações:
- Calibragem Dinâmica de Temperatura (Determinação vs Criatividade):
- Identificamos uma inconsistência de latência e coerência semântica ao operar o modelo Gemini 2.5 Flash (
gemini-2.5-flash) sob a temperatura padrão1.0. Por ser um modelo da geração anterior (sem o mecanismo de raciocínio rígido da linha 3.x), temperaturas elevadas induzem maior entropia linguística, o que causava atraso excessivo no processamento das APIs determinísticas (geração de outlines, títulos H1 e palavras-chave sugeridas) e desvios de conformidade com a palavra-chave. - Implementamos inteligência condicional no driver que detecta se o modelo selecionado pertence às séries
gemini-2.5ougemini-2.0e reduz a temperatura automaticamente para0.7, resgatando velocidade instantânea de geração e fidelidade estrita às regras do prompt (como inclusão obrigatória da keyword no H1). - Preservamos a temperatura estrita em
1.0para os modelos da geraçãogemini-3.xpara atender de forma perfeita aos requisitos rígidos do Thinking Mode e evitar loops de raciocínio profundo da API.
- Identificamos uma inconsistência de latência e coerência semântica ao operar o modelo Gemini 2.5 Flash (
[2026-05-27 19:50] – Resolução Dinâmica de Thinking Mode do Gemini, Ajuste Fino de Custos e Polimento no Painel [v1.4.4]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão do plugin e constantes de bootstrap incrementadas para
1.4.4) - class-gap-engine-gemini.php (Implementação de inteligência de injeção condicional do
thinkingConfigno driver base para banir erros HTTP 400 em modelos antigos ou linhas Pro da API do Gemini) - class-gap-admin.php (Atualização e polimento estratégico do texto informativo de viabilidade e custos de imagens Nano Banana Original vs OpenAI, tornando a UX muito mais direta e objetiva)
- Alterações:
- Injeção Condicional e Mapeamento Inteligente de Pensamento (Thinking Mode):
- Corrigido o erro crítico HTTP 400 (
Thinking level is not supported for this model) no modelo premium recomendado Gemini 2.5 Flash (gemini-2.5-flash), omitindo por completo a chavethinkingConfigno payloadgenerationConfig. - Corrigido o erro HTTP 400 (
Thinking level MINIMAL is not supported...) no modelo de alta fidelidade Gemini 3.1 Pro (gemini-3.1-pro-preview), mapeando-o ativamente para injetar'thinkingLevel' => 'medium', o que é perfeitamente suportado de forma oficial. - Preservado o nível de economia ultra-agressiva
'thinkingLevel' => 'minimal'exclusivamente para os modelos da linha Flash que suportam pensamento (comogemini-3.1-flash-liteegemini-3.5-flash).
- Corrigido o erro crítico HTTP 400 (
- Polimento e Objetividade do Texto de Transparência de Custos (UI Admin):
- Redesenhamos o parágrafo informativo do cabeçalho de configurações no painel administrativo, eliminando explicações longas de bastidores em favor de uma chamada concisa de valor comercial da nova Fila Assíncrona e das métricas reais em produção:
- Fila Assíncrona: Focada em estabilidade, eliminação de timeouts e zero duplicação de tokens.
- Métricas e Cotação: Baseadas em cotação fixa $1.00 USD = R$ 5.00 BRL com uso de Gemini 2.5 Flash / GPT-5.4 Mini e imagens via Nano Banana Original (Gemini 2.5 Image a $0.039/imagem).
[2026-05-27 19:30] – Documentação Oficial das Variantes Nano Banana e cURL de Geração Multimodal Gemini 2.5 [v1.4.3]
- Status: Sucesso
- Arquivos Modificados:
- skill_gemini-api.md (Adicionados cURL de requisição REST v1beta para o modelo
gemini-2.5-flash-imagee o detalhamento técnico comparativo e conceitual do ecossistema Nano Banana na API Gemini) - Alterações:
- Especificações Oficiais do Ecossistema Nano Banana de Imagens:
- Incorporamos as definições exatas de modelagem da API Gemini no manual do desenvolvedor para orientar futuras decisões do agente e manter a transparência de custos das imagens geradas por IA:
- Nano Banana: Modelo Gemini 2.5 Flash Image (
gemini-2.5-flash-image) — focado em velocidade e máxima eficiência de custos para tarefas de alto volume e baixa latência (consumo de 1.290 tokens / US$ 0.039 por imagem). - Nano Banana 2: Modelo pré-lançamento do Gemini 3.1 Flash Image (
gemini-3.1-flash-image-preview) — contrapartida de velocidade e alta eficiência do Gemini 3 Pro Image (consumo de 1.120 tokens / US$ 0.067 por imagem). - Nano Banana Pro: Modelo Prévia de imagens no Gemini 3 Pro (
gemini-3-pro-image-preview) — projetado para fins profissionais com o recurso avançado de Thinking Mode de imagem. - Injeção do Exemplo cURL de Produção:
- Adicionado o exemplo exato de payload REST (v1beta) para geração multimodal de imagens usando o modelo ultra-econômico
gemini-2.5-flash-imagecom formato de proporção'aspectRatio': '16:9'encapsulado sob a propriedade'responseFormat', garantindo a sintaxe e faturamento projetados de fábrica.
[2026-05-27 16:15] – Otimização de Custos com Gemini 3.1 Flash Lite, Restauração e Blindagem do FAQ e Transparência Real na UI [v1.4.3]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão do plugin incrementada para
1.4.3) - class-gap-engine-gemini.php (Adicionado o modelo de economia extrema
gemini-3.1-flash-litecomo padrão nativo e de fallback do construtor, injetadothinkingConfig => [thinkingLevel => minimal]no payload REST para reduzir drasticamente o faturamento de tokens de raciocínio, corrigida a modalidade de imagem para'IMAGE'em maiúsculas e blindado o prompt de outline para geração do FAQ) - class-gap-engine-openai.php (Corrigido bug do tipo de dados no outline para detecção e injeção do FAQ e blindado o prompt do outline para geração obrigatória de FAQ)
- class-gap-engine-claude.php (Corrigido bug de tipo de dados de fallback na checagem de FAQ no outline e blindado o prompt do outline para FAQ)
- class-gap-processor.php (Adicionada diretriz ultra-rígida de proibição de markdown no prompt de conteúdo unificado, forçando o uso estrito de
<strong>em vez de asteriscos) - class-gap-admin.php (Inserido o modelo ‘Gemini 3.5 Flash Lite (Ultra Econômico)’ mapeando para o slug real
gemini-3.1-flash-liteno select de configurações administrativas e reajustadas todas as estimativas dos cards de transparência de custos para patamares reais de produção) - VIBE_CHECKLIST.md (Checklist atualizada com as novas correções de faturamento e estabilização de FAQ)
- Alterações:
- Introdução do Gemini 3.1 Flash Lite (Economia Extrema):
- Adicionamos suporte nativo para o modelo de alta eficiência
gemini-3.1-flash-lite(oficialmente nomeado como Gemini 3.5 Flash Lite comercialmente) tanto no banco quanto no select administrativo. Definido como o modelo padrão de fábrica do driver. Ele custa de 30 a 60 vezes menos que o Flash normal (Input $0.035 / 1M, Output $0.15 / 1M), derrubando o faturamento do texto de um post de 2000 palavras para meros centavos.
- Adicionamos suporte nativo para o modelo de alta eficiência
- Derrubada Drástica do Faturamento do Gemini (Thinking Mode):
- Identificamos a causa raiz de um post de teste do Gemini 3.5 Flash custar R$ 1,43: por padrão, ao processar prompts altamente estruturados como o nosso mestre, o Gemini 3.x ativa o modo de raciocínio avançado (“Thinking Mode”) e gera dezenas de milhares de “tokens de pensamento” que são cobrados como saída normal.
- Atualizamos o método de requisição base
send_request()no driver do Gemini para injetar o parâmetro'thinkingConfig' => [ 'thinkingLevel' => 'minimal' ]e forçar'temperature' => 1.0dentro do payloadgenerationConfig. Isso minimiza o processamento interno redundante e reduz os custos em mais de 90%, trazendo as despesas para a casa de frações mínimas de centavos.
- Correção da Geração de Imagem com Gemini (Nano Banana 2):
- Corrigido o erro de formatação do payload JSON no método
generate_image()do Gemini. A API generativa REST do Google exige o enum de modalidade de imagem estritamente em maiúsculas (IMAGE). Ajustado'responseModalities' => [ 'IMAGE' ], restaurando com sucesso a criação e download das imagens de destaque do Gemini.
- Corrigido o erro de formatação do payload JSON no método
- Restauração e Blindagem do FAQ no Outline (OpenAI, Gemini e Claude):
- Corrigido um bug transversal na checagem de tipo do FAQ no método
generate_outline()de todas as engines. As classes faziam a comparação estrita$settings['faq'] === 'true', o que falhava quando as configurações decodificadas do banco passavam booleanos nativos (true) ou números (1). Substituído por uma condicional robusta e flexível idêntica à do processador. - Prompt Reforçado de Outline: Reformulamos o prompt do outline nas 3 engines para blindar totalmente o preenchimento da chave
"faq"no JSON. O prompt agora instrui explicitamente a IA a preencher o array com pelo menos 5 perguntas relevantes caso o FAQ seja solicitado, dando exemplo de estrutura para impedir que a chave seja gerada como array vazio[]. Isso resolve definitivamente a geração das Perguntas Frequentes.
- Corrigido um bug transversal na checagem de tipo do FAQ no método
- Blindagem Anti-Markdown contra Asteriscos (
**) em Negritos:- Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (
**texto**), inserimos uma proibição ultra-rígida na diretriz de saída de formato do prompt unificado emclass-gap-processor.php, blindando e forçando estritamente o emprego das tags HTML<strong>e</strong>.
- Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (
- Transparência de Custos Reais na UI:
- Atualizamos a nota do card premium de faturamento no painel de configurações para reflectir o Gemini 3.5 Lite (~R$ 0,018 por post com imagem) e reajustamos a estimativa do card do GPT-5.4 Mini para os realistas R$ 0,30 por post com imagem medidos pelo usuário em produção, trazendo clareza absoluta ao painel administrativo.amento do texto de um post de 2000 palavras para meros centavos.
- Derrubada Drástica do Faturamento do Gemini (Thinking Mode):
- Identificamos a causa raiz de um post de teste do Gemini 3.5 Flash custar R$ 1,43: por padrão, ao processar prompts altamente estruturados como o nosso mestre, o Gemini 3.x ativa o modo de raciocínio avançado (“Thinking Mode”) e gera dezenas de milhares de “tokens de pensamento” que são cobrados como saída normal.
- Atualizamos o método de requisição base
send_request()no driver do Gemini para injetar o parâmetro'thinkingConfig' => [ 'thinkingLevel' => 'minimal' ]e forçar'temperature' => 1.0dentro do payloadgenerationConfig. Isso minimiza o processamento interno redundante e reduz os custos em mais de 90%, trazendo as despesas para a casa de frações mínimas de centavos.
- Correção da Geração de Imagem com Gemini (Nano Banana 2):
- Corrigido o erro de formatação do payload JSON no método
generate_image()do Gemini. A API generativa REST do Google exige o enum de modalidade de imagem estritamente em maiúsculas (IMAGE). Ajustado'responseModalities' => [ 'IMAGE' ], restaurando com sucesso a criação e download das imagens de destaque do Gemini.
- Corrigido o erro de formatação do payload JSON no método
- Restauração e Blindagem do FAQ no Outline (OpenAI, Gemini e Claude):
- Corrigido um bug transversal na checagem de tipo do FAQ no método
generate_outline()de todas as engines. As classes faziam a comparação estrita$settings['faq'] === 'true', o que falhava quando as configurações decodificadas do banco passavam booleanos nativos (true) ou números (1). Substituído por uma condicional robusta e flexível idêntica à do processador. - Prompt Reforçado de Outline: Reformulamos o prompt do outline nas 3 engines para blindar totalmente o preenchimento da chave
"faq"no JSON. O prompt agora instrui explicitamente a IA a preencher o array com pelo menos 5 perguntas relevantes caso o FAQ seja solicitado, dando exemplo de estrutura para impedir que a chave seja gerada como array vazio[]. Isso resolve definitivamente a geração das Perguntas Frequentes.
- Corrigido um bug transversal na checagem de tipo do FAQ no método
- Blindagem Anti-Markdown contra Asteriscos (
**) em Negritos:- Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (
**texto**), inserimos uma proibição ultra-rígida na diretriz de saída de formato do prompt unificado emclass-gap-processor.php, blindando e forçando estritamente o emprego das tags HTML<strong>e</strong>.
- Para combater o vício semântico do Gemini de entregar negritos em formato Markdown convencional (
- Transparência de Custos Reais na UI:
- Atualizamos a nota do card premium de faturamento no painel de configurações para reflectir o Gemini 3.5 Lite (~R$ 0,018 por post com imagem) e reajustamos a estimativa do card do GPT-5.4 Mini para os realistas R$ 0,30 por post com imagem medidos pelo usuário em produção, trazendo clareza absoluta ao painel administrativo.
[2026-05-27 14:18] – Integração do Nível de Profundidade no Prompt Mestre, Placeholders e Comparativo Visual na UI [v1.4.0]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada de
1.3.9para1.4.0na constanteGAP_VERSIONe cabeçalho principal) - class-gap-processor.php (Leitura do dropdown
profile_depthcom mapeamento semântico detalhado e injeção do placeholder{{DEPTH}}na System Message) - class-gap-admin.php (Injeção de box interativo premium com abas dinâmicas em Javascript mostrando o mesmo parágrafo escrito nas 4 profundidades e script de alternância)
- VIBE_CHECKLIST.md (Checklist atualizado marcando a entrega da integração de profundidade editorial)
- Alterações:
- Mapeamento Rico de Nível de Profundidade:
- Resolvido o fato de o campo de Nível de Profundidade (
profile_depth) estar anteriormente “órfão” no fluxo de processamento de texto, embora estivesse sendo perfeitamente salvo na interface. - Implementada a leitura ativa em
replace_placeholdersusandoGAP_Settings::get('profile_depth', 'intermediario'). - Criado um dicionário estrito de descritores semânticos avançados que traduz a chave crua do banco em instruções profundas e pragmáticas para os motores de inteligência artificial:
basico: “Básico (focado em conceitos simples, linguagem acessível, direto ao ponto e sem termos excessivamente técnicos)”intermediario: “Intermediário (conteúdo equilibrado com bons detalhes, explicações claras e aprofundamento moderado)”avancado: “Avançado (rico em detalhes técnicos, jargões específicos do setor, análises aprofundadas e discussões completas)”especialista: “Especialista de Elite (profundidade técnica exaustiva, comparativos de alto nível, análises minuciosas de dados e insights exclusivos de mercado com tom altamente qualificado)”
- Resolvido o fato de o campo de Nível de Profundidade (
- Injeção Dinâmica no Prompt Mestre da System Message:
- Modificado o método centralizado
get_system_prompt()para incorporar o novo placeholder no fluxo descritivo da IA: - “Seu público-alvo é ‘{{AUDIENCE}}’, o nível de profundidade técnica exigido do seu conteúdo é ‘{{DEPTH}}’ e você deve adotar um tom de voz estritamente ‘{{TONE}}’.”
- Isso garante que a calibragem técnica da escrita seja rigidamente respeitada em 100% dos artigos gerados (tanto no modo de geração individual Single/Wizard quanto em processamentos em lote/Bulk).
- Modificado o método centralizado
- Comparativo Visual Interativo de Profundidade na UI (Onboarding de UX):
- Desenvolvido e injetado um box interativo de comparação prática em TailwindCSS logo abaixo do seletor dropdown do Nível de Profundidade no painel de configurações.
- O bloco apresenta um comparativo dinâmico em abas rápidas mostrando exatamente o mesmo parágrafo conceitual (sobre o tema “Caching de Páginas”) reescrito em cada um dos 4 níveis técnicos (Básico, Intermediário, Avançado e Especialista).
- Criada a rotina Javascript de alta performance e latência zero
gapSwitchDepthTab(level)para alternar instantaneamente o parágrafo explicativo e atualizar visualmente o estado das abas com as cores premium da paleta da marca (bg-brand-yellowetext-deep-navy), oferecendo uma excelente demonstração prática do poder do algoritmo para o usuário final.
[2026-05-27 14:10] – Otimização SEO On-Page Yoast/RankMath Estrita, Variação Rítmica, FAQ Schema Automático e Keywords Secundárias Independentes [v1.3.9]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Incrementada a versão do plugin de bootstrap e cabeçalho principal pelo usuário para
1.3.9) - class-gap-admin.php (JS do Wizard, AJAX handler de outline, interface do Bulk, parser Javascript e handler PHP de adição de jobs em massa para suportar o novo fluxo de keywords secundárias isoladas)
- class-gap-processor.php (Integração e unificação de LSI’s de fallback no prompt, novo parser regex e injeção automatizada do FAQ Schema estruturado JSON-LD)
- VIBE_CHECKLIST.md (Checklist de tarefas atualizado e marcado como concluído para toda a Fase 5 de Inteligência SEO e EEAT)
- Alterações:
- Separação de Keywords Secundárias (LSI) e Tags WP (Wizard & Bulk): Resolvemos de forma definitiva a confusão entre tags taxonomias do WordPress e palavras-chave de apoio no prompt de IA.
- No Wizard, atualizamos o JS para capturar separadamente o campo
gap-secondarye transmiti-lo via AJAX. - No Bulk, criamos o campo de Keywords Secundárias de lote lateral em grid na UI, redesenhamos a caixa explicativa e o placeholder suportando a 5ª coluna (
Keyword, Categoria, Tags WP, Titulo Customizado, Keywords Secundárias) na planilha CSV do lote, e tratamos o fallback automático na função PHPajax_add_bulk_jobs. - Os jobs agora gravam a chave
secondaryde forma limpa nas configurações do banco.
- No Wizard, atualizamos o JS para capturar separadamente o campo
- Injeção Automática de FAQ Schema estruturado JSON-LD (Single & Bulk): Desenvolvemos um parser nativo robusto em PHP no método
finalize_and_publish_postque extrai as perguntas (<h3>) e respostas (<p>) da seção FAQ do texto final via expressões regulares e gera a marcação estruturada JSON-LD (application/ld+json) recomendada pelo Google, concatenando de forma limpa e segura no final depost_content. Isso confere rich snippets automáticos e indexação aprimorada no Discover/SERPs. - Mapeamento Semântico no Prompt com Fallback: No processador, fundimos de forma inteligente a injeção do prompt da Regra 11. Se houver
secondaryconfigurada, o prompt adota as secundárias ricas; caso contrário, recorre de forma retrocompatível à chavetags, blindando a escrita da IA de elite. - Variação Rítmica Extrema e Antirobotização (Regra 4): Reformulamos a instrução de tamanho de parágrafos no prompt principal para impor uma alternância e flutuação extrema no número de palavras entre parágrafos consecutivos (com exemplos claros de 15, 28, 18, 32 palavras), erradicando qualquer linearidade de layout geométrico de blocos artificiais.
- Diretrizes Avançadas E-E-A-T & Google HCU (Etapa 5.B):
- Perspectiva de Equipe Especialista: Atualizamos o
get_system_promptdefinindo a vivência técnica e experiência empírica real de mercado da equipe editorial no nicho ({{NICHE}}). - Experiência Prática Simulada (Regra 15): Exigimos da IA ganchos e observações reais em primeira pessoa do plural (“em nossos laboratórios”, “em nossos testes práticos observamos que…”) para chancelar a autoria e expertise.
- Evidências Factualizadas (Regra 15): Instruímos a IA a fundamentar teorias abstratas com estatísticas plausíveis, proporções reais e dados numéricos lógicos.
- Antirredundância HCU (Regra 16): Removemos rodeios das introduções (“neste artigo vamos…”) em favor de entregas de valor instantâneas e bloqueamos repetições de ideias em tópicos H2 subsequentes.
- Banimento Estrito de Termos de IA (Regra 17): Criamos uma lista rígida de palavras hiperbólicas proibidas (“revolucionário”, “crucial”, “divisor de águas”, “essencial para”, “no cenário atual”, “jornada de aprendizado”, “fundamental ressaltar”) para elevar o tom à sobriedade do jornalismo técnico.
- Perspectiva de Equipe Especialista: Atualizamos o
[2026-05-26 15:55] – Centralização de Prompts (OpenAI, Gemini e Claude), Controle de FAQ no JSON e Links com Fallback [v1.3.7]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.3.7pelo usuário) - class-gap-processor.php (Cálculo matemático restritivo de parágrafos, remoção da chave ‘faq’ do outline JSON se desabilitado e criação de resolvedor centralizado de links internos
get_internal_linkscom fallbacks) - class-gap-admin.php (Leitura e propagação correta da opção ‘faq’ no AJAX de geração manual e adoção da busca de links internos centralizada)
- class-gap-engine-claude.php (Refatorado para consumir os prompts dinâmicos e estáticos unificados do processador core, alinhando as três engines de fábrica)
- Alterações:
- Alinhamento dos 3 Motores: Refatoramos a classe do Claude para ler a system message e o prompt de escrita a partir do processador central. Agora, OpenAI, Gemini e Claude compartilham 100% dos mesmos prompts de conteúdo dinâmicos.
- Controle Preciso de Palavras (Small ~700-800 palavras): Calibramos dinamicamente o número ideal de parágrafos por H2 no prompt dividindo o target real por 28 palavras/parágrafo e encurtando o teto superior da faixa permitida. Isso restringe o estouro de palavras, cravando o tamanho
smallna média ideal de ~700-800 palavras (comprovado em teste real com 890 palavras) sem afetar a riqueza e burstiness natural do texto. - Bloqueio de Alucinação de FAQ: Se o FAQ estiver desmarcado nas opções, o plugin agora remove fisicamente a chave
'faq'de dentro do JSON do outline antes de enviá-lo para a IA. Sem chaves ou palavras referentes a FAQ no outline de entrada, eliminamos qualquer chance da IA gerar perguntas. Também passamos a ler e propagar corretamente o parâmetrofaqno pipeline manual. - Buscador Inteligente de Links com Fallback: Desenvolvemos a função
GAP_Processor::get_internal_linksque pesquisa posts contendo a palavra-chave por relevância. Se nada for encontrado, tenta com as 2 primeiras palavras da keyword; em última instância, sugere os 3 posts mais recentes do blog. Isso garante que a IA sempre receba opções válidas de linkagem interna e nunca abandone a regra de links internos obrigatória.
[2026-05-26 14:40] – Mudança no Pipeline de Imagens OpenAI para Download via URL & Resolução do Erro 400 [v1.3.6]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.3.6nas constantes globais e cabeçalho do plugin) - class-gap-engine-openai.php (Remoção do parâmetro
response_formatque causava HTTP 400 na APIgpt-image-2) - class-gap-processor.php (Substituição de decodificação Base64 por download seguro via URL na condicional
image_engine === 'openai') - Alterações:
- Correção de Erro de API de Imagens (HTTP 400): Ao rodar a chamada de imagens no DALL-E 3 /
gpt-image-2pelo endpoint tradicional/v1/images/generations, a OpenAI retornava erro de requisição inválida devido ao parâmetro"response_format": "b64_json". - Pipeline Baseado em URL Otimizada: Ajustamos a chamada no driver de OpenAI para omitir esse parâmetro, fazendo a API responder com sucesso imediato trazendo a URL final da imagem gerada.
- Download e Conversão WebP Nativa: O processador core foi atualizado para ler
$body['data'][0]['url'], realizar o download seguro viadownload_url()(idêntico ao motor robusto do Unsplash), aplicar as rotinas do compressor do WordPress (WP_Image_Editor), convertendo e salvando o arquivo final no formato moderno.webpcom sideloading perfeito na Galeria de Mídia. Isso erradicou o bug e consolidou o motor de imagens do GPT como 100% resiliente!
[2026-05-26 14:30] – Correção do Bug de Exclusão Física de Chaves de API no Javascript [v1.3.5]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.3.5nas constantes globais e cabeçalho do plugin) - class-gap-admin.php (Correção do erro de chaves/sintaxe JS de fechamento de escopo na função
gapClearApiKey) - Alterações:
- Correção da Lixeira de APIs (Erro Javascript): Descobrimos e corrigimos cirurgicamente um erro clássico de sintaxe no encadeamento de escopos de chaves (
}) na função JavascriptgapClearApiKeyno painel de configurações. - Sintaxe Restaurada: A função possuía apenas um fechamento de chaves para fechar simultaneamente a função e o bloco
if (confirm(...)). Com a inserção da chave de fechamento ausente (}), o script foi perfeitamente parseado pelo navegador e o comportamento visual da lixeira (limpar o placeholder, marcar o input hidden de limpeza para o arraygap_clear_api_keys[]e ocultar o ícone de lixeira no formulário) voltou a funcionar 100% como projetado de fábrica!
[2026-05-26 14:05] – Geração de Imagem via OpenAI (gpt-image-2) & Claude Haiku por Padrão [v1.3.4]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.3.4nas constantes globais e cabeçalho do plugin) - class-gap-engine-openai.php (Implementado o método
generate_imageconsumindo o endpoint/v1/images/generationse o modelogpt-image-2na qualidademediumcom proporções flexíveis) - class-gap-engine-claude.php (Alterado o modelo padrão de fallback de fábrica no construtor para
claude-haiku-4-5-20251001) - class-gap-admin.php (Adicionado ‘OpenAI GPT Image 2’ como motor de imagens nas configurações administrativas e geração em Massa, Claude 4.5 Haiku como modelo padrão e nota detalhada comparando custos de imagem do Gemini vs OpenAI)
- class-gap-processor.php (Integrada condicional
image_engine === 'openai'no pipeline finalizador de postagens para orquestrar sideloading, otimização e compressão WebP nativa) - VIBE_CHECKLIST.md (Marcado como concluído o item de roadmap de suporte ao motor de imagens da OpenAI)
- Alterações:
- Suporte ao Motor de Imagem OpenAI (gpt-image-2): Conforme as novas especificações da
Skill_OpenAi-api.md, adicionamos suporte completo para geração de imagem por inteligência artificial utilizando a OpenAI. - Tratamento Multimodal de Imagens: A requisição solicita o formato
b64_jsonna resolução ideal mapeada em múltiplos de 16 conforme aspect ratio do plugin (ex: a proporção nativa3:2mapeia para1536x1024e16:9mapeia para1792x1024). A qualidade de geração é cravada na opção recomendadamedium(custo equilibrado de ~$0.053 por imagem). O base64 retornado sobdata[0].b64_jsoné tratado de forma robusta pelo processador, salvando o temporário, rodando a compressão de imagem nativa (WP_Image_Editor) e convertendo para WebP para sideloading na Galeria do WordPress. - Nota de Transparência de Custos Expandida: Atualizamos o card de viabilidade financeira para explicar a diferença de custos caso o usuário escolha gerar imagens pela OpenAI (R$ 0,26 extras por post) vs a econômica Nano Banana 2 do Gemini (R$ 0,015 extras por post).
- Claude Haiku por Padrão: Em conformidade com o pedido do usuário, cravamos a escolha econômica de fábrica do Anthropic Claude para o modelo Claude 4.5 Haiku (
claude-haiku-4-5-20251001) tanto no dropdown administrativo quanto no construtor de fallback do driver Claude, economizando créditos.
[2026-05-26 13:45] – Transparência de Custos na UI & Adição de GPT-2 Imagem no Roadmap [v1.3.3]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.3.3nas constantes globais e cabeçalho do plugin) - class-gap-admin.php (Injetado card premium com detalhamento de custos estimados por artigo para cada modelo no topo da página de Ajuste de Configurações)
- VIBE_CHECKLIST.md (Adicionado ao roadmap futuro o suporte ao motor de imagem da OpenAI/DALL-E 2 / GPT-2 Imagem)
- Alterações:
- Card de Transparência de Custos: Desenvolvemos e injetamos um box informativo visualmente deslumbrante (Tailwind Premium) no cabeçalho do painel de Configurações administrativas. Esse card detalha objetivamente a estimativa de custo de API para gerar um post aprofundado de 2000 palavras + imagem mestre do Unsplash ou Nano Banana 2. Os valores são apresentados claramente em Reais (R$), permitindo ao cliente comparar no ato da configuração:
- Gemini 3.5 Flash: ~R$ 0,026 / post (Ultra Econômico)
- GPT-5.4 Mini: ~R$ 0,039 / post (Recomendado)
- Gemini 3.1 Pro: ~R$ 0,212 / post
- Claude 4.5 Sonnet: ~R$ 0,315 / post
- GPT-5.4 Premium: ~R$ 0,410 / post
- Roadmap Futuro “GPT-2 Imagem”: Adicionada a meta de suporte futuro para o gerador de imagens da OpenAI (“GPT-2 Imagem” / DALL-E 2) na Fase 6 da checklist oficial de desenvolvimento, para flexibilizar a geração automática sob novos dados técnicos a serem providos.
[2026-05-26 13:30] – Incremento Global de Versão [v1.3.2]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada pelo usuário para
1.3.2nas constantes de bootstrap e cabeçalho do plugin) - Alterações:
- Incremento de Versão: A versão oficial do plugin no WordPress foi cravada pelo usuário em
1.3.2para consolidar todas as evoluções estruturais, otimizações econômicas do parser e correções visuais implementadas com sucesso nesta iteração de Vibe Coding.
[2026-05-26 12:05] – Definição do gpt-5.4-mini como Padrão de Produção Otimizado [v1.3.1]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada pelo usuário para
1.3.1nas constantes globais) - class-gap-admin.php (Ajustado o modelo padrão de fallback selecionado no dropdown da OpenAI para
gpt-5.4-mini) - class-gap-engine-openai.php (Atualizado o fallback do construtor para
gpt-5.4-minicomo o motor padrão nativo do driver) - Alterações:
- Ajuste de Usabilidade Econômica: Alinhamos a configuração de fábrica do plugin com a planilha oficial de preços e diretrizes de Vibe Coding.
- OpenAI Otimizada por Padrão: O plugin passa a adotar e forçar o
gpt-5.4-minicomo o modelo padrão selecionado e operado tanto no banco de dados quanto na interface do usuário (em vez do carogpt-5.4), garantindo custos operacionais extremamente enxutos em pipelines de geração em massa e Wizard. - Manutenção do Gemini 3.5 Flash: O modelo mestre ultra-econômico
gemini-3.5-flashsegue consolidado como o padrão absoluto de fábrica da Google para latência quase zero e texto virtualmente gratuito.
[2026-05-26 11:35] – Título Customizado Opcional em CSV de Lote & Ajuste de Largura da UI do Lookalike [v1.2.9]
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para
1.2.9) - class-gap-admin.php (Ajuste da classe visual do input de quantidade lookalike, re-escrita do parser de CSV na função
ajax_add_bulk_jobse injeção do box didático com placeholder avançado na UI) - Alterações:
- Incremento de Versão: A versão global do plugin foi cravada em
1.2.9tanto no cabeçalho do arquivo principal quanto na constanteGAP_VERSIONde bootstrap. - Largura do Input da UI Corrigida: Modificada a classe de largura do input do número de Lookalike de
w-14(56px) paraw-20(80px) nas configurações visuais de Massa (render_bulk_page). Isso expande a largura horizontal interna do campo, comportando perfeitamente 3 ou mais dígitos sem qualquer tipo de corte de visualização. Também aumentamos o valor máximo nativo do HTML de50para100para lotes de lookalikes maiores. - Suporte a Título Customizado no CSV de Lote: Desenvolvemos uma re-escrita estruturada no parser de string do textarea de keywords em
ajax_add_bulk_jobsutilizando o interpretador segurostr_getcsv(). - Formato CSV Expansível de 4 Colunas: A linha enviada agora suporta inteligentemente o formato:
Keyword, Categoria, Tag1 | Tag2 | Tag3, Titulo Customizado. - Fallback Inteligente de Colunas:
- 4 partes passadas: Processa e mapeia as 4 colunas perfeitamente.
- 3 partes passadas: Keyword, Categoria e Tags ativas. O título fica em branco e é sugerido automaticamente via IA.
- 2 partes passadas: Keyword e Categoria mapeadas. Tags e Título gerados automaticamente via fallbacks.
- 1 parte passada (pura): Keyword mapeada. Categoria, tags e título gerados de forma automática conforme opções.
- Bypass Automático de Sugestão de Título por IA: A variável de título extraída da 4ª coluna é gravada diretamente na chave
'title'das configurações do Job (settings). Com isso, o processador assíncrono em background (GAP_Processor::process_existing_job) detecta automaticamente que o título já foi fornecido e pula a requisição à API de IA para gerar um título, otimizando créditos e tempo de resposta. - Box Informativo de Onboarding na UI: Adicionado um belo box didático de alta fidelidade visual com design premium clean em Tailwind logo acima da caixa de digitação. Esse card explica didaticamente a estrutura dos arquivos aceitos (Simples e CSV Completo). O
placeholderdo próprio textarea também foi enriquecido com exemplos práticos detalhando ambas as abordagens para facilitar o uso no dia a dia.
[2026-05-26 11:05] – Botão “Limpar Histórico” com Exclusão Física Controlada e Nonce de Segurança
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Inserção da lógica de POST de limpeza, exibição de banner Tailwind e botão com confirmação nativa no dashboard
render_main_page) - Alterações:
- Botão “Limpar Histórico” no Dashboard: Adicionado um novo botão visual premium e minimalista ao lado de “Novo Artigo” no Dashboard de Operações IA. Ele segue o visual SaaS do plugin (fundo branco, borda avermelhada leve, hover com fundo vermelho pastel suave e cursor pointer).
- Segurança Robusta (Nonces & Privilégios): Implementada validação rigorosa com Nonce do WordPress (
gap_clear_history_nonce) e verificação de privilégios de administrador (current_user_can('manage_options')) no tratamento da ação POST de limpeza para blindar a operação contra CSRF. - Janela de Confirmação Javascript: Integrada janela de confirmação nativa no submit do formulário, detalhando claramente ao usuário que os registros de histórico serão deletados para reiniciar a IA Lookalike, enquanto os posts publicados no WordPress permanecem 100% seguros e intactos.
- Exclusão Física Cirúrgica (Inclusão de
content_generated): A ação deleta fisicamente do banco de dados ($wpdb->query) os registros cujos status representam artigos gerados ou finalizados com sucesso ou falha (completed,published,errore agora tambémcontent_generatedpara cobrir rascunhos individuais parciais ou abandonados no Wizard). Isso limpa de fato o viés semântico que a IA de Lookalike puxa do banco, mas mantém intactos e seguros todos os jobs que estejam pendentes, agendados ou ativos em fila no Drip Feed do gerador em massa. - Banner Premium de Feedback: Se o histórico for limpo com sucesso, a página renderiza um lindo aviso inline no topo do Dashboard com design moderno Tailwind (fundo verde claro, borda e ícone elegante), confirmando o reset da base de keywords com sucesso.
[2026-05-26 11:00] – Arquivamento Lógico (Soft Delete) no Lote Bulk & Preservação do Lookalike
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Alteração do fluxo de exclusão/limpeza no
ajax_control_bulk_jobe filtragem noajax_get_bulk_status) - Alterações:
- Preservação de Histórico e Lookalike: Resolvida a falha de dados em que a limpeza de concluídos removia fisicamente os jobs do banco. Agora, ao limpar concluídos/falhos, o plugin realiza um arquivamento lógico (Soft Delete) adicionando a flag
"hide_in_queue":1no JSON de configurações do Job, em vez de deletar fisicamente o registro do banco de dados. - Filtro Inteligente na Fila Bulk: A listagem e contadores da fila em lote passam a ignorar os registros que possuem a flag de ocultação, limpando instantaneamente a visualização do painel para o usuário.
- Histórico Geral & IA Mantidos: Os posts concluídos continuam intactos no banco de dados, aparecendo permanentemente no Histórico Geral de Operações e mantendo ativa toda a base de dados histórica necessária para o algoritmo do Lookalike de Keywords da IA evitar duplicados e propor novas ideias de temas.
- Deleção Física apenas para Pendentes: Caso o job seja cancelado/excluído ainda em estado pendente (sem ter sido gerado ou gerado erro), a deleção física do banco é mantida, poupando espaço e registros desnecessários.
[2026-05-26 10:50] – Coluna Tipo (Bulk/Single) no Histórico Geral de Operações IA
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Adicionada a coluna Tipo no cabeçalho e corpo da tabela de histórico geral do painel principal
render_main_page) - Alterações:
- Identificação Visual Premium no Histórico: Adicionada uma nova coluna chamada Tipo na tabela do dashboard de Operações IA principal (que lista todos os posts unificados).
- Badges Modernas SaaS: Cada registro agora exibe um badge elegante e colorido de alta fidelidade para rápida identificação visual da origem do post:
📦 Bulk(azul) para posts gerados em lote/massa.👤 Single(verde) para posts gerados individualmente pelo Wizard.
- Histórico Geral Integrado: O histórico principal agora exibe a listagem completa e unificada (Massa e Singular) em ordem cronológica reversa, mantendo a tabela de Bulk isolada e exclusiva na página de Lote conforme planejado.
[2026-05-26 10:30] – Pooling Assíncrono com setTimeout & Destravamento de Conexões no Lote Bulk
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Substituição de
setIntervalcego porsetTimeoutencadeado dinâmico na resposta do AJAX no métodoloadQueue) - Alterações:
- Pooling de Monitoramento Assíncrono Inteligente: Corrigido o problema clássico de travamento e inacessibilidade temporária do site (tanto no admin quanto na área pública) durante a geração ativa de lote no ambiente de desenvolvimento local (LocalWP).
- Fim do Empilhamento de Requisições (Starvation): Anteriormente, o pooling utilizava um
setIntervalcego a cada 5 segundos. Caso o servidor estivesse sob forte processamento (geração de texto e imagens via IA em segundo plano) e demorasse para responder ao AJAX, osetIntervalcontinuava empilhando novas requisições AJAX concorrentes em fila no servidor local. Isso consumia instantaneamente todos os poucos workers PHP disponíveis no LocalWP, travando completamente o site inteiro. - Solução com setTimeout Encadeado: O pooling agora só agenda a próxima verificação de fila para daqui a 5 segundos após a requisição AJAX atual retornar com absoluto sucesso ou falha, quebrando o acúmulo de requisições pendentes e mantendo o servidor local sempre livre, leve, responsivo e com navegação e UX impecáveis.
[2026-05-26 10:10] – Formato CSV Inline no Lote (Keyword, Categoria, Tags por linha) & Versão 1.2.5
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Versão incrementada para 1.2.5 pelo usuário)
- class-gap-admin.php (Implementado o parsing inteligente de Keyword, Categoria e Tags por linha no endpoint
ajax_add_bulk_jobs) - class-gap-processor.php (Respeito dinâmico à categoria salva no JSON de settings do Job no método
finalize_and_publish_post) - Alterações:
- Formato CSV Inline no Lote (Avançado): Adicionado suporte completo para o usuário passar configurações personalizadas por linha na caixa de texto do lote. Formato aceito:
Keyword, Categoria, Tag1 | Tag2 | Tag3. - Criação Automática e Dinâmica de Categorias: Se o usuário informar uma categoria por linha que ainda não existe no WordPress, o plugin criará a categoria automaticamente em tempo real e associará o artigo a ela. ID numérico de categoria também é aceito.
- Retrocompatibilidade e Fallbacks: Caso o usuário digite apenas a palavra-chave de forma simples, o plugin continuará a buscar a Categoria e as Tags globais selecionadas na barra lateral de ajustes como fallback.
- Integração no Processador: O processador core foi atualizado para ler e aplicar dinamicamente a categoria gravada individualmente no JSON de configurações (
settings) do Job antes de postar, garantindo que cada artigo vá exatamente para a categoria especificada em sua linha. - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.2.0para1.2.5no cabeçalho do plugin e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-26 08:15] – Lookalike de Keywords com IA, Agendamento Drip Feed & Controles Globais de Fila (FASE 6.1)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-action-scheduler.php (Novo método
dequeue_jobpara cancelamento de agendamentos futuros) - class-gap-admin.php (Filtros de isolamento Bulk, status Agendado, ações globais
cancel_all/clear_allno AJAX/JS e botões na UI da fila) - Alterações:
- Lookalike de Keywords com IA: Botão visual e endpoint AJAX para sugestão em massa de palavras-chave inéditas com base no histórico das últimas 50 geradas no banco, utilizando a IA primária com um prompt estratégico que bloqueia duplicações e as insere diretamente na caixa de texto de lote. [Correções de UX & Escopo]: Corrigido o bug de escopo do seletor do botão Lookalike (
$('#gap-btn-lookalike')) no JS e adicionado feedback visual explícito de processamento. O botão agora é desabilitado instantaneamente e exibe o texto⏳ Gerando com IA...enquanto a requisição AJAX está rodando, reativando ao finalizar. [Correção de Upload Clique]: Corrigido o erro de recursão infinita e travamento no clique da área de upload/dropzone. Ao acionar programaticamente o input file, o clique se propagava de volta para o elemento pai (gap-dropzone) criando um loop infinito bloqueado pelo navegador; adicionada a chamada ae.stopPropagation()no clique do input de arquivos, o que abre perfeitamente o selecionador de arquivos do sistema operacional ao clicar em qualquer lugar da dropzone ou no link “clique para importar”. - Agendamento Drip Feed (Fila Progressiva): Acoplada a lógica progressiva de agendamento em loop no cadastro de lote de Massa (Bulk), gravando o fuso horário correto no banco e registrando as ações no Action Scheduler ou WP-Cron. Implementado o método
GAP_Action_Scheduler::dequeue_jobpara remover fisicamente os agendamentos futuros no WordPress ao cancelar jobs. [Expansão de Intervalos]: Adicionados intervalos adicionais de postagem mais curtos e flexíveis no dropdown do HTML (1h, 2h, 4h, 6h, 8h, além dos de 12h, 24h, 48h, 72h) com compatibilidade nativa imediata no backend PHP. - Status Agendado na Interface: Modificada a renderização da fila de monitoramento Javascript para exibir o badge azul
⏳ Agendadoe a indicação de relógio⏰ [Data/Hora de Disparo]se o job estiver planejado para o futuro e ainda não tiver sido iniciado. - Controles Globais de Fila (Cancelar & Limpar Lote): Injetados botões premium SaaS “❌ Cancelar Pendentes” e “🧹 Limpar Concluídos” no cabeçalho do painel de fila Bulk, conectados a callbacks AJAX para exclusão em lote dos jobs pendentes ou finalizados (com limpeza automática das tarefas agendadas no cron do WordPress).
- Isolamento de Histórico Bulk: Filtrada e restrita a consulta em
ajax_get_bulk_statuspara buscar apenas os jobs gerados via Bulk (onde settings contém"is_bulk":1), garantindo que o monitoramento da fila em lote seja limpo e focado sem misturar registros com o gerador singular (Wizard).
[2026-05-26 07:55] – Polimento de Seleção Dinâmica de Motores de Texto e Imagem no Lote Bulk
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Novo dropdown visual de Motor de Imagens e envio de payload AJAX)
- class-gap-processor.php (Ajuste no
process_existing_jobefinalize_and_publish_postpara respeitar os motores de lote) - Alterações:
- Configuração de Imagem no Lote: Adicionado dropdown visual na sidebar de Ajustes de Lote para seleção explícita do Motor de Imagens (Unsplash, Nano Banana 2 ou Nenhuma) a ser aplicado ao processar o lote de Massa. O valor é devidamente transportado via payload AJAX e armazenado nas configurações individuais do Job.
- Dinamicidade Total nos Motores: Refatorada a leitura de
$primary_engine(texto) e$image_engine(imagem) dentro do processador core. O sistema agora lê dinamicamente as opções definidas pelo usuário no momento da criação do lote a partir de$settings['engine']e$settings['image_engine'], recorrendo às configurações globais do plugin apenas como fallback automático. Isso garante perfeita harmonia e equiparação da qualidade e inteligência entre as gerações singular e em massa. - Correção Terminológica: Ajustada a referência no histórico técnico e planos de modelo de “Gemini 3.1 Flash” para o termo técnico oficial de texto “Gemini 3.5 Flash”.
[2026-05-26 07:45] – Implementação da Geração em Massa (Bulk) & Fila Assíncrona com Action Scheduler (FASE 6)
- Status: Sucesso
- Arquivos Modificados/Criados:
- class-gap-action-scheduler.php (Novo – Classe de Agendamento da Fila)
- class-gap-processor.php (Adicionado método
process_existing_job) - geraaipro.php (Carregamento e Inicialização da classe de agendamento)
- class-gap-admin.php (Submenu, tela render_bulk_page e 3 endpoints AJAX)
- Alterações:
- Fila Assíncrona em Segundo Plano (Failover Inteligente): Criada a classe
GAP_Action_Schedulerpara orquestrar o enfileiramento dos artigos de forma assíncrona usando o Action Scheduler do WP. Adicionado um fallback automático para o WP-Cron nativo (wp_schedule_single_event) caso a biblioteca Action Scheduler não esteja ativa em ambientes isolados, garantindo resiliência em qualquer servidor sem timeouts. - Pipeline de Geração de Jobs Existentes: Criada a função
GAP_Processor::process_existing_jobque executa a geração de título, outline, links internos, conteúdo completo HTML e sideload da imagem de destaque em WebP de forma isolada, atualizando o progresso exato de cada etapa no Job ID pré-existente no banco de dados. - Endpoints AJAX de Lote: Implementados os endpoints
gap_add_bulk_jobs(higieniza e cadastra dezenas de keywords agendando-as na fila),gap_get_bulk_status(consulta estatísticas e jobs recentes em tempo real) egap_control_bulk_job(ações de excluir ou processar síncrono imediatamente). - Dashboard Bulk Premium: Desenvolvida a tela visual de Geração em Massa sob o menu
Gerar em Massa. Conta com textarea, drag-and-drop para importação de arquivos.txt/.csv, configurações unificadas de lote, cards de estatísticas rápidas, pooling JS periódico de 5 segundos que atualiza dinamicamente a fila ao vivo e ações unitárias por job.
[2026-05-25 17:25] – Correção do Bug de Label no Campo Público-Alvo (Perfil Editorial)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Correção do texto da Label do Público-Alvo)
- Alterações:
- Correção Visual no Público-Alvo: Corrigida uma duplicação/quebra de sintaxe HTML que exibia o fragmento de código
ext-sm font-bold mb-2 opacity-80">Público-Alvode forma crua acima do input. A tag<label>foi higienizada e restaurada para sua forma padrão e limpa, garantindo a exibição perfeita da interface no painel de configurações na seção “Perfil Editorial (Cérebro da IA)”.
[2026-05-25 17:22] – Correção de Layout no Painel de Configurações & Versão 1.1.8 pelo Usuário
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Correção das Divs do Painel de Ajustes)
- geraaipro.php (Versão do Plugin incrementada para 1.1.8)
- Alterações:
- Correção do Bug de Layout: Resolvido o erro de fechamento de tags HTML div no painel de configurações (
class-gap-admin.php). O card principalConfiguração Global do Motorestava sem fechamento apropriado (</div>), fazendo com que o painel de escolha das LLMs ficasse colado e agrupado incorretamente com os painéis inferiores. Adicionado o fechamento correto das divs para isolar o bloco visualmente com espaçamento harmônico e fluidez. - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.1.7para1.1.8no cabeçalho e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-25 17:05] – Conversão Nativa para WebP, Tela de Carregamento Blur Premium & Versão 1.1.7 pelo Usuário
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Conversão Nativa para WebP)
- class-gap-admin.php (Tela de Carregamento e Dropdown de Proporções)
- geraaipro.php (Versão do Plugin incrementada para 1.1.7)
- Alterações:
- Conversão Nativa para WebP: Aprimorado o método
gap_optimize_local_imagepara tentar converter todas as imagens baixadas (Unsplash ou Gemini) para o formato moderno WebP usando a classeWP_Image_Editordo WordPress. Se o servidor for compatível (GD ou Imagick habilitado com WebP), a imagem é salva e convertida, e sua extensão é atualizada para.webp. Isso reduz o peso médio da imagem destacada de ~150KB para apenas 40KB – 80KB, garantindo máxima pontuação no PageSpeed! - Tela de Carregamento Blur Premium: Adicionado um overlay de tela inteira com design moderno de Glassmorphic Blur (
backdrop-blur-mde fundo semi-transparente) que bloqueia completamente a tela durante a geração do outline, do conteúdo e da imagem. O overlay exibe um spinner rotativo premium, uma barra de progresso animada e textos dinâmicos de status (“Estruturando outline…”, “Escrevendo conteúdo de elite…”, “Salvando post e processando imagem…”). Isso impede cliques duplos que possam corromper o processo de geração. - Proporção Clássica 3:2 por Padrão: Alterada a seleção padrão no dropdown de proporções de imagem do wizard para
3:2 (Clássica)ao invés de16:9. - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.1.6para1.1.7no cabeçalho e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-25 16:25] – Otimização Nativa de Peso e Compressão de Imagens & Versão 1.1.6 pelo Usuário
- Status: Sucesso
- Arquivos Modificados:
- class-gap-processor.php (Compressão de Imagens e Redimensionamento)
- geraaipro.php (Versão do Plugin incrementada para 1.1.6)
- Alterações:
- Compressão de Imagens Nativa: Adicionado o método
gap_optimize_local_imageao processador. Ele utiliza a classe oficial do WordPressWP_Image_Editor(GD ou Imagick) para processar todas as imagens temporárias (baixadas do Unsplash ou geradas pelo Gemini base64) antes delas serem cadastradas na biblioteca de mídias pormedia_handle_sideload. - Redução drástica de peso: Limita a largura máxima das imagens originais a 1425px e define uma qualidade de compressão de
82(padrão-ouro recomendado para SEO e performance de sites). Isso reduz o peso da imagem mestre na biblioteca de mídias de mais de 800KB para uma média de 120-160KB, dentro do range ideal de alta performance. - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.1.4para1.1.6no cabeçalho e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-25 14:35] – Alinhamento Perfeito do Nano Banana 2 com n8n, Redimensionamento Unsplash 1200px+ & Versão 1.1.4 pelo Usuário
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-gemini.php (Geração de Imagem com Gemini)
- class-gap-processor.php (Lógica do Unsplash com Sizing)
- geraaipro.php (Versão do Plugin incrementada para 1.1.4)
- Alterações:
- Alinhamento do Nano Banana 2 com o n8n: Substituído o payload JSON da requisição do Gemini para usar a estrutura exata e simplificada que está funcionando no nó n8n do usuário. Agora o
responseModalitiesé estritamente["Image"], e oaspectRatiodo usuário é passado diretamente sob a chaveimageConfig(eliminando a rejeição do enumImageResponseFormat). - Redimensionamento Dinâmico do Unsplash (1200px+ & Dimensões Mínimas de 800px): Implementado o download da imagem crua (
rawURL) da API do Unsplash. Agora o processador utiliza uma closure inteligente para concatenar dimensões e parâmetros de corte dinâmico do Imgix/Unsplash (&w=1200&h=X&fit=crop&q=80). Adicionalmente, garantimos que nenhuma dimensão (seja altura ou largura) fique abaixo de 800px para qualquer proporção escolhida (por exemplo, no formato16:9o tamanho de corte é ajustado dinamicamente para1425x800px), cumprindo rigorosamente as diretrizes visuais do Google Discover. - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.1.3para1.1.4no cabeçalho e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-25 14:02] – Correção do Bug de Enums na API Nano Banana 2 & Versão 1.1.3 pelo Usuário
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-gemini.php (Mapeamento de Aspect Ratio e Image Size)
- geraaipro.php (Versão do Plugin incrementada para 1.1.3)
- Alterações:
- Mapeamento de Enums da API Gemini: Corrigido o erro de
INVALID_ARGUMENT (HTTP 400)retornado pela API Google AI Studio quando o aspect_ratio era enviado como"3:2"ou"16:9"e o imageSize como"2K". - Tradução: Implementada uma matriz de tradução estrita no método
generate_image()para mapear os formatos amigáveis nos enums oficiais compatíveis com o protobuf do endpointgenerateContent(exemplo:"3:2"convertido paraASPECT_RATIO_3_2, e"2K"mapeado para o enumIMAGE_SIZE_2K). - Sincronização de Versão: O usuário incrementou a versão do plugin de
1.1.2para1.1.3no cabeçalho e na constante globalGAP_VERSIONdegeraaipro.php.
[2026-05-25 13:16] – Versão 1.1.2 (Sincronização de Versão pelo Usuário)
- Status: Sucesso
- Arquivos Modificados:
- geraaipro.php (Linhas 5 e 17)
- Alteração:
- O usuário incrementou manualmente a versão do plugin de
1.0.9para1.1.2tanto no cabeçalho do arquivo principal quanto na constante globalGAP_VERSION.
[2026-05-25 13:10] – Correção Definitiva de Imagens (Unsplash & Nano Banana 2) & Exibição de Erros
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-gemini.php (Geração de Imagem com Gemini)
- class-gap-processor.php (Lógica do Processador de Imagem)
- class-gap-admin.php (Dashboard e Histórico)
- Alterações:
- Nano Banana 2: Refatorado o método
generate_imageno motor Gemini para apontar para o modelo oficial de produção de imagens do AI Studio,gemini-3.1-flash-image-preview, utilizando o endpoint oficial:generateContentcom o cabeçalhox-goog-api-keye nova estrutura de payload. - Decodificação Robusta de Mídia: Atualizado o processador para decodificar dinamicamente o base64 a partir do nó
inlineData/inline_datada resposta do Gemini 3.1, mantendo compatibilidade retroativa compredictions. - Bypass de timeouts no Unsplash: Adicionado timeout explícito de
45 segundosnas requisições da API de busca do Unsplash (evitando cair no timeout padrão agressivo de 5s do WordPress, que causava falhas em produção). - Erros de Imagem no Dashboard: Atualizado o dashboard de histórico para renderizar um alerta em vermelho (
⚠ Erro: [Mensagem]) abaixo do badge verde do post publicado sempre que a imagem de destaque falhar. Isso dá feedback visual imediato ao usuário sem falhar a publicação do artigo principal. - Segurança de Temporários: Substituído o nome parametrizado no temporário por
wp_tempnam( 'gap_image_' )padrão para evitar quebras de sanitização de arquivo em plataformas Windows/produção.
[2026-05-24] – Erradicação de Links Circulares, Limites Invioláveis e timeouts Estendidos (v5.9)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-engine-openai.php (Prompt de Texto)
- class-gap-engine-gemini.php (Prompt de Texto)
- class-gap-engine-claude.php (Prompt de Texto)
- class-gap-processor.php (timeouts)
- Alterações:
- Erradicação de timeouts: Aumentado o timeout de todas as requisições principais de outlines e conteúdo de 60s/120s para 180 segundos em todas as três engines para evitar erros de timeout cURL 28 em posts longos.
- Links Invioláveis: Atualizados prompts mestre com a regra de MÁXIMO 3 LINKS POR POST (exatamente 1 externo e no máximo 2 internos).
- Âncoras Curtas: Limitação severa no tamanho das tags
<a>, restringindo o comprimento das âncoras para 1 a 3 palavras consecutivas no máximo, proibindo links longos que englobem frases inteiras. - Zero Links Circulares: Reforço absoluto contra links auto-referenciais e CTAs que apontem para o próprio H1, post ou slug atual.
[2026-05-23] – UX de Exclusão de API Keys & Negritos Semânticos Flexíveis (v5.8)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (UX do Painel e Backend)
- class-gap-engine-openai.php (Prompt)
- class-gap-engine-gemini.php (Prompt)
- class-gap-engine-claude.php (Prompt)
- Alterações:
- Negritos Inteligentes e Semânticos: Reformulada a Regra 6 dos prompts de IA para aplicar tags
<strong>de forma natural e distribuída ao longo das frases (destacando a Keyword principal, LSIs, numerais relevantes e conceitos estratégicos), sem excessos e sem depender exclusivamente de keywords secundárias. - Exclusão de API Keys: Adicionados botões visuais de lixeira (🗑️) com confirmação via Javascript nos inputs de chaves de API do painel. Criado suporte robusto no backend para interceptar o array
gap_clear_api_keyse remover chaves específicas do banco de dados definitivamente, contornando o comportamento de autofill do navegador.
[2026-05-22] – Correção do Histórico, Recuperação Automática de post_id e Fallbacks (v5.7)
- Status: Sucesso
- Arquivos Modificados:
- class-gap-admin.php (Histórico de Jobs e Status)
- class-gap-processor.php (Gravação de post_id e Fallbacks)
- Alterações:
- post_id Retroativo e Badge Verde: Atualizada a lógica de renderização do histórico principal para fazer uma busca dinâmica via meta_key
_gap_job_idpara jobs que já foram concluídos/publicados, mas estavam com a colunapost_idnula no banco. O botão “Editar Post →” agora é exibido corretamente. Mapeadas as cores dos statuspublishedecompletedpara verde vibrante (bg-green-100 text-green-700). - Gravação Automática: Integrado ao método
finalize_and_publish_postdo processador a atualização da colunapost_idno banco no ato de publicação bem-sucedida do post. - Lógica de Fallback Sem Máscara: Refatorada a função
run_with_fallbackno processador. O sistema agora só executa fallback síncrono para a engine secundária se a chave dela estiver de fato configurada. Caso contrário, ou caso ambas falhem, o erro real retornado pela API da engine primária é exibido transparentemente, eliminando a exibição confusa do erro padrão de chave em branco da OpenAI.