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 чистый.
2026-09-20 08:33:30 +03:00
|
|
|
|
# Билет 1, вызов 1 (docs/spec/TICKETS.md). Ситуация и адрес — дословно из билета,
|
|
|
|
|
|
# факты и чек-лист выведены из ситуации: чего в строке нет, того звонящий не знает.
|
|
|
|
|
|
id: t01-1-fire-container
|
|
|
|
|
|
title: "Возгорание мусорного контейнера"
|
|
|
|
|
|
ticket: 1
|
|
|
|
|
|
position: 1
|
|
|
|
|
|
type: fire
|
|
|
|
|
|
level: L2
|
|
|
|
|
|
topics: [fires]
|
|
|
|
|
|
modes: [training, exam, self]
|
|
|
|
|
|
|
|
|
|
|
|
extends: checklists/fire.yaml
|
|
|
|
|
|
signs: [на улице, мусор, открытое пламя]
|
|
|
|
|
|
|
|
|
|
|
|
persona:
|
|
|
|
|
|
base: calm
|
|
|
|
|
|
arc:
|
|
|
|
|
|
- { stage: registration, mood: calm }
|
|
|
|
|
|
- { stage: interview, mood: calm }
|
|
|
|
|
|
|
|
|
|
|
|
first_line: "Здравствуйте. Тут мусорный контейнер горит, у депо."
|
|
|
|
|
|
|
|
|
|
|
|
facts:
|
|
|
|
|
|
- id: f_address
|
2026-09-26 18:12:27 +03:00
|
|
|
|
value: "Москва, Депо, около станции Москва-Пассажирская Киевская, длинное помещение недалеко от участкового пункта полиции"
|
|
|
|
|
|
refined: "Москва, Московская железная дорога, Киевская, 1 км, дом 2, строение 2"
|
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 чистый.
2026-09-20 08:33:30 +03:00
|
|
|
|
reveal_on: { question: q_address }
|
|
|
|
|
|
refine_on: q_address_check
|
|
|
|
|
|
- id: f_what_burns
|
|
|
|
|
|
value: "горит мусорный контейнер, пламя открытое"
|
|
|
|
|
|
reveal_on: { question: q_what_burns }
|
|
|
|
|
|
- id: f_people
|
2026-09-24 01:10:49 +03:00
|
|
|
|
value: пострадавших нет
|
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 чистый.
2026-09-20 08:33:30 +03:00
|
|
|
|
reveal_on: { question: q_people }
|
|
|
|
|
|
- id: f_caller
|
|
|
|
|
|
value: "Сидоров Иван Сергеевич, телефон 916-126-34-71"
|
|
|
|
|
|
reveal_on: { question: q_caller }
|
|
|
|
|
|
|
|
|
|
|
|
checklist:
|
|
|
|
|
|
- { id: q_address, fact: f_address }
|
|
|
|
|
|
- { id: q_address_check }
|
|
|
|
|
|
- { id: q_what_burns, fact: f_what_burns }
|
|
|
|
|
|
- { id: q_people, fact: f_people }
|
|
|
|
|
|
- { id: q_caller, fact: f_caller }
|
|
|
|
|
|
|
|
|
|
|
|
required_fields: [address, incident_type, description]
|
|
|
|
|
|
|
|
|
|
|
|
ground_truth:
|
2026-09-26 18:12:27 +03:00
|
|
|
|
address: "Москва, Московская железная дорога, Киевская, 1 км, дом 2, строение 2"
|
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 чистый.
2026-09-20 08:33:30 +03:00
|
|
|
|
victims: 0
|
|
|
|
|
|
|
|
|
|
|
|
tree:
|
|
|
|
|
|
pregenerated: false
|