-
Моргунов Александр Сергеевич создал
Блок 1, пункт 1.9. §5 ТЗ требует пять артефактов, в репозитории был один — README, и тот устарел. Четыре новых документа. Разделение такое: CLAUDE.md остаётся картой кода для агентов, а для человека — solver.md (алгоритм по шагам), assumptions.md (допущения как решения с ценой), dataset.md (тестовый набор и единицы измерения), tools.md (ПО, лицензии, ИИ-инструменты — прямое требование заказчика). В README добавлена таблица соответствия ТЗ: пять пунктов задания против файлов, где они реализованы, и проверок, которыми это подтверждается. Такой таблицы не было нигде, а жюри читает её первой. Быстрый старт в README не работал как написан: не было ни одного шага с сидом (то есть пустая база и невозможность войти), не было воркера решателя (без него задачи вечно висят в queued), а docker compose up -d поднимал весь стенд вместо БД с Valhalla. Плюс curl /cities — роута нет со времён перехода на округа, и примеры FSD ссылались на entities/city. Починен путь «запуск одной командой», на который README ссылается первым: - docker-compose.yml: migrate выполнял seed:data — мёртвый сид под схему с городами и заказчиками; - apps/api/Dockerfile: data/ не попадала в образ, поэтому seed:tz упал бы внутри контейнера — он читает выгрузку из data/etl и data/processed; - docs/jury.md описывал несуществующий стенд: 24 заявки в Москве, Тверь, 7 инженеров, расчёт «~10 с» и учётки moscow@fsm.ru. Аудит документации нашёл в моих же текстах десяток расхождений с кодом, все исправлены. Из заметных: utilizationPct не считает попадание в окно (это делает только slaPct); PostGIS под GPL-2.0-or-later, а не LGPL; ESLint в проекте нет вовсе; «восемь заявок за городом» — это восемь аварий, а заявок девятнадцать; два разных замера аварий (по трём округам и по Юго-востоку) были смешаны в один абзац; смоук b2 не проверяет окна и оборудование, это делает check:plan.
a27755ca