From 73e5c0524c7733259c2dbc859b407bc93bc02dc5 Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Sat, 11 Jul 2026 01:41:15 +0300 Subject: [PATCH] Ratify D27 owner xAI key policy: single data-sharing key for tests and pilot with pre-release opt-out, clean-key pilot blocker removed, glm-5 substitution no longer forced --- CLAUDE.md | 2 +- docs/ACCEPTANCE_SESSION_PROMPT.md | 2 +- docs/PROGRESS.md | 6 ++++-- docs/README.md | 2 +- docs/architecture/05-decisions-log.md | 10 ++++++++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 3f877c6..0974ad1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,4 +39,4 @@ Go-бэкенд издательского художественного пер ## Текущее состояние (2026-07-11) -Фаза 0 ✅; машинерия Ф1 построена и отрефакторена (бэкенд №1–4, полигон №1–3 — D20–D23; golden-гард = инвариант №8, OpenReadOnly-status). **Приёмка Ф1 этап A (25 глав 蛊真人 zh→ru, D18) ВЫПОЛНЕНА и ратифицирована с оговорками — D24**: $0.41, деньги/kill-9/resume/redrive подтверждены исполнением, дрейф ≈0; флаггер D10 шумел из-за decl-сида → фиксы ратифицированы (floor `min_max_tokens` D24.3, post-check базовый dst D24.4). **research/17 (внешняя критика GPT-5.6) принят — D25** (курс цел; release-state контракт до читательского экспорта, trust boundary в контракт). Книга на стенде `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). **⚠ Качество-первым (D26): первое чтение владельцем 25 глав — нечитаемо (редактура); этап B ЗАМОРОЖЕН до читаемых 25 глав. К запуску владельцем: бэкенд-мини-пакет №5 (`BACKEND_PACKAGE5_SESSION_PROMPT.md`) ∥ полигон-диагностика exp12 (`POLYGON_QUALITY_DIAG_SESSION_PROMPT.md` — приоритет №1) → пере-прогон 25 глав выигравшим конфигом → этап B · ридер-IDE ресёрч**. Полигон №4 — второй приоритет. Реализация D15.2 — после №5 (v3.1-правки первым шагом — D22.2). Решающая точка — пилот Ф2.5 (блокеры: чистый xAI-ключ, билингв-якорь — D25.9-Q1). Ключи: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL. Стенд: WSL2, GTX 1070 8GB (прокси-грабли: localhost из-под прокси даёт 403 — no-proxy транспорт для local). +Фаза 0 ✅; машинерия Ф1 построена и отрефакторена (бэкенд №1–4, полигон №1–3 — D20–D23; golden-гард = инвариант №8, OpenReadOnly-status). **Приёмка Ф1 этап A (25 глав 蛊真人 zh→ru, D18) ВЫПОЛНЕНА и ратифицирована с оговорками — D24**: $0.41, деньги/kill-9/resume/redrive подтверждены исполнением, дрейф ≈0; флаггер D10 шумел из-за decl-сида → фиксы ратифицированы (floor `min_max_tokens` D24.3, post-check базовый dst D24.4). **research/17 (внешняя критика GPT-5.6) принят — D25** (курс цел; release-state контракт до читательского экспорта, trust boundary в контракт). Книга на стенде `/home/ubuntu/books/gu-zhenren/` (GB18030; текст и производные ВНЕ git). **⚠ Качество-первым (D26): первое чтение владельцем 25 глав — нечитаемо (редактура); этап B ЗАМОРОЖЕН до читаемых 25 глав. К запуску владельцем: бэкенд-мини-пакет №5 (`BACKEND_PACKAGE5_SESSION_PROMPT.md`) ∥ полигон-диагностика exp12 (`POLYGON_QUALITY_DIAG_SESSION_PROMPT.md` — приоритет №1) → пере-прогон 25 глав выигравшим конфигом → этап B · ридер-IDE ресёрч**. Полигон №4 — второй приоритет. Реализация D15.2 — после №5 (v3.1-правки первым шагом — D22.2). Решающая точка — пилот Ф2.5 (блокеры: билингв-якорь/аннотаторы ≥3 — D25.9-Q1; **ключ xAI един с data-sharing, off перед продом — D27**, «чистый ключ» снят). Ключи: DEEPSEEK, ZAI, KIMI, OPENAI, GEMINI, XAI, MISTRAL. Стенд: WSL2, GTX 1070 8GB (прокси-грабли: localhost из-под прокси даёт 403 — no-proxy транспорт для local). diff --git a/docs/ACCEPTANCE_SESSION_PROMPT.md b/docs/ACCEPTANCE_SESSION_PROMPT.md index 27ad8ff..e821851 100644 --- a/docs/ACCEPTANCE_SESSION_PROMPT.md +++ b/docs/ACCEPTANCE_SESSION_PROMPT.md @@ -22,7 +22,7 @@ ## Конфигурация прогона (по контракту, не по вкусу) -- **Стадии:** draft = deepseek-v4-flash (thinking ON — эхо-мина; temperature там wire-no-op — известно, не чинить) → editor = **glm-5** (D20.3: чистого xAI-ключа нет; grok-4.3 НЕ гонять на книжном контенте текущим ключом — гигиена D8/D19.4); draft `escalate_to` = deepseek-v4-pro (заведён пакетом №3). +- **Стадии:** draft = deepseek-v4-flash (thinking ON — эхо-мина; temperature там wire-no-op — известно, не чинить) → editor = **по итогам exp12/D26-ратификации** *(ред. 11.07: ограничение «grok не гонять текущим ключом» СНЯТО — D27; glm-5-замена D20.3 больше не вынуждена)*; draft `escalate_to` = deepseek-v4-pro (заведён пакетом №3). - **Деньги:** `escalation.budget_usd > 0` (иначе echo-эскалация не стреляет — D22.11); потолок книги/дня выставить из этапности ниже; ledger-числа сверять с exp08-пропорциями. - Гейты — дефолт конфига (coverage zh-ru коридор [2.2,4.2]; postcheck-гейт OFF — флаги пишутся; cheap-gates как наблюдаемость). Промпты/пороги НЕ менять (правка промпта = resnapshot = переоплата — D15; анти-эхо правки гейтятся отдельно D21.6). diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index d612dd1..caa1f7b 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -1,10 +1,10 @@ # Журнал прогресса > **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (обновляемый блок; на 2026-07-11). **Источник истины по РЕШЕНИЯМ — `architecture/05-decisions-log.md` (D1–D25); этот файл — ЖУРНАЛ, не спека.** -> - **Фаза:** 0 ✅; машинерия Ф1 построена и отрефакторена (бэкенд №1–4, полигон №1–3 — все залендены после внешних ревью, D21–D23). **Приёмка Ф1 этап A (25 глав 蛊真人) ВЫПОЛНЕНА и ратифицирована с оговорками — D24** ($0.41; деньги/kill-9/resume/redrive подтверждены исполнением; дрейф ≈0). **research/17 принят — D25.** **⚠ КАЧЕСТВО-ПЕРВЫМ (D26): владелец прочитал 25 глав — нечитаемо, слабейшее звено редактура (первый человеческий замер; конфиг glm-5-моно никем не выбирался как лучший — D20.3-замена + оспоренный D1/D17). Этап B ЗАМОРОЖЕН до читаемых 25 глав.** **Очередь: бэкенд-мини-пакет №5 (`BACKEND_PACKAGE5_SESSION_PROMPT.md`) ∥ полигон-диагностика exp12 (`POLYGON_QUALITY_DIAG_SESSION_PROMPT.md`: армы моно/билингв × glm/grok/gemini на 3 главах, слепое чтение владельца, root-cause; кап $5) → пере-прогон 25 глав выигравшим конфигом → этап B → D15.2 (после №5 бэкенд может начинать v3.1+реализацию — смена редактора без переоплаты черновиков).** Полигон №4 — второй приоритет. Решающая точка — пилот Ф2.5 (блокеры: чистый xAI-ключ, билингв-якорь/аннотаторы ≥3 — D25.9-Q1, корпус, проба судьи-дублёра — D22.6). +> - **Фаза:** 0 ✅; машинерия Ф1 построена и отрефакторена (бэкенд №1–4, полигон №1–3 — все залендены после внешних ревью, D21–D23). **Приёмка Ф1 этап A (25 глав 蛊真人) ВЫПОЛНЕНА и ратифицирована с оговорками — D24** ($0.41; деньги/kill-9/resume/redrive подтверждены исполнением; дрейф ≈0). **research/17 принят — D25.** **⚠ КАЧЕСТВО-ПЕРВЫМ (D26): владелец прочитал 25 глав — нечитаемо, слабейшее звено редактура (первый человеческий замер; конфиг glm-5-моно никем не выбирался как лучший — D20.3-замена + оспоренный D1/D17). Этап B ЗАМОРОЖЕН до читаемых 25 глав.** **Очередь: бэкенд-мини-пакет №5 (`BACKEND_PACKAGE5_SESSION_PROMPT.md`) ∥ полигон-диагностика exp12 (`POLYGON_QUALITY_DIAG_SESSION_PROMPT.md`: армы моно/билингв × glm/grok/gemini на 3 главах, слепое чтение владельца, root-cause; кап $5) → пере-прогон 25 глав выигравшим конфигом → этап B → D15.2 (после №5 бэкенд может начинать v3.1+реализацию — смена редактора без переоплаты черновиков).** Полигон №4 — второй приоритет. Решающая точка — пилот Ф2.5 (блокеры: билингв-якорь/аннотаторы ≥3 — D25.9-Q1, корпус, проба судьи-дублёра — D22.6; чистый ключ СНЯТ — D27: единый xAI-ключ с data-sharing, off перед продом). > - **Стек:** черновик DeepSeek V4 Flash (thinking ON — эхо-мина; temperature там wire-no-op) · редактор **grok-4.3** `reasoning_effort:none` (D1-монолингв оспорен — решает пилот-арм D13.1/D17) · судья/апекс Gemini 3.1 Pro (**wire-слаг `-preview`**; mandatory thinking; биллинг `additive_total` — D22.3) · эскалация A: DeepSeek V4 Pro → GLM-5.1 → Gemini-preview (заведена, пакет №3) · **канал B (18+): переводчик Mistral (18/18 чист вкл. эротику) · эскалация grok-4.3 reasoning-ON (⚠ НЕ на архаичных zh — register-оговорка D22.5) · abliterated-скрининг · судьи: эротика — Grok (дублёр гейтится пробой D22.6), violence/SFW — Grok+Gemini** (DeepSeek в explicit запрещён ToS — D14.1). Anthropic выброшен, OpenAI оставлен. 7 ключей. > - **Экономика:** `experiments/08-cost-model-v2.md` (~$0.69 ранобэ / ~$10.94 вебновелла-500). ⚠ Resume: любой `--resnapshot` = переоплата книги — онгоинг гейтится D15.2 (v3.1 → реализация); exp08 v3 (annotator/voice-строки) заказан D21.8. Gemini-недоучёт 146×/вызов закрыт additive_total (D22.3). -> - **Ждём от владельца:** **слепое чтение сэмплов exp12** (~1–2 часа — ключевой сигнал диагностики) + его 10–20 худших мест из 25 глав для root-cause · **решение по билингв-якорю пилота** (рекрут zh/ja→ru-аннотаторов или явное принятие en-моста в пре-регистрации — D25.9-Q1) · чистый xAI-ключ без data-sharing и NSFW-истории (нужен к пилоту/боевым книгам, НЕ к exp12 — D19.4/D20.3) · семантика «publishable»/подпись waiver — при постройке читательского экспорта (D25.1) · FN-bound и методика валидации L3 — при приёмке спеки (D25.4) · провенанс двух внешних 12-*-доков · решение по юр-пакету (+rights manifest, D25.8). *(Этап B: «да»+потолок больше не запрашиваются — заморожен D26 до читаемых 25 глав.)* +> - **Ждём от владельца:** **слепое чтение сэмплов exp12** (~1–2 часа — ключевой сигнал диагностики) + его 10–20 худших мест из 25 глав для root-cause · **решение по билингв-якорю пилота** (рекрут zh/ja→ru-аннотаторов или явное принятие en-моста в пре-регистрации — D25.9-Q1) · «да/нет» на митигацию контаминации пилотного корпуса (временное выключение data-sharing на окно пилотных прогонов — D27.4) · семантика «publishable»/подпись waiver — при постройке читательского экспорта (D25.1) · FN-bound и методика валидации L3 — при приёмке спеки (D25.4) · провенанс двух внешних 12-*-доков · решение по юр-пакету (+rights manifest, D25.8). *(Этап B заморожен D26; чистый xAI-ключ СНЯТ из блокеров — D27: единый ключ с data-sharing, отключение перед продом.)* > - Записи ниже — хронология; РАННИЕ (день-0, 04.07) содержат устаревшие цифры/решения (COGS $2–4, BYOK, Anthropic-Sonnet), переопределённые позже — см. блок выше и 05-decisions-log. ## Приёмка Ф1 — 蛊真人 zh→ru, этап A (25 глав), 2026-07-10 @@ -90,6 +90,8 @@ Владелец прочитал 25 глав этапа A — **нечитаемо, слабейшее звено редактура**. Первый человеческий замер читаемости на реальной книге; D24 не пересматривается (приёмка мерила инфраструктуру по D1.1), но очередь перестроена — **D26**: этап B заморожен до читаемого конфига на 25 главах; полигону выдан промт **exp12 «диагностика качества»** (`POLYGON_QUALITY_DIAG_SESSION_PROMPT.md`: армы draft-only / glm-5-моно / glm-5-билингв / grok-моно / grok-билингв / gemini-премиум / grok-без-констрейнтов на 3 чистых главах; слепые пакеты владельцу; LLM-судьи вторично с билингвальной сверкой смысла; root-cause разбор худших мест; кап $5; текущий xAI-ключ допустим — D19.4); полигон №4 — второй приоритет; бэкенд №5 без изменений, после него — пакет D15.2 (пер-стадийный reuse = дешёвая итерация редактора). Оценка research/17 владельцу дана честно (~6/10: две контракт-аддиции + задачи, по качеству перевода — ничего, не его мандат). Разъяснена «гигиена чистого ключа» (без data-sharing + без NSFW-истории; к exp12 не требуется). +**Позже (11.07, ночь): D27 — ключевая политика xAI по решению владельца.** Отдельный чистый ключ не заводится: текущий (с data-sharing-промо — уточнение владельца, supersedes скобку D19.4) идёт на все тесты и пилот, data-sharing отключается перед продом. «Чистый ключ» снят из блокеров пилота; вынужденная glm-5-замена умирает (grok доступен для exp12/пере-прогона/этапа B). Риски зафиксированы принятыми (копирайт 蛊真人 в обучение — только свои тесты; NSFW-история аккаунта), рекомендация-митигация: пилотный корпус (вне претрейна!) гнать при временно выключенном data-sharing — ждёт «да/нет» владельца. Механику отключения сверить с вендор-докой перед релизом (в чек-лист первого боевого прогона). Инцидент git при синке D26: `add -A` подмёл чужие незакоммиченные правки живой бэкенд-сессии №5 — размотано soft-reset'ом немедленно, содержимое чужих файлов не тронуто; впредь стейджинг только пофайловый. + ## 2026-07-04 — Старт проекта (MVP-сессия) - Прочитан стартовый бриф `START_PROMT.MD` (37 пунктов идей). diff --git a/docs/README.md b/docs/README.md index 419df25..893a6cd 100644 --- a/docs/README.md +++ b/docs/README.md @@ -21,7 +21,7 @@ ## Статус (2026-07-11, вечер) -Фаза 0 ✅. Машинерия Ф1 построена и отрефакторена (пакеты №1–4/№1–3 залендены — D20–D23). **Приёмка Ф1 этап A выполнена и ратифицирована с оговорками — D24** ($0.41; инфраструктура подтверждена исполнением). **research/17 принят — D25.** **⚠ Качество-первым (D26): первое чтение владельцем 25 глав — нечитаемо (редактура); этап B ЗАМОРОЖЕН.** Очередь: **бэкенд №5 ∥ полигон exp12 (диагностика: армы моно/билингв × glm/grok/gemini, слепое чтение владельца) → пере-прогон 25 глав выигравшим конфигом → этап B** → D15.2 (бэкенд может начинать после №5). Решающая точка — пилот Ф2.5; блокеры — чистый xAI-ключ, билингв-якорь/аннотаторы ≥3 (D25.9-Q1), корпус 25–35 глав, проба судьи-дублёра 18+ (D22.6). +Фаза 0 ✅. Машинерия Ф1 построена и отрефакторена (пакеты №1–4/№1–3 залендены — D20–D23). **Приёмка Ф1 этап A выполнена и ратифицирована с оговорками — D24** ($0.41; инфраструктура подтверждена исполнением). **research/17 принят — D25.** **⚠ Качество-первым (D26): первое чтение владельцем 25 глав — нечитаемо (редактура); этап B ЗАМОРОЖЕН.** Очередь: **бэкенд №5 ∥ полигон exp12 (диагностика: армы моно/билингв × glm/grok/gemini, слепое чтение владельца) → пере-прогон 25 глав выигравшим конфигом → этап B** → D15.2 (бэкенд может начинать после №5). Решающая точка — пилот Ф2.5; блокеры — билингв-якорь/аннотаторы ≥3 (D25.9-Q1), корпус 25–35 глав, проба судьи-дублёра 18+ (D22.6). Ключ xAI: единый, с data-sharing, off перед продом (D27 — «чистый ключ» снят из блокеров). ## Доступные ключи от моделей DEEPSEEK_API_KEY, ZAI_API_KEY, KIMI_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, XAI_API_KEY, MISTRAL_API_KEY diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index 04fe3b6..4913c8d 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -320,6 +320,16 @@ D1 остаётся дефолтом Фазы 1 (менять конфигура 4. **Бэкенд не тормозится:** №5 без изменений (floor/post-check нужны любому конфигу); следующий пакет после №5 — D15.2 v3.1+реализация: пер-стадийный wireSnapshotID (D20.1-Q1) делает смену редактора без переоплаты черновиков — прямая синергия с качественной итерацией. 5. **Дорожка после диагностики:** пере-прогон 25 глав выигравшим конфигом (~$0.5–1) → чтение владельца → читаемо → этап B и подготовка пилота Ф2.5 (пилот остаётся решающей точкой; диагностика его не подменяет и не разбавляет — D25.2-гейт про билингв-якорь в силе). +## D27. xAI-ключевая политика: единый ключ с data-sharing для тестов/пилота, отключение перед продом (11.07, решение владельца). ✅ + +**Решение владельца 11.07 (амендмент D19.4/D20.3):** отдельный «чистый» xAI-ключ НЕ заводится. Текущий ключ — **с data-sharing** (промо; уточнение владельца — supersedes скобку D19.4 «без data-sharing»: либо устарела, либо была ошибкой записи) — используется для ВСЕХ тестов полигона И пилота Ф2.5; тот же ключ пойдёт в прод — **перед релизом data-sharing на нём отключается**. Рациональ владельца: промо-кредиты существуют ровно для тестов; не пользоваться ими странно. + +1. **«Чистый ключ» СНЯТ из блокеров пилота** (правка D20.3). Блокеры пилота теперь: корпус 25–35 глав, аннотаторы ≥3, билингв-якорь (D25.9-Q1), проба судьи-дублёра 18+ (D22.6). +2. **Следствие для редактора:** вынужденная замена grok→glm-5 (D20.3) не нужна — grok-4.3 доступен на текущем ключе для exp12-армов, пере-прогона 25 глав и этапа B, если выиграет диагностику. +3. **Принятые владельцем риски (зафиксированы с калибровкой):** (а) 蛊真人 — чужой копирайт: data-sharing = передача текста в обучение (иная правовая поза, чем приватная обработка Р8) — принято для собственных тестов, для клиентских книг НИКОГДА; (б) NSFW-eval-история на аккаунте — риск бана принят, мониторинг политики xAI (D14.3) продолжается. +4. **Митигация контаминации (рекомендация оркестратора, дёшево):** на окно прогонов ПИЛОТНОГО корпуса (вебновеллы вне претрейна — их «чистота» = валидность замеров) data-sharing временно выключать, затем включать обратно; PD-классика и 蛊真人 (в претрейне) — шарить без ограничений. Статус: предложено владельцу, ждёт его «да/нет» к пре-регистрации пилота. +5. **Перед релизом:** механику отключения сверить с вендор-докой xAI (немедленность, независимость от промо-периода; уже переданное не отзывается) — правило двух направлений; задача уходит в чек-лист первого боевого прогона. + ## Сопутствующие правки доков (оркестратор, 09.07) `02-mvp-plan.md` → v3 (мёртвые пороги/интерим-18+/фазовые списки синхронизированы с D-логом); обе `*.puml` → v3 (убраны Opus/BYOK/«≤2×», дорисованы ре-гейт эскалации, три класса отказов D12, человек в петле, фазовые пометки); superseded-баннеры на `research/01, 02, 03, 04, 09`; провенанс-шапки на `research/12-architecture-as-antipattern.md` и `12-common-failures.md` (происхождение не зафиксировано — до уточнения владельцем числа оттуда не абсорбировать как факты); закрытые промты → `docs/archive/prompts/`; онбординг: корневой `CLAUDE.md` + `backend/README.md` + `eval/README.md`.