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.