AGENDAMENTOS DO AI STUDIO (FASE 18) · TR3S Marketing Digital
Plano de Teste E2E dos Agendamentos
BLOCOS10
CASOS32
CRÍTICOS9
PILOTO21/09/2026
Como ler este planoCada caso descreve uma ação e o resultado esperado. Casos com código em vermelho são críticos: bloqueiam o uso com clientes reais. A execução de referência é o piloto de 21/09/2026 no cliente de QA, com cada evidência conferida na origem (banco, API, execuções do n8n e telas em produção). Nenhum cliente real foi usado.
Onde acompanharPágina de gestão no AI Studio: aistudio.tr3smarketingdigital.com.br/agendamentos. Lista, calendário, ocorrências, ações em massa e, para admin, os ajustes do agendador. Saúde pública em /api/v1/health/scheduler e no card AI Studio · Agendador do Painel Principal.
P0Pré-condições
Sem isto, qualquer falha nos casos vira falso negativo. Confira antes de rodar.
#
Item
Como conferir
Critério de pronto
0.1
Agendador ligado
Variável SCHEDULES_ENABLED no container do Studio
true e log do ticker ativo a cada 60 s
0.2
Chave do O.S
Chave os-agendamentos na API v1
Escopos schedules:read, schedules:write e runs:read; segredo só no cofre
0.3
Saúde
GET /api/v1/health/scheduler
ok: true, heartbeat com menos de 3 voltas
0.4
Projeto único
Cliente de QA com agente plano-de-conteudo
Um projeto só, garantido pelo índice único projects_client_agent_uidx
0.5
Orçamento
Orçamento de escopo schedules
US$ 50 por mês, ativo
0.6
Avisos
Workflows do n8n de aviso ao grupo interno
Aviso de rascunho pronto e alerta do agendador ativos
Bloco A · Criação
Quem cria, por onde, e o que o sistema recusa antes de gastar qualquer token.
A1Membro cria pela página com prévia do mês seguinte
Fase 1 sozinhoObjetivo: um membro cria o agendamento mensal e vê, antes de salvar, o texto exato que o agente vai receber.
1
AçãoNovo agendamento: cliente de QA, Plano de Conteúdo, todo dia 20 às 09:00.
EsperadoPrévia da próxima ocorrência gerando o mês seguinte, sem variável sobrando.
A2Chave do O.S cria pausado, com idempotência
Fase 1 sozinhoObjetivo: a esteira cria o agendamento padrão pausado e pode repetir a chamada sem duplicar.
1
AçãoPOST /api/v1/schedules com a chave do O.S, status pausado e Idempotency-Key.
Esperado201 na primeira chamada; a repetição devolve o mesmo agendamento.
A3Segundo recorrente no mesmo projeto é recusado
Fase 1 sozinhoObjetivo: um projeto tem no máximo um agendamento recorrente por agente.
1
AçãoCriar outro mensal de Plano de Conteúdo para o mesmo cliente.
EsperadoRecusa 409 apontando o agendamento que já existe.
A4Cliente fora do padrão é recusado
Fase 1 sozinhoObjetivo: só cliente ativo e com slug de letras e dígitos recebe agendamento.
1
AçãoCriar agendamento para um cliente inválido.
EsperadoRecusa 422 antes de gravar.
Bloco B · Disparo
O ticker de 60 s reivindica o agendamento vencido e despacha a run pela fila própria.
B1Execução única dispara e conclui
Fase 1 sozinhoObjetivo: um agendamento para daqui a 5 minutos passa por planejada, na fila, rodando e OK sem ninguém.
1
AçãoCriar um agendamento de uma vez para agora mais 5 minutos.
EsperadoNo minuto previsto a ocorrência nasce, roda e termina conferida no banco.
B2Dispersão no minuto previsto
Fase 1 sozinhoObjetivo: os agendamentos do dia 20 não disparam todos juntos; cada um tem um horário fixo dentro da janela de 60 min.
1
EsperadoHorário efetivo calculado a partir do agendamento, sempre o mesmo, e mostrado na página.
Bloco C · Execução sem humano
Run agendada nunca aprova, publica, fala com cliente ou chama ação que pede confirmação.
C1Nenhuma ação proibida nas runs agendadas
Fase 1 sozinhoObjetivo: as tools com efeito externo ficam fora da run agendada.
1
AçãoConsultar as tools usadas em todas as runs agendadas.
EsperadoNenhuma tool proibida.
C2Tentativa forçada é barrada
Fase 1 sozinhoObjetivo: mesmo que o modelo tente, a ação proibida não executa.
1
EsperadoA chamada volta como erro e a tool não roda.
Bloco D · Saída
O que a equipe recebe: rascunho no painel, conversa no projeto e aviso no grupo interno.
D1Rascunho orgânico no painel
Fase 1 sozinhoObjetivo: a run grava o plano do mês como rascunho no Painel de Planejamentos.
1
EsperadoPlano AAAA-MM orgânico em rascunho, ligado à conversa da run.
D2Outro membro abre a conversa
Fase 1 sozinhoObjetivo: a conversa da run fica no projeto, visível para a equipe.
1
AçãoOutro membro abre a conversa da run.
EsperadoAcesso liberado, com as mensagens e o projeto.
D3Aviso de rascunho pronto no grupo interno
Fase 1 sozinhoObjetivo: quem avisa a equipe é o agendador, com o link da conversa.
Defeito encontrado no pilotoO aviso chegou ao grupo nas duas runs, mas o link apontava para uma rota que não existe e abria página 404. Corrigido para o mesmo link da página e coberto por teste.
1
EsperadoMensagem no grupo interno com cliente, período e link que abre a conversa.
D4Aprovação interna pendente
Fase 1 sozinhoObjetivo: o rascunho entra na fila de aprovação com os lembretes de 1 h e 24 h.
1
EsperadoAprovação pendente criada para a conversa da run.
D5Aprovação no chat gera Doc e tarefas
Fase 1 sozinhoObjetivo: a aprovação interna continua no chat, onde nascem o Google Doc, as tarefas e o aprovado interno.
1
AçãoRevisar o rascunho no chat e aprovar.
EsperadoDoc no Drive, tarefas no ClickUp e plano em aprovado interno.
Bloco E · Atraso e recuperação
Pausa geral no horário do disparo; dentro da janela a run sai atrasada, fora dela vira perdida.
E1Dentro da janela, roda atrasado
Fase 1 sozinhoObjetivo: sair da pausa geral dentro da janela de recuperação faz a run acontecer.
1
AçãoLigar a pausa geral antes do disparo e soltar alguns minutos depois.
EsperadoNada dispara durante a pausa; ao soltar, a run sai e conclui.
E2Fora da janela, perdida e avisada
Fase 1 sozinhoObjetivo: passou da janela, a ocorrência vira perdida, sem gastar token, e a equipe é avisada.
Defeito encontrado no pilotoO agendamento de uma vez ficou ativo e sem próxima data depois de perdido, inflando o contador de ativos. Corrigido: agora conclui.
1
EsperadoOcorrência perdida com o motivo e alerta no grupo interno.
Bloco F · Falha, retentativa e suspensão
Uma falha ganha uma retentativa em 60 min; duas ocorrências falhas seguidas suspendem.
F1Falha, retentativa e contador
Fase 1 sozinhoObjetivo: a primeira falha marca a retentativa; a segunda conta como falha do agendamento.
Defeito encontrado no pilotoNa primeira falha, o agendamento de uma vez já aparecia como concluído, com a retentativa ainda planejada, e não podia mais ser pausado. Corrigido: só conclui quando a retentativa termina. A retentativa de agendamento pausado ou arquivado passou a ser cancelada.
1
AçãoForçar a falha da run (teto de custo baixo).
EsperadoRetentativa 60 min depois; na segunda falha, falhas seguidas igual a 1.
F2Duas ocorrências falhas suspendem
Fase 1 sozinhoObjetivo: dois slots seguidos com falha suspendem o agendamento e avisam o O.S.
1
EsperadoAgendamento suspenso, alerta e evento schedule.paused.
F3Run órfã fecha como órfã
Fase 1 sozinhoObjetivo: uma run interrompida por restart ou deploy não fica presa em execução.
1
AçãoReiniciar o Studio no meio de uma run agendada.
EsperadoEm até 5 min a ocorrência fecha como falha com motivo órfã.
Bloco G · Custo
Teto por ocorrência, checado a cada volta do agente, e orçamento mensal próprio.
G1Teto baixo para a run antes da tool
Fase 1 sozinhoObjetivo: a run para quando o custo passa do teto, antes de gravar qualquer coisa.
1
AçãoAgendamento com teto de US$ 0,10.
EsperadoFalha por teto de custo, sem tool executada.
G2Orçamento sem saldo bloqueia sem contar falha
Fase 1 sozinhoObjetivo: sem saldo no mês, a ocorrência é bloqueada e não suspende o agendamento.
1
EsperadoOcorrência bloqueada por orçamento, sem run e sem somar falha.
G3Alerta de orçamento gravado
Fase 1 sozinhoObjetivo: passar do limite do orçamento gera o alerta do mês.
1
EsperadoAlerta de orçamento gravado uma vez por período.
Bloco H · API, MCP e eventos
O O.S e os assistentes consultam e controlam os agendamentos pela API v1.
H1Chave do O.S cria pausado
Fase 1 sozinhoObjetivo: o kickoff do M05 cria o agendamento padrão sem ligar o custo sozinho.
1
EsperadoAgendamento nasce pausado e a equipe liga pela página.
H2MCP lista e controla
Fase 1 sozinhoObjetivo: as tools de agendamento aparecem no MCP respeitando os escopos da chave.
1
EsperadoTools de agendamento listadas; rodar agora oculto sem o escopo de runs.
H3Evento assinado chega ao consumidor
Fase 1 sozinhoObjetivo: a conclusão da ocorrência chega assinada a quem assinou o evento.
1
EsperadoEntrega de schedule.occurrence.succeeded com assinatura válida.
Bloco I · Saúde
Heartbeat velho nunca aparece verde.
I1Saúde verde com o ticker vivo
Fase 1 sozinhoObjetivo: o endpoint público mostra o agendador rodando.
1
Esperadook: true com o último tick recente.
I2Heartbeat velho responde falso
Fase 1 sozinhoObjetivo: agendador parado aparece como problema, nunca como verde.
1
Esperadook: false e stale: true com heartbeat velho.
I3Card no Painel Principal
Fase 1 sozinhoObjetivo: o card do agendador no Hub reflete a saúde.
1
EsperadoCard AI Studio · Agendador operacional com o agendador ligado.
Bloco J · Página de gestão
Onde a equipe liga, pausa, acompanha e ajusta os agendamentos.
J1Faixa de topo, filtros e abas
Fase 1 sozinhoObjetivo: resumo, custo do mês, saúde, lista com filtros na URL, calendário e ocorrências.
1
EsperadoContadores, custo contra o orçamento, tick do agendador e as três abas funcionando.
J2Ativar selecionados
Fase 1 sozinhoObjetivo: ligar de uma vez os agendamentos propostos pelo kickoff.
1
AçãoMarcar os pausados e clicar em Ativar selecionados.
EsperadoTodos ativos, com a próxima data calculada.
J3Ajustes só para admin
Fase 1 sozinhoObjetivo: pausa geral, teto padrão e orçamento ficam com o admin.
1
AçãoMembro tenta abrir e salvar os ajustes.
Esperado403 para o membro; a tela não oferece o botão.
J4Badge no chat e aba do projeto
Fase 1 sozinhoObjetivo: a conversa da run mostra que é agendada, e o projeto lista os seus agendamentos.
1
EsperadoBadge Agendado com link para o agendamento; aba do projeto legível.
J5Celular
Fase 1 sozinhoObjetivo: a página funciona a 390 px, sem rolagem lateral.
1
EsperadoLista em cartões e cabeçalho sem estourar a largura.
GOLDENGolden set agendado
Qualidade do rascunho gerado sem humano, na rubrica 0 a 5 do Studio.
#
Caso
Resultado
Nota
1
Briefing completo
5 posts, funil 40/40/20, acentuação correta, zero travessão, tudo apoiado no briefing
4,6
2
Segunda amostra, briefing completo
Mesma qualidade; lacunas declaradas. O caso de briefing mínimo não foi exercitado
4,6
3
Plano do mês já aprovado
Pulado no preflight, sem run e sem token
5,0
OKCritérios de aceite
O agendador atende clientes reais quando todos os itens abaixo forem verdadeiros.
Todos os casos críticos aprovados na execução mais recente.
Nenhuma ação proibida em run agendada (C1).
Nenhuma ocorrência aberta há mais de 2 h depois do horário.
Golden set com média maior ou igual a 4 e zero dado inventado.
Saúde verde conferida da VPS e card do Hub operacional (I1 e I3).
Aviso no grupo interno com link que abre a conversa (D3).