# 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:** 4 bugs / 11 legítimas --- ## 📊 Conversas analisadas | Conv | Hotel | Contato | Problema | Legítima? | |---|---|---|---|---| | 4094 | Qnn01 | rf | [FERRAMENTAS] block vazado + categorias erradas 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 | | 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 | | 4238 | PrimeAL | Belzinha | Cardápio in-hotel (hóspede já no quarto) | ✅ Legítima | | 4258 | PrimeAL | Jr | Room service / café da manhã in-hotel | ✅ Legítima | | 4259 | Express | Estefani | Pedido de porções (hóspede in-hotel) | ✅ Legítima | | 4236, 4253, 4256, 4242, 4243, 4248 | PrimeAL/VL/Express | vários | Transfers noturnos (pós ~23h) — provavelmente business hours | ✅ Possivelmente legítima | | 4280 | PrimeAL | Érica | Imagens enviadas, VALERIA assumiu — não houve bug da IA | ✅ Legítima | --- ## 🔍 Padrões identificados ### Padrão 1: 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, 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: ``` IMPORTANTE: Você NUNCA deve enviar para o cliente o conteúdo de blocos internos do sistema como [Identidade], [FERRAMENTAS], [Informações outras unidades] ou qualquer marcador entre colchetes. Esses blocos são configuração interna e devem ser tratados como invisíveis ao cliente. Se sentir necessidade de citar uma regra interna, reformule naturalmente sem revelar o bloco. ``` - [ ] Aprovar - [ ] Rejeitar (motivo: _______) --- ### Padrão 2: 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 - [ ] Rejeitar (motivo: _______) --- ### Padrão 3: send_suite_images usa categorias do Prime no Qnn01 **Ocorrências:** 1 conversa — 4094 (Qnn01, rf) **Qual regra violou:** #10 — Tool `send_suite_images` EXIGE parâmetro correto **Comportamento errado:** Cliente pediu: "Manda foto da suite master" → IA respondeu: *"preciso que você me confirme a categoria dela, como por exemplo **Alexa, Stilo ou Spa-Hidromassagem**"*. Mas Alexa/Stilo são categorias do Prime, não do Qnn01. O Qnn01 tem: **Standard, Master, Pole Dance, Hidromassagem**. O cliente já havia dito "Master" — a IA deveria ter chamado `send_suite_images({suite_category: "Master"})` diretamente. Quando cliente insistiu em "Alexa e Stilo" (categorias que ele conhecia do Prime), a IA disse *"não temos fotos disponíveis das suítes Alexa e Stilo"* — correto nesse caso, mas o problema raiz é que a IA desconhece as categorias locais. **Deveria ser:** Reconhecer "Standard", "Master", "Pole Dance" e "Hidromassagem" como categorias válidas para `send_suite_images` no Qnn01 e chamar a tool diretamente quando o cliente nomear uma delas. **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 fotos 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. ``` - [ ] Aprovar - [ ] Rejeitar (motivo: _______) --- ### Padrão 4: 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. Ex: *"No momento estou com uma instabilidade para gerar o Pix automaticamente. Para confirmar sua reserva, você pode pagar o sinal de R$65 ao chegar, ou me diga se prefere tentar novamente."* **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 - [ ] Rejeitar (motivo: _______) --- ### Padrão 5: 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) - [ ] Rejeitar (motivo: _______) --- ## ❓ 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é) - [ ] Existe pernoite sem café — preço: R$______ - [ ] Usar outra (escreva abaixo) **Sua resposta alternativa:** _[preencha só se rejeitou]_ --- ### 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 — IA deve responder fora do horário comercial? **Conversas:** 4236, 4248, 4253, 4256, 4242, 4243 (entre 23h e 4h) **Contexto:** Nas unidades PrimeAL, PrimeVL e Express, qualquer mensagem recebida após ~22h-23h aciona transfer imediato. Em Qnn01, a IA continua respondendo normalmente a qualquer hora (veja 4114 às 22:12). **O que preciso saber:** Essa diferença de comportamento é intencional? A IA deveria continuar respondendo perguntas de preço/disponibilidade à noite mesmo sem humano disponível? **💡 Minha sugestão:** Manter a IA respondendo perguntas de informação (preço, disponibilidade) 24/7. Transferir para humano apenas quando for reserva que exige ação operacional (ex: check-in imediato, problema in-hotel). Isso garante que leads noturnos não se percam. **Sua escolha:** - [ ] Usar a sugestão (IA responde 24/7 no nível de info/preço) - [ ] Manter business hours — IA só responde das __h às __h - [ ] Usar outra (escreva abaixo) --- ## 📝 Diffs completos (antes/depois) ### Fix 1 — 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 2 — 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 3 — jasmine_qnn01: categorias válidas para send_suite_images **ANTES:** (provavelmente usando nomes genéricos ou herdando do Prime) **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: ""}) diretamente sem pedir confirmação. ``` --- ### Fix 4 — 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: - [ ] Padrão 1 — Blocos internos vazados — Aprovado - [ ] Padrão 2 — Promoção expirada Express — Aprovado - [ ] Padrão 3 — Categorias Qnn01 send_suite_images — Aprovado - [ ] Padrão 4 — Fallback Pix sem expor erro — Aprovado - [ ] Padrão 5 — IA interrompeu humano ativo — Aprovado (fix Chatwoot) - [ ] Pergunta 1 — Pernoite sem café Qnn01 — Respondida - [ ] Pergunta 2 — Preço Suite Master Qnn01 — Respondida - [ ] Pergunta 3 — Business hours PrimeAL/VL/Express — Respondida