feat: исход вызова — не каждый звонок заканчивается карточкой (lct-36)
Весь продукт стоял на допущении «звонок → карточка → выезд». В билетах заказчика оно нарушается намеренно: «поругался с продавцом Мегафон» — справка, а вызов из Волгоградской области передаётся в систему-112 другого субъекта. Курсант, заведший карточку на такой вызов, занял расчёт зря, и прежняя оценка этого не видела — наоборот, награждала за полноту заполнения. - Outcome в домене, поле outcome в сценарии, событие call.resolve у курсанта и две кнопки на АРМ. Отдельное действие, а не «положил трубку»: система должна отличить осознанное решение от брошенного вызова. - Метрика outcome (E2, вес 3 — лишний выезд дороже неточного признака). - Там, где карточка не заводится, метрики карточки не считаются вовсе. Полнота опроса считается: передать вызов не значит не опрашивать. - call.resolve останавливает норматив опроса, как и передача карточки. Попутно (lct-34): библиотека стала вложенной — scenarios/tickets/, поля ticket и position, чек-листы для медицины, полиции и ЖКХ. Перенесён билет 1 целиком: три вызова, три классификатора, третий — из другого региона. Найдено по ходу: модификаторы списка оповещения не были подключены ни к чему. В классификаторе скорая добавляется к массовой драке признаком «пострадавшие», но взять его было неоткуда. Теперь модификаторы берутся из карточки — victims_count, life_threat, evacuation_needed, fire.gasified, — и список оповещения пересобирается при правке любого из этих полей. 161 тест зелёный (13 новых), make typecheck чистый.
This commit is contained in:
parent
d4f0d0a0f8
commit
b8dc39fd7d
22 changed files with 628 additions and 9 deletions
26
scenarios/checklists/police.yaml
Normal file
26
scenarios/checklists/police.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Чек-лист по классификатору 02 — полиция.
|
||||
# Методика: docs/product/METHODOLOGY.md#чек-листы-опроса
|
||||
id: police
|
||||
dds: "02"
|
||||
checklist:
|
||||
- id: q_address
|
||||
question: "Назовите адрес или ориентир, где это происходит?"
|
||||
examples: ["Где это происходит?", "Какой адрес?", "Улица, дом?", "Куда наряду подъехать?"]
|
||||
- id: q_what_happened
|
||||
question: "Что именно происходит?"
|
||||
examples: ["Что случилось?", "Что произошло?", "Опишите, что вы видите"]
|
||||
- id: q_victims
|
||||
question: "Есть ли пострадавшие, нужна ли скорая?"
|
||||
examples: ["Пострадавшие есть?", "Скорая нужна?", "Кто-то ранен?", "Кровь есть?"]
|
||||
- id: q_suspects
|
||||
question: "Сколько нарушителей, как выглядят, есть ли оружие?"
|
||||
examples: ["Сколько их?", "Как они выглядят?", "Оружие есть?", "Во что одеты?", "Чем дерутся?"]
|
||||
- id: q_fled
|
||||
question: "Нарушители на месте или скрылись, в какую сторону?"
|
||||
examples: ["Они ещё там?", "Куда скрылись?", "В какую сторону уехали?", "Они на месте?"]
|
||||
- id: q_vehicle
|
||||
question: "Если есть транспорт: марка, цвет, номер?"
|
||||
examples: ["Какая машина?", "Номер запомнили?", "Цвет машины?", "Марка автомобиля?"]
|
||||
- id: q_caller
|
||||
question: "Представьтесь и оставьте контактный телефон"
|
||||
examples: ["Как вас зовут?", "Ваш номер телефона?", "Вы это сами видели?"]
|
||||
Loading…
Reference in a new issue