From 51a829a9a162a5f7dc5747018e48a9cb3b9010ea Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sat, 25 Jul 2026 18:01:05 +0300 Subject: [PATCH] Issue polygon package five: first-source ToS facts per provider and per label for the content-label capabilities, plus the seven accumulated doc-sync pings --- docs/POLYGON_PACKAGE5_SESSION_PROMPT.md | 63 +++++++++++++++++++++++++ docs/PROGRESS.md | 6 ++- docs/README.md | 2 +- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 docs/POLYGON_PACKAGE5_SESSION_PROMPT.md diff --git a/docs/POLYGON_PACKAGE5_SESSION_PROMPT.md b/docs/POLYGON_PACKAGE5_SESSION_PROMPT.md new file mode 100644 index 00000000..27303317 --- /dev/null +++ b/docs/POLYGON_PACKAGE5_SESSION_PROMPT.md @@ -0,0 +1,63 @@ +# Промт полигон-сессии: ПАКЕТ 5 — ФАКТЫ ToS под content-labels + док-синк хвосты + +**Статус: ВЫДАН 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` декларировать. +- **Канал вопросов:** непонятно / промт конфликтует с кодом или доками → **пинг оркестратору через владельца, НЕ тихая интерпретация.** Аддендумы доезжают только релеем — подтверди получение явной строкой в отчёте. diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index 301fc9ec..922ef5ee 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -3,9 +3,13 @@ > **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-07-25, пак-17 ЗАКРЫТ ЦЕЛИКОМ — механизм content-labels живой, D39.26–D39.28). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D39.28); этот файл — ЖУРНАЛ.** > - **Фазы/курс:** Ф0 ✅ · Ф1-инфра ✅ (D20–D28; golden = инвариант №8) · арка «качество-первым» D26→D38.5 закрыта · **арх-ресет D39 исполнен ЦЕЛИКОМ** (7 слоёв → программа D39.1–D39.10 → паки 11–16, D39.13–D39.24; статус слоёв — шапка-таблица `architecture/09-target-architecture.md`) · пере-прогон rerun2 прочитан (D39.20: операционка живьём, $0-резюм ×3 арма, $6.63<$15; планка ≤2 НЕ пройдена; анти-корреляция гладкость↔верность ×3 → mistral-редактор вон) · эксп ЗАКРЫТ (D39.22), итерация №2 отложена · **курс = разработка бэкенда: пак-17 «канал B вживую» ЗАКРЫТ ЦЕЛИКОМ (дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28, 25.07); вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона (fail-closed до них)** (D39.25: в движке НЕТ понятия «18+» — generic content-labels × provider-capabilities; лейблы вне хешей · резолв до валидации · один хоп `chain[0]` · гранулярность = книга) → следующий платный прогон (разом: итерация №2 dspro-vs-glm · замер остатка ремонта → решение о петле D39.24 · живой канал B) → сид-дельта (元 · 赤城 · 学堂家老 · 春秋蝉) → Ф2-механизмы (голос/состояние D21 · native-Gemini судья) · ja→ru §B5 → пилот Ф2.5. Хроника треков A/B, exp15/16 и стройки паков — архивы ниже + D-лог. > - **Стек:** draft deepseek-v4-flash (thinking ON) → **editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (D39.22; glm-5 резерв, mistral вон D39.20)**, промпт v3-discourse (P1a+чэнъюй+few_shot-тумблер) → судья gemini-3.1-pro-preview; канал B Mistral+grok; 7 ключей; ~$0.85/ранобэ (D30.4). -> - **ОТКРЫТЫЕ ПЕТЛИ (норма 25.07, перепись 180 инцидентов: класс NEVER_CLOSED больше не копим — каждая петля обязана получить диспозицию решено/отложено-с-записью/отклонено; ведёт оркестратор).** *Владелец:* ~~вокабуляр content-лейблов~~ **РЕШЕНО 25.07: ПАРА `violence`/`sexually-explicit`** (D39.27 п.5 — сохраняет D14 п.1 и dspro-редактора на violence) ⇒ следствие в работе: assert-only `action` (дельта пака-17) · ~~Q2 редактор под лейблом~~ **ОТЛОЖЕН С ЗАПИСЬЮ** (D39.27 п.7: при паре связывает только `sexually-explicit`-книги, которых нет; возвращается вместе с предусловием D22.7 перед первой explicit-книгой; кандидаты — grok-4.3 интерим, glm-5 только после сверки ToS Z.AI по первоисточнику, mistral отвергнут D39.20) · **ToS-факты под `accepts_labels` — пер-провайдер И ПЕР-ЛЕЙБЛ, по первоисточникам (зона фиксации — `experiments/00-provider-quirks.md`, полигон): ЕДИНСТВЕННОЕ, что осталось между механизмом и живой лейблованной книгой; на владельце — маршрут работы (сверку прогоняет оркестратор с цитатами → полигон фиксирует, либо полигон целиком). До фактов механизм fail-closed — верное состояние** · **промпт-слой под лейблом (НОВОЕ, вскрыто вопросом владельца): лейбл сегодня НЕ доезжает до промпта** (чистые данные маршрутизации + load-time гарантия); нужно ли, чтобы переводчик/редактор ЗНАЛИ о свойстве контента — отдельное решение промпт-слоя · мини-каноны сид-дельты — 元-корень (предложение «изначальн-») и 春秋蝉 (подписано «Весенне-осенняя цикада», ждёт подтверждения) · **включение платной петли ремонта — по замеру остатка на пост-профилактическом прогоне (D39.24; заменил mini-live гейт D6)** · ja→ru-реплика §B5 (тайминг) · старые Ф2.5-блокеры (билингв-якорь — D25 п.9 Q1 · контаминация корпуса — D27 п.4 · судья-дублёр D22.6 · планка запуска · publishable/waiver — D25 п.1 · FN-bound L3 — D25 п.4 · юр-пакет · провенанс 12-*-доков · xAI-ключ off перед продом D27 · residual-тачпойнты exp16, не влитые в сид-дельту: мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`). *Оркестратор:* ~~ратификация дизайна пака-16~~ РЕШЕНО D39.24 (25.07) · фантом-гард D-ссылок в чек-листе лендинга (действует) · ~~doc-sync pass~~ **ИСПОЛНЕН 25.07** (запись ниже: оба puml перерисованы под пост-пак-16 · баннеры на 01/02/03/04/06/07/08/09 · ресёрч-свип 18/18c/19/20/21/22 · README/POLYGON_PACKAGE4 освежены; residual — пинги полигону в его зоне) · ~~приёмка пака-17 фаза 1~~ **РЕШЕНО D39.26 (25.07: принято в редакции §14, три добора приёмки, фаза 2 размечена)** · **`escalation_model` = ОТВЕТИВШАЯ модель (НОВОЕ, вынесено из пака-17): вердикт-изменение** — golden пинит `esc_model` на ОТКАЗАВШЕМ хопе, маскировка не скрывает ⇒ отдельная ратификация с санкционированным пере-капчером · **`--accept-rebill[=usd]` с порогом `min($0.50, 5%×ProjectedBookUSD)` РАТИФИЦИРОВАН D20.2-Q2, но в коде/CLI ОТСУТСТВУЕТ (НОВОЕ)** — живёт только в спеке `backend/docs/D15.2-*.md`; `--resnapshot` пере-пиннит без суммы · **D22.7 (пер-чанковый L3-скрин) — предусловие первой erotica-книги в проде НЕ снято паком-17 (НОВОЕ, держать отдельным гейтом)** · фантом-гард D-ссылок в чек-листе лендинга (действует). *Бэкенд:* ~~пак-17 (фазы 1–2 + дельта)~~ **ЗАКРЫТ ЦЕЛИКОМ 25.07 (D39.26/27/28); фикс-лист закрыт; бэкенд-очереди по паку-17 НЕТ** · ~~пак-16 ф.2~~ ЗАЛЕНДЕНА 25.07 · per-class исходы ремонта — схемное решение (класс не durable), принимается ВМЕСТЕ с включением петли · ниты общности (владелец 25.07) — **едут хвостом пака-17 фазы 2 УСЛОВНО**: только в байт-нейтральной форме с доказательством исполнением (иначе `CheapGateVersion`/`pack.Version()` двигают снапшот стендовых книг и убивают $0-резюм драфта под замер остатка пака-16): Detail-строки чекеров → шаблоны/цитаты из данных (статический 时辰-текст в generic-файле соврёт второй паре) · множитель ×2 `lintTimeUnits` (`checkers.go:174`) → ключ данных. *Полигон (residual):* **6 пингов doc-sync аудита 25.07 (зона `docs/experiments/` — оркестратор не правит):** (1) `00-provider-quirks.md:13,73` — катовер deepseek-chat 24.07 ПРОШЁЛ, пост-катовер факт (жив ли алиас, цены) не внесён — live-проба `/models` + вендор-дока; (2) `00-provider-quirks.md:69` — оговорка «mistral-editor-арм до guard» superseded D39.20 (mistral вон из редакторов; rate-limit-цифры оставить — нужны переводчику канала B пака-17); (3) `09-pilot-protocol.md:3` — ⚠-указатель застрял на D31/glm-5: продлить до пост-D39.22 (dspro-интерим · планка ≤2 не пройдена rerun2 · авто-QA слепыми метками D39.20 · стайл-каноны D39.21), тело не трогать; (4) `15-segmentation-empirics.md:6-7` — шапка до сих пор «НИ ОДНОГО платного вызова», а эксп залендён REV.2 (D39.7/D39.8, $12.79) — перевернуть статус-блок; (5) `16-bank-mining.md:3` — дописать финал «ИСПОЛНЕН И ЗАЛЕНДЁН (D39.10); gender-тачпойнт §7 закрыт (D39.19); продолжение — Go-майнер парити EXACT»; (6) `experiments/README.md` — индекс без строк exp15/16 (сверка застряла на D38.2); (7) `eval/README.md` — не тронут с 19.07 (пре-rerun2): освежить статус под пост-D39.22 (эксп закрыт · судейский риг-стандарт D39.7 · экстракция только `tmctl export`). +> - **ОТКРЫТЫЕ ПЕТЛИ (норма 25.07, перепись 180 инцидентов: класс NEVER_CLOSED больше не копим — каждая петля обязана получить диспозицию решено/отложено-с-записью/отклонено; ведёт оркестратор).** *Владелец:* ~~вокабуляр content-лейблов~~ **РЕШЕНО 25.07: ПАРА `violence`/`sexually-explicit`** (D39.27 п.5 — сохраняет D14 п.1 и dspro-редактора на violence) ⇒ следствие в работе: assert-only `action` (дельта пака-17) · ~~Q2 редактор под лейблом~~ **ОТЛОЖЕН С ЗАПИСЬЮ** (D39.27 п.7: при паре связывает только `sexually-explicit`-книги, которых нет; возвращается вместе с предусловием D22.7 перед первой explicit-книгой; кандидаты — grok-4.3 интерим, glm-5 только после сверки ToS Z.AI по первоисточнику, mistral отвергнут D39.20) · ~~ToS-факты под `accepts_labels` — маршрут работы~~ **РЕШЕНО владельцем 25.07: отдать полигону ЦЕЛИКОМ** ⇒ промт `POLYGON_PACKAGE5_SESSION_PROMPT.md` ВЫДАН (блок A — факты ToS/AUP пер-провайдер И ПЕР-ЛЕЙБЛ по первоисточникам, вердикты ALLOWED/FORBIDDEN/UNCLEAR с дословными цитатами; блок B — 7 док-синк пингов + отставка `permissive`). **Остаётся на владельце ПОДПИСЬ под итоговыми строками данных** (18+/юридическая ось): без неё оркестратор их не применяет, механизм остаётся fail-closed — верное состояние · **промпт-слой под лейблом (НОВОЕ, вскрыто вопросом владельца): лейбл сегодня НЕ доезжает до промпта** (чистые данные маршрутизации + load-time гарантия); нужно ли, чтобы переводчик/редактор ЗНАЛИ о свойстве контента — отдельное решение промпт-слоя · мини-каноны сид-дельты — 元-корень (предложение «изначальн-») и 春秋蝉 (подписано «Весенне-осенняя цикада», ждёт подтверждения) · **включение платной петли ремонта — по замеру остатка на пост-профилактическом прогоне (D39.24; заменил mini-live гейт D6)** · ja→ru-реплика §B5 (тайминг) · старые Ф2.5-блокеры (билингв-якорь — D25 п.9 Q1 · контаминация корпуса — D27 п.4 · судья-дублёр D22.6 · планка запуска · publishable/waiver — D25 п.1 · FN-bound L3 — D25 п.4 · юр-пакет · провенанс 12-*-доков · xAI-ключ off перед продом D27 · residual-тачпойнты exp16, не влитые в сид-дельту: мини-голд алиасов · precision@30, `books/gu-zhenren/exp16/`). *Оркестратор:* ~~ратификация дизайна пака-16~~ РЕШЕНО D39.24 (25.07) · фантом-гард D-ссылок в чек-листе лендинга (действует) · ~~doc-sync pass~~ **ИСПОЛНЕН 25.07** (запись ниже: оба puml перерисованы под пост-пак-16 · баннеры на 01/02/03/04/06/07/08/09 · ресёрч-свип 18/18c/19/20/21/22 · README/POLYGON_PACKAGE4 освежены; residual — пинги полигону в его зоне) · ~~приёмка пака-17 фаза 1~~ **РЕШЕНО D39.26 (25.07: принято в редакции §14, три добора приёмки, фаза 2 размечена)** · **`escalation_model` = ОТВЕТИВШАЯ модель (НОВОЕ, вынесено из пака-17): вердикт-изменение** — golden пинит `esc_model` на ОТКАЗАВШЕМ хопе, маскировка не скрывает ⇒ отдельная ратификация с санкционированным пере-капчером · **`--accept-rebill[=usd]` с порогом `min($0.50, 5%×ProjectedBookUSD)` РАТИФИЦИРОВАН D20.2-Q2, но в коде/CLI ОТСУТСТВУЕТ (НОВОЕ)** — живёт только в спеке `backend/docs/D15.2-*.md`; `--resnapshot` пере-пиннит без суммы · **D22.7 (пер-чанковый L3-скрин) — предусловие первой erotica-книги в проде НЕ снято паком-17 (НОВОЕ, держать отдельным гейтом)** · фантом-гард D-ссылок в чек-листе лендинга (действует). *Бэкенд:* ~~пак-17 (фазы 1–2 + дельта)~~ **ЗАКРЫТ ЦЕЛИКОМ 25.07 (D39.26/27/28); фикс-лист закрыт; бэкенд-очереди по паку-17 НЕТ** · ~~пак-16 ф.2~~ ЗАЛЕНДЕНА 25.07 · per-class исходы ремонта — схемное решение (класс не durable), принимается ВМЕСТЕ с включением петли · ниты общности (владелец 25.07) — **едут хвостом пака-17 фазы 2 УСЛОВНО**: только в байт-нейтральной форме с доказательством исполнением (иначе `CheapGateVersion`/`pack.Version()` двигают снапшот стендовых книг и убивают $0-резюм драфта под замер остатка пака-16): Detail-строки чекеров → шаблоны/цитаты из данных (статический 时辰-текст в generic-файле соврёт второй паре) · множитель ×2 `lintTimeUnits` (`checkers.go:174`) → ключ данных. *Полигон:* **ВСЕ residual-пинги ВЫДАНЫ пакетом 5 (`POLYGON_PACKAGE5_SESSION_PROMPT.md`, 25.07) вместе с главной задачей — фактами ToS; список ниже держим как чек-лист приёмки:** (1) `00-provider-quirks.md:13,73` — катовер deepseek-chat 24.07 ПРОШЁЛ, пост-катовер факт (жив ли алиас, цены) не внесён — live-проба `/models` + вендор-дока; (2) `00-provider-quirks.md:69` — оговорка «mistral-editor-арм до guard» superseded D39.20 (mistral вон из редакторов; rate-limit-цифры оставить — нужны переводчику канала B пака-17); (3) `09-pilot-protocol.md:3` — ⚠-указатель застрял на D31/glm-5: продлить до пост-D39.22 (dspro-интерим · планка ≤2 не пройдена rerun2 · авто-QA слепыми метками D39.20 · стайл-каноны D39.21), тело не трогать; (4) `15-segmentation-empirics.md:6-7` — шапка до сих пор «НИ ОДНОГО платного вызова», а эксп залендён REV.2 (D39.7/D39.8, $12.79) — перевернуть статус-блок; (5) `16-bank-mining.md:3` — дописать финал «ИСПОЛНЕН И ЗАЛЕНДЁН (D39.10); gender-тачпойнт §7 закрыт (D39.19); продолжение — Go-майнер парити EXACT»; (6) `experiments/README.md` — индекс без строк exp15/16 (сверка застряла на D38.2); (7) `eval/README.md` — не тронут с 19.07 (пре-rerun2): освежить статус под пост-D39.22 (эксп закрыт · судейский риг-стандарт D39.7 · экстракция только `tmctl export`). > - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `archive/PROGRESS-2026-07-10-13.md` (D39.6-гигиена) · `archive/PROGRESS-2026-07-13-25.md` (слайс 25.07: стройка паков 11–16, rerun2). Записи ниже — живой хвост. +## Оркестратор №8 — ПОЛИГОНУ ВЫДАН ПАКЕТ 5: факты ToS под `accepts_labels` + семь док-синк пингов одним промтом (решение владельца «отдать полигону всё»), 25.07 + +`POLYGON_PACKAGE5_SESSION_PROMPT.md`. **Блок A (ради него пакет):** после закрытия пака-17 между рабочим механизмом лейблов и первой помеченной книгой стоит ровно одна вещь — ФАКТЫ ToS/AUP, которых у нас нет. Несущее в промте: `accepts_labels` = ПРАВО отправлять по договору, а НЕ предсказание отказа (две оси эмпирически расходятся в обе стороны: Gemini fail-closed на эротике при отсутствии запрета — D22.6; DeepSeek переводил explicit ПРОТИВ своего ToS — exp11) · вердикт ПЕР-ЛЕЙБЛУ, потому что вся выгода ратифицированной пары держится на расхождении `violence`/`sexually-explicit` у одного вендора (D14 п.1) · три вердикта, где **UNCLEAR легитимен** и оставляет fail-closed · каждый вердикт несёт URL + дату ревизии + ДОСЛОВНУЮ цитату + дату проверки, гадать запрещено (правило двух направлений) · фиксируем факты, юридическое заключение не выдаём — подпись под строками ставит владелец · `backend/` read-only, строки данных ПРЕДЛАГАЮТСЯ в отчёте · ноль live-вызовов, это чтение документов. Мандат самопроверки заточен под типовой провал класса — **овер-атрибуцию** (верная цитата не тому вендору/пункту/ревизии): после написания таблицы перечитать каждую цитату в источнике и сверить тройку «вендор — документ+дата — вердикт». **Блок B (лёгкий хвост, без церемоний):** 7 накопленных док-синк пингов зоны полигона + восьмое следствие пака-17 (флаг `permissive` в quirks-доке больше не существует). Все петли трекера по полигону закрыты выдачей; на владельце осталась одна — ПОДПИСЬ под итоговыми строками. + ## Оркестратор №8 — ДЕЛЬТА ПАКА-17 ПРИНЯТА и залендена: действие `allow` (assert-only) — ратифицированная ПАРА лейблов выразима ДАННЫМИ; ПАК-17 ЗАКРЫТ ЦЕЛИКОМ (D39.28), 25.07 Дельта закрыла работу, которую открыл ответ владельца по вокабуляру. Итог: тройка `route | allow | terminal`, где ВСЕ ТРИ несут ОДИН инвариант (каждая достижимая модель принимает все лейблы книги) и различаются остальным; `allow` не двигает маршрут и ЗАПРЕЩАЕТ `chain`/`label_models`/бюджет как бессмысленные (дисциплина «громко, а не игнор»). `checkContentRouting` править не пришлось — предсказание D39.27 п.6 подтвердилось. **Моя приёмка исполнением:** build/vet/gofmt чисты (единственная жалоба `internal/llm/llm.go` воспроизводится на HEAD — сессия файл не трогала, оговорка честная) · `-race` 12/12 · **golden `f7641993…0020f8` = HEAD байт-в-байт**, `testdata/` чист · парити EXACT `n=13618 … 0.9655` · **ценз диффом ИМЁН 451→455, удалено 0**. **Моя независимая мутация:** инвариант проверяет только ПЕРВЫЙ лейбл вместо объединения → красный `TestRatifiedLabelPairIsDataOnly` — союзная семантика, на которой стоит ПАРА, запинена тестом, кодирующим форму ответа владельца. Сквозняк `TestAssertOnlyLabelRunsWithoutMovingAnything` прочитан и НЕ вакуумен: число вызовов + каждое тело запроса + стоимость + оба волновых снапшота, всё при `budget_usd = 0`. **Данные:** `accepts_labels` осознанно пусты — ратифицировал как ВЕРНОЕ fail-closed состояние; в диффах данных ни одного ToS-утверждения от сессии (значения = факты по первоисточникам, ПЕР-ЛЕЙБЛУ, фиксирует полигон). Фикс-лист D39.27 закрыт. **Пак-17 отработан целиком (D39.26 · D39.27 · D39.28); промт переведён в архивный статус.** diff --git a/docs/README.md b/docs/README.md index f15894d8..209e9e2c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,7 +16,7 @@ - `experiments/` — эмпирика «Полигона»: `00-provider-quirks` (читать перед любым вызовом провайдера), `01-token-calibration`, `02-refusal-benchmark`, `03-local-stand`, `04-editor-quality`, `06-local-extraction`, `07-coverage-precision`, `08-cost-model-v2` (актуальная денежная модель), `09-pilot-protocol` (пилот Ф2.5 + поправки D13), `10-explicit-benchmark` (18+ violence-рука канала B), `11-erotica-benchmark` (erotica по трём парам/регистрам — закрытие D14.4, D22), `12-quality-diagnosis`/`13-translator-bakeoff`/`14-quality-empirics`/`14b-meaning-battery` (дуга качества «мерить→строить», закрыты → D30/D32/D37/D38), `15-segmentation-empirics` (exp15: когезия под floor-шумом, фертильность — закрыт → D39.7/D39.8), `16-bank-mining` (exp16: WHICH/WHAT банк-майнинга — закрыт → D39.10). - `research/` — фактура исследований 04–05.07: `01–10` базовые, `11-gap-*` добор критиком, `12-*` режимы отказа/отзывы/таксономии (+ два внешних материала с провенанс-шапками), `13` валидация памяти, `14` адаптивная память, `15` голос и состояние (принят, D21), **`16` ридер-IDE (принят с ревью-шапкой, D29)**, **`17` внешняя критика GPT-5.6 (принят с ревью-шапкой, D25)** — у 16/17 читать шапку прежде тела. **`18` рычаги качества (два отчёта, D36)** · **`19` нарезка+когезия+контракт t/e (D39.1)** · **`20` банк-майнинг W1.5 (D39.6)** · **`21` обзор LLM-транспорта чужих харнессов (23.07: наш транспорт опережает/вровень со всеми 11)** · **`22` доменные харнессы перевода (24.07: калибрующий — ядро подтверждено, впереди COGS/18+/общность/измеренность, позади Q4-выпуск и gate+repair-петля; сиквел `02`/`05`)** — у всех ревью-шапки. ⚠ Часть под superseded-баннерами (01/02/03/04/05/09 и gap-1/2/5) — **читай баннер прежде содержимого**. - `PROGRESS.md` — **журнал** (CURRENT-STATE сверху, ниже хронология; НЕ источник решений). -- **Активные хендофф-промты (пост-пак-16, 25.07):** [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §1–11; состояние НЕ дублирует) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`. +- **Активные хендофф-промты (пост-пак-16, 25.07):** [`BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md`](BACKEND_PACK17_CHANNEL_B_SESSION_PROMPT.md) (**пак-17 канал B (18+) вживую — ОТРАБОТАН ЦЕЛИКОМ 25.07: дизайн D39.26 · стройка D39.27 · дельта `allow` D39.28; вокабуляр = ПАРА `violence`/`sexually-explicit`, остаток — ФАКТЫ ToS в зоне полигона**; отчёты с ревью-шапками — [`archive/reports/PACK17_DESIGN_2026-07-25.md`](archive/reports/PACK17_DESIGN_2026-07-25.md), [`archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md`](archive/reports/PACK17_CHANNEL_B_REPORT_2026-07-25.md), [`archive/reports/PACK17_DELTA_2026-07-25.md`](archive/reports/PACK17_DELTA_2026-07-25.md); L3 — жёсткая линия, live только по санкции владельца) · [`ORCHESTRATOR_SESSION_PROMPT.md`](ORCHESTRATOR_SESSION_PROMPT.md) (хендофф №6, 25.07 — только живое: роль/методология/уроки/нормы §1–11; состояние НЕ дублирует) · [`POLYGON_PACKAGE5_SESSION_PROMPT.md`](POLYGON_PACKAGE5_SESSION_PROMPT.md) (**ТЕКУЩИЙ полигонный: блок A — ФАКТЫ ToS/AUP провайдер × лейбл под `accepts_labels` пака-17 (вердикты с дословными цитатами первоисточников, UNCLEAR легитимен); блок B — 7 док-синк пингов**) · [`POLYGON_PACKAGE4_SESSION_PROMPT.md`](POLYGON_PACKAGE4_SESSION_PROMPT.md) (residual пилот/18+/echo). **Пак-16 ЗАЛЕНДЁН 25.07** (слой-3 diff-редактор: двухфазный дизайн D39.24 → стройка за `enabled:false`; отчёты с ревью-шапками — [`archive/reports/PACK16_DESIGN_2026-07-25.md`](archive/reports/PACK16_DESIGN_2026-07-25.md), [`archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md`](archive/reports/PACK16_DIFF_EDITOR_REPORT_2026-07-25.md)). **Паки 12/13/14/15 ЗАЛЕНДЕНЫ 24–25.07** (приёмка воркфлоу-линзами; отчёты с ревью-шапками — [`archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md`](archive/reports/PACK14_GENERALITY_REPORT_2026-07-24.md), [`archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md`](archive/reports/PACK15_STRUCTURE_REPORT_2026-07-25.md); норматив — [`architecture/12-go-style-notes.md`](architecture/12-go-style-notes.md)). Дальше: **пак-17 = канал B вживую** (батч со следующим платным прогоном: вопросы итерации №2 + замер остатка ремонта → решение о включении петли) → голос/состояние D21 + C2/C3 → пилот Ф2.5. Закрытые — в `archive/prompts/`. - `archive/` — `prompts/`: закрытые сессионные промты (только история, инструкции оттуда не исполнять) · `reports/`: отчёты паков/ресёрч-сессий с ревью-шапками (живая фактура приёмок — на них ссылаются D-лог и активные промты) · `architecture/`: исполненные арх-доки (07 стратревью · 08 синк-ледджер · 11 план пака-11) · три слайса хроники `PROGRESS-2026-07-{04-10,10-13,13-25}.md`. ## Статус (2026-07-25, пак-17 ЗАКРЫТ ЦЕЛИКОМ — механизм content-labels живой, D39.26–D39.28 — механизация выпускного качества)