WP Image Master Pro v3.0 — Cards + Pesquisa IA

Diagnóstico Central

O contexto que alimenta a IA é frágil, temporário e genérico demais.

Sem Catálogo de Referência

IA não sabe o que o site normalmente fotografa
→ "carne grelhada" em vez de "picanha"
✓ Solução: Site Scanner persistente (Card 1.1)

Sem Vocabulário do Domínio

Não conhece termos específicos do negócio
→ Descrições genéricas e sem valor SEO
✓ Solução: Vocabulário editável (Card 1.2)

Sem Exemplos Visuais

Não pode comparar com boas descrições já aprovadas
→ Tom inconsistente entre gerações
✓ Solução: Reference Images / few-shot (Card 1.3)

Contexto Volátil

Site Scanner salva em JS, some no reload da página
→ Dados perdidos, workflow quebrado
✓ Solução: Persistir em wp_options (Card 1.1)

Sem Validação

IA gera e o usuário confia cegamente no resultado
→ alt_text com 50 palavras, duplicatas, keyword stuffing
✓ Solução: Validator pós-geração (Card 3.1)

Prompt Monolítico

5.500 chars tudo misturado num único bloco de texto
→ Custo alto de tokens, foco baixo da IA
✓ Solução: Prompt por camadas ~2.400 chars (Card 2.1)

13 Cards de Desenvolvimento

Sprint 1

Dados + Prompt

Sprint 2

Contexto Inteligente

Sprint 3

Validação + UX

Sprint 4

Cleanup

Bloco 1 — Dados

O que alimenta a IA — Sprint 1 & 2

CARD 1.1 — SPRINT 1
Site Scanner Persistente
REFATORAR
Scan de WooCommerce, páginas, team → salva em wp_options em vez de JS volátil
Tarefas (4)
  • Salvar resultado em wp_options('wam_site_data') como JSON
  • Módulos com toggle on/off + timestamp por módulo
  • Auto-feed no build_prompt() sem ação manual
  • UI: checkboxes por módulo + preview do que IA recebe
Impacto:
Complexidade: Média · ~3-4h
CARD 1.2 — SPRINT 1
Vocabulário de Domínio
NOVO
Lista de termos específicos: cortes de carne, tipos de evento, equipamentos, regiões
Tarefas (4)
  • CRUD de categorias: cuts, events, equipment, custom
  • Salva em wp_options('wam_vocabulary') como JSON
  • get_for_prompt() → string formatada (~500 chars max)
  • Auto-gerar a partir de WooCommerce (categorias + tags)
Impacto:
Complexidade: Baixa · ~2h
CARD 1.3 — SPRINT 2
Exemplos de Referência (Few-shot)
REFATORAR
Descrições já aprovadas servem de modelo de tom/estilo para a IA copiar
Tarefas (4)
  • Salvar 5-10 exemplos aprovados em wp_options
  • Botão "★ Usar como referência" após Apply
  • Injetar no prompt como exemplos (Camada 5)
  • get_for_prompt() → 3-5 melhores (~500 chars)
Impacto:
Complexidade: Baixa · ~2h
CARD 1.4 — SPRINT 2
Smart Context por Imagem
REFATORAR
Detectar se imagem é de produto, post, GPS — injetar só o contexto relevante
Tarefas (4)
  • Product image → nome, preço, desc, categoria
  • Featured de post → título + excerpt
  • EXIF GPS → endereço aproximado
  • NUNCA injeta catálogo inteiro — só o relevante
Impacto:
Complexidade: Média · ~2-3h

Bloco 2 — Prompt

Como a IA processa — Sprint 1 & 2

CARD 2.1 — SPRINT 1
Prompt por Camadas
NOVO
Reestruturar prompt em 5 camadas com tamanho controlado: ~2.400 chars vs ~5.500 atual
Tarefas (5)
  • Camada 1: Site identity (fixo, ~500 chars)
  • Camada 2: Contexto da imagem (dinâmico, ~300 chars)
  • Camada 3: Vocabulário (fixo, ~1.000 chars)
  • Camada 4: Batch context (por sessão, ~200 chars)
  • Camada 5: Exemplos de referência (fixo, ~500 chars)
Impacto:
Complexidade: Média · ~3-4h
CARD 2.2 — SPRINT 1
Prompt de Especificidade
NOVO
Instruções explícitas: "identifique corte por nome brasileiro", "conte pessoas"
Tarefas (5)
  • Identificar cortes de carne por nome brasileiro
  • Distinguir vinho por cor (tinto/branco/rosé/espumante)
  • Contar número exato de pessoas visíveis
  • Descrever apresentação: grelhado, espetado, fatiado
  • Usar vocabulário do domínio fornecido
Impacto:
Complexidade: Baixa · ~1h (junto com 2.1)
CARD 2.3 — SPRINT 2
Modelo Adaptativo
NOVO
Haiku para preview rápido (barato), Sonnet/Opus para produção (qualidade)
Tarefas (3)
  • "⚡ Quick Preview" → força Haiku
  • "🎯 Generate Final" → Sonnet/Opus
  • Comparação side-by-side
Impacto:
Complexidade: Baixa · ~1-2h

Bloco 3 — Validação

O que acontece depois da geração — Sprint 3

CARD 3.1 — SPRINT 3
Validação Pós-Geração
NOVO
Checar qualidade ANTES do Apply: comprimento, idioma, keyword stuffing, coerência
Tarefas (6)
  • alt_text: 5-20 palavras?
  • title: 5-8 palavras?
  • Idioma correto?
  • Keyword stuffing (termo 3+ vezes)?
  • Coerência category vs conteúdo?
  • Badges visuais inline nos resultados
Impacto:
Complexidade: Baixa (PHP string analysis) · ~2h
CARD 3.2 — SPRINT 3
Detecção de Duplicatas
NOVO
Avisar se o alt_text gerado já existe em outra imagem do site
Tarefas (3)
  • Query wp_postmeta por _wp_attachment_image_alt LIKE
  • Aviso: "Similar alt text found on Image #12345"
  • Sugerir variação automática
Impacto:
Complexidade: Baixa · ~1h

Bloco 4 — UI / Tabs

Experiência do usuário — Sprint 3

CARD 4.1 — SPRINT 3
Tab "AI Context" Reestruturada
REFATORAR
Separar Settings / Scanner / Vocabulário / Generate em 4 cards distintos
Tarefas (4)
  • Card 1: API Settings (key, model, language, SEO)
  • Card 2: Site Scanner (módulos, scan, preview)
  • Card 3: Vocabulário (termos editáveis)
  • Card 4: Generate (IDs, batch, generate/apply)
Impacto:
Complexidade: Média · ~2-3h
CARD 4.2
Tab "Cleanup" Unificada
REFATORAR
Juntar orphan scan + EXIF/GPS numa tab só — já parcialmente feito
Tarefas (2)
  • Card 1: Image Cleanup (4 scans sequenciais)
  • Card 2: Privacy & EXIF (GPS + strip)
Impacto:
Complexidade: Feito — testar · ~1h
CARD 4.3
6 Tabs Finais
REFATORAR
Converter · Biblioteca · AI Context · Metadata · Cleanup · Server
Removidos
  • Security → absorvido por Cleanup
  • SEO Rename → futuro dentro de Metadata
Impacto:
Complexidade: Parcialmente feito

Bloco 5 — Técnico

Manutenção e infraestrutura — Sprint 4

CARD 5.1 — SPRINT 4
Cleanup do Código
REFATORAR
Remover código morto, padronizar nomes WAM_, comentários inline
Tarefas (4)
  • Remover render tabs mortas + handlers AJAX órfãos
  • Padronizar prefixo WAM_ em todas as classes
  • Deletar class-security-inspector.php (667→100 lines)
  • Deletar class-seo-rename.php (backlog futuro)
Impacto:
Complexidade: Média · ~2h
CARD 5.2 — FUTURO
Uninstall Completo
FUTURO
Cleanup de wam_site_data, wam_vocabulary, wam_reference_images e todas _wam_* meta
Impacto:
Complexidade: Baixa
CARD 5.3 — FUTURO
API Key Encryption
FUTURO
Não guardar API key em texto puro no wp_options
Impacto:
Complexidade: Média

Como as IAs "Veem" Imagens

Pesquisa sobre Vision Language Models e o problema central do plugin

1. O que são Vision Language Models (VLMs)

Claude, GPT-4o e similares são Vision Language Models — modelos treinados com bilhões de pares imagem+texto da internet.

Ponto-chave: Claude é um modelo de linguagem com percepção visual integrada. Ele "vê" a imagem, mas o que descreve depende fortemente do CONTEXTO TEXTUAL que recebe junto.

Diferente de classificadores tradicionais (que dizem "isso é um cachorro"), VLMs conseguem:

  • Detecção hierárquica: veículo → carro esportivo → Ferrari 488
  • Referring expressions: "a bolsa azul ao lado da cadeira vermelha"
  • Reasoning visual: interpretar gráficos, mapas, receitas

O problema do plugin não é que a IA não CONSIGA ver — é que sem contexto de domínio, ela usa termos genéricos.

2. Por que "picanha" vira "carne grelhada"

VLMs aprendem correlações de web-scale: bilhões de imagens com legendas em inglês. O modelo SABE o que é picanha (está no treinamento), mas precisa de grounding — ancoragem textual.

❌ Sem grounding

IA recebe: "analyze this image"

Responde com termos genéricos:

"grilled meat on skewer"

✔ Com grounding

IA recebe: "MEAT CUTS: picanha, alcatra, maminha"

Ancora no vocabulário fornecido:

"picanha no espeto sobre brasa"

Técnica comprovada: Pesquisas de 2024-2025 confirmam que domain-specific text prompts melhoram significativamente o reconhecimento em VLMs, mesmo sem fine-tuning.

3. Few-Shot Prompting: Ensinar pelo Exemplo

Few-shot é a técnica de fornecer exemplos do resultado desejado DENTRO do prompt. A IA imita o padrão, tom e estilo.

FEW-SHOT NO CONTEXTO DO PLUGIN: Prompt inclui: STYLE REFERENCE (match this tone): • Alt: "picanha grelhada no espeto sobre brasa em evento corporativo" • Caption: "Cortes nobres preparados na brasa pelo Chef Dom" IA gera resultado NOVO seguindo o padrão: • Alt: "maminha fatiada com chimichurri no buffet premium" • Caption: "Buffet completo com 8 cortes nobres para casamento"

Pesquisas NeurIPS 2024 confirmam que exemplos multi-modais superam zero-shot consistentemente.

No plugin: os Reference Images (Card 1.3) implementam exatamente isso.

4. Prompt Engineering para Claude Vision

Best practices específicas da Anthropic para Claude 4.x:

  • Imagem antes do texto — colocar a imagem ANTES das instruções
  • Contexto explícito — explicar POR QUE a IA está analisando
  • Exemplos alinhados — Claude 4.x segue exemplos com muita precisão
  • Instruções específicas — "identify specific meat cuts by Brazilian name" > "be specific"
  • Formato JSON explícito — definir schema exato do retorno

Relevante: O prompt atual diz "be specific" (vago). O v3.0 diz "identify specific cuts of meat by Brazilian name (picanha, alcatra, maminha)" — alinhado com recomendações Anthropic.

5. O Modelo Certo para Cada Tarefa

Haiku 4.5
Rápido, barato
~70% qualidade
Preview / triagem
🎯
Sonnet 4.5
Equilíbrio perfeito
~95% qualidade
Produção / final
🧠
Opus 4.5
Máxima qualidade
Custo alto
Overkill para metadata

Estratégia ideal: Haiku para preview + Sonnet para geração final.

6. Resumo: 4 Técnicas Aplicadas na v3.0

Nenhuma exige fine-tuning — tudo via prompt engineering:

Domain Vocabulary Grounding
Vocabulário do negócio ancora a IA nos termos corretos
→ Cards 1.2 + 2.2
Few-Shot Learning
Exemplos aprovados ensinam tom e estilo por imitação
→ Card 1.3
Contextual Grounding
Contexto por imagem reduz ambiguidade
→ Cards 1.1 + 1.4
Layered Prompting
Prompt em camadas controla tamanho e foco
→ Card 2.1

Sistema de 5 Camadas

Como o prompt v3.0 é montado para cada imagem

1

SITE IDENTITY — Sempre presente, fixo

Nome do site, tagline, URL, idioma, tom da marca. Vem do Site Scanner.

~500 ch
2

CONTEXTO DA IMAGEM — Dinâmico por imagem

Smart Context: produto WooCommerce, post pai, EXIF GPS, gallery Elementor.

~300 ch
3

VOCABULÁRIO — Fixo, "dicionário" do negócio

Cortes de carne, tipos de evento, equipamentos, regiões.

~1.000 ch
4

BATCH CONTEXT — Por sessão, manual

Evento específico, data, local. Digitado pelo usuário.

~200 ch
5

EXEMPLOS DE REFERÊNCIA — Few-shot learning

3-5 melhores descrições já aprovadas. Modelo de tom e estilo.

~500 ch
Total por request
~2.500 chars
vs ~5.500 chars hoje
↓ 55% menos tokens · ↑ contexto mais focado

Fluxo Completo: da Imagem ao Resultado

1. USUÁRIO SELECIONA IMAGEM └― ID: 12345 (product image de "Churrasco Completo Premium") 2. SMART CONTEXT DETECTA └― Tipo: product_image └― Produto: "Churrasco Completo Premium", R$ 4.890, Cat: Premium 3. PROMPT BUILDER MONTA ├― Camada 1: "Dom Barbato — Premium BBQ catering, São Paulo" ├― Camada 2: "Product: Churrasco Completo Premium (R$ 4.890)" ├― Camada 3: "MEAT: picanha, alcatra... EVENTS: casamento..." ├― Camada 4: "Evento: Casamento Jardins, jan/2026" └― Camada 5: "Alt ref: 'picanha no espeto sobre brasa...'" 4. API CALL ├― Imagem base64 (1024px) + Prompt (~2.400 chars) └― Modelo: claude-sonnet-4-5 5. RESPOSTA ├― category: "food" ├― alt_text: "picanha e alcatra no espeto sobre brasa" ├― caption: "Cortes nobres preparados na brasa para casamento" ├― description: "Buffet completo de churrasco premium..." └― title: "Churrasco Premium no Espeto sobre Brasa" 6. VALIDAÇÃO LOCAL (PHP) ├― alt_text: 10 palavras ├― idioma: pt-BR ├― duplicata: nenhuma └― keyword stuffing: não 7. USUÁRIO ├― [Apply] → salva em wp_postmeta ├― [★ Referência] → salva como exemplo └― [Undo] → restaura estado anterior