65 lines
14 KiB
Markdown
65 lines
14 KiB
Markdown
# Промт полигон-сессии: ПАКЕТ 5 — ФАКТЫ ToS под content-labels + док-синк хвосты
|
||
|
||
**Статус: ✅ ПАКЕТ ОТРАБОТАН ЦЕЛИКОМ И ПРИНЯТ (`D39.29` факты · `D39.30` подписи владельца, 25.07) — промт архивный.** Итог: вердикты ToS/AUP 8 вендоров × 2 лейбла добыты первоисточниками (15 цитат, grep-подтверждение); две строки `accepts_labels: [sexually-explicit]` (`xai`, `mistral`) подписаны и применены; по `violence` права нет ни у кого — лейбл не заводится, интерпретация владельца зафиксирована; все 8 док-синк пингов закрыты. Отчёт с ревью-шапкой: `archive/reports/POLYGON_TOS_LABELS_REPORT_2026-07-25.md`; факты — `experiments/00-provider-quirks.md` §«Право по ToS/AUP».
|
||
|
||
**Статус выдачи: 25.07.2026, оркестратор №8.** Два блока: **A — добыча фактов ToS/AUP по провайдерам (главное, ради него пакет)** и **B — семь док-синк пингов (лёгкий хвост, без церемоний)**. Зона записи: `eval/` + `docs/experiments/`; отчёт — в `docs/archive/reports/`. **Сессия НЕ коммитит.** `backend/` — read-only (чужая зона): данные ты ПРЕДЛАГАЕШЬ строками в отчёте, применяет их оркестратор после подписи владельца.
|
||
|
||
## Первый деливерабл — эхо-блок (норма 10, ≤10 строк, ДО работы)
|
||
|
||
«Что я понял: скоуп / инварианты / чего не делать» — расхождение чинится на минуте пять, а не на приёмке.
|
||
|
||
## Зачем это (контекст, из кода не выводится)
|
||
|
||
Пак-17 залендён целиком (D39.26 дизайн · D39.27 стройка · D39.28 дельта). В движке **больше нет понятия «18+»**: есть generic-механизм **content-label книги × `accepts_labels` эндпойнта × реестр политик** (`route | allow | terminal`). Флаг `permissive` ОТСТАВЛЕН — его больше нет.
|
||
|
||
Владелец ратифицировал **вокабуляр из двух лейблов: `violence` и `sexually-explicit`** (D39.27 п.5). Смысл именно в раздельности: D14 п.1 (проверено по первоисточнику) — ToS DeepSeek запрещает *sexually explicit*, но **violence оставляет допустимым**, поэтому violence-тяжёлая книга не обязана терять дешёвого редактора. Единый «adult» это схлопывал.
|
||
|
||
**Сейчас `accepts_labels` ПУСТЫ у всех провайдеров, и это спроектированное fail-closed состояние:** любая помеченная книга падает громко, называя модель, провайдера и недостающий лейбл. **Между рабочим механизмом и первой помеченной книгой стоит ровно одна вещь — ФАКТЫ, которых у нас нет.** Их и добываешь.
|
||
|
||
## БЛОК A — факты ToS/AUP: провайдер × лейбл
|
||
|
||
### «РОВНО ТАК» (ратифицировано; отступление = пинг оркестратору через владельца, НЕ интерпретация)
|
||
|
||
1. **`accepts_labels` = ПРАВО отправлять такой контент этому эндпойнту по ToS/AUP вендора. Это НЕ предсказание отказа.** Две оси не путать, они эмпирически расходятся в обе стороны: Gemini fail-closed на графичной эротике (D22.6, wire-verified) — это ПОВЕДЕНИЕ фильтра, а не запрет в договоре; DeepSeek в exp11 переводил explicit-фрагменты **против собственного ToS** — то есть готовность модели ответить ничего не говорит о праве. Мы маршрутизируем по ПРАВУ (ToS-гигиена, D39.25), отказ обрабатывается отдельно и причино-агностично.
|
||
2. **Ответ даётся ПЕР-ЛЕЙБЛУ, а не пер-провайдеру целиком.** Для каждого вендора два независимых вердикта: `violence` и `sexually-explicit`. Вся выгода ратифицированной пары держится на том, что у одного вендора они могут расходиться.
|
||
3. **Три вердикта, третий легитимен:** `ALLOWED` · `FORBIDDEN` · **`UNCLEAR`**. «Не нашёл однозначного пункта» — это честный результат, а не провал: он оставляет fail-closed, что безопасно. **Гадать запрещено** (правило двух направлений, шапка `00-provider-quirks.md`): вердикт без дословной цитаты первоисточника не существует.
|
||
4. **Каждый вердикт несёт доказательство:** URL страницы · дата ревизии/версии документа (как её объявляет сам вендор) · **дословная цитата** релевантного пункта · дата твоей проверки · что именно ты искал (какие разделы просмотрел). Пересказ вместо цитаты не принимается.
|
||
5. **Ты фиксируешь ФАКТЫ, а не выдаёшь юридическое заключение.** Спорные формулировки («adult content» без определения, отсылки к местному праву, разные правила для потребительского продукта и API) → `UNCLEAR` + явный вопрос владельцу в отчёте. Итоговую подпись под строками данных ставит владелец.
|
||
6. **Никаких live-вызовов с 18+ контентом и никаких проб «а откажет ли модель».** Этот пакет — ЧТЕНИЕ ДОКУМЕНТОВ. Поведенческие пробы не нужны и не санкционированы.
|
||
7. **`backend/` не править.** Предложенные строки данных — в отчёте, в код-блоке, в формате `accepts_labels: [violence]` под нужным провайдером. Применяет оркестратор.
|
||
8. **Гардрейлы проекта в силе:** `eval/data/refusal_corpus/*` НЕ открывать · 18+ уровень 3 не обрабатывать и не анализировать · `.env` никогда не читать · L3-классификатор не проектировать.
|
||
|
||
### «РЕШИ САМ И АРГУМЕНТИРУЙ»
|
||
|
||
- **Порядок и глубина.** Приор (опровергается аргументом): сперва те, кто реально стоит в цепочках и армах — **xai, mistral, deepseek, zai**; затем **kimi, gemini, openai**; **local** — особый случай (вызовов наружу нет; релевантны лицензия/условия использования самой модели, а не вендор-API) — зафиксируй этот статус явно, вердикт по нему может быть «н/п, решает владелец».
|
||
- **Какие документы считать первоисточником** (ToS · Acceptable Use / Usage Policy · Content Policy · API-специфичные приложения) и как поступать, когда потребительские правила расходятся с API-правилами — реши и объясни.
|
||
- **Форма секции** в `00-provider-quirks.md` (таблица + блок цитат — приор), где её разместить, как пометить дату следующей пере-проверки.
|
||
- Полный перечень провайдеров возьми сам из `backend/configs/models.yaml` (код-факт, у тебя он точнее моего пересказа).
|
||
|
||
### Мандат самопроверки ИСПОЛНЕНИЕМ (обязателен, решение владельца 12.07)
|
||
|
||
Типовой провал этого класса работы — **не выдумка, а ОВЕР-АТРИБУЦИЯ: верная цитата приписана не тому вендору, не тому пункту или не той ревизии документа.** Поэтому после того, как таблица написана: **вернись к КАЖДОМУ источнику и перечитай каждую цитату на месте**, сверив (а) вендора, (б) документ и его дату, (в) что цитата действительно поддерживает записанный вердикт, а не соседний. Расхождение цитаты и вердикта фиксируй как найденную ошибку в отчёте — это ожидаемо и ценно.
|
||
|
||
### Деливераблы блока A
|
||
|
||
1. Новая секция в `docs/experiments/00-provider-quirks.md` — таблица `провайдер × лейбл → вердикт` + блок доказательств (цитата/URL/дата).
|
||
2. Отчёт `docs/archive/reports/POLYGON_TOS_LABELS_REPORT_2026-07-XX.md`: метод · таблица · **предложенные строки для `backend/configs/models.yaml`** (только `ALLOWED`; `UNCLEAR`/`FORBIDDEN` строк не порождают) · явный список `UNCLEAR` с тем, чего не хватило · вопросы владельцу.
|
||
3. Явная строка о том, что применение строк требует подписи владельца (18+/юридическая ось — его решение, не наше).
|
||
|
||
## БЛОК B — семь док-синк пингов (лёгкий хвост; правки в твоей зоне, тела доков не переписывать)
|
||
|
||
1. `docs/experiments/00-provider-quirks.md:13,73` — катовер `deepseek-chat` → `deepseek-v4-flash` (24.07.2026) **прошёл**, а пост-катоверный факт не внесён: жив ли алиас, какие цены сейчас. Проверь live-пробой `/models` + вендор-докой, обнови обе строки.
|
||
2. `docs/experiments/00-provider-quirks.md:69` — оговорка про mistral-editor-арм **superseded D39.20** (mistral исключён как несущий редактор). Саму оговорку сними, **цифры rate-limit ОСТАВЬ** — mistral остаётся переводчиком под лейблом.
|
||
3. `docs/experiments/09-pilot-protocol.md:3` — ⚠-указатель застрял на D31/glm-5. Продли до пост-D39.22 (dspro-интерим · планка ≤2 не пройдена на rerun2 · авто-QA слепыми метками D39.20 · стайл-каноны D39.21). **Тело протокола не трогать.**
|
||
4. `docs/experiments/15-segmentation-empirics.md:6-7` — статус-блок до сих пор «ждёт подписи/коммита», хотя эксперимент залендён в REV.2 (D39.7/D39.8, $12.79 потрачены). Переверни статус.
|
||
5. `docs/experiments/16-bank-mining.md:3` — допиши финал: «ИСПОЛНЕН И ЗАЛЕНДЁН (D39.10); gender-тачпойнт §7 закрыт (D39.19); продолжение — Go-майнер, парити EXACT».
|
||
6. `docs/experiments/README.md` — индекс застрял на D38.2, нет строк exp15/exp16. Досведи.
|
||
7. `eval/README.md` — не тронут с 19.07 (до rerun2). Освежи статус под пост-D39.22: эксперимент закрыт · судейский риг-стандарт D39.7 · экстракция только через `tmctl export`.
|
||
|
||
**Плюс восьмое, следствие пака-17** (делай в том же проходе): в `00-provider-quirks.md` слово `permissive` как флаг конфига больше не существует — заменено на `accepts_labels` пер-лейблу. Если флаг где-то упомянут как живой, поправь.
|
||
|
||
## Приёмка и дисциплина
|
||
|
||
- **Заявление = команда** (норма 7): каждое фактическое утверждение отчёта — с командой/URL, которым получено; приёмка ре-ранит.
|
||
- Сессия **НЕ коммитит** (исключение прежнее — пре-рег фризы перед платными вызовами; здесь платных вызовов нет). `git mv` декларировать.
|
||
- **Канал вопросов:** непонятно / промт конфликтует с кодом или доками → **пинг оркестратору через владельца, НЕ тихая интерпретация.** Аддендумы доезжают только релеем — подтверди получение явной строкой в отчёте.
|