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,55 @@
# Билет 27, вызов 3 (docs/spec/TICKETS.md). Ситуация и адрес — из билета,
# факты выведены из ситуации: чего в строке нет, того звонящий не знает.
id: t27-3-wall-crack
title: Отлетела плитка и треснула стена — непрофильный вызов
ticket: 27
position: 3
type: gkh
level: L3
topics: [nonprofile]
modes: [training, exam, self]
extends: checklists/utility.yaml
signs: [Справка консультация, 101 102 103 104 112 прочие службы, В части касающейся службы]
outcome: consultation
persona:
base: worried
arc:
- { stage: registration, mood: worried }
- { stage: interview, mood: worried }
first_line: "Соседи ремонт делают, а у меня в ванной плитка отвалилась и трещина пошла."
facts:
- id: f_address
value: "Ленинский проспект, дом 57, квартира 28, подъезд 1, этаж 5, код 57В"
reveal_on: { question: q_address }
- id: f_what_happened
value: "со стены в ванной отлетела плитка, образовалась трещина около метра в длину"
reveal_on: { question: q_what_happened }
- id: f_scale
value: "трещина одна, стена стоит, вода не течёт"
reveal_on: { question: q_scale }
- id: f_threat
value: "пострадавших нет, угрозы нет"
reveal_on: { question: q_threat }
- id: f_caller
value: "Селезнёва Наталья Петровна, телефон 903-226-13-83"
reveal_on: { question: q_caller }
checklist:
- { id: q_address, fact: f_address }
- { id: q_what_happened, fact: f_what_happened }
- { id: q_scale, fact: f_scale }
- { id: q_threat, fact: f_threat }
- { id: q_caller, fact: f_caller }
required_fields: []
ground_truth:
address: "Ленинский проспект, дом 57, квартира 28"
victims: 0
tree:
pregenerated: false