Gerador de títulos com IA: da reformulação V3 ao coletor de referências e ao painel admin enxuto
V3 do gerador de títulos com IA, coletor de referências e reorganização do painel admin em 1 card → 1 tela no kmaroteApp.
Três dias concentrados quase inteiros no kmaroteApp. O tema que puxou tudo foi o gerador de títulos com IA rodando em cima do Grok — que já estava no sistema, mas entregando resultado ruim — e a partir dele veio uma reestruturação maior do painel admin. No meio, um card de monitoria do servidor e dois planejamentos abertos no Codex.
O gerador de títulos estava literal demais
O ponto de partida foi uma cobrança de qualidade. Pedi ao Claude Code que lesse o funcionamento do gerador de título com IA via Grok já implementado, porque o problema era claro: os títulos não seguiam o padrão da plataforma. Saíam descritivos, literais — e a ideia sempre foi usar os termos e a forma de escrever que a própria plataforma usa, não uma tradução engessada do vídeo.
A primeira rodada de ideias do Claude Code veio vaga, e cortei em cima: “Suas ideias parecem boas, mas são vagas. Como calculou o ROI? A whitelist do Sheer foi verificada — quantidade de tags e impacto real de adicionar isso ao prompt? De onde vêm os exemplos reais mencionados?”. Insisti no mesmo ponto quando o número não fechou: o Claude Code afirmou que a lista de tag_id do Sheer retornava “150 a 200” tags, e eu sabia que o retorno é fixo, não variável. Mandei refazer a análise com números reais, sem assumir nem presumir nada — tudo com base verificável.
Esse é o tipo de erro que não aparece em log nenhum: a IA não quebrou nada, só chutou um número plausível em vez de checar o que o Sheer realmente retorna. Só peguei porque já sabia o valor de cor.
O coletor de referências como infraestrutura
Depois de forçar a refação de 100% dos planos e verificações, o desenho ganhou corpo: gerador de títulos V3, com as 15 tags do Sheer, categorias do Pornhub, e — o ponto que virou infraestrutura — um coletor de títulos de referência por país e categoria. O .md estático de exemplos não servia: não contempla variedade suficiente e não se atualiza com o tempo. A decisão foi montar um coletor que roda local, faz o scrap das plataformas de referência (Pornhub, XVideos, Sheer) e alimenta o kmarote para consulta, em vez de manter exemplos chumbados num arquivo.
Isso saiu em commits ao longo dos três dias: feat: gerador de títulos V3 — Sheer 15 tags, categorias PH, coletor, seguido do feat: coleta de titulos de referencia por pais e categoria. Antes de fechar, uma cobrança de viabilidade: “Foi testada a API? Tenha certeza da viabilidade antes de começar.” Só depois de validado veio o “implemente todas as fases e atualize a documentação” — com exigência de que o output trouxesse um passo a passo para executar e automatizar o coletor local.
Os ajustes finos do coletor tomaram a tarde do dia 21. Três fixes em sequência:
- os endpoints de coleta passaram a seguir o padrão oficial da API privada;
- o coletor foi apontado para o domínio oficial dessa API, corrigindo o que apontava errado;
- os canais do Sheer passaram a ser coletados via XVideos, com limpeza do domínio de dev antigo que ainda estava referenciado.
Por último, registrei a coleta do Pornhub no gerenciador de cron do painel — o coletor deixou de ser algo manual e virou rotina agendada.
Painel admin: um card, uma tela por módulo
Com o gerador funcionando, o foco virou para como o admin acessa tudo isso. O que existia era bagunçado, e a diretriz que dei foi enxuta: na tela painel_admin deve ter só o card que leva para a home analítica; a tela analítica é que concentra o botão para configurar a API do Grok e qualquer outra configuração do módulo. A regra que repeti para não deixar dúvida: “A ideia é ter 1 card → 1 tela por módulo.”
Antes de deixar o Claude Code implementar, fiz ele descrever exatamente tudo que a tela do card ia exibir — telas, filtros, cards e funções, 100% do planejamento na mesa. Duas decisões entraram no plano no meio do caminho: não existe mais credencial por perfil, só credencial global — então o plano teve que incluir remover essa possibilidade e atualizar a documentação para refletir isso; e a implementação tinha que remover dead code e qualquer tabela ou coluna que deixasse de ser usada na mudança.
Essa frente foi executada com apoio de subagents no Claude Code: um para checar fatos (existência de arquivos e paths corretos) antes de otimizar o prompt de planejamento, outro para levantar evidência literal e não duplicar funcionalidade já existente no módulo “Gerador de Títulos IA”, e mais dois no fechamento — um code review e uma auditoria de segurança da mudança, ambos rodados com os arquivos ainda no working tree, antes de qualquer commit.
Card de monitoria do servidor
No começo da janela, uma tarefa mais isolada: um card no painel admin com informações do servidor — espaço, memória, discos e outras funções administrativas. Pedi ao Claude Code que pesquisasse quais itens são importantes num painel de monitoria antes de sair fazendo, e o resultado virou o feat: card Monitor do Servidor no painel admin.
Teve também um bug rápido reportado na virada do dia 18: ao clicar em “contratar com API correta” em produção, um erro que não aparecia no log do Apache e que começou logo após a última alteração — o tipo de regressão que só dá para caçar olhando o que mudou por último. Não ficou registrado no devlog qual foi a causa raiz encontrada.
Planejamento aberto no Codex
Duas conversas correram em paralelo no Codex, ambas em modo planejamento, sem implementação nesta janela. Na primeira, trabalhei o prompt de um card administrativo que reunisse todas as funções administrativas e informativas da geração de título com IA — tags, títulos de exemplo e afins — levando a uma tela dedicada. Questionei o próprio prompt: se todas as skills e documentações listadas eram realmente necessárias, e se o “card deve mostrar” não era na verdade a home do card. É o mesmo enxugamento que fiz no Claude Code, atacado por outro ângulo.
Na segunda, comecei o planejamento de uma tela de calendário global a partir da tela “meus canais”. Hoje o calendário geral é um modal, e a ideia é promovê-lo a tela própria. Pedi o mockup ao Codex para conseguir visualizar antes de decidir — ficou em planejamento, sem implementação nesta janela.
Decisão persistente
O padrão que vale registrar: sempre que uma resposta de IA trouxer um número (“150 a 200 tags”, por exemplo) sem fonte verificável, tratar como não confiável até confirmar contra o dado real — mesmo que o número pareça plausível e o restante do plano esteja bom. Isso já mudou como cobro planejamento antes de deixar implementar: fatos primeiro, plano depois.
Fechamento
Sem pendências de bug em aberto registradas além do acompanhamento normal do cron do coletor. Os dois planejamentos do Codex — card administrativo do gerador de títulos e tela de calendário global — seguem em aberto, sem data definida para virar implementação.
Estatísticas do dia (geradas automaticamente):
Atividade no PC:
- Tempo ativo: 13h00min (janela de 3 dias, resto AFK — janela abrange madrugadas)
Por categoria:
- Coding: 4h15min
- Não categorizado: 7h38min
- AI Chat: 32min
- Larissa: 16min
- Comunicação: 12min
- Browsing: 7min
Top apps: Antigravity IDE (4h09min) · TaskBarHero (2h57min) · explorer (2h05min) · Chrome (2h05min)
Top sites navegados: pornhub.mainhub.com (25min, plataforma de referência do coletor) · Facebook (~12min)
Trabalho com IA:
- claude.ai: 0 conversas (sem export novo na janela)
- Claude Code Windows: 8 sessões (4 principais no kmaroteApp + 4 subagents de fato/review/segurança)
- Codex Windows: 2 sessões em kmaroteApp
- Claude Code Larissa: indisponível (SSH não autorizado nesta execução)
Código produzido:
- Git kmaroteApp: 7 commits
- Git elquercarlos: 2 commits (artefatos do próprio pipeline de devlog)
- Git Larissa: indisponível (SSH não autorizado nesta execução)