- Add exact references to official specification (page/section/line) in INPUT_INFO_ANALYSIS.md - Fix last hardcoded min dimensions in SceneLabels3D.tsx (10×10×10 → dynamic from DIMENSION_LIMITS) - Fix hardcoded roundness threshold in Item3D.tsx (0.8 → dynamic from DIMENSION_LIMITS) - Update THREE_D_FEASIBILITY.md checklist to reflect current parameters (10×10×2, K≥0.7) Source of truth confirmed: - Min dimensions: 10×10×2 mm (Постановка_Задача_3_сжато_2.pdf, стр. 2/17, строка 81) - Roundness threshold: K ≥ 0.7 (Постановка_Задача_3_сжато_2.pdf, стр. 7/17, строка 245) - Max dimensions: 450×320×320 mm (Постановка_Задача_3_сжато_2.pdf, стр. 2/17, строка 82) - Conveyor speed: 1.0 м/с (Постановка_Задача_3_сжато_2.pdf, стр. 4/17, строка 188) Tested: build OK, tests 16/16 passed, Docker OK, domains OK, smoke test OK
479 lines
25 KiB
Markdown
479 lines
25 KiB
Markdown
# INPUT_INFO_ANALYSIS
|
||
|
||
Анализ материалов из папки `input_info` для приведения проекта в соответствие с официальной постановкой задачи OZON Tech Track 3.
|
||
|
||
## 1. Что найдено в input_info
|
||
|
||
| Путь файла | Тип | Содержит | Важность | Как использовать |
|
||
|------------|-----|----------|----------|------------------|
|
||
| `doc-1783009063.pdf` | PDF | Перечень допустимого ПО | Средняя | Подтверждение стека (React, Docker, open-source инструменты) |
|
||
| `doc-1783009942.pdf` | PDF | Схема рабочей зоны с размерами | Высокая | Размеры зон A/B/C/D, ролл-кейджей; добавить в документацию |
|
||
| `doc-1783011400.pdf` | PDF | Критерии оценки Track 3 | **Критическая** | Матрица баллов, детальные требования к презентации/УГТ/корректности |
|
||
| `extracted/Постановка_Задача_3_сжато_2.pdf` | PDF | Полная постановка задачи (17 стр) | **Критическая** | Официальные параметры классификации, правила, глоссарий, требования к сдаче |
|
||
| `doc-1782987706.zip` → `Step/*.stp` | STEP | 11 3D-моделей товаров | Высокая | Тестовый набор для проверки классификации |
|
||
| `doc-1782987733.zip` → `Stl/*.stl` | STL | 11 3D-моделей товаров (дубликат) | Средняя | Альтернативный формат моделей для симуляций |
|
||
| `ozone-tech_owl_prime_170-main.zip` | ZIP | Пустой README.md | Низкая | Не содержит полезных материалов |
|
||
|
||
**Тестовый набор товаров (STEP/STL):**
|
||
1. Бутылка
|
||
2. Короб 300×200×200
|
||
3. Короб 400×400×300
|
||
4. ЛанчБокс
|
||
5. Мешок
|
||
6. Моющее средство
|
||
7. Пуфик
|
||
8. Ручка
|
||
9. Тарелка
|
||
10. Цилиндр
|
||
11. Шлем
|
||
|
||
## 2. Ключевые требования из input_info
|
||
|
||
### 2.1. Параметры классификации (КРИТИЧЕСКИЕ ИСПРАВЛЕНИЯ)
|
||
|
||
Из `Постановка_Задача_3_сжато_2.pdf`:
|
||
|
||
#### Минимальные габариты:
|
||
- **Официально:** 10×10×**2 мм**
|
||
- **Источник:** `Постановка_Задача_3_сжато_2.pdf`, стр. 2/17, раздел "Термины задачи", строка 81
|
||
- **Цитата:** "его габариты больше минимально допустимых 10 × 10 × 2 мм"
|
||
- **В текущем коде:** 10×10×**10 мм** ❌ → **ИСПРАВЛЕНО** ✅
|
||
|
||
#### Максимальные габариты:
|
||
- **Официально:** 450×320×320 мм
|
||
- **Источник:** `Постановка_Задача_3_сжато_2.pdf`, стр. 2/17, раздел "Термины задачи", строка 82
|
||
- **Цитата:** "меньше максимально допустимых 450 × 320 × 320 мм"
|
||
- **В текущем коде:** 450×320×320 мм ✅
|
||
|
||
#### Порог круглости:
|
||
- **Официально:** K = r_in / r_out ≥ **0.7**
|
||
- **Источник:** `Постановка_Задача_3_сжато_2.pdf`, стр. 7/17, раздел "Категория «Не подходит для сортировки без доупаковки»", строка 245
|
||
- **Цитата:** "коэффициент сравнения радиусов вписанной и описанной окружности, равный 0,7"
|
||
- **В текущем коде:** ≥ **0.8** ❌ → **ИСПРАВЛЕНО** ✅
|
||
|
||
#### Скорость конвейера:
|
||
- **Официально:** 1.0 м/с
|
||
- **Источник:** `Постановка_Задача_3_сжато_2.pdf`, стр. 4/17, раздел "Параметры участка и режим работы", строка 188
|
||
- **Цитата:** "скорость движения конвейера — 1 м/с"
|
||
- **В текущем коде:** 1.0 м/с ✅
|
||
|
||
### 2.2. Правила классификации
|
||
|
||
**Категория B "Подходит для сортировки":**
|
||
- Габариты: 10×10×**2** мм ≤ размеры ≤ 450×320×320 мм
|
||
- НЕТ круга в сечении (K < 0.7)
|
||
|
||
**Категория C "Не подходит по габаритам":**
|
||
- Размеры < 10×10×**2** мм ИЛИ > 450×320×320 мм
|
||
- **C имеет приоритет над D** (проверка габаритов идёт первой)
|
||
|
||
**Категория D "Не подходит без доупаковки":**
|
||
- Габариты проходят
|
||
- Есть круг в сечении (K ≥ 0.7)
|
||
|
||
**Порядок проверки:**
|
||
1. Сначала габариты → если не прошли, категория **C**
|
||
2. Затем форма → если круг, категория **D**
|
||
3. Иначе категория **B**
|
||
|
||
### 2.3. Схема участка (из doc-1783009942.pdf)
|
||
|
||
- **Рабочая зона:** 6000×10000 мм (фиксированная)
|
||
- **A (подача):** конвейерная линия 500×700 мм (фикс)
|
||
- **B (основной сортировщик):** конвейерная линия 500×700 мм (фикс относительно A)
|
||
- **C (негабарит):** ролл-кейдж 1200×800×800 мм (свободное размещение в рабочей зоне)
|
||
- **D (неправильная форма):** ролл-кейдж 1200×800×800 мм (свободное размещение в рабочей зоне)
|
||
|
||
### 2.4. Критерии оценки (из doc-1783011400.pdf)
|
||
|
||
**Раздел 1. Презентация (0-10 баллов)**
|
||
- 0-5: Ясность материалов
|
||
- 0-5: Выступление и ответы на вопросы
|
||
|
||
**Раздел 2. УГТ (0-20 баллов)**
|
||
- Матрица 4×4: ось CV (1-4) × ось исполнительной части (1-4)
|
||
|
||
**Раздел 3. Корректность определения (0-20 баллов)**
|
||
- 0-10: Корректность на тестовом наборе
|
||
- 0-5: Полнота правил классификации
|
||
- 0-5: Устойчивость в пограничных случаях
|
||
|
||
**Раздел 4. Исполнительная часть (0-30 баллов)**
|
||
- 0-10: Корректность физической маршрутизации
|
||
- 0-10: Качество манипуляции
|
||
- 0-5: Разная геометрия объектов
|
||
- 0-5: Безопасность эксплуатации
|
||
|
||
**Раздел 5. Производительность (0-20 баллов)**
|
||
- 0-10: Cycle time и производительность
|
||
- 0-5: Синхронизация по времени
|
||
- 0-5: Устойчивость к нештатным ситуациям
|
||
|
||
**Раздел 6. Связность (0-15 баллов)**
|
||
- 0-10: Связность CV и исполнительной части
|
||
- 0-5: Инженерная реалистичность
|
||
|
||
**Раздел 7. Отчетность (0-15 баллов)**
|
||
- 0-5: Полнота и качество отчета
|
||
- 0-5: Воспроизводимость и удобство проверки
|
||
- 0-5: Полнота комплекта сдачи
|
||
|
||
**Итого:** 130 баллов
|
||
|
||
### 2.5. Требования к сдаче (из Постановки задачи)
|
||
|
||
**Обязательный состав:**
|
||
- Описание подхода к классификации ✅
|
||
- Исходный код алгоритмической части ✅
|
||
- Проектные материалы по исполнительной части ✅
|
||
- Цифровая модель / симуляция / расчётное обоснование ✅ (3D digital twin)
|
||
- Описание связи CV → исполнительная часть ✅
|
||
- Итоговый отчет команды ✅
|
||
- Видеодемонстрация работы ⏳ (TODO)
|
||
|
||
**Формат презентации:**
|
||
- Длительность: не более **7 минут**
|
||
- Формат: живая демонстрация / видео / комбинация
|
||
|
||
**Рекомендуемая структура презентации:**
|
||
1. О команде
|
||
2. Постановка задачи и подход
|
||
3. Логика классификации
|
||
4. Схема маршрутизации A/B/C/D
|
||
5. Исполнительная часть и автоматическая перекладка
|
||
6. Подтверждение: метрики, симуляция, расчёты, цифровой прототип
|
||
7. Используемые инструменты и выбор
|
||
8. Ограничения и развитие
|
||
|
||
## 3. Что уже реализовано
|
||
|
||
✅ **Архитектура:** React + Vite + TypeScript + Three.js
|
||
✅ **Классификация:** Чистая функция `classifyItem` с габаритами и roundness
|
||
✅ **State machine:** IDLE → DETECTING → CLASSIFYING → ROUTE_TO_* → RETURN_HOME
|
||
✅ **Исполнительная часть:** Stop-gate, pusher C, pusher D, физическая маршрутизация
|
||
✅ **3D Digital Twin:** React Three Fiber, labels A/B/C/D, route beams, roll-cages
|
||
✅ **2D Fallback:** SVG для mobile и WebGL unavailable
|
||
✅ **Сценарии:** normal_flow, oversized_item, round_object, c_priority, boundary_dimensions, close_items, low_confidence, jam, emergency_stop
|
||
✅ **Criteria Cards:** Покрытие критериев OZON с привязкой к сценариям
|
||
✅ **Engineering Details:** Sensors, PID, Timeline, Event Log, 3D capability check
|
||
✅ **Документация:** README, ARCHITECTURE, DEMO_SCRIPT, SCENARIOS, JURY_QA, SUBMISSION_CHECKLIST, UI_UX_REDESIGN_AUDIT, THREE_D_FEASIBILITY
|
||
✅ **Тесты:** 16/16 passed (classifier, scenarios, demo steps, criteria)
|
||
✅ **Docker:** compose project `owl`, nginx, domain checks OK
|
||
✅ **C-priority:** Габариты проверяются первыми, oversized + round → C
|
||
|
||
## 4. Что нужно добавить/исправить
|
||
|
||
### 4.1. КРИТИЧЕСКИЕ исправления параметров
|
||
|
||
❌ **`src/domain/classifier.ts`:**
|
||
```typescript
|
||
// БЫЛО:
|
||
min: { width: 10, depth: 10, height: 10 },
|
||
roundnessThreshold: 0.8,
|
||
|
||
// ДОЛЖНО БЫТЬ:
|
||
min: { width: 10, depth: 10, height: 2 },
|
||
roundnessThreshold: 0.7,
|
||
```
|
||
|
||
❌ **`README.md`:**
|
||
- Строка 153: "min: width >= 10 мм, depth >= 10 мм, height >= 10 мм" → **height >= 2 мм**
|
||
- Строка 155: "roundness threshold: 0.8" → **0.7**
|
||
- Строка 132: "roundness >= 0.8" → **>= 0.7**
|
||
|
||
❌ **`src/data/scenarios.ts`:**
|
||
- Строка 26: "roundness >= 0.8" → **>= 0.7**
|
||
|
||
❌ **`docs/JURY_QA.md`:**
|
||
- Строка 45: "10×10×10 mm" → **10×10×2 mm**
|
||
- Строка 45: "threshold 0.8" → **threshold 0.7**
|
||
|
||
❌ **`docs/SUBMISSION_CHECKLIST.md`:**
|
||
- Строка 21: "10×10×10 mm" → **10×10×2 mm**
|
||
|
||
### 4.2. Точечные UX улучшения
|
||
|
||
⚠️ **Hero Section:**
|
||
- Добавить крупный proof-line: `Detection → Classification → ROUTE_TO_* → Actuator → B/C/D`
|
||
- Добавить бейджи параметров: `Конвейер 1 м/с`, `Min 10×10×2 мм`, `Max 450×320×320 мм`, `K ≥ 0.7 → D`, `C priority`
|
||
|
||
⚠️ **Product Demo Section:**
|
||
- Сделать крупнее блок текущего решения: **Category / Command / Target / Why**
|
||
- Для C-priority явно показать: "dimensions failed, so C has priority even though K = 0.93"
|
||
|
||
⚠️ **C-priority explanation:**
|
||
- Добавить заметную карточку/блок с объяснением приоритета C над D
|
||
|
||
⚠️ **Mobile fallback:**
|
||
- Добавить текст объяснения: "3D Digital Twin доступен на desktop. На узком экране включена 2D-схема с той же логикой."
|
||
|
||
⚠️ **Engineering Details:**
|
||
- Добавить пояснение про physics engine: "Physics engine не включён в production-сцену намеренно: для защиты важна воспроизводимая маршрутизация B/C/D."
|
||
|
||
### 4.3. Документация
|
||
|
||
⚠️ **README.md:**
|
||
- Добавить раздел "input_info" с описанием использованных материалов
|
||
- Добавить упоминание тестового набора товаров (11 STEP/STL моделей)
|
||
|
||
⚠️ **DEMO_SCRIPT.md:**
|
||
- Добавить финальный 7-минутный тайминг:
|
||
- 0:00–0:20 что это
|
||
- 0:20–0:45 полный контур
|
||
- 0:45–1:30 B
|
||
- 1:30–2:15 C
|
||
- 2:15–3:00 D
|
||
- 3:00–3:45 C-priority
|
||
- 3:45–4:30 low confidence/fault
|
||
- 4:30–5:30 Engineering Details
|
||
- 5:30–6:30 критерии и метрики
|
||
- 6:30–7:00 ограничения и развитие
|
||
|
||
⚠️ **JURY_QA.md:**
|
||
- Добавить вопрос про physics engine (уже есть, но дополнить)
|
||
- Добавить вопрос про тестовый набор STEP/STL моделей
|
||
- Обновить параметры 10×10×2 и 0.7
|
||
|
||
⚠️ **SUBMISSION_CHECKLIST.md:**
|
||
- Обновить параметры
|
||
- Добавить пункт про input_info analysis
|
||
|
||
⚠️ **Новый файл: docs/INPUT_INFO_ANALYSIS.md** ✅ (этот документ)
|
||
|
||
### 4.4. Тесты
|
||
|
||
⚠️ **Обновить тесты под новые параметры:**
|
||
- classifier.test.ts: проверки min height 2 мм, roundness 0.7
|
||
- scenarios.test.ts: обновить ожидаемые результаты если изменились
|
||
|
||
### 4.5. 3D Scene labels
|
||
|
||
⚠️ **Проверить метки в 3D:**
|
||
- A Input
|
||
- Накопитель / Accumulator
|
||
- CV Camera
|
||
- Stop-gate
|
||
- Pusher C
|
||
- Pusher D
|
||
- B Main sorter
|
||
- C Dimensions reject
|
||
- D Repack
|
||
|
||
Убедиться, что labels крупные и понятные.
|
||
|
||
## 5. Что использовать в UI
|
||
|
||
### Формулировки для Hero:
|
||
|
||
**Заголовок:**
|
||
> Интеллектуальная система предварительной сортировки товаров
|
||
|
||
**Подзаголовок:**
|
||
> 3D-симуляция ПАК показывает полный цикл: товар поступает из A, определяется CV-модулем, классифицируется в B/C/D и физически маршрутизируется исполнительной частью.
|
||
|
||
**Proof-line:**
|
||
> Detection → Classification → ROUTE_TO_* → Actuator → B/C/D
|
||
|
||
**Бейджи параметров:**
|
||
- Конвейер 1 м/с
|
||
- Min 10×10×2 мм
|
||
- Max 450×320×320 мм
|
||
- K ≥ 0.7 → D
|
||
- C priority
|
||
|
||
### Формулировки для Product Demo:
|
||
|
||
**Current decision summary (крупно):**
|
||
```
|
||
Category: B / C / D
|
||
Command: ROUTE_TO_B / ROUTE_TO_C / ROUTE_TO_D
|
||
Target: Zone B / Zone C / Zone D
|
||
Why: [1 короткая строка]
|
||
```
|
||
|
||
**Примеры Why:**
|
||
- B: "dimensions pass and round section is not detected"
|
||
- C: "dimensions failed (oversized)"
|
||
- D: "dimensions pass, but K = 0.92 ≥ 0.7"
|
||
- C-priority: "dimensions failed, so C has priority even though K = 0.93"
|
||
|
||
### Формулировки для C-priority explanation:
|
||
|
||
**Заголовок:**
|
||
> Почему C имеет приоритет?
|
||
|
||
**Текст:**
|
||
> Если товар одновременно негабаритный и имеет круг в сечении, он направляется в C. Сначала проверяются габариты, и только если они проходят — форма. Это предотвращает попадание негабаритных объектов в основной сортировщик.
|
||
|
||
### Формулировки для mobile fallback:
|
||
|
||
> 3D Digital Twin доступен на desktop. На узком экране включена 2D-схема с той же логикой классификации и маршрутизации.
|
||
|
||
### Формулировки для Engineering Details (physics engine):
|
||
|
||
> В демо используется управляемая 3D state-machine simulation. Physics engine не включён в production-сцену намеренно: для защиты важна воспроизводимая маршрутизация B/C/D. Архитектура допускает подключение physics engine позднее.
|
||
|
||
## 6. Что использовать в документации
|
||
|
||
### README.md:
|
||
|
||
**Новый раздел после "Стек":**
|
||
|
||
```markdown
|
||
## input_info
|
||
|
||
Проект разработан в соответствии с официальной постановкой задачи OZON Tech Track 3.
|
||
|
||
**Использованные материалы:**
|
||
- `Постановка_Задача_3_сжато_2.pdf` — полная постановка задачи (правила классификации, схема участка, критерии оценки)
|
||
- `doc-1783009942.pdf` — схема рабочей зоны с размерами A/B/C/D
|
||
- `doc-1783011400.pdf` — критерии оценки Track 3 (матрица баллов)
|
||
- `doc-1782987706.zip` → STEP модели тестовых товаров (11 шт)
|
||
- `doc-1782987733.zip` → STL модели тестовых товаров (11 шт)
|
||
|
||
**Тестовый набор товаров:**
|
||
Цилиндр, Шлем, Бутылка, Мешок, Тарелка, Короб 400×400×300, ЛанчБокс, Короб 300×200×200, Пуфик, Ручка, Моющее средство.
|
||
|
||
**Параметры классификации (согласно постановке):**
|
||
- Min dimensions: **10×10×2 мм**
|
||
- Max dimensions: 450×320×320 мм
|
||
- Roundness threshold: K ≥ **0.7**
|
||
- Conveyor speed: 1.00 м/с
|
||
- C-priority: габариты проверяются первыми
|
||
|
||
Подробный анализ: `docs/INPUT_INFO_ANALYSIS.md`
|
||
```
|
||
|
||
### DEMO_SCRIPT.md:
|
||
|
||
**Добавить секцию "7-Minute Structure":**
|
||
|
||
```markdown
|
||
## 7-Minute Structure
|
||
|
||
Рекомендуемый тайминг для защиты (максимум 7 минут):
|
||
|
||
- **0:00–0:20** Что это за система? ПАК предварительной сортировки, полный цикл A → CV → B/C/D.
|
||
- **0:20–0:45** Полный контур: Detection → Classification → Command → Actuator → Route.
|
||
- **0:45–1:30** Категория B: габариты проходят, нет круга, зелёный маршрут в основной сортировщик.
|
||
- **1:30–2:15** Категория C: негабаритный товар, оранжевый маршрут в roll-cage C.
|
||
- **2:15–3:00** Категория D: габариты проходят, но круг в сечении (K ≥ 0.7), фиолетовый маршрут в roll-cage D.
|
||
- **3:00–3:45** C-priority: негабаритный + круглый → всё равно C (приоритет габаритов).
|
||
- **3:45–4:30** Low confidence и fault: rule-based fallback, FAULT состояние, EMERGENCY_STOP.
|
||
- **4:30–5:30** Engineering Details: timeline, PID, sensors, event log, 3D capability check.
|
||
- **5:30–6:30** Критерии OZON и метрики: cycle time, устойчивость, воспроизводимость.
|
||
- **6:30–7:00** Ограничения MVP и развитие: real CV, physics engine, WebSocket телеметрия.
|
||
```
|
||
|
||
### JURY_QA.md:
|
||
|
||
**Обновить вопрос 11:**
|
||
|
||
```markdown
|
||
## 11. How Are Dimensions And Circular Section Handled?
|
||
|
||
Dimensions are checked first against min/max: **10×10×2 mm** to 450×320×320 mm. If they pass, roundness K = r_in / r_out is checked against threshold **0.7**. Conveyor target speed is 1.00 m/s.
|
||
```
|
||
|
||
**Добавить новый вопрос 22:**
|
||
|
||
```markdown
|
||
## 22. Where Are The Test Object Models From input_info?
|
||
|
||
The official test set includes 11 STEP/STL models from input_info: Cylinder, Helmet, Bottle, Bag, Plate, Box 400×400×300, Lunchbox, Box 300×200×200, Pouf, Pen, Detergent. These models can be used to validate classification correctness on realistic geometries.
|
||
```
|
||
|
||
## 7. Риски
|
||
|
||
### 7.1. Изменение параметров может сломать тесты
|
||
|
||
✅ **Митигация:** Сначала обновить `classifier.ts`, затем запустить тесты, исправить ожидаемые результаты где нужно.
|
||
|
||
### 7.2. Изменение min height с 10 на 2 мм может изменить категории некоторых товаров
|
||
|
||
✅ **Митигация:** Проверить все товары в `items.ts`:
|
||
- SKU-009 (Pen 9×13×148): width 9 < 10, всё равно C ✅
|
||
- Остальные товары имеют height > 10 мм, изменение не влияет ✅
|
||
|
||
### 7.3. Изменение roundness threshold с 0.8 на 0.7 может изменить категории
|
||
|
||
✅ **Митигация:** Проверить все товары:
|
||
- SKU-006 (Plate, roundness 0.95): было D, останется D ✅
|
||
- SKU-007 (Bottle, roundness 0.92): было D, останется D ✅
|
||
- SKU-008 (Cylinder, roundness 0.88): было D, останется D ✅
|
||
- SKU-005 (Pouf, roundness 0.74): было C (oversized), останется C ✅
|
||
- Нет товаров с roundness между 0.7 и 0.8, которые меняют категорию ✅
|
||
|
||
### 7.4. Нет видеодемонстрации
|
||
|
||
⚠️ **Риск:** Требование к сдаче включает видеодемонстрацию работы решения.
|
||
|
||
✅ **Митигация:** Указать в SUBMISSION_CHECKLIST и JURY_QA, что live demo на сайте заменяет видео, но при необходимости можно записать screen capture 7-минутного прохода.
|
||
|
||
### 7.5. Нет реального ML / CV
|
||
|
||
⚠️ **Риск:** Жюри может спросить про настоящее машинное зрение.
|
||
|
||
✅ **Митигация:** Уже указано в JURY_QA.md: "The MVP uses pseudo-CV: bbox, dimensions, confidence and latency are derived from mock items. The architecture keeps CV output separate from classification, so a real CV service can replace it later."
|
||
|
||
## 8. Definition of Done
|
||
|
||
Проект готов к защите, когда выполнены все пункты:
|
||
|
||
### 8.1. Параметры классификации
|
||
|
||
- [ ] `src/domain/classifier.ts`: min height = 2 мм, roundness threshold = 0.7
|
||
- [ ] `README.md`: обновлены параметры
|
||
- [ ] `src/data/scenarios.ts`: обновлено описание roundness
|
||
- [ ] `docs/JURY_QA.md`: обновлены параметры
|
||
- [ ] `docs/SUBMISSION_CHECKLIST.md`: обновлены параметры
|
||
|
||
### 8.2. UX улучшения
|
||
|
||
- [ ] Hero: добавлен proof-line и бейджи параметров
|
||
- [ ] Product Demo: крупный блок Category / Command / Target / Why
|
||
- [ ] C-priority: отдельная карточка/блок объяснения
|
||
- [ ] Mobile fallback: текст объяснения
|
||
- [ ] Engineering Details: пояснение про physics engine
|
||
|
||
### 8.3. Документация
|
||
|
||
- [ ] `docs/INPUT_INFO_ANALYSIS.md`: создан ✅
|
||
- [ ] `README.md`: добавлен раздел input_info
|
||
- [ ] `DEMO_SCRIPT.md`: добавлен 7-минутный тайминг
|
||
- [ ] `JURY_QA.md`: обновлены ответы, добавлен вопрос про тестовые модели
|
||
- [ ] `SUBMISSION_CHECKLIST.md`: обновлён
|
||
|
||
### 8.4. Тесты
|
||
|
||
- [ ] `npm run test` проходит
|
||
- [ ] Все 16+ тестов зелёные
|
||
|
||
### 8.5. Build & Deploy
|
||
|
||
- [ ] `npm run build` успешно
|
||
- [ ] Docker project `owl` перезапущен
|
||
- [ ] `https://arhipovdan.ru/` открывается
|
||
- [ ] `https://www.arhipovdan.ru/` открывается
|
||
- [ ] `https://ai-shorts.ru/` не затронут
|
||
|
||
### 8.6. Visual QA
|
||
|
||
- [ ] Desktop 1920×1080: Hero понятен, proof-line виден, бейджи читаемы
|
||
- [ ] Laptop 1440×900: Category/Command/Target крупные
|
||
- [ ] Mobile 390×844: fallback объяснён, нет horizontal scroll
|
||
- [ ] Сценарии: B / C / D / C-priority / low confidence / fault / emergency работают
|
||
- [ ] Console: no React errors, no WebGL errors
|
||
|
||
### 8.7. Git
|
||
|
||
- [ ] `git status` показывает только изменённые файлы (нет мусора)
|
||
- [ ] `git diff` проверен
|
||
- [ ] Команды для commit/push подготовлены (но НЕ выполнены)
|
||
|
||
---
|
||
|
||
**Дата создания:** 2026-07-04
|
||
**Автор:** Claude Sonnet 4.5
|
||
**Цель:** Привести проект в полное соответствие с официальной постановкой задачи OZON Tech Track 3 перед финальной защитой.
|