Escada de Intervencao
Quando a pontuacao de um ciclista cai, o motor de intervencao percorre uma escada de 7 passos. Cada passo e graduado. Configuravel por subconta em Configuracoes > Regras da escada.
O kernel vive em src/lib/rider-score/intervention-engine.ts. O portao pre-desbloqueio e getActiveInterventionState() em src/app/api/mobile/rides/start/route.ts.
Navegacao
Edite limites em Painel > Pontuacao do Ciclista > Configuracoes > Regras da escada.
Os 7 passos
| Passo | Gatilho | Acao |
|---|---|---|
| 1 | Pontuacao rolante abaixo de 70 | Aviso in-app pos-viagem, sem atrito no proximo desbloqueio |
| 2 | 2 viagens consecutivas abaixo de 60 | Push de alerta mais guia "Como melhorar sua pontuacao" |
| 3 | Pontuacao abaixo de 50 OU nova violacao aberta | Forca quiz educacional de 5 perguntas antes do proximo desbloqueio |
| 4 | Pontuacao abaixo de 40 | Limite de acelerador em modo Iniciante na proxima viagem |
| 5 | Pontuacao abaixo de 30 | Aumento de 25% no preco nas proximas 10 viagens |
| 6 | Pontuacao abaixo de 20 OU 3 violacoes nao pagas | Bloqueio temporario de 7 dias |
| 7 | Passo 6 repete em 60 dias | Banimento permanente (requer revisao de ops) |
Passos 1-3 sao atrito sem impacto de desempenho. Passos 4-7 realmente restringem a viagem.
Como cada passo alcanca o ciclista
Passo 1 - Aviso in-app
Suave. Um banner aparece no detalhamento pos-viagem. Reconhecer limpa a intervencao.
Passo 2 - Push de alerta
Enviado pelo pipeline de push existente. Inclui link para o guia de melhoria.
Passo 3 - Quiz educacional
Antes do proximo desbloqueio, o ciclista deve passar em um quiz aleatorizado de 5 perguntas de um banco de 6. Opcoes embaralhadas. A chave de resposta e retornada como token HMAC-assinado para prevenir manipulacao. Passagem: 4 de 5.
Passo 4 - Limite de acelerador (Modo Iniciante)
Este passo alcanca o veiculo. Apos a criacao da viagem, o hook pos-inicio chama applyThrottleCapToVehicle() que chama src/lib/iot/disable-throttle.ts.
- OKAI, Segway, Omni 4G: alvos para limite parcial real quando comandos por OEM estao conectados. Hoje a implementacao recai em desativacao total como limite conservador.
- Veiculos sem suporte a comandos de acelerador pulam passo 4 e saltam para passo 5.
- O limite e removido automaticamente quando a proxima viagem termina.
Passo 5 - Aumento de preco
Aumento de 25% nas proximas 10 viagens. consumeUpliftForRide() decrementa o contador. O aumento e mostrado claramente no desbloqueio.
Passo 6 - Bloqueio temporario de 7 dias
Portao pre-desbloqueio. O ciclista ve tela de bloqueio com motivo e horario de expiracao. Inicio de viagem bloqueado na camada API (reason='temp_lockout').
Passo 7 - Banimento permanente
Mesmo portao do passo 6, sem expiracao automatica. Passo 7 so dispara se passo 6 disparou nos ultimos 60 dias para o mesmo ciclista. Atrasado por revisao manual de ops por padrao.
Portao pre-desbloqueio
Passos 3, 4, 6 e 7 todos bloqueiam no inicio da viagem:
getActiveInterventionState(customerId, subaccountId)
-> blocked: 'permanent_ban' | 'temp_lockout' | 'force_quiz_required'
-> throttleCap: { mode: 'beginner' } | null
-> upliftPct: 25 | null
Recursos pausam a escada
Apresentar recurso flipa a intervencao vinculada para status='paused_pending_appeal'.
- Aceito: pontuacao da viagem e sobrescrita, rolante recomputa, intervencao pode fechar.
- Rejeitado: intervencao reabre com matematica original de expiracao.
Trilha de auditoria
Cada intervencao escreve linha em score_audit_log.
Ajuste por subconta
Voce pode editar limites, contagem de viagens com aumento, duracao de bloqueio, janela de 60 dias. Voce nao pode remover um passo, mas pode efetivamente desativa-lo com limite impossivel.
O que o operador ve
- Painel > Pontuacao > Intervencoes: lista intervencoes ativas com botao "Levantar".
- Trilha de Auditoria: historia completa.
- Recursos: recursos pendentes ligados a intervencoes.
O que o ciclista ve
- O detalhamento pos-viagem mostra banner se nova intervencao foi aberta.
- A aba inicial mostra intervencoes ativas com descricao em linguagem clara.
- A tela pre-desbloqueio bloqueia o inicio de viagem em intervencoes duras.
Proximo
Veja Recursos e Contestacoes para lidar com a resistencia do ciclista.