iachat/db/seed_prompts
Rodribm10 9b8ef5a828 feat(captain): Dolce Amore como nova unidade + handoff silencioso PrimeAL/Dolce
Dolce Amore (Valentina, assistant 6):
- Novo assistant principal + 5 cenários (daniela_reservas, disponibilidade_suites,
  maria_fotos, outras_unidades, reclamacoes_ouvidoria) com tabela de preços
  motel-first (Apartamento, Master, Luxo, Temática, Mini Chalé 45, Chalé 2 Suítes,
  Chalé Master 4 Suítes, Suíte Ouro), regras Inter Pix, e tom adequado a motelaria.
- Cross-reference da Dolce nas 4 outras unidades (Express, PrimeAL, PrimeVL, Qnn01)
  no scenario outras_unidades, com aviso "use só se cliente perguntar por Natal".

Handoff silencioso PrimeAL + Dolce (Bianca + Valentina):
- Mensagem ÚNICA "Um momento." substitui as antigas frases robotizadas
  ("vou te encaminhar pra atendente local...").
- Nova regra "ROTEIE PRO CENÁRIO PRIMEIRO": orquestradora deve sempre tentar
  rotear pra cenário (handoff_to_daniela_reservas, handoff_to_maria_fotos, etc)
  antes de considerar handoff humano.
- Nova regra "NA DÚVIDA, TRANSFERE": após descartar todos os 6 cenários, se a
  pergunta não cabe em nenhum deles, handoff silencioso pra humano.
- Proibição explícita de mencionar nomes de cenário (Daniela, Maria) pro cliente.
- maria_fotos: REGRA #0 — se foto pedida não está na galeria (numeração inexistente,
  característica fora do mapa, área não-suíte), responde "Um momento." + handoff
  em vez de oferecer alternativa.
- daniela_reservas: novo gatilho de handoff "pergunta sobre reserva fora do prompt".

Rollback documentado em docs/captain/rollbacks/2026-05-01_handoff_silencioso.md
com snapshot completo dos prompts ANTES da mudança em prompts_snapshot.json,
permitindo reversão via update_columns.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 11:22:08 -03:00
..
_modelos feat(captain): Dolce Amore como nova unidade + handoff silencioso PrimeAL/Dolce 2026-05-01 11:22:08 -03:00
_producao_atual chore(prompts): reorganiza pastas (_prod_snapshot→_producao_atual, _staging_current→_modelos) e prefixa arquivos por unidade 2026-04-23 09:17:33 -03:00
target chore(prompts): split prod snapshot from staging from target 2026-04-22 11:31:42 -03:00
jasmine_orchestrator.md fix(captain): route embeddings to legacy OpenAI + retry transient errors 2026-04-22 17:42:31 -03:00
README.md chore(captain): ajustes de unit + migration + schema + seed README 2026-05-01 11:21:38 -03:00

Captain — prompts versionados

Todo prompt da Jasmine (orchestrator) e dos cenários (Daniela, Maria, Disponibilidade, etc) vive em arquivos .md aqui. O DB é só espelho.

Estrutura

db/seed_prompts/
├── README.md                  ← você está aqui
│
├── _producao_atual/           ← prompts rodando em produção HOJE (com defeitos)
│   │                            extraído de iachat_production em 2026-04-22
│   ├── assistants/  (4 Jasmines: qnn01, primeal, primevl, express)
│   └── scenarios/   (12 cenários, 3 por assistente)
│
├── _modelos/                  ← versões REVISADAS que vão virar a nova produção
│   │                            (o que Rodrigo e Claude testaram no staging,
│   │                             SEMPRE prefixado por unidade: jasmine_<slug>__)
│   ├── assistants/  (ex: jasmine_primeal.md — só PrimeAL validado até agora)
│   └── scenarios/   (ex: jasmine_primeal__daniela_reservas.md)
│
└── target/                    ← APLICADO no DB pela migration de seed
    ├── assistants/
    └── scenarios/

Regra simples

  • _producao_atual/ = só referência do que tá em prod hoje. Não é aplicado.
  • _modelos/ = só referência dos modelos revisados. Não é aplicado.
  • target/ = source of truth. A migration sincroniza isso no DB.

Arquivos vazios em target/ = a migration não toca aquele prompt. Útil pra deployar mudanças seletivas (ex: subir só Daniela melhorada sem mexer na Jasmine de cada unidade).

Workflow de revisão (o que estamos fazendo agora)

Pra cada prompt:

  1. Olhar _producao_atual/X.md (o que tá em prod hoje)
  2. Olhar _modelos/X.md (se existir — versão revisada)
  3. Decidir o conteúdo final: pode ser igual ao modelo, igual ao prod ou novo. Salvar em target/X.md.
  4. Quando todos os prompts revisados estiverem em target/, mergear pra main e deployar — a migration aplica em prod.

Convenção de nomes

Os nomes batem com name/title no banco:

Slug do arquivo Captain::Assistant#name
jasmine_qnn01 Jasmine( Qnn01)
jasmine_primeal Jasmine(PrimeAL)
jasmine_primevl Jasmine(PrimeVL)
jasmine_express Jasmine (Express)
jasmine_dolce_amore Jasmine(DolceAmore)
Slug do cenário Captain::Scenario#title
daniela_reservas Daniela_Reservas
disponibilidade_suites Disponibilidade de suites
maria_fotos maria_fotos
outras_unidades outras_unidades
reclamacoes_ouvidoria Reclamacoes_Ouvidoria

Convenção em _modelos/ — SEMPRE prefixado por unidade

Cada arquivo em _modelos/ representa UMA unidade específica, nunca genérico:

  • _modelos/assistants/jasmine_primeal.md → Jasmine do PrimeAL
  • _modelos/assistants/jasmine_qnn01.md → Jasmine do Qnn01 (quando criado)
  • _modelos/scenarios/jasmine_primeal__daniela_reservas.md → Daniela do PrimeAL
  • _modelos/scenarios/jasmine_qnn01__daniela_reservas.md → Daniela do Qnn01

A migration aplica qualquer arquivo sem prefixo em target/scenarios/ como genérico (todas as unidades); com prefixo <assistant_slug>__ aplica só naquela unidade, sobrescrevendo o genérico se os dois existirem.

Estado atual da revisão

Em revisão. target/ está vazio. Nada será aplicado em prod até preenchermos os arquivos lá.

Unidades com modelo validado:

  • PrimeAL (testado em staging 2026-04-23)
  • Qnn01
  • PrimeVL
  • Express
  • Dolce Amore (criado 2026-04-27 — primeira unidade fora do 1001 Noites; marca distinta, motel-first em Natal/RN; não testado em staging ainda)