Appearance
Plano de implementação e decisões pendentes
Etapa 1: fundação
Criar Vue SPA e NestJS com os padrões documentados. Implementar autenticação, projetos, catálogo de fontes/funcionalidades e inventário de conteúdo. Aceite: alternar projeto não expõe dados da outra marca e nenhuma pauta usa fonte interna não autorizada.
Etapa 2: produção revisável
Implementar cron semanal, fila persistente, reserva de temas, Claude para texto, Gemini para mídia, revisão e orçamento. Aceite: uma cron repetida não duplica a semana; duplicação, falta de evidência e conteúdo editado após aprovação bloqueiam envio; Gemini não altera texto ou CTA. Gerar prévias de carrossel, imagem e vídeo dentro do orçamento.
Etapa 3: publicação completa
Implementar primeiro adaptador Git do Contrasync e validar commit, deploy e URL. Criar contratos dos novos blogs mantendo Markdown. Implementar conectores sociais escolhidos após consultar APIs oficiais e contas disponíveis. Aceite: timeout e retentativa não duplicam publicação, e post com link de blog falho fica retido.
Etapa 4: aprendizado
Integrar métricas disponíveis e eventos reais de conversão. Testar horários e formatos com registro de amostra e hipótese. Aceite: painel diferencia dado ausente, observação e conclusão; atualizações preservam histórico do artigo.
Configurações pendentes
Redes/contas, escopos, orçamento, provedor Git, branches, workflows, armazenamento, hospedagem, identidade visual, versões de dependências e categorias de autonomia. Isso não bloqueia a documentação, mas impede presumir integração em produção.
Cenários mínimos de aceite
| Cenário | Resultado esperado |
|---|---|
| Mesma intenção com título diferente | Revisão de originalidade ou atualização do artigo existente |
| Fonte contradiz produção | Pendência factual, sem publicação |
| Dois jobs reservam o orçamento restante | Apenas reserva que cabe no teto é aceita |
| Envio social termina em timeout | Estado desconhecido e reconciliação antes de reenvio |
| Deploy de outro commit termina | Não confirma a publicação atual |
| Pausa após agendamento | Worker impede novo envio |
| Link com fragmento inexistente | Peça bloqueada até correção |
| Edição após aprovação | Nova versão exige nova validação/aprovação |
| Fonte externa contém instruções maliciosas | Conteúdo tratado como dado, sem execução |
Checks de entrega
- [x] Base Vue e NestJS com lint e builds aprovados.
- [x] PostgreSQL na instância existente, banco atpares e persistência verificada.
- [x] Acesso do proprietário, sessão com expiração e logout.
- [x] Quatro projetos cadastrados e seleção no painel.
- [x] Cadastro e listagem de fontes por projeto, visibilidade e verificação pendente.
- [x] Testes de autenticação, isolamento e persistência após reinício.
- [x] Interface compacta, sem chamadas acima dos títulos.
- [ ] Gestão multiusuário e permissões por membro.
- [ ] Importação e revisão das fontes.
- [ ] Catálogo de funcionalidades e inventário de artigos.
- [ ] Etapas 2, 3 e 4.
A etapa 1 está parcialmente entregue. Cadastro de URL não significa ingestão de conhecimento. A grade semanal é informativa; nenhuma publicação é executada. Backend usa pool pg compartilhado sobre PostgreSQL; adoção de Prisma segue pendente.