# Anti-fraud сценарии

Документ фиксирует обязательные спорные кейсы для published `weighbridge` пакета.

## 1. Scope

- цель: зафиксировать обязательные anti-fraud кейсы для `zero-operator` цикла;
- outcome: каждый кейс либо автоматически завершается по каноническому правилу, либо переводится в `manual_review` с evidence bundle.

## 2. Сценарии

### AF-01. Подмена номера между фазами

- сигнал: `vehicle_plate` или ANPR result не совпадает между `tare` и `gross`;
- ожидаемое поведение: карточка уходит в `manual_review`, а alarm фиксируется как `weighbridge_anpr_mismatch`.

### AF-02. Повторный въезд в той же фазе

- сигнал: новый `detect` приходит для уже открытой карточки с тем же `lane_id`, plate и активной фазой;
- ожидаемое поведение: runtime переиспользует существующий `session_id`, публикует duplicate condition и не создает вторую карточку.

### AF-03. Попытка automatic close без `cargo_top(gross)`

- сигнал: две фазы записаны, но обязательный gross evidence отсутствует или не имеет валидного `storage_ref`;
- ожидаемое поведение: попытка автоматически завершить цикл деградирует в `manual_review`, причина фиксируется как `missing_required_media`.

### AF-04. Переезд между lane без re-arbitration

- сигнал: `tare_lane_id != gross_lane_id` и нет подтвержденного lane handover;
- ожидаемое поведение: автоматическое закрытие блокируется, interlock остается в safe-state до разбирательства.

### AF-05. Несогласованный leader/peer failover

- сигнал: обе панели одновременно пытаются довести одну карточку до close;
- ожидаемое поведение: authoritative source определяется по последнему подтвержденному `correlation_id`, а второй close остается идемпотентным.

### AF-06. Identity override без трассировки

- сигнал: `trip_reference`, `cargo_reference` или `vehicle_plate` изменены вручную без источника `qr|rfid|manual_override`;
- ожидаемое поведение: карточка не проходит handover-ready acceptance и остается в `manual_review`.

## 3. Обязательный evidence bundle

- session snapshot с `lane_id`, `direction`, `session_leader`, `peer_panel`;
- ANPR и identity payload, если они участвовали в решении;
- минимум один `cargo_top` gross кадр или явная причина его отсутствия;
- alarm list, `offline_queue` snapshot и trace по interlock;
- `review_reason` или `close_reason`.
