iachat/docs/captain/historico_fixes.md
Rodribm10 ffeb1aa65a docs(captain): histórico de fixes pra evitar retrabalho do Reviewer
Cria docs/captain/historico_fixes.md com registro estruturado (YAML) das
correções aplicadas nos prompts/infra do Captain. Pré-popula com os 2 fixes
de hoje (v99 - preços Express/Qnn01 + sync automático; v100 - comportamento
humano + valores curto).

Pra que serve:
- Auditoria humana (saber o que mudou quando e por quê)
- Defesa contra Captain Reviewer redescobrir bug já corrigido (comparar
  data da conversa-fonte com data do fix correspondente)
- Base pra eventual Nível 3 do Reviewer (filtrar conversas anteriores ao
  último commit em _modelos/ via git log)

Não muda comportamento da Jasmine — é doc + infra passiva.
2026-04-25 17:13:35 -03:00

5.5 KiB

Histórico de Fixes — Captain (Jasmines)

Registro cronológico das correções aplicadas nos prompts e infra do Captain (assistants Jasmine + cenários daniela_reservas, disponibilidade_suites, maria_fotos, outras_unidades, reclamacoes_ouvidoria).

Pra que serve

  • Auditoria humana — saber "o que mudou quando e por quê" sem precisar abrir 10 commits
  • Evitar retrabalho — antes de propor mudança nova, conferir se o problema já tem fix aplicado
  • Defesa contra Captain Reviewer "burro de memória" — quando o Reviewer abrir issue nova baseado em conversa antiga, comparar o created_at da conversa com a data do fix correspondente: se a conversa é anterior ao fix, o problema já está tratado
  • Base pra automatizar Nível 3 do Reviewer — eventualmente o prompt do Reviewer pode ler este arquivo e filtrar conversas anteriores ao último fix relevante (ou usar git log direto, que é equivalente)

Como ler

Cada fix é um bloco YAML no ## Fix N com os campos:

Campo Descrição
fix_id Slug único do fix (kebab-case + data)
data ISO 8601 com timezone — momento do deploy em prod, não do commit
commit Hash curto do commit no repo
deploy Tag da imagem em prod (ex: v100)
escopo Lista de unidades afetadas (primeal, primevl, qnn01, express, dolce_amore, ou todas)
cenarios_afetados Lista de cenários (daniela_reservas, maria_fotos, etc) ou infra se for código
problemas_corrigidos Lista em linguagem natural — chave pra dedup contra Reviewer
conversas_de_origem IDs de conversas que serviram como evidência do bug
keywords Termos curtos pra busca rápida
status aplicado (em prod) / revertido / superseded_por: <fix_id>

Como adicionar fix novo

Quando aplicar correção que afeta comportamento da Jasmine, adiciona um ## Fix N+1 no fim do arquivo seguindo o template do último. Mantém ordem cronológica (mais novo no fim).


Fix 1 — v99 (preços corretos Express/Qnn01 + sync automático)

fix_id: precos-express-qnn01-sync-2026-04-25
data: 2026-04-25T10:38-03:00
commit: fc2663be2
deploy: v99
escopo: [express, qnn01]
cenarios_afetados: [daniela_reservas, disponibilidade_suites, maria_fotos]
infra:
  - rake_task: lib/tasks/captain_prompts.rake (nova) — captain:sync_prompts lê _modelos/ e atualiza DB
  - service_args: iachat_iachat_app args mudados pra "sh -c 'captain:sync_prompts && rails s'"
  - docs: docs/precos/ (tabelas oficiais por marca, consulta humana)
problemas_corrigidos:
  - Express não tinha Suítes Singles, Família, Singles Duplo no prompt
  - Express Master qui-dom estava como 4h R$85; correto é 5h R$85
  - Qnn01 prompt usava nome "Master" (correto é "Luxo")
  - Qnn01 listava "Pole Dance" e "12h" (não existem na unidade)
  - Qnn01 Hidromassagem em 2 tabelas duplicadas (correto é tabela única "todos os dias")
  - Drift histórico git → DB (resolvido estruturalmente: sync automático em todo deploy)
conversas_de_origem: [4565, 4536, 4521, 4513, 4519, 4514, 4497, 4505, 4453, 4366, 4412, 4411, 4400, 4402, 4378, 4376, 4365, 4372, 4267, 4258, 4248, 4224, 4216, 4259, 4218]
keywords: [tabela qui-dom ausente, master luxo, pole dance qnn01, 12h, singles familia, sync manual docker cp]
status: aplicado
notas: |
  Origem: Captain Review 2026-04-25 (issue ROD-14). Reviewer detectou padrões de bug REAIS no
  período 22-25/04, mas no momento da execução o prompt do PrimeAL/PrimeVL já tinha sido
  corrigido em sessão anterior (sync manual em 24/04). Express e Qnn01 ainda estavam com bugs
  e foram corrigidos neste fix. Bonus: passou a sincronizar git → DB automaticamente em todo
  deploy via captain:sync_prompts no boot do iachat_iachat_app.  

Fix 2 — v100 (comportamento humano + valores curto)

fix_id: comportamento-humano-valores-curto-2026-04-25
data: 2026-04-25T13:59-03:00
commit: 6eb7f99ea
deploy: v100
escopo: [primeal, primevl, qnn01, express]
cenarios_afetados: [daniela_reservas]
problemas_corrigidos:
  - Jasmine alucinava "não tenho a tabela exata por horas aqui neste momento" (delata IA)
  - Jasmine pedia "qual dia?" quando cliente perguntou só "valor"/"valores" (deveria mostrar tabela completa direto)
  - Jasmine mencionava "tabela qui-dom/feriado" na resposta ao cliente (nome interno escapando)
  - Falta de regra explícita pra "se comportar como humana — não delatar que é IA"
  - Falta de proibições contra frases-trigger de IA ("vou consultar", "deixa eu olhar", "preciso verificar")
conversas_de_origem: [4498]  # Rayssa Lorranny / Jasmine PrimeAL / 2026-04-25 12:44
keywords: [comportamento humano, robô exposto, IA delatada, valores curto, tabela qui-dom na resposta, pergunta com pergunta]
status: aplicado
notas: |
  Origem: Rodrigo enviou print de conversa real Rayssa Lorranny / Jasmine PrimeAL (25/04 12:44)
  com 3 problemas concretos. Decisão: aplicar nas 4 unidades porque é problema COMPORTAMENTAL,
  não específico de marca (per memória feedback_prompt_scope_by_brand: "comportamento global,
  preços por marca"). Mudanças aplicadas em 4 daniela_reservas:
    1. Nova seção 🤖➡️👤 SE COMPORTE COMO HUMANA no topo (frases proibidas + exemplos humanos)
    2. Nova REGRA DE OURO — VALORES CURTO antes da seção B (cliente pergunta só preço sem
       especificar → manda tabela completa direto, nunca pergunta dia primeiro)
    3. 3 proibições novas em 🚫 Proibições (não dizer que não tem tabela, não mencionar
       "tabela qui-dom" na resposta, não responder pergunta com pergunta)