lct-hack/scenarios/tickets/t02-3-car-in-water.yaml
Ivan Gerasimov 4c2bbfd021 feat: билеты 1–3 заказчика в библиотеку сценариев (lct-34, частично)
Девять вызовов из билетов учебного центра в scenarios/tickets/. Библиотека
стала вложенной: загрузчик ходит по подкаталогам, checklists/ и pregenerated/
сценариями не считаются. Поля ticket и position задаются вместе.

Написаны чек-листы, которых не было: medical, police, utility. Без них
переносить было не на что — в библиотеке существовал только пожарный.

Девять вызовов закрывают все приёмы, ради которых билеты и брались: адрес
по ориентиру, адрес из другого региона, линейный объект (съезд с МКАД),
непрофильный вызов, профильный но не экстренный, массовая драка, где список
оповещения поднимает и полицию, и скорую.

Подводный камень записан в SCENARIO-FORMAT: значения признаков ЕКП бывают
с запятыми («Человек в воде, на льдине»), и в короткой записи YAML разрывает
такое значение на два.

Осталось семь билетов — работа механическая, рецепт отработан на трёх.

161 тест зелёный.
2026-09-20 08:38:01 +03:00

54 lines
2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Билет 2, вызов 3 (docs/spec/TICKETS.md). Адрес — только ориентир на набережной:
# ни дома, ни улицы, и уточнять придётся по ориентирам.
id: t02-3-car-in-water
title: "Автомашина упала в воду"
ticket: 2
position: 3
type: other
level: L3
topics: [rescue, address]
modes: [training, exam, self]
extends: checklists/police.yaml
signs: ["Человек в воде, на льдине", "Падение автомашины в воду"]
persona:
base: panic
arc:
- { stage: registration, mood: panic }
- { stage: interview, mood: panic }
- { stage: dispatch, mood: worried }
first_line: "Машина в воду ушла! Прямо с набережной! Там человек внутри!"
facts:
- id: f_address
value: "набережная Яузы, в сторону области"
refined: "набережная Яузы, напротив Большого Нижнего пруда"
reveal_on: { question: q_address }
refine_on: q_address_check
- id: f_what_happened
value: "автомашина съехала с набережной и ушла под воду"
reveal_on: { question: q_what_happened }
- id: f_victims
value: "в машине был человек, наружу никто не выбрался"
reveal_on: { question: q_victims }
- id: f_caller
value: "Иванова Елена Сергеевна, телефон 916 896 3254"
reveal_on: { question: q_caller }
checklist:
- { id: q_address, fact: f_address }
- { id: q_address_check }
- { id: q_what_happened, fact: f_what_happened }
- { id: q_victims, fact: f_victims }
- { id: q_caller, fact: f_caller }
required_fields: [address, incident_type, description, victims_count]
ground_truth:
address: "набережная Яузы, напротив Большого Нижнего пруда"
victims: 1
tree:
pregenerated: false