feat: все 96 вызовов из билетов заказчика в библиотеке (lct-34)

Перенесены все 32 билета учебного центра, по три вызова в каждом. Это тот
материал, по которому заказчик учит операторов сегодня, — библиотека больше
не состоит из придуманных нами ситуаций.

Состав: медицина 23, пожары 19, полиция 16, ЖКХ 5, прочее 33. Исходы:
карточка 86, передача в другой регион 8, справка 2. С уточнением адреса —
29 вызовов. Уровни L1/L2/L3 — 11/38/47.

Написаны чек-листы, которых не было: medical, police, utility.

Признаки ЕКП подбирались под каждый вызов и проверены загрузчиком: комбинация,
которой нет в классификаторе, роняет загрузку. Несколько раз это и случилось,
и ошибка называла, чего не хватает.

Эталонных ответов в сценариях намеренно нет: в билетах их нет тоже, их знает
преподаватель, а наш эталон выводится кодом из фактов. Факты каждого вызова —
ровно то, что названо в строке билета.

193 теста зелёных, make seed заливает 97 сценариев.
This commit is contained in:
Ivan Gerasimov 2026-09-20 09:32:56 +03:00
commit 9b74e3e524
87 changed files with 4652 additions and 0 deletions

View file

@ -0,0 +1,57 @@
# Билет 8, вызов 1 (docs/spec/TICKETS.md). Ситуация и адрес — из билета,
# факты выведены из ситуации: чего в строке нет, того звонящий не знает.
id: t08-1-mall-smoke
title: Задымление в торговом центре
ticket: 8
position: 1
type: fire
level: L3
topics: [fire]
modes: [training, exam, self]
extends: checklists/fire.yaml
signs: [объект, прочие объекты, дым]
persona:
base: worried
arc:
- { stage: registration, mood: worried }
- { stage: interview, mood: worried }
first_line: "У нас в торговом центре дымом тянет, с минус первого этажа!"
facts:
- id: f_address
value: "станция метро Пражская, торговый центр «Электронный рай»"
refined: "улица Кировоградская, дом 15"
reveal_on: { question: q_address }
refine_on: q_address_check
- id: f_what_burns
value: "задымление на минус первом этаже, источник не установлен"
reveal_on: { question: q_what_burns }
- id: f_people
value: "о пострадавших точной информации нет, людей выводят"
reveal_on: { question: q_people }
- id: f_smoke
value: "дым идёт по нижнему этажу, на торговых этажах пока чисто"
reveal_on: { question: q_smoke }
- id: f_caller
value: "Ивлев Артём Олегович, работник мебельного магазина, телефон 916-123-98-78"
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_smoke, fact: f_smoke }
- { id: q_caller, fact: f_caller }
required_fields: [address, incident_type, description]
ground_truth:
address: "улица Кировоградская, дом 15"
victims: 0
tree:
pregenerated: false