• Моргунов Александр Сергеевич's avatar
    docs: описание решения, допущения, датасет и инструменты
    · a27755ca
    Блок 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