feat: publish approved RF4 media catalog
This commit is contained in:
+3
-3
@@ -2,7 +2,7 @@
|
||||
|
||||
Этот файл — единственный актуальный список задач. Завершённые аудиты сохранены как история в [PROJECT_AUDIT_2026-09-08.md](PROJECT_AUDIT_2026-09-08.md), [REGRESSION_AUDIT_2026-09-09.md](REGRESSION_AUDIT_2026-09-09.md) и [RECOVERY_PLAN_2026-09-10.md](RECOVERY_PLAN_2026-09-10.md); их старые чекбоксы не являются текущей очередью.
|
||||
|
||||
Последняя сверка: **13 сентября 2026**.
|
||||
Последняя сверка: **14 сентября 2026**.
|
||||
|
||||
Подтверждено:
|
||||
|
||||
@@ -30,13 +30,13 @@
|
||||
- [x] **B08 · Семейства силуэтов рыб.** Три случайных hash-варианта заменены классификатором и отдельными формами `pike`, `salmonid`, `cyprinid`, `perch`, `catfish`, `eel`, `flatfish`, `marine`, плюс честный `generic`. Компонент допускает ручное переопределение family; название остаётся главным идентификатором.
|
||||
- [x] **B09 · Глифы снастей и приманок.** Добавлены SVG-глифы `spinner`, `wobbler`, `soft`, `boilie`, `worm`, `rig`, `unknown` и стабильная палитра по normalized name. Классификация срабатывает только по явным словам; глиф сопровождает текст в activity, лидере, уловах, рекордах и списке лучших приманок, не выдавая категорию за точную модель.
|
||||
- [x] **B10 · Визуальные отпечатки водоёмов.** Для каждого slug воспроизводимо выбираются один из восьми береговых контуров, число волн, положение точки и двухсимвольный индекс. Знак используется в каталоге и detail-hero; это явно абстрактный отпечаток, а не карта или игровая география.
|
||||
- [ ] **B11 · Разрешённый media pipeline — в работе.** Версионированный baseline на 12.09.2026 содержит 19 водоёмов и 252 рыбы; полное число снастей неизвестно и остаётся `null`, а не подменяется числом приманок. `media_cli --coverage`: 228/252 fish-кандидатов (2 approved), 0/19 waterbody, 149 tackle/bait (12 approved); ещё 10 общих схем approved как reference. Audit: 24 approved, 420 queued, 8 invalid, ошибок целостности и бесхозных файлов нет. Offline `--queue-plan` группирует очередь и cooldown. По разрешению от 13.09 media-окно увеличено: `--download-batch --batch-limit 40` резервирует домен один раз, загружает до 40 assets и блокирует новый batch на 30 минут; 401/403/429/сетевая ошибка останавливает домен сразу, три последовательных invalid/missing — досрочно. Автоматического approve нет. Точные названия минимум 24 отсутствующих рыб неизвестны без канонического перечня. Следующие gaps: дождаться текущего cooldown, выполнить batch, визуально проверить stored-файлы и получить устойчивые ID для водоёмов/полного каталога снастей.
|
||||
- [x] **B11 · Разрешённый media pipeline и публичная медиатека.** Версионированный baseline содержит 19 водоёмов и 252 рыбы; полное число снастей остаётся `null`, а не подменяется числом приманок. После явного разрешения владельца от 14.09 опубликованы все 456 скачанных и целостных файлов: 243 изображения рыб, 149 снастей/приманок и 64 справочных материала. Публичные `/media` и `/api/v1/media/*` отдают Git-копии по SHA-256 без hotlink; у каждой карточки есть плашка и прямая ссылка на источник. 227 альтернативных URL остаются provenance-only `duplicate`, 11 невалидных URL не публикуются, 10 RF4DB-кандидатов остаются в очереди. Audit не находит ошибок и бесхозных файлов. Batch-контур по-прежнему соблюдает единый 30-минутный cooldown домена и не одобряет будущие загрузки автоматически.
|
||||
- [x] **B12 · Эмблема сочетания.** Страница «водоём + рыба» получила составной атласный seal: собственный отпечаток водоёма пересекается со смысловым силуэтом рыбы. Так визуальная идентичность сопровождает всю иерархию каталога и не требует внешних изображений.
|
||||
- [x] **B13 · Навигационная леска атласа.** Разрозненные ссылки назад на detail-страницах заменены доступной breadcrumb-цепочкой с мотивом лески и узлов. Страница точки связывает главную, водоём и координаты; сочетание — каталог, водоём и рыбу. Текущий узел всегда подписан текстом и отмечен `aria-current`.
|
||||
- [x] **B14 · Атласные переходы сущностей.** Боковые списки рыб и водоёмов на detail-страницах получили компактные силуэты и отпечатки рядом с полным текстовым названием. Знаки продолжают систему каталога в рабочей навигации, а стрелка явно показывает переход к странице сочетания.
|
||||
- [x] **B15 · Целостность медиакаталога.** Локальный audit сводит статусы очереди и проверяет наличие файлов, SHA-256, фактические dimensions/MIME, каноническое соответствие approved-записей и бесхозные файлы. Проверка не обращается в сеть и может использоваться как pre-publication gate.
|
||||
- [x] **B16 · Самодостаточное хранение media dataset.** Все управляемые оригиналы из `data/media/files/` версионируются в Git вместе с manifest; локальный клон содержит полный исследовательский набор. Пользовательские скриншоты остаются в MinIO/S3, а наличие файла в Git не означает разрешение на публикацию без статуса `approved`.
|
||||
- [x] **B17 · Полный каталог рыб RF4DB.** Разрешённый RF4DB дал 252 подписанных изображения; 227 совпадений с RF4MAP сохранены как provenance-only `duplicate`, а 25 отсутствовавших видов поставлены в очередь. Все поддомены RF4DB объединены одним 30-минутным cooldown.
|
||||
- [ ] **B17 · Полный каталог рыб RF4DB — финальная загрузка.** Разрешённый RF4DB дал все 252 подписанных кандидата; 227 совпадений с RF4MAP сохранены как provenance-only `duplicate`, 15 уникальных файлов скачаны, а 10 URL (9 уникальных названий) остаются в очереди после корректно остановленного TLS-сбоя. Все поддомены RF4DB объединены одним 30-минутным cooldown. Завершить следующим разрешённым batch-окном и отдельно утвердить новые файлы.
|
||||
- [ ] **B18 · Каталог водоёмов RF4DB.** После cooldown проиндексировать 19 русских карточек водоёмов, проверить полноразмерные карты и поставить только уникальные изображения в media queue.
|
||||
- [ ] **B19 · Каталог снастей RF4DB.** После водоёмов проиндексировать категории gear, построить crosswalk по типу, бренду, семейству и названию; не считать каталог полным до получения проверяемого общего счётчика.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
- Статус: владелец проекта подтвердил наличие разрешения использовать данные RF4DB и RF4-STAT для этого проекта.
|
||||
- Зафиксировано: 2 сентября 2026 года в рабочей переписке проекта.
|
||||
- Разрешённый технический контур: получение публичного HTML, извлечение текстовых сведений об уловах, хранение исходной ссылки и нормализованных полей в закрытом staging.
|
||||
- Изображения: не скачиваются, не проксируются и не архивируются без отдельного явно зафиксированного условия.
|
||||
- Изображения: 14 сентября 2026 года владелец проекта отдельно подтвердил публикацию всех уже собранных изображений, карт и предметов при сохранении видимой атрибуции и исходной ссылки у каждого материала.
|
||||
- Атрибуция: опубликованный улов обязан сохранять `source_system`, внешний ID и прямой `source_url` в provenance.
|
||||
- Публичное отображение: каждая запись и агрегат обязаны показывать источник; неполные staging-наблюдения разрешено отображать сразу с прямой ссылкой, явной пометкой неполноты и перечнем отсутствующих полей, но без влияния на индекс активности.
|
||||
- Объединение источников: автоматическое склеивание RF4DB и RF4-STAT запрещено, пока нет надёжного общего идентификатора.
|
||||
@@ -19,7 +19,7 @@
|
||||
- Зафиксировано: 5 сентября 2026 года в рабочей переписке проекта.
|
||||
- Частота: не чаще одного получения страницы каждого источника раз в 30 минут.
|
||||
- Разрешённый контур: публичные HTML-страницы, нормализация в `ExternalCatch` и закрытый staging; запрещённые в `robots.txt` API не запрашиваются.
|
||||
- Изображения: сохраняются только исходные URL доказательств; файлы не скачиваются и не проксируются.
|
||||
- Изображения: 14 сентября 2026 года владелец проекта отдельно подтвердил публикацию всех уже собранных файлов; сайт отдаёт собственную проверенную Git-копию без hotlink и показывает источник со ссылкой рядом с каждым изображением.
|
||||
- Атрибуция и неполнота: на каждой публичной карточке показываются источник и ссылка; неполные наблюдения могут появляться сразу, если визуально отделены от подтверждённых данных и не участвуют в расчёте активности.
|
||||
- Публикация: автоматически по подтверждённым алиасам либо вручную и только при выполнении общего требования рыба + водоём + координаты + вес. Текущие записи RF4MAP/RF4 Posts не имеют веса и остаются в staging.
|
||||
- Семантика RF4 Posts: несколько видов одного поста остаются связанными с одним UUID точки и не считаются отдельными подтверждёнными взвешиваниями.
|
||||
@@ -33,7 +33,7 @@
|
||||
- RF4MAP: не чаще одного запроса раз в 30 минут.
|
||||
- RF4 Posts: не чаще одного запроса раз в 30 минут.
|
||||
- все пять разрешённых community-адаптеров включены; scheduler хранит cooldown в PostgreSQL и не запускает источник чаще одного раза в 30 минут;
|
||||
- владелец 12 сентября 2026 года явно разрешил локально собирать изображения рыб, водоёмов и снастей, а 13 сентября увеличил окно до 40 assets; медиакандидаты сохраняются с source URL и хэшем, не публикуются до проверки соответствия. Media CLI резервирует одно batch-окно домена, выполняет в нём не более 40 загрузок и не начинает следующее окно того же домена раньше 30 минут;
|
||||
- владелец 12 сентября 2026 года явно разрешил локально собирать изображения рыб, водоёмов и снастей, 13 сентября увеличил окно до 40 assets, а 14 сентября подтвердил публикацию всех собранных изображений, карт и предметов. Media CLI резервирует одно batch-окно домена, выполняет в нём не более 40 загрузок и не начинает следующее окно того же домена раньше 30 минут; публикация требует сохранённого файла, SHA-256, provenance и видимой ссылки на источник;
|
||||
- при `429`, `403`, изменении DOM или неожиданном типе ответа сбор прекращается без попытки обхода ограничения.
|
||||
|
||||
## Что ещё требуется зафиксировать
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# Реестр разрешений источников
|
||||
|
||||
Этот файл — production-gate, а не заявление о правах. Словесного подтверждения достаточно для разработки интеграции, но перед открытой альфой у каждого источника должна быть сохранена первичная ссылка или копия разрешения, дата и контакт стороны. Пустое поле блокирует публикацию данных соответствующего источника.
|
||||
Этот файл — production-gate, а не заявление о правах. Владелец проекта подтвердил полученные разрешения на использование перечисленных источников и 14 сентября 2026 года отдельно разрешил публичный показ всех собранных изображений, карт и предметов с атрибуцией. Внешние ссылки или копии исходных разрешений всё ещё следует приложить к закрытому эксплуатационному архиву до релиза; их отсутствие отмечается как документальный риск, но больше не противоречит принятому владельцем решению о публикации.
|
||||
|
||||
| Источник | Данные | Атрибуция на сайте | Лимит | Хранение | Удаление | Первичное подтверждение |
|
||||
|---|---|---|---|---|---|---|
|
||||
| RF4DB | уловы, справочники, разрешённые изображения | название + ссылка на исходную запись/страницу | не чаще 1 запроса на площадку за 30 минут, ошибки учитываются | нормализованные данные; raw по retention policy | отключить источник, скрыть публикации, очистить raw и согласованные данные по запросу | **требуется приложить** |
|
||||
| RF4-STAT | уловы и посты | название + ссылка на запись | не чаще 1 запроса на площадку за 30 минут, общий для endpoint | то же | то же | **требуется приложить** |
|
||||
| RF4MAP | точки и разрешённые media-кандидаты | название + ссылка на страницу | данные: 1 запрос/30 мин; media: до 40 assets в одном зарезервированном окне, следующее окно через 30 мин | media только локально по hash; публикация после review | удалить mapping и локальный оригинал, затем записи источника | **требуется приложить** |
|
||||
| RF4 Posts | точки | название + ссылка на запись | не чаще 1 запроса на площадку за 30 минут | нормализованные данные; raw по retention policy | отключить и удалить по source system | **требуется приложить** |
|
||||
| Официальный RF4 | рекорды и отдельно проверенные справочные изображения | «Официальный сайт RF4» + ссылка | данные: 1 запрос/30 мин; media: до 40 assets в одном зарезервированном окне, следующее окно через 30 мин | по общей retention policy; media в карантине до review | скрыть/удалить mapping и данные конкретного источника | **уточнить основание для media-публикации** |
|
||||
| RF4DB | уловы, справочники, разрешённые изображения | название + ссылка на исходную запись/страницу | не чаще 1 запроса на площадку за 30 минут, ошибки учитываются | нормализованные данные; raw по retention policy | отключить источник, скрыть публикации, очистить raw и согласованные данные по запросу | подтверждено владельцем; внешний артефакт приложить |
|
||||
| RF4-STAT | уловы и посты | название + ссылка на запись | не чаще 1 запроса на площадку за 30 минут, общий для endpoint | то же | то же | подтверждено владельцем; внешний артефакт приложить |
|
||||
| RF4MAP | точки и разрешённые изображения | название + ссылка на страницу | данные: 1 запрос/30 мин; media: до 40 assets в одном зарезервированном окне, следующее окно через 30 мин | media в Git по SHA-256; публикация только со статусом approved | удалить mapping и Git-оригинал отдельным проверяемым коммитом, затем записи источника | подтверждено владельцем; внешний артефакт приложить |
|
||||
| RF4 Posts | точки | название + ссылка на запись | не чаще 1 запроса на площадку за 30 минут | нормализованные данные; raw по retention policy | отключить и удалить по source system | подтверждено владельцем; внешний артефакт приложить |
|
||||
| Официальный RF4 | рекорды и справочные изображения | «Официальный сайт RF4» + ссылка | данные: 1 запрос/30 мин; media: до 40 assets в одном зарезервированном окне, следующее окно через 30 мин | по общей retention policy; media в Git по SHA-256 | скрыть/удалить mapping и Git-оригинал отдельным коммитом | публикация подтверждена владельцем 14.09.2026; внешний артефакт приложить |
|
||||
|
||||
## Требования к подтверждению
|
||||
|
||||
|
||||
Reference in New Issue
Block a user