Дашборд считал по активным (после версионирования) и показывал 75,3% — расходилось
с презентацией. Канон — по всем извлечённым.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- README: превью трейлера (клик → видео) на главной, 15 086 поз. / 76,1%,
обновлённый список возможностей API и фронта.
- PPTX (команда 107): демо-видео встроено в слайд «Демонстрация прототипа».
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- pitch/landing: дека для защиты (reveal) — хук, проблема, живое демо (видео),
решение, как работает, прогресс день 1→2→3 по рубрике и по ТЗ, фишки, бизнес.
- демо-видео (запись интерфейса) встроено на раннем слайде, отдаётся с /pitch.
- PPTX по официальному шаблону (команда 107): ресурсы, результаты, демонстрация.
- caddy: маршрут /pitch.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- POST /scan: сервис забирает новые прайсы из папки (настройка watch_folder),
журнал ingested_file исключает повторную обработку; вызывается кроном.
- GET /price-changes: услуги, где цена изменилась не меньше порога между прайсами
(детектор аномалий из ТЗ §4.4, вынесенный в интерфейс).
- GET /export.xlsx: единый сравнительный каталог услуг и цен (openpyxl).
- GET/POST /settings: папка авто-загрузки.
- админка: карточки авто-загрузки и изменений цен + кнопка экспорта.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- grid: колонки «Код …» и «№» исключены из кандидатов на колонку названий
(ключ «услуг» ловил «Код услуги») — клиника с 5181 строкой больше не даёт 0.
- vision: авто-добор PDF при пустом или подозрительно низком выходе строк/страницу,
замена недобора полным распознаванием, ретраи на лимиты, лимит размера документа.
- презентация статуса проекта на /day2; маршрут /day2 в Caddy.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>