kmaroteApp: sprint de UI/UX em Bootstrap, tema escuro/claro e o bypass hardcoded que virou gate por plano
Três dias de sprint no kmaroteApp: migração pra Bootstrap tela por tela, toggle dark/light, fix de exibição de vídeo via FTP e correção de um bypass hardcoded no gate de IA.
Três dias de sprint pesado no kmaroteApp (07-23 a 07-25). O fio condutor foi consistente: toda tela que o Claude Code tocou nessa janela foi migrada pra Bootstrap e passou por revisão de UX com a skill ui-ux-pro-max. Além disso, um bug de exibição de vídeo, uma correção na gestão de assinatura SaaS, e a extensão (com correção de gate) do gerador de título por IA.
Sprint de redesign visual nas telas de produção
A sequência começou em 07-23 com a tela editar_producao. O fluxo virou rotina: mando o debug dump da tela pro Claude Code, ele chama a skill ui-ux-pro-max, propõe melhorias com justificativa por tópico, cria mockup, implementa e faz commit. Telas revisadas nessa janela:
editar_producao— estrutura de abas e card migrada pra Bootstrapadicionar_video— simplificação, campos duplicados removidos (commit9bb210e3)revisar_arquivo— redesign completo comui-ux-pro-maxcadastrar_perfil_convidado— novo padrão de guest profilecadastrar_producao— data passou a ser opcional, bugs corrigidos (commits3b91ba12,1a3a98e0)
Em 07-24 o processo aprofundou. Pedi que o Claude Code analisasse uma tela usando ui-ux-pro seguindo padrões da comunidade, ignorando as restrições do projeto — queria ver o delta entre o que temos e o que deveria ser. O Claude Code listou as melhorias sem alterar nada primeiro; eu executei só as que faziam sentido (uma delas, tags virando filtro, ficou de fora por decisão minha). O resultado ficou documentado em docs/dev/padroes/padroes_layout_detalhe_registro.md pra orientar as próximas telas.
Em 07-25, repeti o mesmo cuidado: ciclo de comparação entre dois prints (mockup proposto vs. implementação real) pra listar diferenças ponto a ponto antes de iterar. De novo, o Claude Code listou sem alterar nada primeiro. Essa é uma prática que pretendo manter — isola análise de execução, evita que a IA já saia corrigindo em cima de uma leitura errada do que mudou.
Tema escuro/claro com Bootstrap
Em 07-23 à noite, adicionei toggle de tema claro/escuro próximo ao username. O sistema memoriza a escolha do usuário, mobile incluso.
A migração pra Bootstrap theme em vez de CSS customizado foi decidida no meio da sessão. Perguntei diretamente: “não seria melhor migrar 100% para Bootstrap? Vale a pena usar o tema básico?” O Claude Code avaliou o quanto faltava pra migração integral e a conclusão foi seguir com Bootstrap. Commit 843f2905 fecha esse ciclo em 07-24, com documentação de suporte ao tema em docs/.
A regra em vigor no projeto ficou mais clara com esse episódio: tudo que tocamos, migramos pra Bootstrap. O toggle de tema foi o ponto onde apliquei isso deliberadamente no módulo de aparência.
Exibição de arquivo FTP e vídeos editados
A tela de agendamento mostrava “vídeo editado não disponível” mesmo quando o arquivo já tinha sido enviado por FTP. Em 07-23, mandei investigar a causa real, sem solução paliativa.
O Claude Code encontrou que a exibição de FTP_ARQUIVO_NOME estava sendo bloqueada por lógica de configuração de canal — lógica que eu já tinha usado antes e que funcionava em outro contexto. A correção: arquivos enviados por FTP e vídeos editados passam a ser exibidos independentemente do plano atual do canal. Commit 952f1e75.
Gerador de título IA: de bypass hardcoded pra gate por plano VIP
O gerador de título por IA, integrado à tela revisar_arquivo em 07-23 (commit f03cb049), foi estendido em 07-25 pra aparecer também nas telas de derivação e agendamento.
O critério de gateamento foi definido na sessão: VIP = usuário com assinatura ativa. Confirmei no estruturakmarote.sql antes de codificar — não presumi o schema, verifiquei. Toda geração consome tokens, sem cache, sem atalho. O commit 47c4bf1a implementa a lógica de gate por plano SaaS no lugar do bypass hardcoded que estava lá antes — ou seja, até esse commit, a extensão pra novas telas estaria liberando geração de título por IA sem checar plano nenhum.
Gestão de assinatura SaaS
Em 07-23, a tela de gestão de assinatura não atualizava o plano ao selecionar dias e clicar em ”+ dias”. Mandei o debug dump do $_REQUEST pro Claude Code investigar. Quatro correções foram implementadas e commitadas.
Calendário global de postagem — mockup e implementação
Em 07-25, sessão longa criou mockup pra tela de calendário global de postagem por plataformas. A base foi o planejamento em docs/planejamento/2026_07_22_calendario_global_postagem_plataformas.md e o novo padrão de layout em docs/dev/padroes/padroes_layout_detalhe_registro.md. Depois do mockup aprovado, autorizei a execução. O Claude Code implementou seguindo as skills de segurança e convenções PHP do projeto.
Codex no kmaroteApp
Duas sessões do Codex rodaram em paralelo com o Claude Code durante a janela, ambas no projeto kmaroteApp. O padrão “rollout” das sessões Codex sugere uso pra automações ou testes de integração específicos, complementar ao trabalho principal no Claude Code.
Decisão persistente: otimização de consumo de tokens
Em 07-23 cedo, rodei uma auditoria de contexto. O custo de tokens em execuções de commit/push estava alto — 100% do orçamento em um caso específico. O Claude Code mapeou hooks e scripts em loop sem necessidade. O resultado foi consolidação cuidadosa: mantive o que funciona, descartei o que não tinha razão de existir. Não ficou registrado no devlog quais hooks especificamente saíram, mas o critério de decisão (funcional vs. sem razão de existir) é o que vale reaplicar da próxima vez que o orçamento de tokens estourar de novo.
Fechamento
Pendências pro próximo ciclo: a lista de telas migradas pra Bootstrap segue crescendo tela por tela, sem prazo definido pra cobertura total. O calendário global de postagem foi implementado nessa janela mas não há confirmação de teste em produção registrada no devlog.
Estatísticas do dia (geradas automaticamente):
Atividade no PC:
- Tempo ativo: 17h05min (janela de ~127h; AFK: 110h23min)
Por categoria:
- Coding: 4h50min
- Não categorizado: 3h32min
- Larissa Project: 3h09min
- Browsing: 2h04min
- AI Chat: 2h03min
- Communication: 1h24min
Top apps: Chrome (6h59min) · Antigravity IDE (4h35min) · TaskBarHero (2h36min) · WhatsApp (1h37min)
Top sites navegados: kmaroteApp (1h02min) · claude.ai (58min) · Facebook (59min)
Trabalho com IA:
- claude.ai: 0 conversas novas (2 mapeadas com conteúdo de maio/2026, fora da janela)
- Claude Code Windows: 18 sessões [kmaroteApp (15), elquercarlos (3 automáticas)]
- Codex Windows: 2 sessões [kmaroteApp]
- Claude Code Larissa: SSH indisponível
- Larissa drops: 0 arquivos
Código produzido:
- Git kmaroteApp: 11 commits (07-23 a 07-25)
- Git elquercarlos: 1 commit (devlog anterior, fora desta janela)