Compare commits

...

12 Commits

Author SHA1 Message Date
Codex CLI
b3e92d780a review: auto-review do Captain em 2026-05-16
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
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 <captain@hoteis1001noites.com.br>
2026-05-16 03:11:35 +00:00
Codex CLI
8522f925c7 review: auto-review do Captain em 2026-05-13
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
2026-05-13 03:08:50 +00:00
Codex CLI
c72543cc59 review: auto-review do Captain em 2026-05-10
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
2026-05-10 03:06:57 +00:00
Codex CLI
aadfb4c080 review: auto-review do Captain em 2026-05-07
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
2026-05-07 03:10:40 +00:00
Codex CLI
abf9f4057e review: auto-review do Captain em 2026-05-01
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
2026-05-01 03:08:36 +00:00
Codex CLI
7d03430113 review: auto-review do Captain em 2026-04-28
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
2026-04-28 03:04:01 +00:00
Codex CLI
39bda94b93 review: auto-review do Captain em 2026-04-25
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
2026-04-25 03:12:19 +00:00
Codex CLI
1adc79320a feat(captain): aplica pernoite sem café = padrão − R$10 (todos os 4 hotéis)
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
Aprovado pelo Rodrigo via comentário no Multica issue ad2ad5ae (2026-04-23T18:00).

Mudanças aplicadas:
- [pergunta 1] pernoite sem café custa R$10 a menos que pernoite c/ café
  Afeta: jasmine_primeal, jasmine_primevl, jasmine_qnn01, jasmine_express

Co-Authored-By: Captain Reviewer <captain@hoteis1001noites.com.br>
2026-04-23 18:02:41 +00:00
Codex CLI
645ae4fec7 review: registra todas as rejeições de Rodrigo + resposta Pergunta 1 (pernoite sem café = -R$10) 2026-04-23 17:43:17 +00:00
Codex CLI
3d6e16f5f1 review: marca Padrão 1 e Padrão 2 como REJEITADOS por Rodrigo (2026-04-23) 2026-04-23 17:41:25 +00:00
Codex CLI
bf09e76eae review: auto-review do Captain em 2026-04-23 (v2 — 7 padrões) 2026-04-23 17:32:52 +00:00
Codex CLI
6e7bcc9b44 review: auto-review do Captain em 2026-04-23 2026-04-23 17:01:14 +00:00
12 changed files with 2165 additions and 0 deletions

View File

@ -69,6 +69,8 @@ Também conta como intenção de reserva quando o cliente já dá dados concreto
| Standard | 50 | 60 | 80 | 120 | 150 | | Standard | 50 | 60 | 80 | 120 | 150 |
| Master | 60 | 70 | 85 | 140 | 160 | | Master | 60 | 70 | 85 | 140 | 160 |
**Pernoite sem café:** o pernoite inclui café da manhã por padrão. Se o cliente pedir **sem café**, aplique **R$ 10 de desconto** sobre o valor de Pernoite da tabela. Ex: Standard qui-dom pernoite = R$120 c/ café → R$110 sem café.
Marca: **Hotel 1001 Noites Express**. Unidade: **Express Águas Lindas**. Marca: **Hotel 1001 Noites Express**. Unidade: **Express Águas Lindas**.
Termos populares: Termos populares:

View File

@ -61,6 +61,8 @@ Também conta como intenção de reserva quando o cliente já dá dados concreto
| Stilo | 50 | 70 | 85 | 140 | 200 | | Stilo | 50 | 70 | 85 | 140 | 200 |
| Hidromassagem | 100 | 130 | 160 | 260 | 330 | | Hidromassagem | 100 | 130 | 160 | 260 | 330 |
**Pernoite sem café:** o pernoite inclui café da manhã por padrão. Se o cliente pedir **sem café**, aplique **R$ 10 de desconto** sobre o valor de Pernoite da tabela. Ex: Stilo pernoite = R$140 c/ café → R$130 sem café.
Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Águas Lindas**. Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Águas Lindas**.
Termos populares: Termos populares:

View File

@ -83,6 +83,7 @@ Também conta como intenção de reserva quando o cliente já dá dados concreto
- Valores válidos para 1 ou 2 pessoas. Pessoa extra paga adicional. - Valores válidos para 1 ou 2 pessoas. Pessoa extra paga adicional.
- Estacionamento grátis. - Estacionamento grátis.
- Café da manhã: 07h às 09h. - Café da manhã: 07h às 09h.
- **Pernoite sem café:** se o cliente pedir sem café, aplique **R$ 10 de desconto** sobre o valor de Pernoite c/ café da tabela. Ex: Stilo seg-qua pernoite = R$130 c/ café → R$120 sem café.
Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Ceilândia**. Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Ceilândia**.

View File

@ -84,6 +84,8 @@ Termos populares:
A Hidromassagem **não tem 12h** — pula direto de 4h pra pernoite. A Hidromassagem **não tem 12h** — pula direto de 4h pra pernoite.
**Pernoite sem café:** o pernoite inclui café da manhã por padrão. Se o cliente pedir **sem café**, aplique **R$ 10 de desconto** sobre o valor de Pernoite c/ café da tabela. Ex: Standard seg-qua pernoite = R$100 c/ café → R$90 sem café.
--- ---
## 🧰 FERRAMENTAS ## 🧰 FERRAMENTAS

View File

@ -0,0 +1,397 @@
# Captain Review — 2026-04-23
**Período:** últimas 72h (20/04 a 23/04/2026)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express)
**Conversas problemáticas:** 7 padrões de bug identificados
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 4094 | Qnn01 | rf | [FERRAMENTAS] block vazado + loop infinito em send_suite_images | ❌ Bug |
| 4070 | Express | Lauriana | [Identidade] block vazado quando cliente enviou dados de reserva | ❌ Bug |
| 4075 | Express | Estefani | [Informações outras unidades] vazado + promoção expirada anunciada | ❌ Bug |
| 4114 | Qnn01 | Guilherme | Pix não gerado, IA expôs erro interno; preço corrigido pelo humano (R$130 → R$160) | ❌ Bug |
| 4229 | PrimeAL | Davi Lima | IA disparou transfer enquanto humano já estava atendendo | ❌ Bug |
| 4213 | PrimeAL | . | Transferiu em "Quanto está a pernoite?" às 20h21 (dentro do horário comercial) | ❌ Bug |
| 4240 | Qnn01 | ❤️ | Transferiu em "Está quando 2 horas?" — cliente saiu e achou info em outro lugar | ❌ Bug |
| 4253 | PrimeAL | Matheus | Transferiu em "Como funciona a Spa/Hidromassagem?" | ❌ Bug |
| 4254 | PrimeAL | Clayton | Transferiu em "Quanto que ta 2 horas" — humano depois perguntou suíte, cliente sumiu | ❌ Bug |
| 4241 | PrimeAL | Kelson | Lead Meta: transferiu imediatamente, humano abriu com "Como posso ajudar", lead sumiu | ❌ Bug |
| 4246 | PrimeAL | Yasmim | Lead Meta: transferiu, humano respondeu genérico, sem conversão | ❌ Bug |
| 4247 | PrimeAL | reforma | Lead Meta: transferiu, cliente abandonou | ❌ Bug |
| 4249 | PrimeAL | Eduarda | Lead Meta: transferiu imediatamente, lead frio | ❌ Bug |
| 4252 | PrimeVL | Francisco | Lead Meta: transferiu, sem resposta humana, marcado resolvido por inatividade | ❌ Bug |
| 4266 | PrimeVL | sam | Lead Meta: transferiu, marcado resolvido por inatividade | ❌ Bug |
| 4236 | PrimeAL | Marcia | Transferiu em "Boa noite" (23h49) — humano respondeu os preços | ❌ Bug (noturno) |
| 4238 | PrimeAL | Belzinha | Transferiu em "Boa noite / saber sobre a diária" (23h56) | ❌ Bug (noturno) |
| 4243 | Express | Bruno | Transferiu em "boa noite!" (01h) — cliente pediu preço diária casal | ❌ Bug (noturno) |
| 4248 | PrimeVL | Kaylane | Transferiu em "Oi / Boa noite" (01h41) | ❌ Bug (noturno) |
| 4268 | PrimeAL | ldoriane28 | Pedido de vaga de camareira | ✅ Legítima |
| 4267 | PrimeAL | Tony | Nota fiscal perdida após check-out | ✅ Legítima |
| 4228 | PrimeAL | Lucas Bouwman | Emissão de nota fiscal (CNPJ) | ✅ Legítima |
| 4256 | PrimeAL | Manu | Cardápio in-hotel (hóspede já no quarto pedindo cardápio) | ✅ Legítima |
| 4258 | PrimeAL | Jr | Room service / pedidos in-hotel (já hospedado) | ✅ Legítima |
| 4259 | Express | Estefani | Pedido de porções (hóspede in-hotel) | ✅ Legítima |
| 4280 | PrimeAL | Érica | Imagens enviadas, VALERIA assumiu — não houve bug da IA | ✅ Legítima |
| 4290 | Qnn01 | Gabriela | Cliente perguntou sobre promoção de outra unidade — IA redirecionou corretamente | ✅ Legítima |
| 4242 | PrimeAL | 🫠 | Cliente disse "Vou aguardar" — contexto de conversa anterior, transfer ok | ✅ Legítima |
---
## 🔍 Padrões identificados
### Padrão 1: Handoff prematuro — IA transfere para humano em perguntas básicas de preço/informação
**Ocorrências:** 8+ conversas — 4213, 4240, 4253, 4254, 4236, 4238, 4243, 4248 (e mais)
**Qual regra violou:** #9 — NUNCA handoff por pergunta de valor / #6 — Pergunta de permanência = todas as categorias
**Comportamento errado:**
A IA está transferindo para humano imediatamente em situações onde deveria responder autonomamente:
- Cliente diz apenas "Boa noite" → IA transfere sem esperar a pergunta (4236, 4238, 4248)
- Cliente pergunta "Quanto que ta 2 horas?" → IA transfere em vez de dar os preços (4254, 4240)
- Cliente pergunta "Como funciona a Spa/Hidromassagem?" → IA transfere em vez de explicar (4253)
- Cliente pergunta "Quanto está a pernoite?" às 20h21 → IA transfere (4213)
Resultado: Humano assume e responde exatamente o que a IA poderia ter respondido (preços, categorias). Em alguns casos o cliente já tinha saído (4240: "Já consegui a informação tá bom, Obrigado!!"). Em outros o humano não estava disponível e o lead esfriou.
**Deveria ser:** A IA deve responder qualquer pergunta de preço, disponibilidade ou informação sobre o hotel, 24/7, sem transferir. Handoff só para: (a) hóspede com problema operacional, (b) cancelamento, (c) assuntos não-reserva (RH, nota fiscal).
**Escopo do fix:** (a) geral — afeta PrimeAL, PrimeVL, Express e Qnn01.
**💡 Fix sugerido** — revisar o critério de handoff nos scenarios. Adicionar instrução explícita:
```
REGRA DE HANDOFF:
Você NUNCA deve transferir para humano apenas porque o cliente perguntou preço, disponibilidade,
como funciona uma categoria de suíte, ou qualquer dúvida informativa sobre o hotel.
Transferir SOMENTE em:
1. Hóspede JÁ no hotel com problema operacional (quarto, pedido de item, manutenção)
2. Solicitação de cancelamento de reserva já confirmada
3. Assuntos claramente não-reserva: RH, nota fiscal, comprovante, CNPJ
Pergunta de preço (qualquer hora do dia ou da noite) = VOCÊ RESPONDE.
Pergunta de disponibilidade = VOCÊ RESPONDE.
Cliente que disse apenas "Boa noite" = aguarde a pergunta, NÃO transfira.
```
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:40)
---
### Padrão 2: Leads Meta/WhatsApp Ads — handoff imediato sem engajamento
**Ocorrências:** 6 conversas — 4241 (PrimeAL), 4246 (PrimeAL), 4247 (PrimeAL), 4249 (PrimeAL), 4252 (PrimeVL), 4266 (PrimeVL)
**Qual regra violou:** #9 (handoff indevido) — lead que veio de anúncio perguntando informações, não é caso de handoff
**Comportamento errado:**
Todos os leads vindos de anúncio do Meta WhatsApp chegam com a mensagem padrão:
*"Olá! Tenho interesse e queria mais informações, por favor."*
A IA (PrimeAL e PrimeVL) transfere **imediatamente** para humano sem sequer perguntar o que o cliente quer.
Resultado:
- O humano responde "Ola boa noite / Como posso ajudar" — genérico, sem proposta de valor
- O lead some na maioria dos casos (4247, 4252, 4266 encerrados por inatividade)
- 6 leads de anúncio perdidos nas últimas 72h
**Deveria ser:** A IA deve engajar o lead, apresentar as opções e conduzir à reserva. Ex: *"Oi! Sou a Jasmine do Prime Águas Lindas 😊 Que bom que você se interessou! Posso te mostrar nossas suítes e preços. Você está pensando em qual tipo de hospedagem: horas, pernoite ou diária?"*
**Escopo do fix:** (a) geral — verificar em PrimeAL e PrimeVL, possivelmente Express também.
**💡 Fix sugerido** — adicionar scenario específico para leads do Meta:
```
Quando receber mensagem "Olá! Tenho interesse e queria mais informações, por favor." ou similar
(vinda de lead_meta_whatsapp), NÃO transfira para humano. Engaje imediatamente:
"Oi! 😊 Aqui é a Jasmine do [Hotel]. Que ótimo que você se interessou!
Posso te apresentar nossas opções rapidinho. Você prefere passar algumas horas, um pernoite
ou uma diária completa? Tenho suítes disponíveis pra hoje!"
```
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:40)
---
### Padrão 3: Blocos internos do sistema sendo enviados como mensagem ao cliente
**Ocorrências:** 3 conversas — 4094 (Qnn01), 4070 (Express), 4075 (Express)
**Qual regra violou:** #12 — Preservar dados não expostos
**Comportamento errado:**
- **4094**: IA enviou o bloco `[FERRAMENTAS]` inteiro (com os gatilhos de `daniela_reservas`, `jamile_disponibilidade_imediata`, etc.) como mensagem ao cliente enquanto tentava responder "pernoite sem café".
- **4070**: IA enviou o bloco `[Identidade]` completo (nome, função, hotel, missão, restrições) logo após o cliente enviar dados de reserva (CPF mascarado, datas). O bloco saiu antes de qualquer resposta processada.
- **4075**: IA enviou o bloco `[Informações outras unidades]` duas vezes consecutivas quando cliente perguntou sobre a promoção do Instagram.
**Deveria ser:** Nunca enviar conteúdo de blocos internos. Se a IA não sabe a resposta, deve pedir mais contexto ou transferir — mas nunca exibir o prompt cru.
**Escopo do fix:** (a) geral — afeta Qnn01 e Express, mas a causa raiz provavelmente atinge todas as unidades.
**💡 Fix sugerido** — em todos os arquivos de scenario (`jasmine_*__daniela_reservas.md` e base), logo após a seção de ferramentas/instruções:
```
REGRA CRÍTICA — BLOCOS INTERNOS:
Jamais envie ao cliente o conteúdo de blocos delimitados por colchetes como [Identidade],
[FERRAMENTAS], [Informações outras unidades] ou similares. Esses blocos são configuração
interna e devem ser tratados como invisíveis. Se precisar informar algo desses blocos,
reformule naturalmente sem reproduzir o marcador ou o JSON/lista interno.
```
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:42)
---
### Padrão 4: IA anunciou promoção expirada (Express)
**Ocorrências:** 1 conversa — 4075 (Express, Estefani, 21/04/2026)
**Qual regra violou:** Preço errado / informação desatualizada (implícito em #1 e #3)
**Comportamento errado:** IA disse: "Estamos com uma promoção especial de pernoite para casal por R$79,90 (sem café da manhã incluso), **válida até 31 de março de 2026**". A conversa foi em 21 de abril — promoção havia expirado 21 dias antes.
**Deveria ser:** IA deve informar a tabela vigente. Promoções com data de validade vencida não devem aparecer.
**Escopo do fix:** (c) só Express — atualizar/remover a promoção de R$79,90 expirada do prompt do Express.
**💡 Fix sugerido** — remover do prompt do `jasmine_express` o bloco ou linha que menciona a promoção de R$79,90 (validade 31/03/2026). Se houver nova promoção, inserir com nova data de validade. Se não houver promoção ativa, remover completamente.
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:42)
---
### Padrão 5: send_suite_images em loop — categorias erradas e recusa em chamar a tool
**Ocorrências:** 1 conversa — 4094 (Qnn01, rf) — mas loop foi extenso (10+ trocas)
**Qual regra violou:** #10 — Tool `send_suite_images` EXIGE parâmetro correto
**Comportamento errado:**
1. Cliente pediu "Manda foto da suite master" → IA respondeu: *"preciso que você me confirme a categoria: Alexa, Stilo ou Spa-Hidromassagem"* — categorias do Prime, não do Qnn01
2. Cliente disse "Suite master" (categoria real do Qnn01) → IA continuou pedindo confirmação em loop
3. Cliente disse "Alexa e stilo" → IA disse "não temos fotos disponíveis" (correto, mas cliente frustrado)
4. Cliente disse "Todas" → IA exigiu categoria específica
5. Total: ~6 pedidos de confirmação sem a IA nenhuma vez chamar a tool
O Qnn01 tem: **Standard, Master, Pole Dance, Hidromassagem** — a IA desconhecia essas categorias.
**Deveria ser:** Reconhecer "Master" como categoria válida no Qnn01 e chamar `send_suite_images({suite_category: "Master"})` na primeira vez que o cliente nomeou.
**Escopo do fix:** (c) só Qnn01.
**💡 Fix sugerido** — adicionar em `jasmine_qnn01__daniela_reservas.md` (ou na seção da tool `send_suite_images`):
```
Categorias válidas para send_suite_images nesta unidade: Standard, Master, Pole Dance, Hidromassagem.
Se o cliente pedir foto de "suite master", chame send_suite_images({suite_category: "Master"}).
Nunca peça confirmação de categoria se o cliente já nomeou uma das categorias acima.
Se cliente pedir "todas", chame a tool para cada categoria em sequência.
```
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:42)
---
### Padrão 6: Falha na geração de Pix expõe mensagem técnica
**Ocorrências:** 1 conversa — 4114 (Qnn01, Guilherme)
**Qual regra violou:** #3 (IA deve calcular e gerar Pix diretamente) + parcialmente #12
**Comportamento errado:**
IA coletou nome + CPF do cliente corretamente, tentou gerar Pix, falhou e exibiu:
*"Houve um problema ao gerar o código Pix automaticamente, pois nossa unidade ainda não está configurada para receber Pix de forma automática no sistema."*
Essa mensagem:
1. Expõe que há uma "configuração interna do sistema" — viola #12 no espírito
2. Deixa cliente sem caminho claro de pagamento
A IA então sugeriu pagar o sinal na recepção — o que pode ser aceitável como fallback, mas requer confirmação do Rodrigo.
**Deveria ser:** Se Pix falhar, a IA deve ter um fallback sem expor detalhes técnicos.
**Escopo do fix:** (c) Qnn01 (mas verificar se outras unidades têm mesmo problema).
**💡 Fix sugerido** — adicionar tratamento de erro no scenario do Qnn01:
```
Se a geração de Pix falhar, NÃO mencione "configuração interna" ou "sistema". Use:
"Tive uma instabilidade no sistema de pagamento agora. Sua reserva está garantida —
você pode pagar o sinal de [valor] diretamente na recepção ao chegar. Posso ajudar com mais alguma coisa?"
```
- ~~[ ] Aprovar~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:42)
---
### Padrão 7: IA disparou transfer enquanto humano já estava atendendo
**Ocorrências:** 1 conversa — 4229 (PrimeAL, Davi Lima, 22/04 21:47)
**Qual regra violou:** Nenhuma diretamente do gabarito — mas é comportamento anômalo e confuso
**Comportamento errado:**
Um agente humano já havia greeted o cliente ("Ola boa noite") e estava conduzindo a reserva (perguntou "Seria qual suite."). Enquanto o cliente respondia, a IA disparou "Transferindo para que outro agente dê assistência." — interrompendo o fluxo e gerando uma 2ª abertura de conversa desnecessária.
**Deveria ser:** IA não deve acionar transfer se conversa já está sendo atendida por humano (assignee_id preenchido por humano antes da mensagem da IA).
**Escopo do fix:** (a) geral — parece problema de orquestração/Chatwoot (pode não ser fix de prompt, mas de regra de automação).
**💡 Fix sugerido:** Verificar se há uma regra de automação do Chatwoot que re-aciona a IA mesmo com humano ativo. Se sim, ajustar a regra para não disparar o Captain quando `assignee_id != null` (humano já assignado).
- ~~[ ] Aprovar (fix de automação Chatwoot)~~
- [x] **REJEITADO** pelo Rodrigo (motivo: não informado — ver comentário 2026-04-23T17:42)
---
## ❓ Perguntas pra o Rodrigo responder (SEMPRE com sugestão)
### Pergunta 1: Pernoite sem café existe como opção no Qnn01?
**Conversa:** 4094
**Contexto:** Cliente perguntou especificamente "Pernoite sem café" e a IA continuou dando preços com café incluso, ignorando o qualificador.
**O que preciso saber:** O Qnn01 oferece pernoite sem café, e qual seria o preço?
**💡 Minha sugestão:**
Se não existe pernoite sem café, adicionar instrução no prompt:
```
Se cliente pedir "pernoite sem café": informe que o pernoite inclui café da manhã como padrão
e que não é possível retirar. Ofereça a opção de "horas avulsas" se não quiser café.
```
Se existe, informar o preço para incluir na tabela.
**Sua escolha:**
- ~~[ ] Usar a sugestão acima (pernoite sempre inclui café)~~
- [x] **RESPONDIDO** — Existe pernoite sem café em todos os hotéis: preço = **pernoite padrão R$10**
- ~~[ ] Usar outra~~
**Resposta do Rodrigo (2026-04-23T17:42):** _"Nenhum [hotel] tem pernoite sem café da manhã [como padrão], porém o valor diminui 10 reais. Fica mais barato 10 reais."_
> **Ação no prompt:** Em todos os assistants, quando cliente pedir "pernoite sem café", informar o preço da categoria correspondente menos R$10. Ex: Stilo seg-qua pernoite com café = R$130 → sem café = R$120.
---
### Pergunta 2: Preço correto da Suite Master pernoite no Qnn01 (segunda a quarta)?
**Conversa:** 4114
**Contexto:** IA informou R$130 para Suite Master pernoite (segunda a quarta). O humano que assumiu disse R$160.
**O que preciso saber:** Qual é o preço correto? Se for R$160, o prompt do Qnn01 está com tabela desatualizada.
**💡 Minha sugestão:**
Atualizar a tabela de preços no prompt do Qnn01 com o valor correto. Sugiro verificar também as outras categorias.
**Sua escolha:**
- [ ] IA está correta — R$130 (seg-qua) / R$160 (qui-dom)
- [ ] Humano está correto — corrigir para R$160 em todos os dias
- [ ] Outro: ___________
---
### Pergunta 3: Business hours — os transfers noturnos são configuração intencional?
**Conversas:** 4236, 4238, 4243, 4248 (entre 23h e 02h) e 4213, 4253, 4254 (entre 20h e 03h)
**Contexto:** Há dois sub-cenários:
- **A) Transfers de madrugada (23h04h)** em PrimeAL, PrimeVL, Express: IA transfere qualquer pergunta. Pode ser configuração de business hours intencional.
- **B) Transfers no horário de pico noturno (20h23h)**: 4213 (PrimeAL, 20h21) e 4253 (PrimeAL, 02h38). Se há business hours configurado, que horas são?
**O que preciso saber:** Existe configuração de business hours para essas unidades? Se sim, qual o horário? E a intenção é a IA NÃO responder fora desse horário, ou apenas não processar reservas?
**💡 Minha sugestão:**
Manter a IA respondendo perguntas de **informação** (preço, disponibilidade, como funciona) 24/7, mesmo fora do business hours. Transferir para humano apenas quando for reserva que exige ação operacional imediata. Isso garante que leads noturnos recebam pelo menos a informação que precisam.
**Sua escolha:**
- [ ] Usar a sugestão (IA responde info 24/7, só reservas têm horário)
- [ ] Manter business hours — IA só responde das __h às __h
- [ ] Usar outra (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
## 📝 Diffs completos (antes/depois)
### Fix 1 — Todos os scenarios: regra de handoff corrigida
**ANTES:** (critério de handoff não está explícito — IA está interpretando qualquer pergunta como motivo de transfer)
**DEPOIS:** adicionar ao início ou instrução principal de cada `jasmine_*`:
```
REGRA DE HANDOFF (CRÍTICA):
Você responde autonomamente: preço, disponibilidade, categorias, como funciona, fotos de suítes.
Transfere para humano SOMENTE em:
1. Hóspede JÁ no hotel com problema operacional (quarto, pedido, manutenção)
2. Cancelamento de reserva já confirmada
3. Assuntos não-reserva: RH, nota fiscal, comprovante, CNPJ
Pergunta de preço ou "Boa noite" = você responde, nunca transfira.
```
---
### Fix 2 — Todos os scenarios: engajamento de leads Meta
**ANTES:** (sem instrução específica para lead_meta_whatsapp — IA trata como qualquer outra mensagem e transfere)
**DEPOIS:**
```
Quando receber mensagem de lead_meta_whatsapp com "Tenho interesse e queria mais informações":
NÃO transfira. Responda imediatamente com apresentação + pergunta de qualificação:
"Oi! 😊 Aqui é a Jasmine do [Hotel]. Que ótimo que você veio pelo nosso anúncio!
Você prefere algumas horas, um pernoite ou uma diária? Tenho opções disponíveis pra hoje!"
```
---
### Fix 3 — Todos os scenarios: instrução anti-leak de blocos internos
**ANTES:** (sem instrução explícita sobre vazamento de blocos)
**DEPOIS:** adicionar ao início ou final de cada `jasmine_*__daniela_reservas.md`:
```
REGRA CRÍTICA — BLOCOS INTERNOS:
Jamais envie ao cliente o conteúdo de blocos delimitados por colchetes como [Identidade],
[FERRAMENTAS], [Informações outras unidades] ou similares. Esses blocos são configuração
interna e devem ser tratados como invisíveis. Se precisar informar algo desses blocos,
reformule naturalmente sem reproduzir o marcador ou o JSON/lista interno.
```
---
### Fix 4 — jasmine_express: remover promoção expirada
**ANTES:** (linha ou bloco com) `promoção especial de pernoite para casal por R$79,90 [...] válida até 31 de março de 2026`
**DEPOIS:** remover essa linha/bloco completamente. Substituir por tabela de preços vigente sem menção a promoções expiradas.
---
### Fix 5 — jasmine_qnn01: categorias válidas para send_suite_images
**ANTES:** (provavelmente usando nomes genéricos ou herdando do Prime — Alexa/Stilo)
**DEPOIS:**
```
Categorias de suítes válidas para send_suite_images no Qnn01:
- "Standard" (suíte standard)
- "Master" (suíte master)
- "Pole Dance" (suíte pole dance)
- "Hidromassagem" (suíte hidromassagem)
Quando cliente pedir foto e já nomear uma dessas categorias, chame
send_suite_images({suite_category: "<categoria>"}) diretamente sem pedir confirmação.
Se cliente pedir "todas" ou não especificar, ofereça as opções e envie a da escolhida.
```
---
### Fix 6 — jasmine_qnn01: fallback de Pix sem expor erro técnico
**ANTES:** (sem tratamento de fallback — IA exibe mensagem de erro técnico)
**DEPOIS:**
```
Se a geração automática de Pix falhar (tool retornar erro), responda ao cliente:
"Tive uma pequena instabilidade no sistema de pagamento agora. Não se preocupe —
sua reserva está confirmada. Você pode pagar o sinal de [valor] diretamente na recepção
ao chegar. Posso ajudar com alguma outra dúvida?"
Nunca mencione "configuração interna", "sistema ainda não configurado" ou detalhes técnicos.
```
---
## ✅ Checklist de aprovação
Após revisar, marque e rode `claude /captain-apply-review 2026-04-23` no Mac:
- [x] ~~Padrão 1 — Handoff prematuro generalizado~~ — **REJEITADO**
- [x] ~~Padrão 2 — Leads Meta sem engajamento~~ — **REJEITADO**
- [x] ~~Padrão 3 — Blocos internos vazados~~ — **REJEITADO**
- [x] ~~Padrão 4 — Promoção expirada Express~~ — **REJEITADO**
- [x] ~~Padrão 5 — Loop send_suite_images Qnn01~~ — **REJEITADO**
- [x] ~~Padrão 6 — Fallback Pix sem expor erro~~ — **REJEITADO**
- [x] ~~Padrão 7 — IA interrompeu humano ativo~~ — **REJEITADO**
- [x] Pergunta 1 — Pernoite sem café: **RESPONDIDA** — preço padrão R$10 (todos os hotéis)
- [ ] Pergunta 2 — Preço Suite Master Qnn01 — **PENDENTE**
- [ ] Pergunta 3 — Business hours PrimeAL/VL/Express — **PENDENTE**

View File

@ -0,0 +1,265 @@
# Captain Review — 2026-04-25
**Período:** últimas 72h (22/04 a 25/04/2026)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express)
**Conversas problemáticas:** 3 padrões de bug / várias legítimas
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 4565 | PrimeAL | Kathleen Emerick | IA pediu valor ao cliente (se corrigiu) | ❌ Bug leve |
| 4536 | Express | Douglas | Label "SUITE STANDARD" ao enviar foto da Master | ❌ Bug visual |
| 4521 | PrimeAL | Davi Lima | Handoff correto (cliente indo ao hotel, banco sem pix) | ✅ Legítima |
| 4513 | PrimeAL | Leticia | IA disse pernoite inicia 17h (correto: 19h) + não sabia horário encerramento → handoff | ❌ Bug |
| 4519 | PrimeAL | (sem nome) | Humano fez reserva manualmente | ✅ Legítima |
| 4514 | PrimeAL | ❤️ | Vaga de camareira | ✅ Legítima |
| 4497 | PrimeAL | Daniel | IA entrou em loop pedindo valor 4+ vezes após CPF | ❌ Bug grave |
| 4505 | PrimeAL | 🤙🏽🤙🏽 | IA não respondeu preço direto, ficou perguntando período | ❌ Bug |
| 4453 | Express | Jeeh | Atendimento humano desde o início | ✅ Legítima |
| 4366 | Qnn01 | Valsimerio | Nota fiscal / administrativa | ✅ Legítima |
| 4412 | PrimeAL | Mimi | IA deu preços seg-qua em dia qui-dom (sex 3h Hidro = R$100 em vez de R$160) | ❌ Bug |
| 4411 | PrimeAL | Victoria 💕 | IA deu preços errados + "não encontrei o preço" pra Alexa/Stilo | ❌ Bug |
| 4400 | PrimeAL | Davi Lima | Pediu reserva de outro hóspede (privacidade correta) | ✅ Legítima |
| 4402 | PrimeAL | Rodrigo | IA deu preços seg-qua em qui-dom (sex 2h todos errados) | ❌ Bug |
| 4378 | PrimeAL | Kauany Fontes | IA respondeu preço decoração OK; Reserva feita | ✅ OK |
| 4376 | PrimeAL | GEYKSON | IA "não achei preço da hidro" + deu preço errado (R$330 em vez de R$370) | ❌ Bug |
| 4365 | PrimeAL | Hotel Express (nome) | IA deu Hidro 4h = R$160 (correto qui-dom = R$200); Daniela corrigiu | ❌ Bug |
| 4372 | PrimeAL | michellyolliveira | Confirmação de horário de reserva existente | ✅ Legítima |
| 4267 | PrimeAL | Tony | Nota de cartão perdida no check-out | ✅ Legítima |
| 4258 | PrimeAL | Jr | Pedido de serviço de quarto (hóspede presente) | ✅ Legítima |
| 4248 | PrimeVL | Kaylane | IA transferiu imediatamente em "Oi / Boa noite" | ❌ Bug (temporário) |
| 4224 | PrimeVL | Rilary Rocha | IA transferiu em "quanto está a pernoite" | ❌ Bug (temporário) |
| 4216 | PrimeVL | Pimentel | IA transferiu em "Ola" | ❌ Bug (temporário) |
| 4259 | Express | Estefani | Pedido de comida por hóspede presente | ✅ Legítima |
| 4218 | Express | Supervisor | Cliente mandou feedback positivo; IA transferiu (desnecessário) | ❌ Bug leve |
| 4335, 4352, 4432 | Qnn01 | rf, 🌕 | Clientes enviaram só áudios (conteúdo vazio no DB) | ✅ Legítima |
| 4290 | Qnn01 | Gabriela | Pergunta sobre outra unidade | ✅ Legítima |
---
## 🔍 Padrões identificados
---
### Padrão 1: Tabela de preços QUI-DOM ausente no PrimeAL — IA usa preços errados em fins de semana
**Ocorrências:** 6 conversas (4376, 4411, 4412, 4402, 4365, 4513 indiretamente)
**Qual regra violou:** Regra #3 (IA calcula o valor — mas calcula ERRADO com tabela seg-qua em dia qui-dom)
**Comportamento errado:** IA usa a única tabela do prompt de PrimeAL (seg-qua) mesmo em quinta, sexta, sábado ou domingo. Resultado: Hidro 2h aparece como R$100 (correto qui-dom: R$160), Hidro 4h como R$160 (correto: R$200), Hidro diária como R$330 (correto: R$370). DANIELA corrigiu pelo menos 3 vezes: "nossa robô está passando os valores errados".
**Deveria ser:** A IA deveria perguntar o período (seg-qua ou qui-dom) se não souber, e usar a tabela correta.
**Escopo do fix:** Somente marca Prime Águas Lindas (`jasmine_primeal`). PrimeVL já tem ambas as tabelas no prompt.
**Comparativo de preços (PrimeAL):**
| Coluna | Stilo | Alexa | Hidro |
|---|---|---|---|
| Seg-qua 2h | R$50 | R$60 | R$100 |
| **Qui-dom 2h** (correto, falta no prompt) | **R$70** | **R$75** | **R$160** |
| Seg-qua 3h | R$70 | R$80 | R$130 |
| **Qui-dom 3h** | **R$80** | **R$85** | **R$180** |
| Seg-qua 4h | R$85 | R$100 | R$160 |
| **Qui-dom 4h** | **R$85** | **R$90** | **R$200** |
| Seg-qua pernoite | R$140 | R$160 | R$260 |
| **Qui-dom pernoite** | **R$150** | **R$160** | **R$280** |
| Seg-qua diária | R$200 | R$220 | R$330 |
| **Qui-dom diária** | **R$180** | **R$200** | **R$370** |
*Preços qui-dom confirmados por DANIELA nas conversas 4402, 4376, 4365 e pelo próprio Captain em 4497 (quando perguntou o período e acessou FAQ). Seg-qua = tabela atual do prompt.*
**💡 Fix sugerido** — substituir seção "TABELA DE PREÇOS" em `jasmine_primeal__daniela_reservas.md`:
**ANTES:**
```markdown
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
| Suíte | 2hrs | 3hrs | 4hrs | Pernoite | Diária |
|---|---|---|---|---|---|
| Alexa | 60 | 80 | 100 | 160 | 220 |
| Stilo | 50 | 70 | 85 | 140 | 200 |
| Hidromassagem | 100 | 130 | 160 | 260 | 330 |
```
**DEPOIS:**
```markdown
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
**IMPORTANTE:** pergunte/confirme antes se é **dia de semana (seg-qua)** ou **fim de semana/feriado (qui-dom)** — os preços mudam. Se a data/dia já veio no histórico, use direto.
**Segunda a Quarta:**
| Suíte | 2h | 3h | 4h | Pernoite c/ café | Diária c/ café |
|---|---|---|---|---|---|
| Stilo | 50 | 70 | 85 | 140 | 200 |
| Alexa | 60 | 80 | 100 | 160 | 220 |
| Hidromassagem | 100 | 130 | 160 | 260 | 330 |
**Quinta a Domingo e Feriado:**
| Suíte | 1h | 2h | 3h | 4h | Pernoite c/ café | Diária c/ café |
|---|---|---|---|---|---|
| Stilo | 50 | 70 | 80 | 85 | 150 | 180 |
| Alexa | 60 | 75 | 85 | 90 | 160 | 200 |
| Hidromassagem | 140 | 160 | 180 | 200 | 280 | 370 |
**Observações:**
- Pernoite: entrada a partir das **19h** — saída até **12h** (café simples incluso)
- Diária: check-in a partir das **12h** — duração 24h (café incluso)
- Estacionamento grátis.
```
*Nota: inclui também a coluna 1h no qui-dom (seg-qua não tem 1h avulso) e as observações de horário de pernoite (que também estavam faltando — ver Padrão 3).*
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: generate_pix — IA entra em loop pedindo valor ao cliente
**Ocorrências:** 2 conversas (4497 grave, 4565 leve/auto-corrigido)
**Qual regra violou:** Regra #3 (IA nunca pergunta valor — ela CALCULA)
**Comportamento errado:** Em 4497 (Daniel, Alexa 3h Friday), após receber CPF corretamente, a IA ficou perguntando "preciso confirmar o valor total da reserva. Pode me passar?" por 4 mensagens seguidas — mesmo com cliente respondendo "Ok", "Pode", "85", "R$ 85", "Alexa 3 horas, 85 reais". Conversa nunca resolvida pela IA; DANIELA assumiu. Em 4565, a IA perguntou uma vez mas se corrigiu.
**Causa raiz provável:** A IA não encontra o valor qui-dom na tabela do prompt (porque a tabela qui-dom não existe no PrimeAL). Sem o valor, tenta perguntar ao cliente. Quando o cliente responde com um número, o `generate_pix` é chamado com valor errado ou não é reconhecido como valor — e a IA pergunta de novo.
**Deveria ser:** Calcular o valor direto da tabela. Com o fix do Padrão 1, isso provavelmente se resolve — a tabela qui-dom estará presente e a IA não precisará perguntar.
**Escopo do fix:** Primário = resolver Padrão 1. Secundário = adicionar alerta explícito no prompt PrimeAL contra pedir valor ao cliente após CPF (o PrimeVL já tem "NUNCA peça o valor ao cliente" na seção generate_pix).
**Escopo de unidades:** PrimeAL (`jasmine_primeal`) por agora; monitorar outros.
**💡 Fix sugerido** — adicionar no prompt PrimeAL na seção TURNO 2, antes do call de generate_pix:
```
**⚠️ NUNCA peça o valor ao cliente.** Você JÁ TEM a tabela de preços acima. VOCÊ calcula o valor, mesmo que seja qui-dom. Se estiver em dúvida sobre o dia da semana, olhe a data do check-in que o cliente informou e aplique a tabela correta.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 3: PrimeVL — transferência imediata em qualquer mensagem (22-23/04, aparentemente resolvido)
**Ocorrências:** 3 conversas (4216, 4224, 4248)
**Qual regra violou:** Regra #9 (NUNCA handoff por pergunta de valor)
**Comportamento errado:** Em 22-23/04, Jasmine(PrimeVL) transferia imediatamente para humano em resposta a qualquer mensagem — inclusive "Ola", "Oi / Boa noite", "quanto está a pernoite". Em 4224, cliente perguntou preço do pernoite e ficou sem resposta por mais de 1 hora. Em 4248, cliente mandou "Oi / Boa noite" às 01h41 e a IA transferiu; humano só respondeu às 07h20.
**Status:** Aparentemente resolvido. Conversas de 24-25/04 no PrimeVL estão normais.
**Causa:** Desconhecida — pode ter sido instabilidade de API ou bug temporário.
**💡 Sugestão:** Monitorar PrimeVL nas próximas 72h. Se reaparecer, investigar orchestrator prompt e tool calls dos logs.
- [ ] Ciente, vou monitorar
- [ ] Já sei o motivo: _______
---
## ❓ Perguntas pra o Rodrigo responder
---
### Pergunta 1: Confirmar preços seg-qua e 1h do PrimeAL
**Contexto:** O fix do Padrão 1 vai adicionar a tabela qui-dom ao PrimeAL. Antes de aplicar, preciso confirmar se os preços **seg-qua** atuais no prompt estão corretos, e quais são os preços de **1h no seg-qua** (atualmente a tabela seg-qua não tem coluna de 1h avulso).
**Tabela atual (seg-qua) — está certa?**
| Suíte | 2h | 3h | 4h | Pernoite | Diária |
|---|---|---|---|---|---|
| Stilo | R$50 | R$70 | R$85 | R$140 | R$200 |
| Alexa | R$60 | R$80 | R$100 | R$160 | R$220 |
| Hidromassagem | R$100 | R$130 | R$160 | R$260 | R$330 |
**Tem 1h avulso no seg-qua (e qual o valor)?**
**💡 Minha sugestão:**
Se não tem 1h no seg-qua, a tabela qui-dom (com 1h a R$50/60/140 para Stilo/Alexa/Hidro) fica como já foi confirmado por DANIELA e pela própria IA em 4497.
**Sua escolha:**
- [ ] Tabela seg-qua está correta, não tem 1h seg-qua → usa minha sugestão
- [ ] Tabela seg-qua tem ajustes: _______
- [ ] Tem 1h no seg-qua a: Stilo R$___ Alexa R$___ Hidro R$___
---
### Pergunta 2: Pernoite hora de início no prompt PrimeAL
**Contexto:** Em 4513, a IA disse "pernoite aqui em Águas Lindas inicia às 17h". O humano corrigiu: "começa às 19h e termina meio dia". A informação de horário não está no prompt `daniela_reservas` do PrimeAL (está no PrimeVL mas não no PrimeAL). Incluí 19h-12h no fix do Padrão 1.
**O pernoite em PrimeAL (Águas Lindas) é mesmo 19h-12h com café simples?**
**💡 Minha sugestão:**
Sim — confirmar e incluir no prompt como está no PrimeVL: "Pernoite: entrada a partir das 19h — saída até 12h (café simples incluso)"
**Sua escolha:**
- [ ] Confirmo 19h-12h com café → inclui no fix
- [ ] Horário diferente: _______
---
## 📝 Diffs completos (antes/depois)
### Arquivo: `db/seed_prompts/_modelos/scenarios/jasmine_primeal__daniela_reservas.md`
**ANTES (linhas 170-179 aproximadamente):**
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
| Suíte | 2hrs | 3hrs | 4hrs | Pernoite | Diária |
|---|---|---|---|---|---|
| Alexa | 60 | 80 | 100 | 160 | 220 |
| Stilo | 50 | 70 | 85 | 140 | 200 |
| Hidromassagem | 100 | 130 | 160 | 260 | 330 |
Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Águas Lindas**.
```
**DEPOIS:**
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
**IMPORTANTE:** pergunte/confirme antes se é **dia de semana (seg-qua)** ou **fim de semana/feriado (qui-dom)** — os preços mudam. Se a data/dia já veio no histórico, use direto.
**Segunda a Quarta:**
| Suíte | 2h | 3h | 4h | Pernoite c/ café | Diária c/ café |
|---|---|---|---|---|---|
| Stilo | 50 | 70 | 85 | 140 | 200 |
| Alexa | 60 | 80 | 100 | 160 | 220 |
| Hidromassagem | 100 | 130 | 160 | 260 | 330 |
**Quinta a Domingo e Feriado:**
| Suíte | 1h | 2h | 3h | 4h | Pernoite c/ café | Diária c/ café |
|---|---|---|---|---|---|
| Stilo | 50 | 70 | 80 | 85 | 150 | 180 |
| Alexa | 60 | 75 | 85 | 90 | 160 | 200 |
| Hidromassagem | 140 | 160 | 180 | 200 | 280 | 370 |
**Hora excedente** (após o tempo contratado):
- Stilo: R$ 25,00
- Alexa: R$ 35,00
- Hidromassagem: R$ 50,00 *(confirmar valor com Rodrigo)*
**Observações:**
- Pernoite: entrada a partir das **19h** — saída até **12h** (café simples incluso)
- Diária: check-in a partir das **12h** — duração 24h (café incluso)
- Estacionamento grátis.
Marca: **Hotel 1001 Noites Prime**. Unidade: **Prime Águas Lindas**.
```
*Também será adicionado no TURNO 2 (seção generate_pix):*
```
**⚠️ NUNCA peça o valor ao cliente.** Você JÁ TEM a tabela de preços acima com seg-qua e qui-dom. VOCÊ calcula o valor — olhe a data do check-in e aplique a tabela correta.
```
---
## ✅ Checklist de aprovação
Após revisar:
- [ ] Padrão 1 (tabela qui-dom PrimeAL) — Aprovado
- [ ] Padrão 2 (alerta NUNCA peça valor) — Aprovado
- [ ] Padrão 3 (PrimeVL transferência) — Ciente, vou monitorar
- [ ] Pergunta 1 (seg-qua correto + 1h?) — Respondida
- [ ] Pergunta 2 (pernoite 19h-12h?) — Respondida
Após responder aqui, rode `claude /captain-apply-review 2026-04-25` no Mac para aplicar as mudanças aprovadas.

View File

@ -0,0 +1,204 @@
# Captain Review — 2026-04-28
**Período:** últimas 72h (2026-04-25 03:00 → 2026-04-28 03:00)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express)
**Conversas com assignee ou transferência:** 40 encontradas
**Foco de análise:** conversas recentes (48675058) — últimas 72h confirmadas
**Resultado:** 4 bugs de prompt / 13 legítimas
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 5048 | PrimeAL | * | Reclamação hóspede no quarto 108 (extensão diária sem informação de valor pelo atendente humano) | ✅ Legítima |
| 5058 | PrimeVL | Markin | IA deu preços corretos da hidro, humano assumiu sem issue | ✅ Legítima |
| 5047 | PrimeAL | Paulo Victor | IA não confirmou promoção de aniversário 20% | ❌ Bug |
| 5029 | Qnn01 | Hotel 1001 Noites Qnn 01 | Parceria/Instagram — administrativo | ✅ Legítima |
| 5027 | PrimeAL | Paulo Victor | IA não confirmou promoção aniversário (cliente mostrou a promo); IA não sabia horário de saída do pernoite | ❌ Bug |
| 5016 | PrimeAL | Marcilio Marques | Mensagem garbled → IA deu promoção → cliente pediu diária → IA deu preços corretos, humano assumiu | ✅ Legítima |
| 5002 | PrimeAL | Rafael dos Santos | IA afirmou não ter "tabela completa de valores normais" e não respondeu preços de 2h | ❌ Bug |
| 5008 | PrimeAL | SCI3F27 | Sem mensagens de texto relevantes | ✅ Legítima |
| 4999 | Express | Janaína | IA respondeu com link interno /hc/... da base de conhecimento | ❌ Bug |
| 4989 | Express | Janaína | IA deu preços diária corretamente, humano assumiu naturalmente | ✅ Legítima |
| 4986 | PrimeAL | Kleyton | WiFi de hóspede no hotel → transfer correto | ✅ Legítima |
| 4981 | PrimeAL | ....b | Hóspede in-hotel perguntando check-in/out → humano assumiu | ✅ Legítima |
| 4979 | PrimeAL | Júlio Cesar | IA deu preços e fotos corretamente (perguntou desnecessariamente "confirma?") | ✅ Legítima (minor) |
| 4975 | Express | v. =8%... | Conversa sem sentido, humano assumiu rapidamente | ✅ Legítima |
| 4962 | PrimeAL | carvalhowilliam | IA deu pernoite mas disse "não tenho tabela completa" pra diária e horas | ❌ Bug (mesmo padrão 2) |
| 4954 | Express | Jordy | Sem dados disponíveis na janela analisada | ✅ Legítima |
| 4951 | PrimeAL | Marcilio Marques | IA deu promoção mas não deu valores normais por hora; humano completou | ✅ Legítima (parcial) |
| 4949 | PrimeAL | vieiramendesbreno80 | Vaga de emprego → RH | ✅ Legítima |
| 4939 | PrimeAL | Kleyton | IA pediu confirmação de valor que ela mesma já informou | ❌ Bug |
| 4938 | PrimeAL | Santos | Vaga de emprego → RH | ✅ Legítima |
| 4927 | PrimeAL | Santos | Vaga de emprego → RH | ✅ Legítima |
| 4931 | Qnn01 | ROBERTO | Sem interação real | ✅ Legítima |
| 4895 | Express | jssilv | IA pediu CPF corretamente para gerar Pix | ✅ Legítima |
| 4885 | Qnn01 | ROBERTO | IA respondeu sobre WiFi sem pergunta explícita (msg vazia) — possível artefato | ✅ Legítima (artefato) |
| 4867 | PrimeAL | Andressa Maria | Achados e perdidos → operacional | ✅ Legítima |
---
## 🔍 Padrões identificados
### Padrão 1: IA pede confirmação de valor que ela mesma informou
**Ocorrências:** 1 conversa (4939 — PrimeAL)
**Qual regra violou:** #3 — IA nunca pergunta valor ao cliente, ela CALCULA
**Comportamento errado:**
> IA disse "Alexa 4h fica R$ 80" → cliente enviou nome e CPF → IA respondeu: *"Para gerar o Pix certinho, preciso confirmar o valor total da reserva. Pode me passar?"*
**Deveria ser:**
> Após cliente dar nome + CPF, IA gera Pix com 50% do valor (R$ 40) diretamente, sem perguntar nada.
**Escopo do fix:** (a) geral — todos os 4 assistants
**💡 Fix sugerido** — adicionar após a seção de Pix/Reserva em `jasmine_<unit>__daniela_reservas.md`:
```
## Regra anti-loop de valor
Quando o cliente fornecer nome e CPF após você já ter informado o valor da suíte e permanência:
- Gere o Pix com 50% do valor que você mesmo informou (sinal de reserva).
- NÃO repergunta "qual o valor da reserva?" — você já sabe.
- Exemplo: você disse "Alexa 4h = R$ 80", cliente deu CPF → gere Pix de R$ 40 (50% sinal).
- Exceção: se o cliente mudou de suíte/permanência depois de você informar o valor, recalcule.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: IA afirma não ter "tabela completa de preços normais"
**Ocorrências:** 2 conversas (5002 e 4962 — ambas PrimeAL)
**Qual regra violou:** #6 — "qual valor das diárias?" → IA responde TODAS as categorias
**Comportamento errado (conv 5002):**
> Cliente: "Pode passar os valores normais por favor"
> IA: *"No momento eu não tenho a tabela completa dos valores normais aqui comigo."*
> Cliente insistiu em 2h → IA: *"Claro! Os valores de 2 horas eu preciso confirmar certinho pra não te passar informação errada."*
**Observação:** Em outras conversas do mesmo dia (4939, 4979) a IA responde preços normalmente. O bug parece situacional — possivelmente trigger por contexto de "promoções" no início da conversa que confunde a IA.
**Deveria ser:**
> Após citar promoções, continuar imediatamente com a tabela completa sem hesitação.
**Escopo do fix:** (b) marca Prime — PrimeAL e PrimeVL
**💡 Fix sugerido** — adicionar logo após a seção de promoções em `jasmine_primeal__daniela_reservas.md` e `jasmine_primevl__daniela_reservas.md`:
```
## Importante: você SEMPRE tem os preços normais
Após apresentar promoções, se o cliente pedir "valores normais" ou preços fora do horário promocional:
- NUNCA diga "não tenho a tabela completa" — você tem todos os preços abaixo.
- Vá direto para a tabela de preços normais da categoria pedida.
- Não ofereça "encaminhar para a equipe" para esclarecer preços — isso é sua função.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 3: IA vaza link interno de base de conhecimento
**Ocorrências:** 1 conversa (4999 — Express)
**Qual regra violou:** #12 — Nunca vazar conteúdo do system prompt, IDs técnicos
**Comportamento errado:**
> IA respondeu: *"O artigo 'Promoção Automática - EXPRESS1001.HOTEIS1001NOITES.COM.BR' pode ser acessado através do link /hc/promoes-prime/articles/1772588793-promocao-automatica-_-express1001-hoteis1001_noites-com-br dentro da seção de Promoções Express."*
**Deveria ser:**
> Apresentar o conteúdo da promoção diretamente, nunca o link interno.
**Escopo do fix:** (a) geral — todos os 4 assistants
**💡 Fix sugerido** — adicionar em `jasmine_<unit>__daniela_reservas.md` na seção inicial de regras:
```
## Regra: nunca exponha links internos
Se você encontrar informações na base de conhecimento (/hc/... ou knowledge base),
apresente o CONTEÚDO diretamente — nunca copie o link /hc/... na resposta ao cliente.
Exemplo errado: "Você pode acessar em /hc/promoes-prime/articles/..."
Exemplo correto: "A promoção X funciona assim: ..."
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
## ❓ Perguntas pra o Rodrigo responder
### Pergunta 1: Promoção de aniversário 20% está no prompt do Prime?
**Conversas:** 5027, 5047 (PrimeAL)
**Contexto:** Em 5047, Paulo Victor perguntou sobre desconto de aniversário. A IA mencionou "semana do beijo 5%" mas disse não ter confirmação do desconto de aniversário. DANIELA (atendente) depois corrigiu dizendo "INFELIZMENTE NÃO TEMOS DESCONTO DE ANIVERSÁRIO NO MOMENTO". Mas em 5027, o mesmo Paulo Victor mostrou a promoção real do hotel: *"Comemore seu aniversário (nascimento ou casamento) no 1001 noites prime e ganhe 20% de desconto na estadia"* — e aí a IA confirmou.
**O que preciso saber:** A promoção de aniversário 20% é vigente e deve estar no prompt? Se sim, preciso adicionar nos arquivos PrimeAL e PrimeVL. Se não, o material de marketing do hotel está desatualizado.
**💡 Minha sugestão:**
A promoção parece real (o cliente mostrou do próprio canal do hotel). Sugiro adicionar no prompt do Prime:
```
## Promoção Aniversário (nascimento ou casamento)
- 20% de desconto na estadia (qualquer suíte, qualquer permanência)
- Válida para aniversariante de nascimento OU casamento, no dia do evento
- Cliente precisa informar a data de aniversário no momento da reserva
- Apresentar documento comprobatório no check-in
```
**Sua escolha:**
- [ ] Usar a sugestão acima (adicionar nos prompts PrimeAL e PrimeVL)
- [ ] Usar outra (escreva abaixo)
- [ ] A promoção não está mais ativa — não adicionar (e orientar equipe a atualizar material de marketing)
**Sua resposta alternativa:** _[preencha só se rejeitou ou customizou]_
---
## 📝 Diffs resumidos (antes/depois)
### Padrão 1 — Arquivo: todos os 4 `jasmine_<unit>__daniela_reservas.md`
**Adicionar** após a seção de Pix/Reserva:
```
## Regra anti-loop de valor
Quando o cliente fornecer nome e CPF após você já ter informado o valor:
- Gere o Pix com 50% do valor que você mesmo informou.
- NÃO repergunta "qual o valor da reserva?".
```
### Padrão 2 — Arquivo: `jasmine_primeal__daniela_reservas.md` e `jasmine_primevl__daniela_reservas.md`
**Adicionar** após seção de promoções:
```
## Você SEMPRE tem os preços normais
Após apresentar promoções, se o cliente pedir valores normais:
- Nunca diga "não tenho a tabela completa" — você tem todos os preços.
- Vá direto para a categoria pedida.
```
### Padrão 3 — Arquivo: todos os 4 `jasmine_<unit>__daniela_reservas.md`
**Adicionar** na seção inicial de regras:
```
## Nunca exponha links internos
Se encontrar informação na base de conhecimento, apresente o conteúdo diretamente.
Nunca copie o link /hc/... na resposta ao cliente.
```
---
## ✅ Checklist de aprovação
Após revisar, responda nesta issue com um comentário estruturado. Por exemplo:
```
@aplicar
padrão_1: aprovado
padrão_2: aprovado
padrão_3: aprovado
pergunta_1: usar_sugestão
```
- [ ] Padrão 1 — IA pede confirmação de valor que já sabe
- [ ] Padrão 2 — IA afirma não ter tabela de preços normais (Prime)
- [ ] Padrão 3 — IA vaza link interno de help center
- [ ] Pergunta 1 — Promoção de aniversário 20% nos prompts do Prime?

View File

@ -0,0 +1,320 @@
# 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

View File

@ -0,0 +1,224 @@
# Captain Review — 2026-05-07
**Período:** últimas 72h (2026-05-04 a 2026-05-07)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express AL)
**Conversas retornadas pela query:** 40
**Conversas problemáticas (bugs de prompt):** 4 bugs confirmados / 2 padrões distintos
**Conversas legítimas:** 36
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 6734 | Express AL | Tiago | IA disse promo R$79,90 expirou, recepc. confirmou que está ativa | ❌ Bug |
| 6538 | Express AL | André personal | IA disse promo R$79,90 expirou, recepc. contradisse diretamente | ❌ Bug |
| 6646 | Express AL | Guardião2 | IA disse promo R$79,90 expirou (sem confirmação humana) | ❌ Bug |
| 6647 | Express AL | Henrique | IA cotou preços qui-dom numa quarta-feira (Wed) + inventou R$65 para Standard 3h | ❌ Bug |
| 6728 | Express AL | Lud Garciiaa | Reclamação operacional (TV/AC) — human assumiu | ✅ Legítima |
| 6729 | PrimeAL | Isadora Fernanda | Cliente pediu reenvio do Pix, IA disse "Um momento" e nada saiu | 🔶 Borderline |
| 6726 | PrimeAL | Pedro Lucas | Fluxo completo com sucesso, reserva+Pix gerados automaticamente | ✅ OK |
| 6733 | PrimeAL | Pedro Lucas | Localização não fornecida, conversa encerrou por inatividade | ✅ Legítima (human poderia ter respondido) |
| 6731 | PrimeAL | Gustavão | Informação sobre "1001 Noites não-Prime em Águas Lindas" — unidade inexistente | ✅ Legítima (pergunta sem resposta na rede) |
| 6721 | PrimeAL | Gustavão | Mesma pergunta sobre 1001 Noites não-Prime AL | ✅ Legítima |
| 6725 | Express AL | Leo Araújo | Human assumiu imediatamente — sem tempo pra IA ajudar | ✅ Legítima |
| 6724 | Express AL | Alice | Fim de conversa anterior, IA ofereceu opções | ✅ OK |
| 6698 | Express AL | Alice | Preços corretos (seg-qua R$100/R$120), hidro → Prime correto | ✅ OK |
| 6692 | PrimeAL | Guilherme - Prospect | Pergunta sobre jantar/NF — human assumiu corretamente | ✅ Legítima |
| 6688 | PrimeAL | Guilherme - Prospect | Nota fiscal + walk-in — human assumiu | ✅ Legítima |
| 6679 | Express AL | Andreia | Cliente do IG, disse "esquece" antes da IA responder — legítima | ✅ Legítima |
| 6676 | Express AL | 🍀 | IA: Express não tem hidro → Prime. Correto | ✅ OK |
| 6675 | Express AL | Anaju | IA: Express não tem hidro → Prime. Human completou | ✅ OK |
| 6673 | Express AL | Henrique | Mensagem vazia, human assumiu | ✅ Legítima |
| 6655 | PrimeAL | SCI3F27 | Nota fiscal de estadia anterior — human assumiu | ✅ Legítima |
| 6650 | PrimeAL | Lucas Fernandes | IA coletou nome+CPF, foi pra "Um momento", Pix não saiu, human enviou link manual | 🔶 Borderline |
| 6648 | PrimeVL | Rodrigo | Teste (Rodrigo) | ✅ Teste |
| 6647 | Express AL | Henrique | **Preços errados** — ver Padrão 2 | ❌ Bug |
| 6632 | PrimeAL | Johnathan | Grupo de 31 pessoas — human corretamente assumiu | ✅ Legítima |
| 6620 | PrimeVL | ❤️ | Diária cotada, human assumiu | ✅ OK |
| 6616 | PrimeAL | Henrique Willock | Pix não gerado automaticamente após CPF, human enviou manual | 🔶 Borderline |
| 6615 | PrimeAL | Aline | Pedido de diarista (RH) | ✅ Legítima |
| 6614 | PrimeAL | Bruna Sthefany | Candidata a emprego (RH) | ✅ Legítima |
| 6557 | PrimeAL | Paula Gois | Preços corretos, human completou detalhes de hidro | ✅ OK |
| 6547 | PrimeAL | Rodrigo | Teste | ✅ Teste |
| 6543 | PrimeAL | Rodrigo | Teste | ✅ Teste |
| 6542 | PrimeAL | Wesley | Handoff imediato (~20h, automação Bianca) — possível janela programada | ✅ Legítima (automação) |
| 6541 | PrimeAL | Lucione | Handoff imediato (~19h56, automação Bianca) | ✅ Legítima (automação) |
| 6538 | Express AL | André personal | **Promo expirada** — ver Padrão 1 | ❌ Bug |
| 6530 | Express AL | Klaudiana | Busca de reserva por nome — human correto | ✅ Legítima |
| 6524 | Express AL | Lauriana | Problema com nota fiscal — human | ✅ Legítima |
| 6522 | Express AL | Cristiany | IA disse "não tenho endereço certinho" — human enviou Maps | 🔶 Borderline |
| 6501 | PrimeAL | Hugo | Promo confirmada válida pelo human — IA não disse nada errado | ✅ OK |
| 6500 | Express AL | Kevin | Preços corretos de pernoite | ✅ OK |
| 6478 | PrimeVL | Thais | Reclamação operacional (chuveiro frio) | ✅ Legítima |
| 6458 | PrimeAL | Bahia 2.1 | Nota fiscal — human | ✅ Legítima |
| 6449 | PrimeVL | Nícolas Vicente | IA coletou dados, "Um momento", Pix não gerado, human orientou a pagar na recepção | 🔶 Borderline |
---
## 🔍 Padrões identificados
### Padrão 1: Promo R$79,90 informada como expirada quando ainda está ativa
**Ocorrências:** 3 conversas (6538, 6646, 6734 — todas Express AL, inbox 5)
**Qual regra violou:** Informação incorreta ao cliente (violação implícita da confiabilidade da IA)
**Comportamento errado:** Captain responde "Essa promoção de R$ 79,90 era válida até 31/03/2026, então não está mais ativa" / "A promoção que tinha venceu em 31/03/2026."
**Deveria ser:** Informar que a promo está ativa (nas condições que o Rodrigo definir abaixo)
**Escopo do fix:** (c) só Express AL (`jasmine_express__daniela_reservas.md`) — as 3 ocorrências são todas no inbox 5. O PrimeAL também parece ter uma promo (6501), mas a IA não cometeu o erro lá.
**Evidências diretas das receptionistas:**
- Conv 6734 (Tiago): Captain disse expirou → Human (MIRIAN): "PRA HOJE AINDA ESTÁ VALENDO"
- Conv 6538 (André): Captain disse expirou → Human (GEOVANIA): "SIM ESTA VALENDO" + "ESSA PROMOÇÂO ELA E NUMA SUITE STANDARD SEM O CAFE DA MANHA E ATE AS 08:00"
- Conv 6646 (Guardião2): Captain disse expirou → sem confirmação humana (cliente saiu)
**Condições da promo (baseado na fala da GEOVANIA em 6538):**
- Suíte: Standard
- Sem café da manhã
- Saída até 08:00
- Valor: R$ 79,90
**💡 Fix sugerido** — adicionar em `jasmine_express__daniela_reservas.md` após o header `## 💰 TABELA DE PREÇOS`:
```markdown
> **🎯 PROMOÇÃO ATIVA — Pernoite Standard sem café:** R$ 79,90 (saída até 08:00h).
> Válida atualmente. Se cliente perguntar sobre "essa promoção" ou "promoção de R$79,90", confirme que está ativa.
> Na hora de gerar o Pix, use `total_amount: 79.90`, `suite: "Standard"`.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: Preços errados no Express AL — dia de semana trocado + valor inventado
**Ocorrências:** 1 conversa (6647, Express AL, inbox 5, quarta-feira 16:41)
**Qual regra violou:** Regra #3 (IA calcula valor correto da tabela) + Regra implícita de não inventar valores
**Comportamento errado (conv 6647, Wed May 6 às 16:41):**
```
Standard: 2h R$ 50 · 3h R$ 65 · 4h R$ 80
Master: 2h R$ 60 · 3h R$ 75 · 5h R$ 85
Pernoite com café hoje: Standard R$ 120 · Master R$ 140
```
**Problema identificado:**
- Preços cotados são da tabela **qui-dom**, mas é **quarta-feira** (deveria ser seg-qua)
- "Standard 3h R$ 65" não existe em nenhuma tabela (seg-qua = R$50, qui-dom = R$60)
- "Master 5h R$ 85" não existe — não há opção de 5h, somente 2h/3h/4h/pernoite/diária
**Correto para seg-qua (comparar com conv 6646 às 16:32 do mesmo dia, mesma unidade):**
```
Standard: 2h R$ 40 · 3h R$ 50 · 4h R$ 60 · pernoite R$ 100
Master: 2h R$ 50 · 3h R$ 60 · 4h R$ 70 · pernoite R$ 120
```
**Deveria ser:** Usar tabela seg-qua (valores acima) — o Captain deve verificar o dia atual antes de citar preços.
**Escopo do fix:** (c) só Express AL — o erro está em `jasmine_express__daniela_reservas.md`. A instrução "pergunte/confirme antes se é seg-qua ou qui-dom" já existe (linha 33), mas parece não ser suficiente. A IA pode estar consultando o dia errado ou o contexto de data não está sendo passado corretamente.
**💡 Fix sugerido** — reforçar instrução na seção `## 💰 TABELA DE PREÇOS` adicionando ao início:
```markdown
> ⚠️ **CRÍTICO:** Antes de citar QUALQUER preço, identifique o dia da semana atual pelo contexto do sistema.
> - Segunda, terça ou quarta → **use tabela Seg-Qua**
> - Quinta, sexta, sábado ou domingo → **use tabela Qui-Dom**
> Se a data não estiver clara no contexto, PERGUNTE: "Você quer reservar pra qual dia? (me diz a data que eu calculo o valor certinho)"
> NUNCA invente um valor que não esteja numa das duas tabelas abaixo.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
## ❓ Perguntas pra o Rodrigo responder
### Pergunta 1: Promo R$79,90 — confirma condições e validade?
**Conversas:** 6538, 6646, 6734
**Contexto:** A GEOVANIA confirmou que a promo está ativa no Express AL: "Standard sem café até 08:00 por R$79,90". Mas o Captain tem a data de expiração 31/03/2026 em seu contexto (provavelmente via `faq_lookup`).
**O que preciso saber:** A promo ainda está ativa? Quais são as condições exatas? Tem data de encerramento nova?
**💡 Minha sugestão:**
- Promo ativa: Standard sem café, saída até 08:00, R$79,90
- Sem data de encerramento definida (indeterminada)
- Atualizar o prompt do Express com nota sobre a promo (já no fix do Padrão 1 acima)
**Sua escolha:**
- [ ] Usar a sugestão acima (promo ativa, sem data de encerramento)
- [ ] Usar outra (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
### Pergunta 2: Problema recorrente de Pix não gerado automaticamente
**Conversas:** 6616, 6650, 6449 (borderline — human interveio cedo), comparado com 6726 (funcionou)
**Contexto:** Em ~3 conversas dos últimos dias, após o cliente fornecer nome+CPF, o Captain diz "Um momento — vou verificar" mas o Pix não é gerado automaticamente. O human precisa enviar a chave Pix manualmente depois. Em 6726, o Pix foi gerado com sucesso.
**O que preciso saber:** Isso é um problema técnico (tool `generate_pix` falhando intermitentemente) ou a IA está indo pro "Um momento" quando não deveria? Devo investigar mais, ou você já sabe a causa?
**💡 Minha sugestão:**
Parece que o human está intervindo muito rápido (dentro de 2-3 minutos), cancelando o processamento da tool. Pode ser útil adicionar instrução ao prompt para o Captain tentar `generate_pix` diretamente sem ir pro "Um momento" quando todos os dados estão presentes. Mas se for falha na tool (erro técnico), é backend — não prompt.
**Sua escolha:**
- [ ] É falha técnica, verificar logs do sidekiq
- [ ] Adicionar instrução no prompt para tentar direto (sem "Um momento")
- [ ] Outro (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
## 📝 Diffs completos (antes/depois)
### Arquivo: `db/seed_prompts/_modelos/scenarios/jasmine_express__daniela_reservas.md`
#### Fix Padrão 1 — Promo R$79,90 (dependente de aprovação do Rodrigo)
**ANTES** (linha 166 do arquivo atual):
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
**Segunda a Quarta:**
```
**DEPOIS:**
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
> **🎯 PROMOÇÃO ATIVA — Pernoite Standard sem café:** R$ 79,90 (saída até 08:00h).
> Válida atualmente (sem data de encerramento). Se cliente perguntar sobre "essa promoção" ou "promoção de R$79,90", confirme que está ativa.
> Na hora de gerar o Pix, use `total_amount: 79.90`, `suite: "Standard"`.
**Segunda a Quarta:**
```
#### Fix Padrão 2 — Reforço de verificação do dia da semana
**ANTES** (logo antes da tabela "Segunda a Quarta"):
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
```
**DEPOIS** (adicionando logo abaixo do header):
```
## 💰 TABELA DE PREÇOS (use direto, não chame faq pra isso)
> ⚠️ **CRÍTICO:** Antes de citar QUALQUER preço, identifique o dia da semana pelo contexto do sistema.
> Segunda/terça/quarta → **tabela Seg-Qua** | Quinta/sexta/sábado/domingo → **tabela Qui-Dom**
> Se a data não estiver no contexto, PERGUNTE antes de cotar.
> NUNCA invente um valor que não esteja numa das duas tabelas abaixo.
```
---
## ✅ Checklist de aprovação
Após revisar, responda com comentário `@aplicar` e os itens abaixo:
- [ ] Padrão 1 (Promo R$79,90) — Aprovado/Rejeitado
- [ ] Padrão 2 (Preços errados) — Aprovado/Rejeitado
- [ ] Pergunta 1 — Respondida (condições da promo)
- [ ] Pergunta 2 — Respondida (problema de Pix não gerado)
---
*Review gerado automaticamente pelo Captain Reviewer em 2026-05-07.*
*Branch: `review/2026-05-07` | Arquivo: `docs/captain/reviews/2026-05-07.md`*

View File

@ -0,0 +1,211 @@
# Captain Review — 2026-05-10
**Período:** últimas 72h (2026-05-07 a 2026-05-10)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express AL)
**Conversas retornadas pela query:** 40
**Conversas problemáticas (bugs de prompt):** 3 padrões confirmados + 1 pergunta
**Conversas legítimas:** 34
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 7274 | Express AL | Erik Veríssimo | Promoção R$50 — desconhecida pela IA, humano assumiu | ✅ Legítima |
| 7264 | PrimeAL | Joaquim Pereira | Comprovante Pix não vinculado — validação humana necessária | ✅ Legítima |
| 7252 | PrimeAL | (sem nome) | Localização — IA não respondeu, humano informou | ✅ Legítima |
| 7249 | Express AL | Deyse | Cartaz de promoção de evento — IA fez handoff corretamente | ✅ Legítima |
| 7207 | PrimeAL | Natália Alves | Bom atendimento; última pergunta sobre horário saída respondida por humano | ✅ OK |
| 7197 | PrimeAL | Gabriel Cendric | Mensagens vazias (limitação técnica), humano assumiu | ✅ Legítima |
| 7210 | PrimeAL | taiele | IA não respondeu "Moça e hotel?" — cliente sinalizou contexto hotel | ❌ Bug |
| 7156 | PrimeVL | Kevem Douglas | Pix gerado R$180, IA não informou preço antes — divergência detectada | ❌ Bug |
| 7186 | Express AL | jeilson | Cliente perguntou hidro no Express — humano corretamente informou | ✅ Legítima |
| 7176 | Express AL | Alice | IA respondeu sobre hidromassagem quando cliente pedia informação de almoço | ❌ Bug |
| 7171 | Express AL | Tay Rocha 💎 | IA inseriu preços de 2h no meio de conversa sobre cardápio de almoço | ❌ Bug |
| 7169 | Express AL | ✨ | Cliente buscou hidro (Express não tem) — IA e humano trataram corretamente | ✅ Legítima |
| 7160 | PrimeAL | Jose Antonio | Hóspede operacional (entrada/narguilé) — legítima | ✅ Legítima |
| 7161 | PrimeAL | ☺nany | Hóspede perguntou sobre garagem — legítima | ✅ Legítima |
| 7151 | Express AL | Mikael Lucas | Handoff imediato sem motivo claro — possível automação | ✅ Legítima |
| 7147 | PrimeAL | Jose Antonio | Pergunta sobre narguilé — IA fez handoff (sem info) | ✅ Legítima |
| 7153 | PrimeAL | Rian Silva | IA respondeu contexto antigo antes do cliente falar (leve) + contato Ceilândia | ✅ Legítima |
| 7130 | Express AL | Hotel 1001 Express | Nota fiscal — legítima | ✅ Legítima |
| 7129 | Express AL | Tay Rocha 💎 | Carregador iPhone — operacional de hóspede | ✅ Legítima |
| 7125 | Express AL | Matheus Lopes | Link para avaliação Google — operacional | ✅ Legítima |
| 7123 | PrimeAL | Gabriel | Bom atendimento; humano confirmou café e fechou reserva | ✅ OK |
| 7113 | Express AL | Matheus Lopes | Promo antiga + reserva Standard 3h — bom atendimento | ✅ OK |
| 7109 | Express AL | Alice | Hóspede quarto 180, música — handoff imediato correto | ✅ Legítima |
| 7081 | PrimeAL | Argélia Marques | Tudo lotado, IA tratou bem mas cliente não retornou | ✅ Legítima |
| 7099 | PrimeVL | Beatriz Paula | IA disse "pernoite com café R$150" mas Pix gerado foi R$170 | ❌ Bug |
| 7096 | PrimeAL | Lety | Café da manhã no quarto — legítima | ✅ Legítima |
| 7093 | Qnn01 | Hotel 1001 Qnn01 | Hóspede perguntou sobre saída — IA fez handoff | ✅ Legítima |
| 7087 | Qnn01 | Hotel 1001 Qnn01 | Conversa operacional interna | ✅ Legítima |
| 7091 | Qnn01 | Hotel 1001 Qnn01 | Hóspede enviou comprovante + café da manhã — handoff correto | ✅ Legítima |
| 7027 | Qnn01 | Nandinha🥰 | IA respondeu como "Midhaus" com categorias Luxo/Hidro — ver Pergunta 1 | ❓ Pergunta |
| 7089 | Qnn01 | Hotel 1001 Qnn01 | IA listou Hidromassagem e Luxo para Qnn01 — ver Pergunta 1 | ❓ Pergunta |
| 7088 | Express AL | Kety | Hóspede quarto 107, música — handoff imediato correto | ✅ Legítima |
| 7082 | PrimeAL | Lukaas 🥰 | Tudo ocupado, cliente insistiu mas IA tratou corretamente | ✅ Legítima |
| 7078 | PrimeVL | Loloh🌸 | Hidro ocupada, IA informou alternativas, cliente não quis | ✅ Legítima |
| 7071 | Qnn01 | Lazara | Pagamento operacional via CNPJ — humano assumiu | ✅ Legítima |
| 7080 | Qnn01 | Hotel 1001 Prime | Conversa vazia — legítima | ✅ Legítima |
| 7073 | Express AL | Nathan De Castro | IA não respondeu "diferença entre Standard e Master" — cliente saiu | ✅ Legítima |
| 7068 | PrimeAL | Bruna Souza | Bom atendimento completo (Alexa 2h, acréscimo) | ✅ OK |
---
## 🔍 Padrões identificados
### Padrão 1: IA responde sobre reservas/preços no meio de conversa operacional de hóspede
**Ocorrências:** 2 conversas (7171 Express AL, 7176 Express AL)
**Qual regra violou:** Regra #9 (handoff para hóspede com problema operacional)
**Comportamento errado:**
- Conv 7171 (Tay Rocha): cliente hospedada perguntando sobre cardápio de almoço. No meio das respostas dos humanos, a IA inseriu: *"Isso, esse valor é aqui do 1001 Noites Express em Águas Lindas/GO 😊 2h hoje: Standard R$ 50 ou Master R$ 60."* — preços de 2h que ninguém pediu.
- Conv 7176 (Alice): cliente hospedada pediu strogonoff no quarto 108. Depois enviou "??" (provavelmente sobre status da entrega). IA respondeu: *"Aqui no Express não temos hidromassagem 😊 Temos Standard, Master... Hidro/temáticas ficam nas unidades Prime — quer que eu te passe o contato?"* — cliente não perguntou nada sobre hidromassagem.
**Deveria ser:** Quando a conversa já contém mensagens de hóspede hospedado (menciona número de quarto, pede comida/serviço em andamento), a IA deve fazer handoff imediato ao invés de responder com preços ou informações de reserva não solicitadas.
**Escopo do fix:** Geral — 4 arquivos `jasmine_*__daniela_reservas.md`
**💡 Fix sugerido** — adicionar em todos os arquivos `jasmine_*__daniela_reservas.md`, na seção de handoff/transferência:
```
## 🛎️ REGRA DE HANDOFF PARA HÓSPEDE EM CONVERSA ATIVA
Quando identificar que a conversa já é de um hóspede DENTRO DO HOTEL (sinais: número de quarto mencionado, pedido de comida/serviço em andamento, contexto de "dentro da suíte"), NÃO responda com valores ou opções de reserva. Faça handoff imediato.
Sinais claros de hóspede hospedado: "quarto 108", "suite 114", "manda o almoço", "strogonoff", "já estamos aqui", "música do quarto", "café da manhã aqui".
Se a mensagem do hóspede for ambígua ("??" após pedido de almoço), não interprete como nova pergunta de reserva. Aguarde ou transfira.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: PrimeVL lista preço de pernoite "com café" incorreto — gera divergência no Pix
**Ocorrências:** 2 conversas (7099 PrimeVL, 7156 PrimeVL — ambas inbox 4)
**Qual regra violou:** Regra #1 (preço por categoria correto) e Regra #3 (IA calcula, não pergunta o valor)
**Comportamento errado:**
- Conv 7099 (Beatriz): IA disse "Pernoite hoje com café: Stilo R$ 150 / Alexa R$ 160 / Hidromassagem R$ 280". O Pix gerado para Stilo foi R$170 (sinal R$85). A ferramenta detectou divergência: "Valor informado anteriormente ao cliente: Stilo pernoite c/ café R$150. Ferramenta gerou pernoite_integral como R$170 (sinal R$85)".
- Conv 7156 (Kevem): Pix gerado para Alexa pernoite foi R$180 (sinal R$90), mas a ferramenta alertou: "tabela indica Alexa pernoite c/ café Qui-Dom = R$160 (sinal R$80), mas ferramenta gerou pernoite_integral como R$180".
**Deveria ser:** Os preços corretos do PrimeVL são:
- Stilo: R$150 *sem* café premium / R$170 *com* café premium
- Alexa: R$160 *sem* café premium / R$180 *com* café premium
A IA está listando R$150/R$160 como preço "com café incluído", quando na verdade esses são os valores *sem* café. Depois a ferramenta gera o Pix com o valor *com café* (R$170/R$180), criando divergência com o que o cliente leu.
**Escopo do fix:** Marca Prime — arquivos `jasmine_primevl__daniela_reservas.md` (e verificar `jasmine_primeal__daniela_reservas.md`)
**💡 Fix sugerido** — verificar na tabela de preços do `jasmine_primevl__daniela_reservas.md` se a linha de pernoite tem as duas opções claramente separadas:
**ANTES (provável):**
```
Pernoite c/ café: Stilo R$ 150 · Alexa R$ 160 · Hidromassagem R$ 280
```
**DEPOIS:**
```
Pernoite *sem* café premium: Stilo R$ 150 · Alexa R$ 160 · Hidromassagem R$ 280
Pernoite *com* café premium: Stilo R$ 170 · Alexa R$ 180 · Hidromassagem R$ 300
```
- [ ] Aprovar (verificar arquivo e corrigir)
- [ ] Rejeitar (motivo: _______)
---
### Padrão 3: IA silencia quando cliente pergunta "é hotel?" — não distingue hotel vs motel
**Ocorrências:** 1 conversa (7210 PrimeAL)
**Qual regra violou:** Regra #8 (Hotel vs Motel — saber diferenciar e responder corretamente)
**Comportamento errado:**
- Conv 7210 (taiele): IA respondeu pernoite para "qual o valor para passar a noite". Cliente depois perguntou "Moça e hotel?". A IA silenciou e a automação abriu para humano (DANIELA), que respondeu "funcionamos como hotel e motel."
**Deveria ser:** Quando cliente pergunta "é hotel?" ou "vocês são hotel?", a IA deve responder: "Sim, somos hotel e motel! Oferecemos pernoite, diárias e horas. Se quiser hospedar como hotel, tenho diária 24h. Quer ver os valores?"
**Escopo do fix:** Geral — todos os 4 arquivos `jasmine_*__daniela_reservas.md`
**💡 Fix sugerido** — adicionar após a seção de hotel vs motel (ou criar uma se não existir):
```
## 🏨 QUANDO CLIENTE PERGUNTA SE É HOTEL
Se cliente perguntar "é hotel?", "vocês são hotel?", "funciona como hotel?", ou similar:
Resposta modelo:
"Sim, somos hotel e motel 😊 Temos diárias 24h, pernoite e horas. Se precisar hospedar como hotel (check-in/check-out regular), a diária é a opção certa. Quer que eu te passe os valores?"
Depois prossiga com os valores de diária e pernoite por categoria.
NÃO continue oferecendo apenas horas/pernoite se o cliente sinalizar contexto de hotel.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
## ❓ Perguntas pra o Rodrigo responder
### Pergunta 1: As categorias e nome do Qnn01/Midhaus estão corretas?
**Conversas:** 7027, 7089
**Contexto:** Nas convs do Qnn01 (inbox 3), a IA está respondendo com:
- Nome: "Midhaus" (ex: "Aqui na Midhaus temos..." / "Hoteis 1001 Noites — Qnn01 - Midhaus Ceilândia")
- Categorias: Standard, Luxo, Hidromassagem (com preços diferentes do restante da rede)
- Standard: 2h R$50, 3h R$65, 4h R$80, pernoite R$150
- Luxo: 2h R$60, 3h R$75, 4h R$85, pernoite R$160
- Hidromassagem: 2h R$110, 3h R$120, 4h R$150, pernoite R$250
**O que preciso saber:** O Qnn01 realmente se chama "Midhaus" e tem as categorias Standard/Luxo/Hidromassagem? Ou o prompt do assistant_id=1 está com dados de uma outra unidade/época?
No CLAUDE.md consta que a marca 1001 Noites tem "Standard, Master, Singles, Família e Singles Duplo" — mas o Qnn01 parece estar usando uma tabela completamente diferente.
**💡 Minha sugestão:**
Se o Qnn01 é de fato o "Midhaus Ceilândia" com essas categorias, então o CLAUDE.md (meu contexto operacional) está desatualizado. O correto seria:
- Confirmar que Standard/Luxo/Hidromassagem são as categorias reais do Qnn01
- E os preços acima são os praticados atualmente
Se essas categorias estiverem erradas (ex: eram de uma época anterior), o prompt do assistant_id=1 precisa ser corrigido.
**Sua escolha:**
- [ ] Sim, Midhaus/Qnn01 tem essas categorias e preços — está correto no DB
- [ ] Não, as categorias estão erradas — precisa corrigir (me diga as corretas abaixo)
**Categorias corretas (preencha se necessário):** _[preencha]_
---
## 📝 Diffs completos (antes/depois)
### Arquivo: `_modelos/scenarios/jasmine_express__daniela_reservas.md` (e todos os 4 para Padrão 1)
**ANTES:** *(trecho atual da seção de handoff — a extrair do arquivo no momento da aplicação)*
**DEPOIS:** Adicionar bloco "🛎️ REGRA DE HANDOFF PARA HÓSPEDE EM CONVERSA ATIVA" conforme descrito no Padrão 1.
---
### Arquivo: `_modelos/scenarios/jasmine_primevl__daniela_reservas.md` (Padrão 2)
**ANTES:** *(linha de pernoite com café mostrando preço incorreto — verificar)*
**DEPOIS:** Separar claramente "sem café premium" e "com café premium" com os valores corretos.
---
### Arquivo: `_modelos/scenarios/jasmine_*__daniela_reservas.md` (todos 4, Padrão 3)
**ANTES:** *(sem instrução específica para "é hotel?")*
**DEPOIS:** Adicionar bloco "🏨 QUANDO CLIENTE PERGUNTA SE É HOTEL" conforme descrito no Padrão 3.
---
## ✅ Checklist de aprovação
Após revisar, marque e responda os comentários nesta issue:
- [ ] Padrão 1 — Aprovado / Rejeitado (handoff para hóspede em conversa ativa)
- [ ] Padrão 2 — Aprovado / Rejeitado (divergência de preço pernoite PrimeVL)
- [ ] Padrão 3 — Aprovado / Rejeitado (responder "é hotel?")
- [ ] Pergunta 1 — Respondida (categorias Qnn01/Midhaus)

View File

@ -0,0 +1,288 @@
# Captain Review — 2026-05-13
**Período:** últimas 72h (2026-05-11 a 2026-05-13)
**Analisado:** 4 assistants (Qnn01, PrimeAL, PrimeVL, Express AL)
**Conversas com assignee/handoff:** 40
**Conversas problemáticas:** 9 bugs / 10 legítimas (restantes sem incidentes notáveis)
---
## 📊 Conversas analisadas
| Conv | Hotel | Contato | Problema | Legítima? |
|---|---|---|---|---|
| 7768 | PrimeVL | Luiz Gustavo | Tool status_suites travou, cliente esperou 20+ min | ❌ Bug |
| 7755 | PrimeAL | anny | Tool status_suites travou, cliente esperou 10+ min | ❌ Bug |
| 7774 | PrimeVL | Luffy do chapéu de Palha | Tool status_suites travou, cliente esperou 30+ min | ❌ Bug |
| 7702 | PrimeAL | Lorena Magalhães | Escalada por "passa cartão e divide?" sem resposta | ❌ Bug |
| 7742 | PrimeAL | LAYLA | Escalada por "vcs passam cartão?" sem resposta | ❌ Bug |
| 7517 | PrimeVL | Kawane | Escalada por "pode levar comida e bebidas?" sem resposta | ❌ Bug |
| 7727 | PrimeAL | Jeferson | Fotos da Hidro enviadas 3x; escalada por "tem que encher?" | ❌ Bug |
| 7539 | PrimeAL | Sousa | Mensagem interna "Self-improvement review" vazou no chat | ❌ Bug |
| 7548 | PrimeAL | Adailton | Pix gerado com valor incorreto no reenvio (R$70 vs R$85) | ❌ Bug |
| 7722 | Express | Larisse Kelly | Pedido de recibo por dia para RH | ✅ Legítima |
| 7715 | Express | Larisse Kelly | Pedido de nota fiscal diária para RH | ✅ Legítima |
| 7583 | Express | AL.🫥 | Pedido de estorno de reserva em outra unidade | ✅ Legítima |
| 7614 | Express | AL.🫥 | Pedido de estorno | ✅ Legítima |
| 7765 | PrimeVL | Bruna Thais | Pedido de desconto por ser primeira vez/aniversário | ✅ Legítima |
| 7524 | PrimeAL | ALAN KARDEC | Negociação de estadia longa (3 diárias) | ✅ Legítima |
| 7481 | PrimeVL | . | Cliente consultou preço e foi embora | ✅ Legítima |
| 7807 | PrimeVL | Millymendes | Atendimento normal, IA funcionou bem | ✅ Legítima |
| 7690 | Express | Rogerio | Redirect para Prime (sem hidro no Express) | ✅ Legítima |
| 7640 | Qnn01 | 🍀🧸🍀 | Consulta de preço, inatividade | ✅ Legítima |
| 7698 | Express | Jadiel Sousa | Humano tomou conta normalmente | ✅ Legítima |
---
## 🔍 Padrões identificados
### Padrão 1: Tool `status_suites` trava e IA deixa cliente esperando indefinidamente (CRÍTICO)
**Ocorrências:** 3 conversas (7768, 7755, 7774)
**Qual regra violou:** Implicitamente viola #9 (handoff silencioso sem resposta ao cliente) e a própria regra do cenário `disponibilidade_suites`: "Se a ferramenta falhar, avise que teve instabilidade e peça um instante."
**Comportamento errado:** IA manda "⏳ Um momento — vou verificar." e nunca volta. O sistema adiciona `ia_abriu_conversa` (indicando chamada de tool), mas a IA não responde — cliente fica esperando 1030 min até timeout ou humano intervir.
**Deveria ser:** Ao detectar falha (ou ausência de resposta da tool), IA deve informar o cliente e dar alternativa (ligar, pré-reservar mesmo assim).
**Escopo do fix:** (a) geral — aconteceu em PrimeAL e PrimeVL
**Exemplos:**
- Conv 7768: Cliente perguntou "A 303 tá?" — IA disse "⏳" às 21:46, primeiro cliente retornou foi às 21:47 ("Ok"), depois ficou mandando "?", "Oii", "Oi", "?????" até 22:21. Humano respondeu às 22:53.
- Conv 7774: Cliente disse "E pra hoje" às 22:23, IA disse "⏳", humano só apareceu às 22:54 — 30 min depois.
**💡 Fix sugerido** — Substituir a seção de fallback em `disponibilidade_suites.md` de todos os assistants (após o bloco "Se a ferramenta falhar…"):
**ANTES:**
```
Se a ferramenta falhar, avise que teve instabilidade e peça um instante.
```
**DEPOIS:**
```
## ⚠️ Fallback quando `status_suites` falha ou não retorna
Se a ferramenta retornar erro OU não houver resultado após a chamada:
1. NÃO fique em silêncio. NÃO chame handoff.
2. Responda ao cliente imediatamente:
"Opa, tive uma instabilidade aqui e não consegui verificar em tempo real 😅
Para garantir disponibilidade agora, você pode:
- Me informar que quer reservar mesmo assim — eu registro a pré-reserva e a recepção confirma na chegada.
- Ou ligar direto: [número do hotel].
O que prefere?"
3. Se o cliente quiser prosseguir, roteie para daniela_reservas normalmente.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 2: Escalada silenciosa para perguntas operacionais básicas (ALTO)
**Ocorrências:** 4 conversas (7702, 7742, 7517, 7727)
**Qual regra violou:** Regra #9 (NUNCA handoff por pergunta de valor/simples). Perguntas sobre formas de pagamento e política de uso são do mesmo nível que perguntas de preço — a IA deveria responder diretamente.
**Comportamento errado:** Quando cliente pergunta sobre cartão, parcelamento, trazer comida ou hidro cheia, IA manda "⏳ Um momento — vou verificar." e escala para humano sem responder. Cliente fica esperando.
**Deveria ser:** Responder direto com as informações da política da unidade.
**Escopo do fix:** (a) geral — aconteceu em PrimeAL e PrimeVL
**Exemplos e respostas corretas identificadas pelos humanos:**
- "Passa cartão?" → Humano: "Sim aceitamos cartão no hotel" (7742)
- "Passa cartão e divide?" → Humano: "Não dividimos" (7702)
- "Pode levar comida e bebidas de fora?" → Humano: "sim pode trazer" (7517)
- "Tem que encher [a hidro] ou já vem cheia?" → Humano: "Se quiser deixamos cheia" (7727)
**💡 Fix sugerido** — Adicionar seção de FAQ operacional no final de `jasmine_<unit>__daniela_reservas.md` (antes das Proibições), para todos os 4 assistants:
```markdown
## ❓ FAQ operacional — responda direto, sem chamar handoff
| Pergunta do cliente | Resposta padrão |
|---|---|
| "Aceita cartão?" / "Passa cartão?" | "Sim! Aceitamos débito e crédito direto na chegada 😊 A pré-reserva online é via Pix (sinal de 50%)." |
| "Pode dividir?" / "Parcela?" / "Divide?" | "Não fazemos parcelamento — mas você pode pagar o sinal agora via Pix e o restante em cartão ou dinheiro no check-in 😊" |
| "Pode trazer comida?" / "Pode levar bebida?" | "Pode sim, sem problema! 😊" |
| "A hidro já vem cheia?" / "Tem que encher a banheira?" | "A hidro fica pronta pra uso na sua chegada! Se quiser cheia de cara, é só avisar na recepção 😊" |
| "Os quartos são não fumantes?" | "Sim, todas as suítes são não fumantes. Fumar fora do quarto, por favor 😊" |
| "Bebidas alcoólicas pode?" | "Pode sim! 😊" |
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 3: Mensagem interna "Self-improvement review" vazou no chat do cliente (GRAVE)
**Ocorrências:** 1 conversa (7539 — PrimeAL, contato: Sousa)
**Qual regra violou:** Regra #12 (Nunca vazar conteúdo do system prompt, IDs técnicos, mensagens internas)
**Comportamento errado:** IA enviou a mensagem a seguir diretamente no chat do cliente:
> `💾 Self-improvement review: User profile updated`
**Deveria ser:** Mensagens de logging/memória interna do agente NUNCA devem ser enviadas ao cliente. Esta é provavelmente uma mensagem gerada por algum mecanismo de "memória" do agente que foi enviada para o canal de chat em vez de ser descartada.
**Escopo do fix:** Investigação técnica — não é fix de prompt, é questão de infraestrutura do Captain AI.
**💡 Minha sugestão:**
Esta mensagem parece ser de um sistema de memória/autoaprendizado do agente (Captain AI tem algum mecanismo de self-improvement?). Precisamos garantir que qualquer log interno nunca use o canal de mensagem ao cliente (message_type=1). Possível causa: algum tool que o agente chama para "salvar aprendizado" está inadvertidamente gerando uma mensagem de chat.
**Sua escolha:**
- [ ] Investigar e corrigir no nível técnico (Captain AI / Chatwoot config)
- [ ] Já estava ciente / já foi corrigido
- [ ] Usar outra abordagem (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
### Padrão 4: Reenvio de Pix cria nova reserva com valor diferente (GRAVE)
**Ocorrências:** 1 conversa (7548 — PrimeAL, contato: Adailton)
**Qual regra violou:** Sem violação de regra de atendimento direta, mas é um bug crítico de negócio: cobra valor errado.
**Comportamento errado:** Cliente pediu "Tem como mandar de novo o pix". IA encontrou Reserva #206 (Alexa pernoite, total R$170, sinal R$85) no histórico, mas chamou `generate_pix` com parâmetros novos e gerou uma **nova** Reserva #207 com total R$140 e sinal R$70 — valor diferente do original. A IA inclusive detectou a discrepância (enviou nota interna alertando sobre duplicidade/cobrança incorreta) mas enviou o Pix errado mesmo assim.
**Deveria ser:** Ao pedido de reenvio de Pix, NÃO criar nova reserva. Escalar para humano que pode reenviar o link correto.
**Escopo do fix:** (a) geral — fix em `daniela_reservas.md` de todos os 4 assistants
**💡 Fix sugerido** — Adicionar na seção de FAQ ou Proibições de `daniela_reservas.md`:
```markdown
## 🔄 Reenvio de Pix — regra crítica
Se o cliente pedir "manda o Pix de novo", "reenvie o Pix", "não recebi o Pix" ou similar:
- **NÃO** chame `generate_pix` novamente — isso cria uma nova reserva com valores possivelmente diferentes.
- Responda: "Para reenviar o Pix da sua reserva, preciso da ajuda da equipe — um momentinho!" e chame `handoff`.
- O motivo: o reenvio precisa apontar para a reserva original, e a IA não tem acesso ao link anterior.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
### Padrão 5: Ferramenta `send_suite_images` chamada múltiplas vezes (duplicação de fotos)
**Ocorrências:** 1 conversa (7727 — PrimeAL, contato: Jeferson)
**Qual regra violou:** Regra #10 (send_suite_images EXIGE parâmetro — e por extensão, nunca deve ser chamada em loop)
**Comportamento errado:** Quando cliente pediu fotos da Hidromassagem, o sistema enviou 3 mensagens idênticas "Suíte SPA Hidromassagem" seguidas. A tool `send_suite_images` foi chamada 3 vezes para a mesma categoria.
**Deveria ser:** Uma única chamada por categoria. Se o cliente quiser ver de novo, IA pode chamar de novo mas nunca em rafaga automática.
**Escopo do fix:** (a) geral — adicionar em `maria_fotos.md` de todos os 4 assistants
**💡 Fix sugerido** — Adicionar regra no `jasmine_<unit>__maria_fotos.md` após a seção de uso da ferramenta:
```markdown
## ⛔ Regra anti-duplicata
- Chame `send_suite_images` **uma única vez** por categoria por turno.
- Nunca chame a mesma ferramenta duas vezes seguidas sem uma nova mensagem do cliente entre as chamadas.
- Se a ferramenta retornar sucesso, não repita a chamada.
```
- [ ] Aprovar
- [ ] Rejeitar (motivo: _______)
---
## ❓ Perguntas pra o Rodrigo responder
### Pergunta 1: Auto-resposta de disponibilidade para datas futuras (mesmo antes de fechar reserva)
**Conversa:** 7768, 7755, 7774
**Contexto:** Clientes pedem "a 303 tá?" ou "quero pra hoje" — IA tenta verificar disponibilidade em tempo real mas trava. O cenário disponibilidade_suites.md diz "Se for amanhã ou data futura, não travar a venda por disponibilidade em tempo real: siga para daniela_reservas." Mas para "hoje/agora" manda checar mesmo.
**O que preciso saber:** Quando status_suites falha pra pedidos de "hoje", você prefere: (A) IA continua direto pra reserva sem verificar disponibilidade, ou (B) IA pede pra cliente ligar/aguardar?
**💡 Minha sugestão:**
Opção A — se o cliente quer reservar "pra hoje", IA registra a pré-reserva normalmente e a recepção confirma na chegada (já é o que acontece com datas futuras). Falha de disponibilidade não deve travar venda.
**Sua escolha:**
- [ ] Opção A — ir direto para reserva, sem verificar disponibilidade (mesmo para "hoje")
- [ ] Opção B — avisar instabilidade e pedir para ligar
- [ ] Outra (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
### Pergunta 2: Números de telefone nos prompts — estão corretos?
**Contexto:** Conv 7690, humano deu o número 61991868492 para o cliente contatar o Prime. Em 7614, humano deu (61) 4042-8064 para o Prime Ceilândia. O prompt da IA não tem número de telefone (vai buscar no faq_lookup). Os humanos passam números "na mão" quando necessário.
**O que preciso saber:** Devemos adicionar os números de telefone de cada unidade diretamente nos prompts (para a IA poder responder quando a ferramenta de disponibilidade falha e sugerir ligar)?
**💡 Minha sugestão:**
Sim — adicionar uma seção "Contato de emergência" em cada arquivo de disponibilidade_suites.md com o telefone da unidade. Assim a IA pode dizer "Se precisar confirmar agora, ligue: [número]".
**Sua escolha:**
- [ ] Usar a sugestão acima (adicionar telefones nos prompts de disponibilidade)
- [ ] Não — os humanos que passam o número quando necessário
- [ ] Usar outra abordagem (escreva abaixo)
**Sua resposta alternativa:** _[preencha só se rejeitou]_
---
## 📝 Diffs completos (antes/depois)
### Arquivo: `_modelos/scenarios/jasmine_<unit>__disponibilidade_suites.md` (todos os 4)
**ANTES (linha existente):**
```
Se a ferramenta falhar, avise que teve instabilidade e peça um instante.
```
**DEPOIS:**
```
## ⚠️ Fallback quando `status_suites` falha ou não retorna
Se a ferramenta retornar erro OU não houver resultado após a chamada:
1. NÃO fique em silêncio. NÃO chame handoff.
2. Responda ao cliente imediatamente:
"Opa, tive uma instabilidade aqui e não consegui verificar em tempo real 😅
Para garantir disponibilidade agora, você pode:
- Me informar que quer reservar mesmo assim — eu registro a pré-reserva e a recepção confirma na chegada.
- Ou ligar direto: [número do hotel].
O que prefere?"
3. Se o cliente quiser prosseguir, roteie para daniela_reservas normalmente.
```
---
### Arquivo: `_modelos/scenarios/jasmine_<unit>__daniela_reservas.md` (todos os 4)
**ANTES:** *(seção de FAQ operacional não existe)*
**DEPOIS (adicionar antes das Proibições):**
```markdown
## ❓ FAQ operacional — responda direto, sem chamar handoff
| Pergunta do cliente | Resposta padrão |
|---|---|
| "Aceita cartão?" / "Passa cartão?" | "Sim! Aceitamos débito e crédito direto na chegada 😊 A pré-reserva online é via Pix (sinal de 50%)." |
| "Pode dividir?" / "Parcela?" | "Não fazemos parcelamento — mas você pode pagar o sinal agora via Pix e o restante em cartão ou dinheiro no check-in 😊" |
| "Pode trazer comida?" / "Pode levar bebida?" | "Pode sim, sem problema! 😊" |
| "A hidro já vem cheia?" / "Tem que encher a banheira?" | "A hidro fica pronta pra uso na sua chegada! Se quiser cheia de cara, é só avisar na recepção 😊" |
| "Os quartos são não fumantes?" | "Sim, todas as suítes são não fumantes 😊" |
| "Bebidas alcoólicas pode?" | "Pode sim! 😊" |
## 🔄 Reenvio de Pix — regra crítica
Se o cliente pedir "manda o Pix de novo", "reenvie o Pix", "não recebi o Pix":
- **NÃO** chame `generate_pix` novamente — cria nova reserva com valor possivelmente diferente.
- Responda: "Para reenviar o Pix da sua reserva existente, preciso da ajuda da equipe 😊 Um momento!" e chame `handoff`.
```
---
### Arquivo: `_modelos/scenarios/jasmine_<unit>__maria_fotos.md` (todos os 4)
**ANTES:** *(sem regra anti-duplicata)*
**DEPOIS (adicionar no final):**
```markdown
## ⛔ Regra anti-duplicata
- Chame `send_suite_images` **uma única vez** por categoria por turno.
- Nunca chame a mesma ferramenta duas vezes seguidas sem nova mensagem do cliente.
- Se a ferramenta retornar sucesso, não repita a chamada.
```
---
## ✅ Checklist de aprovação
Após revisar, marque suas decisões e responda às perguntas nos campos acima:
- [ ] Padrão 1 — Fallback de disponibilidade (Aprovado/Rejeitado)
- [ ] Padrão 2 — FAQ operacional básico (Aprovado/Rejeitado)
- [ ] Padrão 3 — Self-improvement leak (Ciente/Ação necessária)
- [ ] Padrão 4 — Pix reenvio com valor errado (Aprovado/Rejeitado)
- [ ] Padrão 5 — Fotos duplicadas (Aprovado/Rejeitado)
- [ ] Pergunta 1 — Disponibilidade pra hoje: opção A ou B?
- [ ] Pergunta 2 — Telefones nos prompts: sim ou não?

View File

@ -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_<unit>__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