# ClientFlow v4.8.3 — Operations Card Simplification & Opportunity Guardrails

Esta versão fecha o ciclo de estabilização operacional após a v4.8.2. O foco é reduzir ruído em `/operations` e impedir que mensagens sem intenção comercial criem oportunidades falsas.

## Objetivos

- Tornar os cards de Operations mais leves para o operador.
- Nunca mostrar `contact_id` do Chatwoot como se fosse cliente fiscal.
- Mostrar bloqueios apenas quando bloqueiam a próxima ação da jornada.
- Criar oportunidades apenas quando existe intenção comercial real.
- Evitar oportunidades para bounces, spam, Mail Delivery Subsystem, unsubscribe e revisão falhada.

## Regras de criação de oportunidade

Criar oportunidade automaticamente apenas para ações comerciais claras, como:

- `SEND_QUOTE`
- `SEND_PROFORMA`
- `SEND_INVOICE`
- `CONFIRM_PAYMENT`
- `PREPARE_ORDER`
- `CREATE_SHIPMENT`

`SEND_INFO` só cria oportunidade se houver intenção comercial explícita no assunto/corpo/nota, como orçamento, cotação, preço, comprar, encomendar, pró-forma, fatura ou pagamento.

Nunca cria oportunidade para:

- `REVIEW_MANUALLY`
- `REMOVE_FROM_LIST`
- `IGNORE_SPAM`
- `NO_ACTION`
- `SUPPORT`
- `MARK_NO_INTEREST` sem oportunidade existente
- Mail Delivery Subsystem / mailer-daemon / postmaster
- returned mail / undelivered mail / delivery status notification

## Bloqueios por fase da jornada

`Cliente fiscal por associar` só aparece como bloqueio quando a próxima ação exige dados fiscais, documento, pagamento ou envio.

Não aparece como bloqueio em fases iniciais como:

- rever mensagem
- responder informação simples
- suporte simples
- marketing/remover da lista
- mensagem automática/bounce

## Cards de Operations

O card principal passa a mostrar apenas:

- título simples
- contexto curto
- próxima ação
- bloqueio atual, se existir
- botões principais

Campos técnicos foram movidos para `Ver detalhes`:

- fila
- estado
- origem
- contacto Chatwoot
- cliente fiscal quando existir ou for necessário

## Limpeza de oportunidades antigas

Foi adicionado script conservador:

```bash
python scripts/cleanup_non_commercial_opportunities.py --limit 100
```

Por defeito é dry-run. Para aplicar:

```bash
python scripts/cleanup_non_commercial_opportunities.py --apply
```

Só fecha oportunidades abertas com valor 0, sem documentos comerciais e sem envios, que parecem ter sido criadas por mensagens automáticas/bounce.

## Sem migração

Esta versão não cria tabelas nem exige migração de base de dados.
