Cerebro Studio · Backlog · Changelog
RioNoTeatro • /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md
Abrir Studio Projeto externo em modo read-only; encaminhamento permitido, escrita bloqueada.

Backlog Unificado

Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.

Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.

Especificações Disponíveis (fora da fila pendente)

Detalhe do BK Selecionado

/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-279-shortlink-automatico-campanhas.md • 2026-04-29T14:20:56.929Z

BK-279 - Shortlink automático no módulo Campanhas

Status: aberto para implementação amanhã.

Objetivo

Fazer com que toda campanha criada em

admin/modulos/campanhas/incluir.php já nasça com:

  • destino longo com UTM completa;
  • shortlink rastreável em rnt_shortlinks;
  • link curto exibido na criação, listagem e detalhe da campanha;
  • registro suficiente para usar o link em WhatsApp, Meta, Google, e-mail ou

campanhas assistidas por Manus.IA.

Manus.IA pode apoiar copy, briefing e segmentação, mas não pode disparar nada

sem autorização humana expressa.

Decisão de retenção

Shortlinks de campanha não devem expirar automaticamente.

Motivo:

  • campanhas antigas ainda precisam servir para auditoria, atribuição e histórico;
  • mensagens compartilhadas podem continuar circulando por muito tempo;
  • expirar em 30 dias quebra análise e experiência do usuário.

Regra proposta:

  • expires_at = NULL por padrão;
  • permitir expiração manual/opcional apenas quando o admin marcar o link como

temporário;

  • no futuro, criar rotina de arquivamento somente para links com muitos meses

sem clique e destino inválido, nunca por idade fixa curta.

Escopo técnico

Arquivos prováveis:

  • admin/modulos/campanhas/incluir.php
  • admin/modulos/campanhas/action.php
  • admin/modulos/campanhas/index.php
  • admin/modulos/campanhas/detalhes.php
  • admin/modulos/campanhas/editar.php
  • config/shortlink_helper.php
  • possível SQL incremental para relacionar campanha e shortlink se a tabela

campanhas não tiver campo adequado.

Reaproveitar:

  • short.php
  • .htaccess
  • /www/server/panel/vhost/rewrite/rionoteatro.com.br.conf
  • rnt_shortlinks

Pacotes menores para execução e revisão externa

Em vez de mandar uma revisão gigante para agentes externos, dividir assim:

  1. Modelo de dados e retenção
  • verificar colunas atuais de campanhas;
  • decidir entre adicionar shortlink_id/shortlink_url ou derivar por UTM;
  • garantir que expires_at=NULL seja o default operacional.
  1. Backend de criação
  • alterar action.php para criar/reusar shortlink no act=criar;
  • preservar destino longo com UTM completa;
  • retornar short_link no JSON.
  1. UI de criação
  • alterar incluir.php para escolher destino/peça ou URL base;
  • preview deve mostrar URL longa e curta;
  • copiar link curto por padrão.
  1. Listagem e detalhe
  • exibir shortlink em index.php e detalhes.php;
  • mostrar destino longo, clicks e último clique.
  1. Integração Manus.IA sem disparo
  • campo/ação para gerar rascunho de briefing/copy;
  • saída sempre como rascunho no admin;
  • nenhum envio, publicação ou task externa sem confirmação humana.
  1. Segurança e guardrails
  • restringir destino a rionoteatro.com.br;
  • validar slug/código curto;
  • não criar campanha real sem UTM mínima;
  • registrar logs e erros sem segredos.
  1. Migração e retrocompatibilidade
  • não quebrar campanhas antigas sem shortlink;
  • permitir gerar shortlink manualmente para campanha existente.

Estratégia de agentes externos

Para reduzir erro e acelerar análise, usar revisões paralelas pequenas:

  • revisão A: schema/DB/retention;
  • revisão B: backend action.php;
  • revisão C: UI incluir.php e listagem;
  • revisão D: segurança/guardrails e risco de disparo indevido.

Cada revisão deve receber apenas:

  • arquivos do pacote;
  • diff pequeno;
  • critério de aceite;
  • perguntas objetivas.

Evitar prompt único com todo o módulo campanhas, porque redes_sociais.php

e o histórico do módulo são grandes demais e aumentam falso positivo.

Smoke de 2026-04-29

Foi testada uma revisão externa pequena, limitada apenas a este roadmap:

  • Gemini CLI (/root/scripts/gemini_subagent.sh analysis --sandbox false) não

respondeu em 90s e foi encerrado por timeout.

  • OpenCode (opencode/minimax-m2.5-free) falhou no erro conhecido de provider:

tools[*].eager_input_streaming.

Conclusão operacional:

  • a divisão menor continua sendo a estratégia correta para reduzir contexto e

falso positivo;

  • antes da implementação de amanhã, fazer smoke curto do worker escolhido;
  • se OpenCode repetir eager_input_streaming, usar Gemini CLI ou outro worker

externo disponível;

  • se Gemini estiver lento, dividir ainda mais os pacotes e usar prompts com

conteúdo real via stdin, não referência ampla ao workspace.

Critérios de aceite

  • criar campanha pelo admin gera shortlink automaticamente;
  • link curto redireciona para destino longo com UTMs;
  • link não expira por padrão;
  • campanha salva mantém URL longa e curta rastreáveis;
  • listagem mostra botão copiar link curto;
  • nenhum fluxo dispara WhatsApp, Manus, Meta, Google ou e-mail;
  • php -l nos arquivos alterados;
  • teste real logado no admin antes de habilitar uso diário.

Pendências humanas/admin

  • escolher se o destino default será pecas.php, uma peça específica ou seleção

obrigatória de peça.

  • decidir se Manus.IA entra já no primeiro MVP ou fica para etapa 2.
  • aprovar qualquer envio/disparo em campanha real separadamente.