Kmarote: wizard de primeiro login refatorado, passaporte no cadastro e auditoria de tokens
Wizard de primeiro acesso virou exclusivo de criador, cadastro ganhou suporte a estrangeiros via passaporte, e auditei o custo de tokens das automações.
Dia inteiro dentro do Kmarote com duas frentes rodando em paralelo: o Claude Code (no Antigravity IDE) reescrevendo o fluxo de primeiro login do criador, e o Codex limpando o layout do painel admin. No meio do dia, uma parada para auditar quanto token as automações estavam queimando sem necessidade.
Wizard de primeiro login virou exclusivo de criador
A peça mais trabalhosa do dia. O wizard de primeiro acesso ainda dava ao usuário a opção de escolher o nível do perfil — criador, usuário comum, afiliado. Decidi cortar tudo isso: só faz sentido continuar o fluxo se a conta é de nível criador.
Antes de qualquer mudança, mandei o Claude Code mapear o que existia. Três agentes de leitura rodaram em paralelo, cada um cobrindo uma parte diferente: a mecânica de login (admin/login.php, criação de sessão, rate limit), o que torna o primeiro acesso especial (campos de perfil, marcação de primeiro login concluído), e o gate de KYC com a Didit que vem logo depois. Esse levantamento virou um handoff em docs/planejamento/HANDOFF_primeiro_login_kyc.md, que serviu de base para o resto.
Com o mapa em mãos, a refatoração foi direta: removi a lógica de escolha de nível inteira do primeiro_login_criador.php, deixando só o caminho do criador. Para contas que caírem nesse fluxo com um nível diferente — só pode acontecer por erro de configuração —, o sistema agora exibe um alerta informando que ainda não há opção disponível para aquele nível e orienta a voltar depois ou falar com a equipe. Sem quebra silenciosa.
Uma cobrança que repeti várias vezes ao longo da sessão: antes de propor ou perguntar qualquer coisa que dá para validar olhando, validar. “Acesse o banco, leia o código e só depois apresente as perguntas.” O Claude Code consultou o banco local de verdade — não os .sql — antes de trazer qualquer decisão.
Brasileiro ou estrangeiro: passaporte entra no cadastro
Em cima do campo de CPF, adicionei um select com duas opções — Brasileiro (default) e Estrangeiro. Brasileiro mantém o input de CPF visível e obrigatório; ao trocar para Estrangeiro, o CPF dá lugar a um campo de Número do Passaporte.
Isso abriu uma sequência de decisões de modelagem que resolvi com o Claude Code:
- Criei o campo
tipo_nacionalidadeno perfil vivo, com migration própria (2026_06_23_add_tipo_nacionalidade.sql). Tanto CPF quanto passaporte atualizam esse campo. - O passaporte é salvo no perfil vivo seguindo o mesmo padrão já existente no projeto — confirmei no código porque não estava óbvio.
- A checagem de CPF duplicado passa a valer só para brasileiro. Estrangeiro não entra nessa validação.
- Uma trigger nova (
2026_06_23_trigger_documento_estrangeiro.sql) para tratar o documento estrangeiro no banco.
A tela de boas-vindas que existia antes, só texto e sem função real, foi simplificada. Se não agrega nada além de parede de texto, é fricção a menos no onboarding.
No fim do ciclo, documentei o fluxo de cadastro completo até a home em docs/dev/sistemas/fluxo_cadastro_criador.md — sem histórico de decisões, refletindo 100% o estado atual. Commits do dia no kmaroteApp: remover CPF do cadastro — fluxo de etapa única e concluir onboarding de criador estrangeiro e documentar fluxo.
Codex no painel admin: legado fora, padrão atual dentro
Em paralelo, coloquei o Codex para trabalhar o layout do painel admin. Instrução dura de propósito: ler o padrão e o caminho documentado antes de tentar qualquer coisa, não assumir nada, não presumir nada, fazer só o que estiver explicitamente documentado. Nada de criar classe CSS nova — remover todos os elementos legados de uikit e socimo e aplicar o padrão atual do projeto. O Codex também importou o EstruturaKmarote.sql no banco local quando precisou sincronizar o schema. Saiu no commit atualizar layout do painel admin.
Quanto de token as automações estão queimando
No meio do dia, parei para auditar custo. Pedi ao Claude Code para verificar hooks e scripts que pudessem estar consumindo token a cada tarefa sem compensar. O resultado concreto: tirei o code-review-graph do PostToolUse automatizado — rodava a cada edição e nem sempre valia o gasto. O resto foi consolidado só onde havia certeza de que continuaria funcionando. Commit: remover code-review-graph de PostToolUse automatizado.
Pendências
- SSH do servidor Larissa ainda não resolveu o host — sem acesso ao Git da Larissa no dia.
- Fluxo de KYC com a Didit mapeado no handoff mas ainda não integrado no novo wizard.
Estatísticas do dia:
Atividade no PC:
- Tempo ativo: 4h35min
- Top apps: Antigravity IDE (1h58min) · Chrome (1h31min) · WhatsApp (34min) · Codex (30min)
- Top sites: ambiente local Kmarote (23min) · 127.0.0.1 (11min) · claude.ai (5min)
Por categoria:
- Coding: 2h18min
- Uncategorized: 1h04min
- Communication: 27min
- Larissa Project: 23min
- AI Chat: 23min
Trabalho com IA:
- Conversas claude.ai: 0 (sem export novo)
- Claude Code Windows: 8 sessões
- Codex Windows: 2 sessões
Código produzido:
- Commits: 4 (kmaroteApp) + 1 (elquercarlos)
Devlog do dia:
- 822 palavras consolidadas