From b3e92d780a24cb63bd03bfaf2f3147f91984449c Mon Sep 17 00:00:00 2001 From: Codex CLI Date: Sat, 16 May 2026 03:11:35 +0000 Subject: [PATCH] review: auto-review do Captain em 2026-05-16 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 4 padrões identificados: pagamento presencial, PIX não gerado (Pernoite Especial), AI disse 'É motel' sendo hotel+motel, nome errado com humano ativo. Co-Authored-By: Captain Reviewer --- docs/captain/reviews/2026-05-16.md | 249 +++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 docs/captain/reviews/2026-05-16.md diff --git a/docs/captain/reviews/2026-05-16.md b/docs/captain/reviews/2026-05-16.md new file mode 100644 index 000000000..42d888baf --- /dev/null +++ b/docs/captain/reviews/2026-05-16.md @@ -0,0 +1,249 @@ +# Captain Review — 2026-05-16 + +**Período:** últimas 72h (2026-05-14 a 2026-05-16) +**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express AL) +**Conversas com assignee/handoff:** 40 +**Conversas problemáticas:** 4 bugs / ~24 legítimas + +--- + +## 📊 Conversas analisadas + +| Conv | Hotel | Contato | Problema | Legítima? | +|---|---|---|---|---| +| 8043 | PrimeAL | pedrinm_tattoo | Pagamento em espécie → AI sumiu 38 min | ❌ Bug | +| 8052 | PrimeAL | Regina ❣️ | Pagamento presencial → AI travou em "Um momento" | ❌ Bug | +| 8097 | PrimeVL | Davi Bento | AI não gerou PIX por medo do "Pernoite Especial" | ❌ Bug | +| 8138 | PrimeAL | Anna | AI disse "É motel" quando perguntaram se é hotel | ❌ Bug | +| 8142 | PrimeAL | Aline👸🏼 | AI chamou cliente de "João" (nome errado) | ❌ Bug | +| 8241 | Express | Hotel Express | Pedido de nota fiscal | ✅ Legítima | +| 8226 | Qnn01 | Deus Acima | Pergunta sobre levar coberta de casa | ✅ Legítima | +| 8209 | PrimeAL | Thalita Diaz | Pedido de cmd (room service) | ✅ Legítima | +| 8219 | Qnn01 | Jesus te ama | Pergunta sobre unidade em Samambaia | ✅ Legítima | +| 8191 | PrimeAL | R. Dias | Pergunta sobre pernoite, humano atendeu | ✅ Legítima | +| 8205 | Qnn01 | Deus Acima | Pergunta se pode levar coberta (reserva já feita) | ✅ Legítima | +| 8186 | PrimeVL | Davi Bento | "Tá certa a reserva?" — hóspede já ativo | ✅ Legítima | +| 8185 | Qnn01 | Isia Rabelo 🌷 | Pediu contato Recanto + localização Ceilândia | ✅ Legítima | +| 8155 | Express | Wallyson | Queria hidro, AI direcionou corretamente pro Prime | ✅ Legítima | +| 8143 | PrimeAL | Digitando | Pediu diária + foto Stilo → timed out sem resposta | ✅ Legítima* | +| 8139 | PrimeAL | Mateus Janz | Pergunta sobre promoção → humano respondeu | ✅ Legítima | +| 8135 | PrimeAL | Deus acima de td | AI deu preços da Hidro, humano fez desconto | ✅ Legítima | +| 8129 | PrimeAL | Mateus Janz | Pergunta sobre promoção → AI sumiu sem voltar | ✅ Legítima* | +| 8130 | PrimeAL | Thainá🍃 | Como funciona garagem? → handoff legítimo | ✅ Legítima | +| 8077 | PrimeVL | Pedro Henrique | Pergunta sobre decoração (pétalas) → humano | ✅ Legítima | +| 8097 | PrimeVL | Davi Bento | Reserva completa → humano finalizou | ❌ Bug (ver acima) | +| 8074 | PrimeVL | Pedro Henrique | Pergunta sobre pétalas + preços → humano ok | ✅ Legítima | +| 8067 | Express | Alice | Hóspede no quarto pedindo comida → humano ✅ | ✅ Legítima | +| 8063 | PrimeAL | luh Silva❤️ | Cancelamento de reserva → handoff legítimo | ✅ Legítima | +| 8056 | Express | Yngrind | (não listado acima, pequena conversa) | ✅ Legítima | +| 8066 | Express | Alice | Conversa curta, sem problemas | ✅ Legítima | +| 8054 | PrimeVL | Pedro Henrique | Pergunta sobre decoração → humano respondeu | ✅ Legítima | +| 8057 | Express | Otavio | Pergunta pernoite, humano tomou over | ✅ Legítima | +| 8052 | PrimeAL | Regina ❣️ | Pagamento presencial → Bug (ver acima) | ❌ Bug | +| 8046 | PrimeAL | Regina ❣️ | Follow-up de 8052, humano finalizou | ✅ Legítima | +| 8050 | PrimeAL | Mike Bezerra | Conversa curta, sem problemas | ✅ Legítima | +| 8042 | Express | Kamilla | Conversa curta | ✅ Legítima | +| 8044 | Qnn01 | Hotel Qnn 01 | Mensagem interna do hotel | ✅ Legítima | +| 8040 | Qnn01 | Hotel Qnn 01 | Mensagem interna do hotel | ✅ Legítima | +| 8036 | Express | ⚡️ | Conversa curta | ✅ Legítima | +| 8032 | Express | Kaká🥰 | Conversa curta | ✅ Legítima | +| 8016 | Express | Maicon Pereira | Reserva de grupo (3 solteiros + casal) → humano ✅ | ✅ Legítima | +| 8007 | PrimeVL | Iranilde Araujo | "Pode entrar com alimento?" → handoff, humano | ✅ Legítima | +| 8164 | PrimeAL | Anna | Preço correto, humano fechou reserva | ✅ Legítima | +| 8055 | Express | Maicon Pereira | Reserva de grupo em andamento → humano | ✅ Legítima | + +*8143/8129: clientes fugiram, não é bug do prompt em si. + +--- + +## 🔍 Padrões identificados + +### Padrão 1: AI trava em handoff quando cliente quer pagar em espécie/presencial +**Ocorrências:** 2 conversas — 8043 (PrimeAL), 8052 (PrimeAL) +**Qual regra violou:** #3 (IA nunca abandona cliente no meio do fluxo de reserva) +**Comportamento errado:** +- 8043 — Cliente tinha nome+CPF+suíte+horário prontos, disse "vai ser em espécie". AI disparou handoff ("⏳ Um momento — vou verificar.") e nunca voltou. Cliente esperou 38 minutos, enviou 6 mensagens ("Pode deixar confirmado", "Me confirme", "Mande o Pix", "Oi") — silêncio total. +- 8052 — Cliente mandou todos os dados num único turno e disse "prefiro pagar na hora". AI idem: "⏳ Um momento — vou verificar." sem retorno. +**Deveria ser:** Confirmar a reserva e informar que o pagamento integral é feito no check-in, SEM gerar Pix. +**Escopo do fix:** (a) geral — vale pra todos os 4 hotéis. + +**💡 Fix sugerido** — adicionar em `_modelos/scenarios/jasmine___daniela_reservas.md` após a seção `## 🎯 TURNO 2 — AÇÃO IMEDIATA`: + +```markdown +### 💵 PAGAMENTO PRESENCIAL (sem Pix antecipado) + +Se o cliente disser **"vou pagar na hora"**, **"vou pagar em espécie"**, **"pago lá"**, **"pago no check-in"**, **"não quero pagar agora"**: + +- **NÃO chame `generate_pix`**. +- **NÃO dispare handoff**. Este é um caso que você resolve sozinha. +- Confirme a reserva diretamente com uma mensagem: + +> *"Confirmado 😊 Suíte {X} por {permanência} no dia {DD/MM} às {HH}h, no nome de {Primeiro Nome}. Pagamento integral de R$ {total} é feito no check-in. Te esperamos aqui!"* + +- Se o cliente depois pedir para CANCELAR ou REAGENDAR → aí sim faça handoff (é cancelamento, um dos 3 casos permitidos). +``` + +- [ ] Aprovar +- [ ] Rejeitar (motivo: _______) + +--- + +### Padrão 2: AI não gerou PIX após coletar todos os dados — medo do "Pernoite Especial Prime" +**Ocorrências:** 1 conversa — 8097 (PrimeVL) +**Qual regra violou:** #3 (IA calcula, nunca paralisa) + Turno 2 do prompt +**Comportamento errado:** A IA coletou nome ("Davi Bento Ribeiro Ferreira") e CPF, MAS registrou nota interna: +> *"Não gerei Pix automático porque o parâmetro de pernoite pode gerar Pernoite Especial Prime (+R$20) e divergir do valor combinado."* + +Ou seja, a IA conhecia o preço (R$280 com café, pernoite), tinha todos os dados, mas travou com medo de gerar o Pix no valor "errado". O cliente ficou esperando; o handoff eventualmente foi atendido por um humano (Patricia de Souza) que fez a reserva manualmente. + +**Deveria ser:** Quando o preço já foi explicitamente comunicado ao cliente na conversa e confirmado por ele, chamar `generate_pix` com esse preço exato — sem hesitação. +**Escopo do fix:** (b) marca Prime — vale para PrimeAL e PrimeVL (são as unidades que têm "Pernoite Especial Prime"). + +**💡 Fix sugerido** — adicionar em `jasmine_primeal__daniela_reservas.md` e `jasmine_primevl__daniela_reservas.md`, na seção `## 🎯 TURNO 2 — AÇÃO IMEDIATA`, após o passo 1: + +```markdown +> **Sobre o Pernoite Especial Prime:** se o cliente já viu e aceitou o preço do pernoite padrão (com café) durante a conversa, use esse preço no `generate_pix`. NÃO hesite. O "Pernoite Especial Prime" é uma variação interna — ao usar `total_amount` com o valor acordado na conversa, o sistema ajusta automaticamente. Dúvida = use o preço comunicado ao cliente. +``` + +- [ ] Aprovar +- [ ] Rejeitar (motivo: _______) + +--- + +### Padrão 3: AI disse "É motel" quando cliente perguntou se é hotel +**Ocorrências:** 1 conversa — 8138 (PrimeAL) +**Qual regra violou:** Regra #8 (Hotel vs Motel) + linha do prompt "NUNCA assuma motel por padrão" +**Comportamento errado:** +> Cliente: *"vocês é hotel né?"* +> AI: *"É motel, Anna 😊 Trabalhamos com suítes para casal: Stilo, Alexa e Hidromassagem."* + +Completamente errado — PrimeAL é **hotel e motel** simultaneamente. "É motel" exclui a natureza hoteleira e pode afastar clientes que querem hospedagem regular. + +**Deveria ser:** *"Somos hotel e motel 😊 Trabalhamos com hospedagem (diária, pernoite e por horas) em suítes Stilo, Alexa e Hidromassagem. Você quer hospedagem como hotel ou está pensando em algumas horas?"* +**Escopo do fix:** (a) geral — todos os 4 hotéis são hotel+motel. + +**💡 Fix sugerido** — adicionar em TODOS os 4 `jasmine_*__daniela_reservas.md`, na seção `🚨 REGRA DE OURO — HOTEL vs MOTEL`: + +```markdown +**Se o cliente perguntar diretamente "vocês são hotel?" / "vocês são motel?" / "isso é hotel ou motel?":** +- Resposta correta: *"Somos hotel e motel 😊 Trabalhamos com hospedagem (diária, pernoite e por horas). Você quer se hospedar como hotel ou é para algumas horas?"* +- **NUNCA** responda só "É motel" nem só "É hotel" — as unidades funcionam como os dois. +``` + +- [ ] Aprovar +- [ ] Rejeitar (motivo: _______) + +--- + +### Padrão 4: AI enviou mensagem com nome errado quando humano estava atendendo +**Ocorrências:** 1 conversa — 8142 (PrimeAL) +**Qual regra violou:** Regra #11 (saudação com primeiro nome do cliente) +**Comportamento errado:** O contato se chama "Aline👸🏼". A IA enviou `"Boa tarde, João 😊"` às 20:07, enquanto a agente Érica Silva já tinha assumido o atendimento às 19:32. Dois problemas: nome errado (João ≠ Aline) e mensagem enviada quando já havia assignee humano. +**Deveria ser:** A IA não deveria ter enviado mensagem alguma após o assignee humano assumir. E caso enviasse, deveria usar "Aline", não "João". +**Escopo do fix:** (a) este parece ser mais um problema de configuração do Chatwoot (automação que re-abre conversa) do que do prompt. O nome errado pode ser bug do modelo confundindo contextos de conversas simultâneas. + +**💡 Minha sugestão:** investigar a configuração de automação "Conversa foi reaberta por Sistema de Automação" + "ia_abriu_conversa" — essa automação está disparando mesmo com assignee humano ativo. Não é necessariamente um fix de prompt. + +- [ ] Aprovar investigação +- [ ] Rejeitar (motivo: _______) + +--- + +## ❓ Perguntas pra o Rodrigo responder + +### Pergunta 1: Hotel aceita reserva sem sinal de Pix quando cliente quer pagar presencialmente? +**Conversas:** 8043, 8052 +**Contexto:** Clientes com todos os dados prontos (nome, CPF, suíte, horário) disseram que queriam pagar na hora/em espécie. A IA travou porque o fluxo assume Pix obrigatório. +**O que preciso saber:** O hotel aceita reservas sem sinal antecipado via Pix? Se sim, a IA pode confirmar a reserva e deixar o pagamento integral para o check-in? + +**💡 Minha sugestão:** +Sim, aceitar e confirmar sem Pix. O texto da confirmação seria: +> *"Confirmado 😊 Suíte Alexa por 2h hoje às 11h10, no nome de Pedro Henrique da Silva Parente. Pagamento de R$ 75 no check-in. Te esperamos aqui!"* + +**Sua escolha:** +- [ ] Usar a sugestão acima (aceita sem Pix, confirma por aqui) +- [ ] Apenas handoff para humano (não confirmar via IA) +- [ ] Usar outra (escreva abaixo) + +**Sua resposta alternativa:** _[preencha só se rejeitou]_ + +--- + +### Pergunta 2: O que a IA deve dizer quando não sabe responder uma pergunta operacional (decoração, trazer alimento, promoção específica)? +**Conversas:** 8077, 8074, 8054, 8129, 8007 +**Contexto:** Em vários casos, clientes perguntaram coisas que a IA não sabe: preço de decoração com pétalas, se pode trazer alimento, horários/validade de promoções. A IA disparou handoff ("⏳ Um momento — vou verificar.") mas humanos nem sempre atendem, deixando cliente sem resposta. +**O que preciso saber:** Qual deve ser a resposta padrão da IA para esse tipo de pergunta? + +**💡 Minha sugestão:** +> *"Essa informação específica preciso verificar com a equipe 😊 Deixa eu te conectar com um atendente que pode responder certinho — pode levar alguns minutinhos."* + +E então disparar o handoff de forma mais explícita. + +**Sua escolha:** +- [ ] Usar a sugestão acima +- [ ] Usar outra (escreva abaixo) + +**Sua resposta alternativa:** _[preencha só se rejeitou]_ + +--- + +## 📝 Diffs completos (antes/depois) + +### Padrão 1 — Arquivo: `_modelos/scenarios/jasmine_*__daniela_reservas.md` (todos os 4) + +**ANTES:** (não existe seção de pagamento presencial — o prompt só cobre fluxo Pix) + +**DEPOIS:** adicionar após `## 🎯 TURNO 2 — AÇÃO IMEDIATA`: +```markdown +### 💵 PAGAMENTO PRESENCIAL (sem Pix antecipado) + +Se o cliente disser **"vou pagar na hora"**, **"vou pagar em espécie"**, **"pago lá"**, **"pago no check-in"**, **"não quero pagar agora"**: + +- **NÃO chame `generate_pix`**. +- **NÃO dispare handoff**. Este é um caso que você resolve sozinha. +- Confirme a reserva diretamente: + +> *"Confirmado 😊 Suíte {X} por {permanência} no dia {DD/MM} às {HH}h, no nome de {Primeiro Nome}. Pagamento integral de R$ {total} é feito no check-in. Te esperamos aqui!"* + +- Se o cliente depois pedir para CANCELAR ou REAGENDAR → aí sim faça handoff. +``` + +--- + +### Padrão 2 — Arquivo: `_modelos/scenarios/jasmine_primeal__daniela_reservas.md` e `jasmine_primevl__daniela_reservas.md` + +**ANTES:** (não existe instrução sobre Pernoite Especial Prime no Turno 2) + +**DEPOIS:** adicionar após passo 1 do Turno 2: +```markdown +> **Sobre o Pernoite Especial Prime:** se o cliente já viu e aceitou o preço do pernoite padrão (com café) durante a conversa, use esse preço no `generate_pix`. NÃO hesite. O "Pernoite Especial Prime" é uma variação interna — ao usar `total_amount` com o valor acordado na conversa, o sistema ajusta automaticamente. Dúvida = use o preço comunicado ao cliente. +``` + +--- + +### Padrão 3 — Arquivo: `_modelos/scenarios/jasmine_*__daniela_reservas.md` (todos os 4) + +**ANTES:** +``` +**NUNCA assuma motel por padrão** — especialmente pra clientes que chegam perguntando sobre a marca "Hotel". A palavra **hotel** na mensagem do cliente é sinal forte de hospedagem. +``` + +**DEPOIS:** (adicionar após a linha acima): +```markdown +**Se o cliente perguntar diretamente "vocês são hotel?" / "vocês são motel?" / "isso é hotel ou motel?":** +- Resposta correta: *"Somos hotel e motel 😊 Trabalhamos com hospedagem (diária, pernoite e por horas). Você quer se hospedar como hotel ou é para algumas horas?"* +- **NUNCA** responda só "É motel" nem só "É hotel" — as unidades funcionam como os dois. +``` + +--- + +## ✅ Checklist de aprovação + +Após revisar, marque e responda nesta issue com `@aplicar` + as decisões: + +- [ ] Padrão 1 — Aprovado / Rejeitado +- [ ] Padrão 2 — Aprovado / Rejeitado +- [ ] Padrão 3 — Aprovado / Rejeitado +- [ ] Padrão 4 — Aprovar investigação / Rejeitar +- [ ] Pergunta 1 — Respondida +- [ ] Pergunta 2 — Respondida