iachat/docs/captain/reviews/2026-05-01.md
Codex CLI abf9f4057e
Some checks failed
Build and Push to GHCR (multi-arch) / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Build and Push to GHCR (multi-arch) / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Build and Push to GHCR (multi-arch) / merge (push) Has been cancelled
review: auto-review do Captain em 2026-05-01
2026-05-01 03:08:36 +00:00

321 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Captain Review — 2026-05-01
**Período:** últimas 72h (28/0401/05/2026)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express)
**Conversas problemáticas:** 9 bugs / 8 legítimas
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 5517 | Qnn01 | Pedro Teodoro | IA cotou dia útil (R$40) pra feriado 01/05 + pediu valor ao cliente | ❌ Bug |
| 5521 | PrimeAL | — | — | — |
| 5523 | Express | Jeeh | IA cita promoção expirada (31/03) + não responde diária quando perguntada | ❌ Bug |
| 5563 | Express | Silvio | IA respondeu pernoite/3h mas não diária quando cliente perguntou diária | ❌ Bug |
| 5581 | Express | Amanda | IA disse diária não inclui café — human corrigiu (inclui) | ❌ Bug |
| 5586 | PrimeAL | Paulo Vitor B. | IA pediu ao cliente que confirmasse valor da reserva (3x) | ❌ Bug |
| 5598 | PrimeAL | Matheus Souza | Campo suite corrompido na reserva #155 | ❌ Bug |
| 5606 | PrimeAL | Beatriz Sousa | Loop de 30+ min sobre TV smart — IA não tem info de amenidades | ❌ Bug |
| 5621 | PrimeAL | 😶‍🌫️ | IA perguntou "hoje é dia útil ou feriado?" sem saber que é feriado | ❌ Bug |
| 5623 | Express | Denis Fagundes | IA não sabe horário da pernoite nem se há quarto duplo | ❌ Bug |
| 5635 | PrimeAL | 100 porcento jesus | Item perdido (celular) — handoff correto | ✅ Legítima |
| 5643 | PrimeAL | Matheus Souza | Mensagem vazia, hóspede no local — handoff correto | ✅ Legítima |
| 5593 | PrimeAL | Mariano alves | Nota fiscal + hóspede no quarto — handoff correto | ✅ Legítima |
| 5599 | PrimeAL | Taua 🙇🏽 | Consulta e reserva OK; hóspede na frente → handoff correto | ✅ Legítima |
| 5604 | PrimeVL | Nayara Nunes | Hóspede no quarto (A/C, lençol) — handoff correto | ✅ Legítima |
| 5605 | PrimeAL | Gabrielle Victória | Pagamento de reserva; hóspede chegando → handoff correto | ✅ Legítima |
| 5609 | PrimeAL | Gabrielle Victória | Comprovante Pix — limitação do sistema (não consegue confirmar), não bug de prompt | ✅ Legítima |
| 5628 | PrimeAL | Cavalcante Consultoria | IA primeiro disse sem preço de pernoite, depois deu; handoff por pergunta de valor | ❌ Bug |
---
## 🔍 Padrões identificados
---
### Padrão 1: IA aplica tarifa de dia útil em feriados
**Ocorrências:** 2 conversas (5517, 5621)
**Qual regra violou:** #7 (infere permanência/dia pela data mencionada)
**Comportamento errado:**
- Conv 5517 (Qnn01): Cliente pediu reserva pra "amanhã" (2026-05-01 = feriado). IA cotou R$40 (tarifa seg-qua). Human (KARINA) corrigiu: "Amanhã duas horas é 50,00 / O sistema informou errado".
- Conv 5621 (PrimeAL): IA perguntou "Hoje pra você entra como dia comum ou feriado?" — sem saber que hoje (2026-05-01 = Dia do Trabalho) é feriado nacional.
**Deveria ser:** IA deve conhecer os feriados nacionais brasileiros fixos e aplicar automaticamente a tarifa qui-dom/feriado. Quando o cliente menciona "amanhã" ou "hoje" e a data é feriado, aplica tarifa de feriado sem perguntar.
**Escopo do fix:** (a) geral — todos os 4 arquivos
**💡 Fix sugerido** — adicionar em cada `jasmine_*__daniela_reservas.md`, logo após a seção "IMPORTANTE: pergunte/confirme antes se é dia de semana (seg-qua)...":
```markdown
**📅 FERIADOS NACIONAIS FIXOS — aplica tarifa qui-dom automaticamente:**
- 1 jan (Confraternização), 21 abr (Tiradentes), 1 mai (Dia do Trabalho),
7 set (Independência), 12 out (Nossa Sra. Aparecida), 2 nov (Finados),
15 nov (Proclamação), 20 nov (Consciência Negra), 25 dez (Natal).
Se o cliente mencionar "hoje", "amanhã" ou uma data específica e essa data cair
em feriado nacional fixo → aplique tarifa de feriado (qui-dom) SEM perguntar.
Para feriados estaduais/municipais ou pontes, use `faq_lookup("feriado <data>")`.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: IA pede ao cliente que confirme o valor da reserva
**Ocorrências:** 3 conversas (5517, 5586, 5628)
**Qual regra violou:** #3 (IA nunca pergunta valor — ela CALCULA)
**Comportamento errado:**
- Conv 5517 (Qnn01): Após receber nome+CPF, IA enviou: "Para gerar o Pix certinho, preciso confirmar o valor total da reserva. Pode me passar?" — repetido 2 vezes.
- Conv 5586 (PrimeAL): Mesma frase repetida 3 vezes seguidas após cliente confirmar suíte Stilo + sinal R$75.
- Conv 5628 (PrimeAL): IA primeiro disse "não localizei o valor do pernoite", depois deu os preços, depois disse "não encontrei as diárias", depois fez handoff por pergunta de preço.
**Deveria ser:** A IA JÁ TEM a tabela de preços. Calcula o sinal (50%) com base na suíte+permanência+dia confirmados e chama `generate_pix` direto.
**Escopo do fix:** (a) geral
**💡 Fix sugerido** — reforçar instrução logo ANTES do passo `generate_pix` em cada `jasmine_*__daniela_reservas.md`:
```markdown
🚨 NUNCA pergunte o valor ao cliente. Se você recebeu suíte + permanência + dia:
1. Acesse a tabela acima e calcule o total.
2. O sinal = 50% do total (arredonde pra cima se necessário).
3. Chame `generate_pix` IMEDIATAMENTE com `total_amount` preenchido.
Se o campo `suite` na reserva não ficou claro, PERGUNTE A SUÍTE — mas nunca o valor.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 3: Campo `suite` corrompido na criação da reserva
**Ocorrências:** 2 reservas (Reserva #152 e #155)
**Qual regra violou:** Integridade do dado operacional
**Comportamento errado:**
- Reserva #152 (Conv 5517, Qnn01, Pedro Teodoro): `suite = "Standard por 2 horas sai por **R$ 40** durante a semana"` — conteúdo de uma mensagem anterior do bot.
- Reserva #155 (Conv 5598, PrimeAL, Matheus Souza): `suite = "em mente ou quer que eu te passe as opções pra reservar"` — conteúdo de mensagem anterior.
A IA está passando texto das próprias respostas anteriores como nome da suíte ao chamar `create_reservation` ou `generate_pix`.
**Deveria ser:** O parâmetro `suite` deve ser SEMPRE o nome canônico da categoria (ex: `"Standard"`, `"Hidromassagem"`, `"Stilo"`). NADA mais.
**Escopo do fix:** (a) geral
**💡 Fix sugerido** — adicionar instrução explícita na seção de `generate_pix` / `create_reservation` de cada arquivo:
```markdown
⚠️ CAMPO `suite`: passe APENAS o nome canônico da categoria, sem frases,
sem preços, sem formatação markdown. Exemplos válidos: `"Stilo"`, `"Alexa"`,
`"Hidromassagem"`, `"Standard"`, `"Master"`.
Se estiver em dúvida sobre qual categoria o cliente escolheu, PERGUNTE antes
de chamar `generate_pix` — mas o campo nunca pode conter texto explicativo.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 4: Express — preços desatualizados e categorias inconsistentes
**Ocorrências:** 4 conversas (5523, 5563, 5581, 5522)
**Qual regra violou:** #1 (preço por categoria) e #6 (todas as categorias ao perguntar por permanência)
**Comportamento errado:**
- Conv 5523 (Express): IA cita "promoção de 3h por R$34,90 válida até 31/03/2026" — esta data já passou. Promoção expirada está sendo oferecida.
- Conv 5563 (Express): Cliente perguntou "diária hoje?" → IA respondeu só com 3h (R$34,90) e pernoite (R$79,90), ignorando diária. Human (GEOVANIA) deu os preços certos: Standard R$150, Master R$160.
- Conv 5581 (Express): IA disse "promoção de pernoite não inclui café da manhã" pra cliente perguntando sobre diária. Human confirmou: diária SIM inclui café.
- Conv 5522 (Express): IA listou Singles, Família e Singles Duplo como categorias disponíveis — mas a tabela do prompt Express só tem Standard e Master. Há inconsistência entre o que o FAQ retorna e o que a tabela oficial tem.
**Escopo do fix:** (c) só Express
**💡 Fix sugerido:**
Para 5563 e 5581 — já está nas instruções (a tabela do Express tem Standard e Master com todos os preços). O bug parece ser que a IA está usando `faq_lookup` e retornando dados da época da promoção (R$79,90 e R$34,90).
Sugestão: desativar ou limitar o uso de `faq_lookup` para preços no Express, ou adicionar instrução:
```markdown
⚠️ PREÇOS DO EXPRESS: use SEMPRE a tabela acima. NÃO use `faq_lookup` para
consultar preços ou categorias — o FAQ pode ter dados desatualizados (ex: promoção
expirada de R$34,90 para 3h e R$79,90 para pernoite). Esses valores NÃO estão mais
em vigor. A tabela oficial é a única fonte de preços.
☕ CAFÉ DA MANHÃ: a diária Express INCLUI café da manhã. A pernoite NÃO inclui
(exceto se o cliente pedir "com café" — nesse caso aplique conforme disponibilidade).
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 5: IA sem informações de amenidades (TV, quarto duplo, horários)
**Ocorrências:** 2 conversas (5606, 5623)
**Qual regra violou:** — (não viola regra diretamente, mas gera loop e possível handoff desnecessário)
**Comportamento errado:**
- Conv 5606 (PrimeAL, Beatriz): Cliente perguntou várias vezes se tem "TV smart" em cada suíte. IA ficou em loop por 30+ minutos dizendo "não posso confirmar com segurança". Escalou pra humano que não respondeu. Conversa encerrou por inatividade.
- Conv 5623 (Express, Denis): IA não soube informar o horário da pernoite ("horário da pernoite não veio informado na base oficial") e nem se há quartos com 2 camas.
**Deveria ser:** Quando a IA não tem a informação, deve escalada direta e rápida, não um loop de tentativas. OU devemos adicionar essas informações ao prompt.
**Escopo do fix:** Preciso da sua decisão.
---
## ❓ Perguntas pra o Rodrigo responder (com sugestão)
### Pergunta 1: As suítes do Prime (PrimeAL/PrimeVL) têm TV smart?
**Conversa:** 5606
**Contexto:** Beatriz ficou 30 min perguntando sobre TV smart. IA não tinha essa informação e entrou em loop. O cliente sumiu sem reservar.
**O que preciso saber:** Qual suíte do Prime tem TV smart? Isso é informação que a IA deve saber e responder diretamente.
**💡 Minha sugestão:**
Se as Suítes Alexa e Hidromassagem têm TV smart (e Stilo não), adicionar à seção de categorias no `jasmine_primeal__daniela_reservas.md` e `jasmine_primevl__daniela_reservas.md`:
```
**Sobre amenidades:**
- Suíte Stilo: sem TV smart (TV LED básica ou sem TV — confirme)
- Suíte Alexa: TV smart
- Suíte Hidromassagem: TV smart
```
**Sua escolha:**
- [ ] Usar a sugestão acima (me informe quais suítes têm TV smart)
- [ ] Usar outra (escreva abaixo)
**Sua resposta:** _[preencha com: qual suíte tem TV smart?]_
---
### Pergunta 2: O Express tem categorias além de Standard e Master?
**Conversas:** 5522, 5523, 5581
**Contexto:** A IA do Express está listando Singles (R$130), Família (R$190) e Singles Duplo (R$250) para diária — mas a tabela de preços no prompt só tem Standard e Master. O FAQ parece ter mais categorias.
**O que preciso saber:** O Express ainda tem Singles, Família e Singles Duplo ativos? Se sim, preciso atualizar a tabela do prompt.
**💡 Minha sugestão:**
Se essas categorias existem com os preços que a IA cotou (Singles R$130, Standard R$150, Master R$160, Família R$190, Singles Duplo R$250 — diária com café, qui-dom), atualizar a tabela do `jasmine_express__daniela_reservas.md`:
```
| Singles | — | — | — | — | 130 | (seg-qua e qui-dom igual)
| Standard | ... | ... | ... | ... | 150 |
| Master | ... | ... | ... | ... | 160 |
| Família | — | — | — | — | 190 |
| Singles Duplo | — | — | — | — | 250 |
```
**Sua escolha:**
- [ ] Express só tem Standard e Master (remover referências a outras categorias)
- [ ] Existem mais categorias — me envie a tabela completa e atualizo o prompt
**Sua resposta:** _[preencha]_
---
### Pergunta 3: A promoção de 3h (R$34,90) e pernoite (R$79,90) do Express ainda é válida?
**Conversas:** 5523, 5563
**Contexto:** A IA cita "promoção válida até 31/03/2026" — que já expirou. Mas ainda está no FAQ e sendo oferecida.
**O que preciso saber:** Essa promoção foi renovada, encerrada, ou substituída? Os preços da tabela atual (pernoite Standard R$100 seg-qua) são os vigentes?
**💡 Minha sugestão:**
Se a promoção expirou, adicionar à instrução do Express:
```
⚠️ A promoção de 3h (R$34,90) e pernoite especial (R$79,90) ENCERROU em 31/03/2026.
Use apenas os preços da tabela abaixo. Se o cliente mencionar essa promoção, informe
educadamente que ela não está mais ativa e ofereça os valores atuais.
```
**Sua escolha:**
- [ ] Usar a sugestão acima (promoção encerrada, usar tabela)
- [ ] A promoção foi renovada (me passe a nova data de validade)
- [ ] Usar outra resposta (escreva abaixo)
**Sua resposta:** _[preencha]_
---
### Pergunta 4: Horário da pernoite e aceitação de quarto duplo no Express?
**Conversa:** 5623
**Contexto:** Denis Fagundes perguntou o horário da pernoite (check-in / check-out) e se tem quarto com 2 camas. A IA não soube responder nenhum dos dois.
**O que preciso saber:** Qual é o horário padrão da pernoite no Express? E tem quarto duplo (2 camas)?
**💡 Minha sugestão:**
Adicionar ao `jasmine_express__daniela_reservas.md`:
```
**Horário da pernoite:** check-in a partir das 20h, check-out até 12h do dia seguinte.
**Quartos com 2 camas:** [resposta de Rodrigo aqui]
```
**Sua escolha:**
- [ ] Usar a sugestão acima (me informe o horário correto e se tem quarto duplo)
- [ ] Outra resposta (escreva abaixo)
**Sua resposta:** _[preencha]_
---
## 📝 Diffs completos (antes/depois)
### Arquivo: `_modelos/scenarios/jasmine_qnn01__daniela_reservas.md` (e os outros 3)
**ANTES (linha ~34):**
```
→ **IMPORTANTE:** pergunte/confirme antes se é **dia de semana (seg-qua)** ou **fim de semana (qui-dom)** — os preços mudam. Se a data/dia já veio no histórico, use direto.
```
**DEPOIS:**
```
→ **IMPORTANTE:** pergunte/confirme antes se é **dia de semana (seg-qua)** ou **fim de semana (qui-dom)** — os preços mudam. Se a data/dia já veio no histórico, use direto.
📅 **FERIADOS NACIONAIS FIXOS — aplique tarifa qui-dom automaticamente:**
- 1 jan · 21 abr · 1 mai · 7 set · 12 out · 2 nov · 15 nov · 20 nov · 25 dez
Se o cliente mencionar "hoje", "amanhã" ou data específica que coincida com feriado
nacional fixo → aplique tarifa de feriado SEM perguntar ao cliente.
```
---
### Arquivo: `_modelos/scenarios/jasmine_qnn01__daniela_reservas.md` (e os outros 3)
**ANTES (linha ~243):**
```
**⚠️ Você JÁ TEM a tabela de preços acima. VOCÊ calcula o valor, NUNCA pede pro cliente.**
```
**DEPOIS:**
```
**⚠️ Você JÁ TEM a tabela de preços acima. VOCÊ calcula o valor, NUNCA pede pro cliente.**
🚨 PROIBIDO perguntar: "preciso confirmar o valor da reserva" / "pode me passar o valor?"
→ Se tem suíte + permanência + dia: calcule e chame `generate_pix` IMEDIATAMENTE.
→ Se ficou sem saber a suíte: pergunte a suíte. Nunca o valor.
```
---
### Arquivo: `_modelos/scenarios/jasmine_qnn01__daniela_reservas.md` (e os outros 3)
**ANTES (seção generate_pix):**
```
- `suite`: nome canônico da categoria
```
**DEPOIS:**
```
- `suite`: nome canônico da categoria APENAS (ex: `"Standard"`, `"Hidromassagem"`, `"Stilo"`).
⚠️ NUNCA passe frases, preços, formatação markdown ou texto de outras mensagens neste campo.
```
---
## ✅ Checklist de aprovação
Após revisar, marque e comente na issue com `@aplicar`:
- [ ] Padrão 1 — Feriados: Aprovado / Rejeitado
- [ ] Padrão 2 — Pede valor ao cliente: Aprovado / Rejeitado
- [ ] Padrão 3 — Suite corrompida: Aprovado / Rejeitado
- [ ] Padrão 4 — Express preços desatualizados: Aprovado / Rejeitado (aguarda Pergunta 2 e 3)
- [ ] Pergunta 1 — TV smart nas suítes do Prime: Respondida
- [ ] Pergunta 2 — Categorias do Express: Respondida
- [ ] Pergunta 3 — Promoção Express expirada: Respondida
- [ ] Pergunta 4 — Horário pernoite + quarto duplo Express: Respondida