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)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
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 = NULLpor 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.phpadmin/modulos/campanhas/action.phpadmin/modulos/campanhas/index.phpadmin/modulos/campanhas/detalhes.phpadmin/modulos/campanhas/editar.phpconfig/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.confrnt_shortlinks
Pacotes menores para execução e revisão externa
Em vez de mandar uma revisão gigante para agentes externos, dividir assim:
- Modelo de dados e retenção
- verificar colunas atuais de
campanhas; - decidir entre adicionar
shortlink_id/shortlink_urlou derivar por UTM; - garantir que
expires_at=NULLseja o default operacional.
- Backend de criação
- alterar
action.phppara criar/reusar shortlink noact=criar; - preservar destino longo com UTM completa;
- retornar
short_linkno JSON.
- UI de criação
- alterar
incluir.phppara escolher destino/peça ou URL base; - preview deve mostrar URL longa e curta;
- copiar link curto por padrão.
- Listagem e detalhe
- exibir shortlink em
index.phpedetalhes.php; - mostrar destino longo, clicks e último clique.
- 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.
- 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.
- 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.phpe 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 -lnos 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.