🎬 Bug report sexta 23h12 → PR mergeado segunda 8h (sem queimar o fim de semana)
Mariana, plantonista do mês, recebe alerta de um cliente enterprise às 23h12 de sexta. Você acompanha as 4 horas de trabalho dela ao longo do sábado — uso real de plan mode, subagentes especializados, loop de verificação e a coordenação com CTO via PR — e como ela passa o domingo inteiro com a família.
⚠ O ponto desse walkthrough: N4 não é "trabalhar mais" — é "trabalhar com sistema". Mariana resolveu em 4h o que sem Claude Code teria virado fim-de-semana inteiro. Você vê CADA decisão.
Setup — sexta-feira 23h12
Quem: Mariana, 34, dev sênior numa SaaS B2B de gestão financeira pra empresas médias. 5 anos de casa. É a plantonista do mês (escala rotativa).
O sinal: 23h12 de sexta, pager-duty toca:
"[P1] Cliente Acme Corp (ID 8842) reportou: carregamento do relatório mensal de fluxo de caixa retorna erro 500 desde quinta de manhã. Estão tentando fechar contabilidade — janela termina segunda. Contrato enterprise, conta de R$ 240k/ano."
Mariana abre o laptop: a tentação é resolver agora à noite, 23h. Mas ela conhece a regra do time: "problema P1 não-derruba-tudo na sexta após 22h → confirmar com cliente que estamos cientes, dormir, atacar sábado de manhã descansado."
Ela responde no portal: "Vista. Vamos investigar amanhã 8h e te atualizar até 12h. Janela contábil ainda tem 2 dias úteis." Fecha laptop, dorme.
Sábado 8h47 — abrindo o caso
Mariana abre laptop, café na mão. Cria worktree dedicada:
Inicia Claude Code com plan mode + Opus Plan:
9h05 — Claude volta com diagnóstico:
✅ Mariana valida em 4 minutos
Roda o query sugerido. Volta com resultados — confirma: 23 categorias do Acme Corp sem subCategories. Hipótese 100% certa. Aprova o plano.
9h22 — fix + auditoria com subagentes
Mariana usa 2 subagentes em paralelo:
Subagente "fix": implementa o fix do plano.
Subagente "audit-similar": caça padrões similares no codebase.
9h41 — saídas dos subagentes:
Subagente fix: aplicou correção em cashflow.ts:142 + 1 lugar similar em cashflow.ts:198. Adicionou 3 testes (1 unitário, 2 integração). Total: 2 arquivos código + 1 arquivo teste alterados.
Subagente audit-similar: encontrou 2 lugares com mesmo padrão arriscado:
- •
/lib/reports/balance.ts:87— severidade 3 (afeta só plano starter, baixa probabilidade) - •
/lib/reports/forecast.ts:213— severidade 4 (afeta enterprise, mesma classe de bug)
Mariana decide: fix imediato cobre só o reportado. Os 2 outros viram ticket separado pra próxima semana (não bloqueia Acme).
9h47 — loop de verificação
Antes de chamar review, Mariana ativa loop de verificação:
10h18 — Claude volta:
10h31 — PR via slash command
Mariana invoca slash command custom /hotfix-pr (versão pra hotfixes urgentes que pula etapas opcionais):
10h35 — PR aberto:
🚨 hotfix: trata subCategories nullable em cashflow report
Contexto
Cliente Acme Corp (enterprise) reportou erro 500 em GET /api/reports/monthly-cashflow desde quinta 09h32. Causa raiz: refactor do PR #1224 assumiu subCategories sempre populado, mas categorias custom de planos enterprise podem retornar null do banco.
Plano executado
- cashflow.ts:142 e :198 → adicionado
?? []no acesso a subCategories - 3 testes adicionados (1 unit, 2 integração) cobrindo categoria sem sub-cat
- Fixture de cliente enterprise sample agora inclui caso sem sub-cat (proteção contra regressão)
Evidência de teste
- npm run test -- reports: 47/47 ✓
- npm run typecheck: 0 erros
- Reprodução local com cliente 8842: 200 OK (antes 500)
- Regressão com growth/starter: 200 OK
- Screenshot do payload em /screenshots/verify-acme-fix.png
Riscos
- Mudança defensiva, baixo risco. Aplica default vazio em vez de quebrar.
- Audit identificou 2 lugares similares (balance.ts, forecast.ts) — abri ticket separado #ACME-002 pra próxima sprint, NÃO bloqueia este PR.
Deploy
Sugiro merge + deploy em janela suave (domingo > 21h). Cliente já comunicado que correção sai até segunda.
10h42 — Mariana ping pessoal no CTO via Slack: "PR de hotfix Acme: [link]. Pode revisar entre 21-22h domingo pra deploy noturno? Já testei tudo, baixo risco."
10h47 — comunicar cliente e fechar laptop
Mariana manda atualização pro Acme no portal:
"Atualização: identificamos a causa raiz (assumption indevida sobre estrutura de dados em planos enterprise customizados) e implementamos a correção. Já validamos em ambiente de pré-produção que o problema está resolvido pro seu cenário. Deploy em produção: domingo 22h. Confirmaremos por aqui assim que estiver no ar. Janela contábil de vocês não é afetada — fechamento segue normalmente segunda."
11h00 — Mariana fecha o laptop. Total de tempo trabalhado: 2h13. Vai pra feira com a filha.
Domingo 21h47 — CTO revisa e aprova pelo celular
CTO abre o PR pelo celular. Lê o contexto, plano executado, evidência. Examina o diff (4 arquivos, mudanças cirúrgicas). Aprova com comentário: "Limpo. Mereceu fim de semana decente. Mergeio agora."
21h52 — CI roda. Verde. Merge. Pipeline de deploy automático dispara.
22h17 — Deploy completo. Smoke tests automáticos validam endpoint. Verde.
22h21 — Hook no projeto envia mensagem automática pro Slack #deploys: "🟢 PR #1287 merged + deployed. Endpoint /reports/monthly-cashflow: 200 OK em smoke."
Segunda 8h02 — feedback do cliente
Mariana abre o portal antes do café:
"Mariana, bom dia. Acabei de rodar o relatório, voltou perfeito. Janela contábil mantida. Obrigado pela rapidez e pela comunicação clara durante o processo — você nos atualizou ANTES de eu cobrar, isso fez muita diferença. — Carlos, CFO Acme Corp"
Mariana arquiva o ticket. PR está mergeado. Bug resolvido. Domingo intocado. Cliente impressionado.
Timeline completa
Lições da jornada
1. Plantão sexta-noite = "confirmar e dormir"
Bug P1 fora de janela "derruba-tudo" não exige trabalho às 23h. Confirme recebimento, comunique plano, descanse. Decisão clara EVITA mau-julgamento por sono.
2. Plan mode em bug ambíguo = investigar com método
Mariana não pediu "fix the bug". Pediu "reproduza, leia logs, cruze com PRs, forme hipótese com %, plano de fix, plano de teste". 18 minutos depois ela tinha mapa completo.
3. Subagentes paralelos = audit e fix simultâneos
"audit-similar" descobriu 2 bugs latentes que Mariana NÃO planejava procurar. Viraram ticket separado, pré-emptivo. Cliente fica protegido sem PR inchado.
4. Loop de verificação tira você do "espero-CI"
Claude validou tudo antes do PR. Quando CTO abriu pelo celular, viu PR com evidência inline — não precisou esperar CI rodar. Aprovação em 5 minutos.
5. Comunicação proativa > correção rápida
Feedback do CFO Acme cita "comunicação ANTES de eu cobrar". 3 mensagens curtas (sexta, sábado, domingo) custaram 5 minutos no total — transformaram a percepção do incidente.
Adaptações pro seu contexto
🔥 P0 que derruba TUDO em produção
Mesma estrutura mas sem "dormir": Claude opera enquanto você comunica stakeholders. Plan mode mais rápido (5min, não 18). Verification loop é mais curto também.
🐛 Bug de "comportamento estranho" sem stack trace
Plan mode investiga: "use feature flag de log verbose, reproduza, junte logs, identifique linha". Sem stack o trabalho de hipótese é maior.
🚀 Feature de cliente premium urgente
Plan mode mais elaborado (incluir conflito com PRs em vôo). Verification loop com browser automation pra UX. Slash command de PR com formato "premium feature".
🔁 Refactor que afeta 20+ arquivos
Plan mode em 2 etapas: 1) mapeia tudo afetado 2) agrupa em commits lógicos. Subagente "consistency-check" depois de cada commit.
Métricas reais
fora do trabalho
comunicação proativa
🎓 Resumo do Módulo
Próxima Trilha:
Trilha 5 — Arquiteto. Claude rodando 24/7, hook que salva de drop table acidental, routines, SDK pra construir produto.