> **⟶ ОТРАБОТАН (2026-07-16), ЗАЛЕНДЕН D39.1.** Выход: `docs/research/19-chunking-cohesion.md` (+`-sources.md`, 52 клейма: 36 CONFIRMED / 16 OVERSTATED-с-коррекциями, 65-агентный веб-воркфлоу + 5-линзовое само-ревью, 8 MAJOR исправлены до сдачи). Ключевое: конфликт exp14↔research/18 разрешён как ложная дихотомия (эмиссия ≠ окно чтения ≠ единица связности); Go-спека чанкера (профиль→B0–B5→DP) + фоллбек-веер; когезия carryover/lookahead/стейт БЕЗ LLM-summary; **волновая архитектура W0–W3 (вводная владельца 16.07: параллелизм)**; §D пре-рег дизайн Q0–Q5. Оркестратор-ревью НЕ проводилось по решению владельца (сессия отревьюирована своим воркфлоу + сильной моделью). Правки владельца в задаче 1 (роли при чанковании; lost-in-middle) — закрыты §A.1/Q2c. Архивная копия.

# Промт: сессия-РЕСЁРЧЕР — логическая нарезка + меж-чанковая когезия + дизайн эмпирики (трек B), 2026-07-13

> Рождён из арх-ресета **D39** (`docs/architecture/05-decisions-log.md`, `09-target-architecture.md` §2 слой 1, §4 трек B). Это **ресёрч ПЕРЕД постройкой** для сцепленных концернов **1 (разделение переводчик/редактор), 2 (нарезка), 4 (частично)**. Ты НЕ пишешь прод-код и НЕ гоняешь платную эмпирику — ты (1) добываешь best-practices, (2) проектируешь реализуемый чанкер+когезию, (3) выдаёшь ПРЕ-РЕГИСТРИРОВАННЫЙ дизайн полигон-эмпирики, которую потом исполнит полигон-сессия.

## Зачем эта сессия (мета)
Потолок художественности — в НАШЕЙ нарезке/проходах, не в моделях (D39). Три сцеплены: редактор репараграфизует ВНУТРИ ~1500-токенного чанка → нарезка ограничивает потолок дискурс-переверстки и «понимания связей». Владелец: **нарезка нетривиальна** — глава может быть >> загружаемого чанка, резать надо по **логическим** единицам (статический код, фоллбеки, интернет-best-practices), а не «все китайские книги такие, грузим главы». Нужно спроектировать это правильно И спроектировать эксперимент, который разрешит открытые вопросы, а не соберёт ложную сходимость (полигон делал это трижды — D32.4).

## Зона и дисциплина
- **Зона записи — `docs/research/` только** (новый отчёт, напр. `docs/research/19-chunking-cohesion.md`). Ничего не коммитишь — лендит оркестратор после верификации первоисточников (как research/15–18).
- **Гардрейлы (CLAUDE.md):** НЕ читать `.env`; 18+ уровень 3 — не открывать `eval/data/*corpus*`, `/home/ubuntu/books/` (кроме метаданных/структуры, если понадобится оценить размеры глав — тогда ТОЛЬКО счётчики, не содержимое explicit).
- **Правило двух направлений:** несущий клейм → первоисточник; аномалия/best-practice тула → офиц. дока. Не абсорбируй фреймворк-маркетинг как факт.
- **Анти-анкоринг (как research/18):** §A своего вывода замораживай (sha256) ДО чтения нашего стека/предыдущих отчётов, чтобы независимость была реальной.
- **Мандат самопроверки (CLAUDE.md):** несущие клеймы верифицируй адверсариально своим воркфлоу (author≠reviewer внутри сессии: твой «CONFIRMED» — по первоисточнику, не по вторичке); отметь, где сходимость общая-ногой-литературы, а не 3 независимых голоса.

## Онбординг
1. `CLAUDE.md` → `docs/architecture/09-target-architecture.md` (§2 слой 1 — целевой чанкер; §4 трек B — вопросы) → `08-sync-audit-ledger.md` дорожка **L2** (все находки нарезки) + `L1` (контракт переводчик/редактор).
2. `docs/architecture/05-decisions-log.md` **D39** + D30.2 (`:366` — reflow-механизм открытый вопрос) + D35 (`:471` — декаплинг = un-ratified кандидат).
3. **Код нарезки** (грунтовка, не по заголовкам): `backend/internal/pipeline/chunker.go` (жадная упаковка абзацев в `targetChunkTokens=1500` const, спуск до предложений; границы бюджетные), `ingest.go` (как формируются главы), `chunkrun.go` (чанк = единица И черновика И редактуры; инъекция только глоссарий — меж-чанковой когезии нет), `render.go`/`config/pipeline.go` (`STMDepth`/`OverlapTokens` — мёртвые заглушки).
4. **Предыдущая эмпирика:** `docs/experiments/14-quality-empirics.md` (кривая размера чанка §2Б.4; A-ref ±1 §2.4; P1c глава-целиком §2.3) + `docs/research/18-quality-levers.md` §A (Ось-4: держать чанк МЕЛКИМ + carryover; глоссарий ≈14% дискурс-ошибок, дейксис ~37%, эллипсис ~29%) + `16-reader-ide-alignment.md`, `12-*` (дискурс-нормы, кросс-предложенческая когезия).

## ⚠ ЦЕНТРАЛЬНЫЙ КОНФЛИКТ, который сессия ОБЯЗАНА адресовать
**exp14 §2Б.4** намерял: крупнее чанк = дешевле выходных токенов И лучше абзацы (оптимум ~3200c/глава, 0 ретраев) → «edit=крупная единица». **research/18 §A Ось-4** заключает ОБРАТНОЕ для прода: держать чанк МЕЛКИМ (малый retry-blast-radius, Lost-in-Middle), а когезию давать кэшированным running-summary/carryover — «а НЕ размером единицы». Оба клейма grounded, но **противоречат по размеру edit-единицы**. Твой дизайн эмпирики должен этот конфликт РАЗРЕШИТЬ (на retry-adjusted-cost + на реальном вебновелл-срезе, не PD-классике), а не выбрать сторону догадкой.

## ЗАДАЧИ

### Задача 1 — Best-practices логической/семантической нарезки (интернет + академия)
Добудь и адверсариально верифицируй, КАК правильно нарезать крупный НАРРАТИВНЫЙ текст на логические единицы, когда глава >> окна модели:
- Инженерные best-practices: recursive/semantic splitting, sentence-window / parent-document, discourse/scene-boundary detection, topic segmentation (TextTiling и потомки), overlap-стратегии — с их РЕАЛЬНЫМИ ограничениями (не маркетинг фреймворков).
- Как это делают CAT/пром-MT тулы и переводчики-практики (сегментация по смысловым блокам, не по строкам).
- Академия по кросс-предложенческой когезии, релевантная нарезке: Voita (дейксис/эллипсис/когезия), DelTA / running-summary, document-level MT context windows.
- Учти что при чанковании книги в модели загружаются разные промты-роли, это может быть не только переводчик, а например еще и редактор, который будет подхыватывать оригинал - как тут действовать чанками?
- Важная деталь: мы знаем что модели на середине контекста начинают бредить или теряться в чем-то, поэтому стоит речекнуть исследования в этом плане, плюс возможно почитать что уже в репозитории есть по тестам полигона в этом 
**Выход:** реализуемый в СТАТИЧЕСКОМ Go-коде дизайн: (а) стратегия `logical` (сцена/диалог/тема-граница) с **фоллбек-лестницей** и инвариантом «никогда не резать предложение»; (б) какие сигналы границы детектируемы БЕЗ модель-вызовов (дёшево — владелец: «не модель-вызовами размечать чанк»); (в) конкретные фоллбеки при провале детекции. Рассмотри ВСЕ кейсы, не только «1-2-3-4 мелкие главы влезли в чанк» (это простейший). 

### Задача 2 — Дизайн меж-чанковой когезии
Спроектируй механизм, закрывающий претензию-2 «понимание связей» при чанк-изоляции + zh zero-anaphora:
- running bilingual summary + carryover соседних единиц (оживить `STMDepth`/`OverlapTokens`), cache-friendly (порядок кэша важен — research/18);
- ±1 reference-контекст (exp14 дал null на PD-срезе — но домен-mismatch: нужны РЕАЛЬНЫЕ кросс-граничные трапы вебновеллы);
- как это НЕ ломает деньги/снапшот/детерминизм (read-only контекст, fold в снапшот).

### Задача 3 — Дизайн контракта переводчик/редактор (концерн 1)
research/07 предписывает узкие мандаты + диффы, не полную перегенерацию; прод-редактор = ОДНА full-regen с 4 мандатами (причина инверсий D34.3). Спроектируй (для эмпирики, не для прода):
- арм **«переводчик отдаёт структурный ~верный черновик»** vs «редактор-переписыватель» — **НИКОГДА не тестировался** (exp14 держал модель черновика константой);
- diff-based редактор (search/replace + детерм. apply) как узкий проход — оценка ROI (blast-radius, COGS, omission-safety).

### Задача 4 — ПРЕ-РЕГИСТРИРОВАННЫЙ дизайн полигон-эмпирики (для исполнения полигоном)
Спроектируй эксперимент, разрешающий концерны 1/2/4 БЕЗ ложной сходимости. Не полный факториал (24 ячейки — неподъёмно) — **набор целевых 2-арм контрастов к общему якорю** на едином **МАРКИРОВАННОМ вебновелл-срезе** (не PD-классика — гейт «вне претрейна»):
- **Q1 (нарезка):** `граница greedy vs logical` при фикс. edit-единице → чинит ли логическая граница когезию (претензия-2).
- **Q2 (edit-единица, РАЗРЕШАЕТ КОНФЛИКТ):** `edit=чанк vs edit=глава/крупная` на **retry-adjusted** COGS + когезия.
- **Q3 (когезия):** `нет vs running-summary/carryover` при МЕЛКОМ чанке → закрывает ли carryover кросс-границу (клейм research/18).
- **Q4 (контракт):** `где reflow: переводчик vs редактор vs отдельный-пасс` + арм сильного переводчика.
- **Обязательно:** маркированный набор КРОСС-ГРАНИЧНЫХ трапов на вебновелл-срезе (аудит: §D-1 «locus когезии не размечен»); methodology-guard D32.4 (fidelity-first агрегация, leave-one-out судей, катастроф-скрин к победителю тоже, per-call кап, пре-регистрация ЗАМОРОЖЕНА коммитом ДО первого платного вызова, каждый скрипт персистит usage/cost).

## Полигон-синк — ОТВЕТЫ получены (2026-07-13), ВПЛЕТИ в дизайн
Оркестратор синканулся с полигон-сессией 14/14б. Факты (grounded по артефактам, всё ВНЕ git в `exp14/`):
1. **Translate-арм НЕ гонялся:** frontier-as-ПЕРЕВОДЧИК спот-чек (14:148) планировался, но `exp14/costs.jsonl` — только РЕДАКТОРСКИЕ армы (ре-редактуры фикс. flash-черновика). Draft-swap/translate-плеча НЕТ. → **«переводчик отдаёт структуру» (Q4) — чистое поле, ни одного датапоинта.**
2. **Реюз (дёшево):** кривая размера — выходы `exp14/sizecurve/{17,13}-{800c,1600c,3200c,whole}.txt` + `sizecurve.json`; исходник = детерм. `chapter_source()` из `material.json`; границы байт-воспроизводимы (жадный `rechunk(budget)` детерминирован). A-ref — `exp14/arms/A-ref-{prev,both}/{11.1,24.1}.txt` + `material.json→trap_chunks`. **⚠ `A-ref-next` НЕ гонялся** (только prev/both) — next-supported/катафора-плечо ОТСУТСТВУЕТ.
3. **Кросс-граничный null = ДОМЕН-АРТЕФАКТ, не бесполезность рычага:** чистого next-supported/катафора-трапа в раннем срезе не нашлось; T5/T6 локально самодостаточны → A-ref-prev байт-идентичен «чинить нечего» (14:93/257/290). Маркированного кросс-граничного набора НЕТ. §D-1 (locus когезии не размечен) в силе.
4. **Сцен-граница — СОЗНАТЕЛЬНО не гонялась:** докстринг `exp14_sizecurve.py:10-11` — ранняя арка 蛊真人 **структурно плоская** (1 предл./строка, мало сцен-маркеров) → «сцена vs жадная» слабо различима на ЭТОМ тексте. Не тулинг/время — домен.

**СКВОЗНОЙ ВЫВОД (несущий для дизайна) — ИНВАРИАНТ ОБЩНОСТИ (`09` §0.1):** три из четырёх пробелов (Q1/Q3/Q4) — непротестированные допущения, потому что **тест-срез плоский** (ранняя арка 蛊真人: 1 предл./строка, мало сцен-маркеров) и физически не задействует рычаги. Это ограничение ДИЗАЙНА ЭКСПЕРИМЕНТА, НЕ вывод о продукте. Цель проекта — перевод **ЛЮБОЙ** книги/пары/структуры; чанкер обязан быть ОБЩИМ (адаптируется к структуре каждого входа в рантайме), а не тюнингом под одну книгу. Следствия для §D:
- **Валидируй чанкер на РАЗНООБРАЗНОМ корпусе структур+языков** (плоский CJK line-per-sentence · сцен-маркированный вебновелл · длинно-абзацный европейский роман · ja-ранобэ · …) — так, чтобы дизайн доказывал КОРРЕКТНОСТЬ+near-оптимум на всём спектре. Плоская книга — ОДНА точка спектра, который алгоритм обязан обрабатывать; **НИКОГДА не повод сузить продукт** («книга плоская → урезать нарезку» — ЗАПРЕЩЕНО).
- **Трапы Q1/Q3/Q4** — на срезах, которые РЕАЛЬНО задействуют рычаг (сцен-структура для Q1-границы; кросс-главные зависимости для Q3-когезии), маркированные, вне претрейна — иначе снова неинформативный null. В проекте есть корпус-билдеры (`gu/ja/en/jpm_corpus_build`, `webnovel_slice`) — используй для разнообразия.
- **Структурная характеризация — вход алгоритма, не приговор книге:** опиши спектр структур (в т.ч. насколько плоская 蛊真人 дальше) как **вход** для рантайм-детектора границ + для выбора репрезентативного тест-корпуса. Не «эта книга плоская → отключим логическую нарезку».
- **Дешёвый реюз (от полигона):** кривая (Q2) + A-ref-prev/both как есть; дозаказать `A-ref-next` + translate-плечо (Q1 реюзит те же 2 T-трапа почти бесплатно) + добрать структурно-разные срезы.

## Deliverable
`docs/research/19-chunking-cohesion.md`: §A (заморожена sha256, ДО чтения стека) · §B (best-practices нарезки+когезии, реализуемый Go-дизайн + фоллбеки) · §C (дизайн контракта t/e) · §D (пре-регистрированный арм-дизайн Q1–Q4 + маркированный трап-набор + methodology-guard) · §E (открытые вопросы владельцу/бэкенду). Несущие клеймы — с первоисточником; отметь общую-ногу-литературы vs независимые голоса. Оркестратор верифицирует по первоисточникам и лендит; полигон-эмпирику по §D запускаю отдельным промтом ПОСЛЕ (author≠reviewer). **Ничего не коммить.**
