SaaS de assinatura rumo aos 100%: enforcement da Fase 2, contrato manual e QA pelo Codex
Liguei o enforcement da Fase 2 do SaaS, criei contrato manual para parceiro sem cadastro e rodei QA visual com o Codex.
Dia inteiro dentro do kmaroteApp, empurrando o módulo de assinatura pra fechar. A pergunta que abriu o trabalho foi direta: pedi ao Claude Code para ler a documentação do SaaS recém-implementado e listar o que ainda falta desenvolver pra considerar o sistema 100%. A partir dessa lista, autorizei implementar os pontos de 1 a 8 e fui destravando um por um.
Ligar o enforcement da Fase 2
Boa parte da Fase 2 já estava escrita, mas morta — funções prontas sem ninguém chamando. O Claude Code fez a costura: ligou as chamadas de enforcement, a troca de plano e as telas de privacidade e termos. Isso virou o commit feat: ligar enforcement Fase 2 do SaaS + troca de plano + privacidade.
É o tipo de trabalho invisível que não aparece em tela, mas é o que faz o limite de plano realmente valer — sem os call sites, a regra existe no papel e não no fluxo do usuário.
Antes de subir, rodei os testes funcionais locais do SaaS e o lint dos arquivos tocados. Só depois de verde é que autorizei o push, porque todo teste real eu faço fora do ambiente de desenvolvimento — em produção, na mão.
Contrato manual para parceiro sem cadastro
O segundo bloco foi criar um caminho de contrato para parceiro que ainda não tem participante pré-cadastrado. A ideia: um botão “adicionar contrato” na gestão, seguindo o mesmo padrão que já existe quando há produção com lista de “sem contrato”. O fluxo cadastra os dados do parceiro, faz upload do PDF do contrato e de três imagens — igual aos outros fluxos do sistema. Saiu como feat: contrato manual para novo parceiro sem participante pré-cadastrado.
Depois pedi para enriquecer essa tela com campos opcionais: apelido, telefone e e-mail com máscara, e endereço completo com CEP puxando via ajax. Isso exigiu uma migration nova pro endereço do assinante e virou o commit feat: endereco do assinante em contrato manual.
Fechei o bloco com uma regra de negócio importante: a tela de contrato precisa checar se o usuário do perfil tem créditos. Se não tiver, ela não deixa seguir — exibe um aviso de que o contrato está desativado e orienta procurar o @username para mais informações. Contrato sem crédito não abre.
QA visual do SaaS pelo Codex
Com o código no ar, a validação foi pra outra ferramenta. Usei o Codex para montar as rotinas de teste do módulo — duas sessões rodando em paralelo no kmaroteApp. Pedi rotina visual cobrindo todos os cenários, simulando o uso por parte de um usuário do tipo CRIADOR, incluindo limitações e segurança. Uma exigência que fiz questão de deixar clara: o teste tem que fazer o fluxo completo, registrando um usuário de verdade e guardando esses dados pra reutilizar sempre nas próximas rodadas — nada de mock que esconde o problema real.
A segunda sessão do Codex seguiu o guia TESTE_PRATICO_NAVEGADOR.md, complementando onde faltava e executando os testes localmente, tela por tela, fluxo por fluxo.
Divisão de trabalho
A divisão do dia acabou ficando limpa: direção e decisão minhas, execução do código no Claude Code, e a bateria de QA de navegador no Codex. Vale registrar como decisão persistente — é o padrão que venho seguindo nos últimos dias: cada ferramenta faz uma coisa, e todo teste que decide se algo vai pra produção eu faço na mão, fora do ambiente de desenvolvimento.
Estado ao fim do dia
O sistema segue “rumo aos 100%”, não fechado — os pontos de 1 a 8 da lista foram destravados um a um, mas o devlog não registra confirmação de que a lista inteira foi concluída nem os resultados da bateria de QA do Codex. Isso fica pendente pra conferir na próxima sessão.
Estatísticas do dia (geradas automaticamente):
Fontes desta execução:
- claude.ai: 0 conversas (sem export novo na esteira)
- Claude Code Windows: 2 sessões em [kmaroteApp]
- Codex Windows: 2 sessões em [kmaroteApp]
- Claude Code Larissa: fonte indisponível (SSH inacessível)
- Larissa drops: 0 arquivos
- Git kmaroteApp: 3 commits
- Git Larissa: fonte indisponível (SSH inacessível)
Atividade no PC (ActivityWatch):
- Tempo ativo: 9h 14min na janela
Por categoria:
- Uncategorized: 4h 29min
- AI Chat: 3h 16min
- Larissa Project: 40min
- Coding: 33min
- Communication: 15min
- Browsing: 2min
Top apps: Chrome (5h 12min) · TaskBarHero (2h 23min) · Antigravity IDE (33min) · WhatsApp (22min) · OBS (20min)
Top sites navegados: chatgpt.com (46min) · claude.ai (19min) · streamelements.com (16min) · gov.br (12min) · livepix (10min)