Backlog Unificado
Fonte principal: /root/cerebro/docs/BACKLOG.md. Detalhes (quando existirem): /root/cerebro/docs/specs.
- BK-36 · MCP Bridge: Integração com o Model Context Protocol com catálogo de permissões por ferramenta. (detalhe pendente)
- BK-38 · Gate B — Núcleo útil da inspiração: executar BK-38 em fase segura (heartbeat 30 min read-only + alerta + sugestão; sem execução automática R2+). (detalhe pendente)
- BK-40 · Builder Engine (Specs): Implementar orquestração baseada em arquivos de especificação (TDD/PRD automáticos). (detalhe pendente)
- BK-41 · Evals e Benchmark: Sistema para medir a qualidade das respostas e evitar regressões de inteligência. (detalhe pendente)
- BK-42 · Gate C — Pipeline oficial do Cerebro: concluir BK-42 + BK-55 (peer review gate) + BK-41 (evals). (detalhe pendente)
- BK-46.1 · Gate A — Governança primeiro (OBRIGATÓRIO): concluir BK-46.1 + BK-47 antes de qualquer autonomia contínua. (detalhe pendente)
- BK-47 · [PASSO-03 | Orquestrador] Executar BK-47 (rollback templates): automatizar script de reversão por alteração para reduzir risco operacional em jobs R2+. (detalhe pendente)
- BK-48 · Auto-Tuning: Agente que analisa logs de performance e sugere melhorias na configuração do Kernel. (detalhe pendente)
- BK-50 · Versionamento de Memória: Snapshotting do MEMORY.md para evitar corrupção de contexto a longo prazo. (detalhe pendente)
- BK-52 · WhatsApp SaaS (Extração do RNT): Transformar o microserviço/fluxo de WhatsApp do Rio no Teatro (helper PHP + fila + healthcheck + restart + telemetria) em componente reutilizável/multitenant para outros projetos da VPS e futura integração no Cerebro (canal alternativo ao Discord para alertas/testes). Inspirado em Mission Control HQ. (detalhe pendente)
- BK-55 · Peer Review Gate entre Agents: Adicionar etapa obrigatória de revisão cruzada antes de Done, com evidência em log/DB e bloqueio em caso de conflito crítico. (detalhe pendente)
- BK-56 · Gate D — Standup diário automático: concluir BK-56 para resumo diário de runs, bloqueios e próximos passos. (detalhe pendente)
- BK-61 · Terminal Multi-Sessão (Fase 1 e 2): Implementar gerenciador de sessões paralelas por engine. (detalhe pendente)
- BK-62 · [PASSO-01 | Usuário/Admin] Fechar BK-62 (P0 de segurança): revogar tokens legados no Discord Developer Portal, atualizar CEREBRO_DISCORD_TOKEN na VPS e validar bot/kernel após restart. (detalhe pendente)
- BK-66 · Flag explícita planejar vs executar: (detalhe pendente)
- BK-128 · Copywriter multi-formato + Revisor comercial RNT (FOLLOW-UP RECONCILIADO em 2026-03-18): O RNT ja possui base parcial entregue no historico local BK-122, com copy contextual para story/reels, selecao manual e fallback operacional. O que ainda falta neste backlog central e expandir para feed/carrossel, scorecard comercial consistente e integracao completa com o fluxo WhatsApp -> agenda -> conferencia de rascunho. Detalhe: docs/specs/BK-128-rnt-copy-multiformato-review.md.
- BK-133 · Planejamento Antecipado (Greedy Planner): Ajustar o robô para gerar conteúdos de fim de temporada (Last Week/Last Session) no momento do cadastro da peça, permitindo aprovação e agendamento prévio. (detalhe pendente)
- BK-134 · Messenger Channel Integration: Automatizar postagem no canal do Messenger (rionoteatro) após inclusão de nova peça, com fluxo de aprovação via WhatsApp. (detalhe pendente)
- BK-135 · FB Events Auto-Creation: Integrar a criação de eventos do Facebook ao fluxo de "Peça Nova", parando no rascunho para conferência humana. (detalhe pendente)
- BK-136 · Meta Weekly Challenges Bot: Criar rotina para monitorar e sugerir postagens criativas (Reels/Posts) para cumprir os desafios de nível da Meta. (detalhe pendente)
- BK-153 · Refatoracao fase 1 de sync_facebook_events.php: Separar planner, dispatcher, montagem de aprovacao e fallback browser em modulos/testes controlados, sem reescrever tudo de uma vez. (detalhe pendente)
- BK-154 · Harmonizacao backlog central x backlog RNT x roadmap Squad: Consolidar a semantica indice central -> backlog local de execucao -> roadmap estrategico, sem texto divergente entre os tres. (detalhe pendente)
- BK-155 · Piloto de migracao de cron social para Node: Escolher um cron social menor para piloto controlado e validar contrato/rollback antes de considerar a frente grande de migracao do legado social. (detalhe pendente)
Especificações Disponíveis (fora da fila pendente)
Detalhe do BK Selecionado
PLANO TECNICO: BK-124 Runtime base de Squads
1. Objetivo do plano
Traduzir a spec do BK-124 em um plano de implementacao realista, encaixado no codigo atual do kernel, sem reescrever o Studio nem criar um framework paralelo.
2. Estado atual confirmado no codigo
- O
kernel/index.jsja concentra: - entrada WS;
sessionKey;- historico de sessao;
executionRegistry;- aprovacoes;
workflowPhase.- O
studio_chat_store.jsja resolve persistencia de chat e decisoes ignoradas, em SQLite e Postgres. - O
studio_execution_registry.jsja modela execucao ativa porrequestIdesessionKey. - O
kernel/router.jsja cuida de selecao de engine/modelo/fallback.
Conclusao: o BK-124 nao precisa reinventar sessao, socket ou roteamento. Ele precisa adicionar um novo conceito persistido e orquestrado:
squad definitionsquad runsquad stepartifact
3. Decisoes de arquitetura
3.1 Nao sobrecarregar studio_chat_store
O store atual e de conversa. Ele nao deve virar um deposito generico de workflow. O runtime de squads precisa de storage proprio.
Decisao:
- criar
kernel/squad_store.js; - manter o mesmo padrao dual SQLite/Postgres usado em
studio_chat_store.js; - integrar run de squad com
sessionKey, mas sem acoplar as tabelas de chat ao modelo de run.
3.2 Runtime separado do index.js
kernel/index.js ja esta grande e operacionalmente critico. O runtime do squad deve viver em modulo proprio.
Decisao:
- criar
kernel/squad_runtime.js; index.jsapenas:- recebe payload;
- valida contexto;
- chama runtime;
- emite eventos WS.
3.3 Definicao declarativa em kernel/config/squads/
Para que o Squad Social nao fique hardcoded.
Decisao:
- criar pasta
kernel/config/squads/; - primeiro arquivo:
rnt-social-squad.json; - cada definicao precisa descrever:
squad_id;project;version;default_mode;steps;review_policy;artifacts_expected.
3.4 Primeiro release sem publish autonomo
O BK-124 cria o motor base, nao o publicador final.
Decisao:
- aceitar steps como
research,copy,review; - deixar
publishfora do escopo de execucao automatica nesta fase; - o runtime ja deve suportar esse tipo de etapa no schema, mas sem obrigar implementacao completa agora.
4. Modelo de dados proposto
4.1 Tabela studio_squad_runs
Campos minimos:
run_idTEXT PRIMARY KEYsession_keyTEXT NOT NULLsquad_idTEXT NOT NULLproject_nameTEXT NOT NULLmodeTEXT NOT NULLstatusTEXT NOT NULLcurrent_step_keyTEXT NULLrequested_engineTEXT NULLrequested_byTEXT NULLinput_payload_jsonTEXT/JSONB NULLsummary_jsonTEXT/JSONB NULLcreated_atupdated_atstarted_atfinished_at
4.2 Tabela studio_squad_steps
Campos minimos:
idINTEGER/BIGSERIAL PKrun_idFKstep_keystep_typeagent_idpositionstatusretry_countinput_artifact_idNULLoutput_artifact_idNULLscore_jsonTEXT/JSONB NULLfeedback_textTEXT NULLstarted_atfinished_atupdated_at
4.3 Tabela studio_squad_artifacts
Campos minimos:
artifact_idTEXT PRIMARY KEYrun_idFKstep_keyartifact_typevariant_keystatusparent_artifact_idNULLcontent_textTEXT NULLpayload_jsonTEXT/JSONB NULLcreated_atupdated_at
4.4 Status normalizados
Run
queuedrunningreworkapprovedfailedcanceled
Step
pendingrunningdonereworkapprovedfailedskipped
5. Contrato declarativo do squad
Exemplo de estrutura inicial para rnt-social-squad.json:
```json
{
"squad_id": "rnt-social-v1",
"project": "rionoteatro",
"version": 1,
"default_mode": "economico",
"modes": {
"economico": {
"max_review_loops": 1,
"budget_profile": "low"
},
"alta_performance": {
"max_review_loops": 2,
"budget_profile": "standard"
}
},
"steps": [
{
"key": "research",
"type": "research",
"agent_id": "planner",
"output_artifact_type": "research_brief"
},
{
"key": "copy",
"type": "copy",
"agent_id": "backend",
"input_from": "research",
"output_artifact_type": "copy_bundle"
},
{
"key": "review",
"type": "review",
"agent_id": "po",
"input_from": "copy",
"output_artifact_type": "review_report"
}
]
}
```
6. API interna do runtime
kernel/squad_runtime.js deve expor no minimo:
loadSquadDefinition(squadId)createRun({ sessionKey, squadId, mode, inputPayload, requestedBy, requestedEngine })startRun(runId, options)advanceRun(runId, options)markStepRework(runId, stepKey, reviewPayload)approveRun(runId, approvalPayload)getRun(runId)listRuns(filters)
7. Encaixe no kernel/index.js
7.1 Fase 1 do BK-124
Adicionar novos payloads WS, ainda sem UI final:
studio_squad_run_startstudio_squad_run_getstudio_squad_run_list
Resposta sugerida:
studio_squad_run_ackstudio_squad_run_eventstudio_squad_run_state
7.2 Reuso da infraestrutura atual
sessionKeycontinua sendo o agrupador primario da experiencia.executionRegistrycontinua sendo usado porrequestId, agora tambem para runs de squad.callLLMWithAutoFallback(...)continua sendo o executor de cada step.studio_chat_storesegue guardando a conversa;squad_storeguarda a execucao estruturada.
8. Ordem de implementacao recomendada
Etapa A - Storage e contrato
- Criar
kernel/config/squads/. - Criar
kernel/config/squads/rnt-social-squad.json. - Criar
kernel/squad_store.jscom adapters SQLite/Postgres. - Criar schema das tres tabelas.
- Criar testes do store.
Etapa B - Runtime puro
- Criar
kernel/squad_runtime.js. - Implementar carregamento de definicao.
- Implementar
createRun. - Implementar
startRuncom execucao linear de steps. - Persistir step e artifact a cada transicao.
Etapa C - Integracao no index.js
- Adicionar handlers WS novos.
- Integrar com
executionRegistry. - Emitir eventos
studio_squad_run_event. - Garantir cleanup em
success/error/abort.
Etapa D - Testes do runtime
- Teste unitario do parser da definicao.
- Teste unitario de transicao de status.
- Teste unitario de run linear
research -> copy -> review. - Teste de
rework. - Teste de abort por
session_stop.
9. Estratégia de execução das etapas
Para o BK-124, cada step pode usar um executor simples baseado em type.
Exemplo:
research-> prompt estruturado para pesquisa/sintesecopy-> prompt estruturado para gerar artefato textualreview-> prompt estruturado para validar e devolver score
O importante nesta fase nao e a sofisticação do prompt; e o contrato de runtime:
- cada step recebe
input artifacts; - cada step gera
output artifact; - cada resultado atualiza estado persistido.
10. Estratégia de artefatos
No BK-124, artefato textual basta.
Tipos iniciais:
research_briefcopy_bundlereview_report
Formato:
content_textpara leitura humanapayload_jsonpara dados estruturados
Isso prepara o caminho para BK-128 gerar:
- variacoes A/B
- carrossel
- legenda
- roteiro
11. Testes obrigatorios
Store
- SQLite cria schema automaticamente.
createRunpersiste run e steps.- listagem por
sessionKeyfunciona. - artifact lineage funciona.
Runtime
- definicao invalida falha com erro claro.
- run valida entra em
queuede depoisrunning. - steps mudam de
pendingpararunning/done. - step de review consegue marcar
rework. - abort limpa execucao ativa e persiste falha/cancelamento.
Integração
studio_squad_run_startcria run real.- eventos WS chegam em ordem coerente.
session_stopinterrompe run em andamento.
12. Rollback
Rollback do BK-124 deve ser simples:
- remover handlers WS novos;
- deixar
kernel/index.jssem acionarsquad_runtime; - manter tabelas novas sem uso, se necessario;
- nao tocar no fluxo atual do Studio Terminal.
Ou seja: o runtime de squads deve nascer como trilho paralelo, nao como substituicao do terminal atual.
13. Riscos e mitigacoes
Risco 1: inflar index.js
Mitigacao:
- logica de runtime e store em modulos separados.
Risco 2: confundir chat com run
Mitigacao:
- stores separados;
- ids separados (
requestIdvsrun_id).
Risco 3: schema excessivo para MVP
Mitigacao:
- artefato textual simples no
BK-124; - multimodalidade fica para BKs seguintes.
Risco 4: acoplamento prematuro ao Studio UI final
Mitigacao:
- contrato WS minimo agora;
- builder bonito fica no
BK-126.
14. Definicao de pronto para iniciar codigo
O BK-124 fica pronto para implementacao quando estes pontos estiverem aceitos:
- storage separado de squad confirmado;
- contrato do arquivo de definicao confirmado;
- lista de payloads WS minima confirmada;
- status de
runestepcongelados; path listda spec travada.
Se esses cinco pontos estiverem aceitos, o codigo pode comecar sem ambiguidade estrutural.