CL-2026-04-09-BK-152 · BK-152 Contrato Único: Prova de Rascunho, Screenshot, Checklist e Estados
Data: 2026-04-09
BK: BK-152
Responsável: codex
Escopo: docs (documental)
Projetos afetados: cerebro-studio, cerebro-kernel, rionoteatro
Aprovação humana obrigatória: não
1. Resumo da Entrega
Este BK foi fechado por entrega documental — o contrato canônico de prova de rascunho foi formalizado em documento de arquitetura, sem modificação de código. O objetivo era padronizar o conceito de draft_url, post_url, screenshot/prova, checklist manual e estados entre Studio, WhatsApp, fila e browser/manual step.
Resultado: Documento técnico docs/architecture/CONTRATO-PROVA-RASCUNHO.md publicado, com:
- Schema canônico mínimo (14 campos)
- Estados válidos e transições documentados
- Checklist mínimo de prova válida
- Mapeamento por superfície (RNT fila/cron, WhatsApp, browser/manual step, Studio)
- 6 lacunas identificadas como follow-ups futuros
2. Artefatos Criados/Atualizados
| Artefato | Tipo | Descrição |
|----------|------|------------|
| docs/architecture/CONTRATO-PROVA-RASCUNHO.md | Novo | Contrato canônico de prova de rascunho (artefato principal) |
| docs/backlog/BK-152-contrato-unico-prova-rascunho-publish.md | Atualizado | Backlog vivo com status CONCLUÍDO, auditoria de alinhamento, 6 follow-ups |
| docs/changelog/2026/CL-2026-04-09-BK-152.md | Novo | Changelog detalhado desta entrega |
| docs/BACKLOG.md | Atualizado | BK-152 marcado como CONCLUÍDO DOCUMENTALMENTE em 2026-04-09 |
| docs/CHANGELOG.md | Atualizado | Índice curado com entrada do BK-152 |
| docs/LOCK.md | Atualizado | Locks registrados e encerrados |
3. Decisões de Arquitetura (Chave)
3.1 Contrato Canônico Publicado
O schema browser_draft_proof do RNT foi elevado a contrato unico canonico:
```php
$event['browser_draft_proof'] = [
'draft_url' => $draftUrl, // URL do rascunho no Facebook
'screenshot_path' => $screenshotPath, // Captura visual
'artifact_dir' => $artifactDir, // Diretório de artefatos
'run_id' => $runId, // ID da execução browser
'storage_state_path' => $storageStatePath, // Estado de sessão
'output_root' => $outputRoot, // Diretório de saída
'command' => $command, // Comando executado
'runner_ok' => $runnerOk, // Status do runner
'runner_exit_code' => $runnerExitCode, // Código de saída
'notification_sent_at' => $notificationSentAt, // Quando notificado
'notification_result' => $notificationResult // Resultado da notificação
];
```
3.2 Estados Válidos Definidos
| Estado | Descrição |
|--------|-----------|
| draft | Rascunho gerado, aguardando revisão |
| pending_approval | Aprovação pendente via WhatsApp |
| approved | Aprovado para publicação |
| published | Post executado com sucesso |
| failed | Falha na publicação (com retry/fallback) |
3.3 Auditoria de Alinhamento Concluída
Auditoria realizada em 2026-04-09:
- Schema do
browser_draft_prooffortemente alinhado com implementação real - Ponto de atenção:
approval_stagenão é populado no payload canônico atual — tratado como lacuna de compatibilidade/follow-up, não como bloqueio crítico - Estados mais granulares no RNT mapeados para estados canônicos mínimos
- Sem divergência crítica que impeça o fluxo operacional
4. Superfícies Mapeadas
4.1 RNT — Fila e Cron
| Superfície | Arquivo | Status |
|------------|---------|--------|
| Geração de prova | admin/cron/sync_facebook_events.php | ✅ Opera |
| UI de aprovação | admin/modulos/campanhas/redes_sociais_ui_helper.php | ✅ Opera |
| Handler de ações | action_squad.php | ✅ Opera |
| Fluxo WhatsApp + fallback browser | — | ✅ Opera |
4.2 Cerebro — Studio
| Superfície | Arquivo | Status |
|------------|---------|--------|
| Superfícies de aprovação | studio/server.js | ✅ Opera |
| Backlog de posts pendentes | — | ✅ Opera |
| Visualização de screenshots | — | ✅ Opera |
4.3 Cerebro — Kernel/Browser
| Superfície | Arquivo | Status |
|------------|---------|--------|
| Runtime browser | kernel/browser_control.js | ✅ Opera |
| Executor de comandos | kernel/browser_executor.js | ✅ Opera |
| Armazenamento de artefatos | — | ✅ Opera |
5. Follow-ups Identificados (Lacunas do Contrato)
As 6 lacunas identificadas na Seção 8 do contrato são de natureza evolutiva e não bloqueiam o contrato canônico publicado:
| # | Lacuna | Descrição | Tipo |
|---|--------|-----------|------|
| 1 | Validação centralizada do schema | Não há enforce do schema em camada única | evolutiva |
| 2 | API de consulta no Studio | Studio não expõe API documentada | evolutiva |
| 3 | Histórico/audit trail | Não há persistência de transições de status | evolutiva |
| 4 | Contrato formal WhatsApp | Input/format da mensagem não formalizado | evolutiva |
| 5 | Condição explícita browser fallback | Condição de acionamento não documentada | evolutiva |
| 6 | Harmonização do approval_stage | Campo opcional não populado — harmonização futura | compatibilidade |
Recomendação: Estas lacunas serão tratadas em BKs futuros. O BK-152 alcançou seu objetivo de formalização documental com segurança.
6. Critérios de Aceite Cumpridos
6.1 Documentação do Contrato
- [x] Documento de arquitetura publicando
browser_draft_proofcomo schema canônico - [x] Definição dos 4 estados válidos com transições documentadas
- [x] Mapeamento de cada módulo ao contrato
- [x] Descrição do fluxo de aprovação + fallback browser
- [x] Checklist de itens obrigatórios em uma prova
6.2 Revisão de Alinhamento
- [x] Código existente (RNT + Cerebro) corresponde ao contrato documentado
- [x] Não há divergências críticas entre schema documentado e implementação
- [x] Fluxo de aprovação descrito corresponde ao comportamento real
- [x] Auditoria de alinhamento concluída e documentada
7. Validações Executadas
- [x] Artefato
docs/architecture/CONTRATO-PROVA-RASCUNHO.mdexiste e é válido - [x] Links internos referenciados existem
- [x] Schema do
browser_draft_proofvalidado contra código real do RNT - [x] Locks registrados em
docs/LOCK.md - [x] Backlog vivo atualizado com status
CONCLUÍDO DOCUMENTALMENTE - [x] Índice curado do
CHANGELOG.mdatualizado
8. Referências
docs/backlog/BK-152-contrato-unico-prova-rascunho-publish.mddocs/architecture/CONTRATO-PROVA-RASCUNHO.mddocs/BACKLOG.mddocs/LOCK.mddocs/CHANGELOG.mdrionoteatro:admin/cron/sync_facebook_events.phprionoteatro:admin/modulos/campanhas/redes_sociais_ui_helper.phprionoteatro:admin/modulos/campanhas/action_squad.phpkernel/browser_control.jskernel/browser_executor.jsstudio/server.js