From 9087b5ed1310be44c4e6e4214f600b6512f0d1dd Mon Sep 17 00:00:00 2001 From: "Claude (backend session)" Date: Fri, 21 Aug 2026 02:57:59 +0300 Subject: [PATCH] Move five norms out of auto-memory into the repository carriers that sessions actually read, and cut the memory index down to what the repo does not hold --- docs/ORCHESTRATOR_SESSION_PROMPT.md | 13 +++++++++++-- docs/PROGRESS.md | 2 +- docs/architecture/12-go-style-notes.md | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/ORCHESTRATOR_SESSION_PROMPT.md b/docs/ORCHESTRATOR_SESSION_PROMPT.md index 3f49d5fb..9f35e434 100644 --- a/docs/ORCHESTRATOR_SESSION_PROMPT.md +++ b/docs/ORCHESTRATOR_SESSION_PROMPT.md @@ -74,7 +74,7 @@ D-ссылка грепается по D-логу · mid-flight аддендум сессии, объявляются владельцу вслух ДО коммита; девиации — НОВЫМ коммитом и явно в отчёте; «не влезает в бюджет — стоп и пинг, не резать молча» (D39.108 п.1) · подъём потолков просить при СРАБАТЫВАНИИ стопа, не по проекции — прогнозный запрос оставляет ложный след «владелец согласился -на пере-оплату», которой не было. +на пере-оплату», которой не было · **живость длинного платного прогона проверяется АКТИВНО** (владелец 18.07): не ждать финального уведомления — раз в пару часов сверять рост числа вызовов/трат по леджеру двумя чтениями и докладывать «жив»; зависшая задача от идущей по сигналу завершения неотличима. **Пропорциональность (веса решаешь ты):** тяжёлый пак (дизайн · wire-двигающий · новый механизм · швы) → полный аппарат; лёгкий (механические хвосты, док-правки) → короткий пошаговый промт, приёмка @@ -94,7 +94,16 @@ D-ссылка грепается по D-логу · mid-flight аддендум дефекты ВНЕ карты отчёта · клейм без ре-рана = «со слов сессии», не «исполнением» · вердикт о рантайм-поведении без живого прогона = PLAUSIBLE (D39.129) · «решение владельца», известное со слов сессии, — на confirm ДО лендинга · оценочные эпитеты в ноты не писать · к утверждениям приёмки — -та же «заявление=команда». Панелям: obstacle-поле обязательно в схеме; ревьюерам — рамка «флагай +та же «заявление=команда», и она же — к ТВОЕЙ СОБСТВЕННОЙ прозе в нотах и журналах (нарушено №18 +20.08: «сверено грепом» без грепа, «файла нет, проверено» про существующий файл) · **исполняй САМ +КЛЕЙМ, а не подтверждай, что правка внесена** — иначе проверяющий воспроизводит ошибку проверяемого +(так пропущены два самых ложных утверждения репозитория, D39.153 п.9з) · факт о ПРОВАЙДЕРЕ правится +только со ссылкой на `experiments/00-provider-quirks.md` или вендор-доку; носители противоречат — +назвать противоречие, НЕ выбирать сторону · исходов ТРИ, а не два: «не проверено» ≠ «опровергнуто» +— у панелей сверяй `agents_done` против `agent_count`, упавший по лимиту рефутер не опровергает · +замер бьёт по ПОСЫЛКЕ задачи — стоп и вопрос владельцу, а не формальный артефакт под подпись · +дизайн-эвристика проверяется на РЕАЛЬНОМ корпусе до внесения в дизайн, не на примерах. Панелям: +obstacle-поле обязательно в схеме; ревьюерам — рамка «флагай бьющее по корректности/заявленным требованиям» (анти-оверфлаг). **Линзы — по ХАРАКТЕРУ работы (не один шаблон на всё):** diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index d208d5e0..e467b4b4 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -52,7 +52,7 @@ | 28 | Банк-линт латиницы в dst или строгая форма языкового предиката (7 строк утечки алфавита проходят экран); сюда же хвост закрытой 128 (D39.102: NoDst-почти-сентинел, латиница-target — дословно не переехал при закрытии, восстановлен аудитом D39.140) | бэкенд | когда-нибудь (добор идеала — носитель «свежий мини-прогон» растворён D39.67, актуализация D39.79) | касание чекеров при данных добора (помнить оговорку 36а: «甲等 → класс Цзя» строгой формой не ловится) | D39.52, D39.62, D39.64, D39.79 | | 28а | **Prompt-injection-проба входного текста** ($0): сепаратор ⟦TM-BANK-v1⟧ и якорь-подобные маркеры В ТЕКСТЕ КНИГИ — поведение среза/парсера/инъекции (книга = недоверенные данные; инструментов у моделей нет, но канал банкноты читает вывод по маркеру) | бэкенд/полигон | когда-нибудь | малая проба | сводка-ревью 26.07 | | **— СВИП ГИПОТЕЗ —** | | | | | | -| 30а | **Перерисовка puml-диаграмм под пост-пак-20 пайплайн** (терминолог, банкнота отдельным файлом); дом диаграмм теперь `backend/docs/` — правятся одним коммитом с кодом (D39.80); PUML НЕ рендерить (гардрейл) | бэкенд | когда-нибудь | ближайший пак, касающийся pipeline | аудит доков 26.07, D39.80 | +| 30а | **Перерисовка puml-диаграмм под пост-пак-20 пайплайн** (терминолог, банкнота отдельным файлом); дом диаграмм теперь `backend/docs/` — правятся одним коммитом с кодом (D39.80); PUML НЕ рендерить (гардрейл). ⚠ **Ловушки activity-синтаксиса, поймавшие реальный баг 25.07** (перенесены из авто-памяти оркестратора при её чистке 21.08 — их не было ни в одном доке): `;` внутри многострочной метки ОБРЫВАЕТ её; строка метки, начинающаяся с `/ | < > ] }`, читается как спец-терминатор | бэкенд | когда-нибудь | ближайший пак, касающийся pipeline | аудит доков 26.07, D39.80 | | **— ОТДЕЛЬНЫЕ ПАКИ/РЕШЕНИЯ (бэкенд, добор идеала) —** | | | | | | | 31 | Слой-2: извлечение дискурс-норм/few-shot из ТЕЛ промтов (форсинг = ja→ru) | бэкенд | когда-нибудь | отдельный пак (идеал D39.33) | CURRENT-STATE, D39.33 | | 33 | **native-Gemini судья** (Ф2-механизм) ; до прод-заводки: $0.01-проба thinking⊆max_tokens на боевом слаге (D22.3) + включить sanitizer в pipeline-c2 при оживлении (D33.4б) | бэкенд | когда-нибудь | отдельный пак (идеал) | CURRENT-STATE, D39.33 | diff --git a/docs/architecture/12-go-style-notes.md b/docs/architecture/12-go-style-notes.md index a70b3e7f..05327745 100644 --- a/docs/architecture/12-go-style-notes.md +++ b/docs/architecture/12-go-style-notes.md @@ -14,6 +14,9 @@ ## §1. Go-ответы (только то, о чём реально спорим) - **Язык кода (владелец 20.07): английский** — комменты, логи, операторские дашборды/error-msg, detail-флаги. **Русским (target-языком) ОСТАЮТСЯ и не трогаются:** wire/инъекц-промпты, которые читает модель (`glossaryBlockHeader`, маркер `⟨проверить⟩`, gender-аннотации; ⚠ снятие маркера с провода — санкционированная правка строкой 134 по D39.104, двигает RequestHash; правило неперевода остальных wire-строк в силе); lang-data таблицы гейтов; тест-данные перевода. Почему: перевод wire-строки = тихая смена инструкций модели → сдвиг вердиктов + `--resnapshot` (переоплата, D30.9); перевод lang-data ломает чекеры (матчат литералом). Проверка нейтральности правки: golden байт-идентичен по content_hash/final_hash. +- **Имена без аббревиатур этапов (владелец 19.07):** ни `W0`/`W1`/`W1.5`/`W2` в идентификаторах, логах и комментариях — пишем `waveDraft`/`waveEdit`, «draft wave started». Аббревиатуры волн жили в разработке и в глоссарий попали как ИСТОРИЯ; в код и в операторский вывод они не возвращаются. +- **Комментарий — одна-две строки «почему», а не эссе (владелец 26.07).** Doc-простыни на каждый символ избыточны; улики и разбор идут в отчёт пакета, а не в исходник. Несущее исключение — то, что из одной функции не выводится: порядок блокировок, инварианты между таблицами, цена забывания. ⚠ Норма измерима и уже нарушалась: `platform` PD-255 — миграция на 250 строк, наполовину проза. +- **Код группируется логическими папками по назначению, а не свалкой `archive/` (владелец, про КОД).** Архив-метафора законна для доков и промтов; для кода каталог обязан называть предмет. - **`_test.go` рядом с кодом — не бардак, а требование тулчейна**: `go test` собирает тесты только из каталога пакета; отдельных `tests/`-деревьев в Go не существует. - **Число/размер файлов — НЕ критерий сплита** (Google: «maintainers can move code between files without affecting callers»; эталон — stdlib `bytes`). Легитимный триггер — концептуально отдельная подсистема со своим узким API. **Этот тест прогнан против фактуры (пак-14, прил. A: связность измерена) — его проходят miner/checks/membank/chunk → сплит РАТИФИЦИРОВАН (D39.23, пак-15): сначала хойст общего субстрата (`internal/text` + value-типы), затем подсистемы; драйвер остаётся композит-корнем `internal/pipeline`.** Дробление «ради размера» по-прежнему запрещено (util-пакеты, течь деталей в API); crush-масштаб (~71 пакет) не эмулируем — сплит только по измеренному узкому API. - **Никаких пакетов `util`/`common`/`helpers`/`types`** — имя пакета обязано нести домен (Decisions/CodeReviewComments).