Serpentis AI · История · внутренний документ, открытая копия

История системы: функции и исследования (внутренний документ)

Открытая копия внутреннего документа. Мы писали его для себя: он на русском, с номерами сессий, внутренними именами и путями. Для открытой копии мы убрали упоминания людей, разделы планов, продуктовые замыслы (о продуктах -- страница сайта «Продукт») и ряд мест, которые не выносим наружу; убирали строки целиком (в четырёх местах -- часть перечня внутри строки), ничего не дописывали и не переписывали. Публичный рассказ по этому документу -- страница «История».

Собрано 2026-10-03 (сессия 59d7dbd0) по методике 00_METODIKA.md: 24 функции, 412 органов из реестра core/organ_registry.py; механика (даты, коммиты, шапки) -- скриптом dosye.py, карточки -- рабочие Sonnet по досье, проверка -- Wind (адреса скриптом proverka_adresov.py, причины -- выборкой по источникам). Точность ориентировочная: дата коммита != дата замысла; «пришло из forge» = раньше 30.03.

1. Ось роста: функции по дате замысла

Git начинается 2026-03-30 переносом из forge: функции с датой «30.03 (forge)» сложились РАНЬШЕ, в forge, и их точная дата в этой истории не восстановлена (архив forge не копали -- методика, правило 2). Развитие видно по колонке «последняя веха».

Дата замысла Последняя веха Функция Что сейчас
2026-03-30 (forge) 2026-10-01 F01. Охрана данных: корзина, копия перед правкой, копия базы функция даёт три рода гарантий. (1) Файл: перед любой перезаписью через Edit/Write/NotebookEdit и перед командой Bash/PowerShell, которая его перезапишет (редирект, tee, sed -i, cp/mv, запись из...
2026-03-30 (forge) 2026-09-28 F02. Резервные копии (ежедневные, полные, базы) три слоя копий. (1) cc_backup.py + cc_backup_daemon.py -- ежедневные копии стенограмм, памяти и данных ассистента (по расписанию, с ротацией;
2026-03-30 (forge) 2026-09-25 F03. Память о прошлых сессиях (recall): загрузка, очистка, поиск, вставка в контекст функция принимает журналы сессий (index_transcripts, recall_load_v2, recall_register, recall_sessions), строит чистый слой «пользователь/ответ» (recall_clean, recall_cosmetic -- исправлени...
2026-03-30 (forge) 2026-09-28 F04. Наследование между сессиями: хендофф, рефлексия, старт, закрытие, восстановление функция передаёт состояние от одной сессии к следующей и ловит обрывы. На старте on_session_start вводит в контекст выбранную часть хендоффа и сигналы здоровья;
2026-03-30 (forge) 2026-09-27 F07. Сторожа выхода во внешнюю среду: git и сеть, платежи, сообщения функция стоит на трёх осях выхода наружу. (1) Git/сеть: любая сетевая запись в GitHub из Bash/PowerShell запрещена гейтом git_network_gate (разбор строки в git_network_gate_core);
2026-03-30 (forge) 2026-09-26 F08. Сторожа действий агента: общий сторож, схема БД, ресурсы, меню выбора, труд набор хуков PreToolUse и вспомогательных органов, которые судят действия агента. pre_tool_guard -- общий сторож (отказ через permissionDecision=deny, секреты по форме, судья головы команды);
2026-03-30 (forge) 2026-09-26 F09. Конец хода и качество ответа: проверки ответа, ревью, цепочки инструментов функция следит, чтобы работа и ответ прошли проверки до того, как их приняли. Стоп-хук on_stop.py в конце хода собирает напоминания (ревью, документ-дрейф, закрытие сессии, пакет инструментов) и отд...
2026-03-30 (forge) 2026-10-02 F10. Здоровье системы и наблюдение за ней функция следит за состоянием системы и самой следящей части. Стартовая проверка (system_health) отдаёт зелёное/жёлтое/красное в начало сессии; watchdog -- периодический монитор;
2026-03-30 (forge) 2026-09-28 F11. Инструменты качества мышления (калпа, разбор на атомы, пробирщик, проверки, ревью) функция даёт набор приборов, которыми проверяют мысль и работу до и после действия. До: разбор объекта на атомы (/decompose, в т.ч.
2026-03-30 (forge) 2026-09-11 F12. Проекты (эндеворы), план и заказы функция ведёт «проекты» как объекты. Реестр плана (active_plan) читают три органа: порядок (plan_order), застой строки (plan_zastoy), холод (plan_cold).
2026-03-30 (forge) 2026-10-02 F13. База знаний документации (grov) и индексы функция хранит локальную копию документации и самопознания системы в базе grov (таблицы doc_sources, doc_chunks, схемы Tongue) и даёт к ней доступ.
2026-03-30 (forge) 2026-09-30 F16. Внешние модели и рабочие (труд на дешёвой модели) функция даёт два рода выхода к чужим моделям. (1) Вызов модели из кода: llm_call выбирает бэкенд по классу задачи и классу данных, llm_registry хранит реестр и ранги вариантов, llm_backends -- а...
2026-03-30 (forge) 2026-09-04 F20. Сигналы, ошибки, время, ввод шесть родов мелких приборов. (1) Сигналы: cc_signal.py -- запись решений, откладываний, блокеров, ошибок в таблицу cc_signals (стартовый хук потом подмешивает ошибки в следующую сессию).
2026-03-30 (forge) 2026-09-24 F21. Доступ к базам данных функция даёт единый безопасный доступ к базам. Правило db_schema требует перед запросом к незнакомой таблице узнать схему (python core/db_schema.py <ключ>), не угадывать колонки и ходить через `d...
2026-03-30 (forge) 2026-10-01 F24. Запуск, настройки и окружение три слоя. (1) Правила среды, приходящие в каждую сессию: environment_constraints (psql и кириллица, доступ к БД и секреты в командах, Git Bash, конфигурации FTS, транскрипты живут 30 дней, временные...
2026-03-31 (forge) 2026-09-27 F05. Авто-память агента (MEMORY.md и файлы памяти) функция держит память агента между сессиями. Файлы памяти хранятся вне дерева проекта (C:/Users/Borg/.claude/projects/W--wind/memory/), вход -- MEMORY.md.
2026-03-31 2026-09-26 F06. Правила, ядро и доставка правил в нужный момент функция -- слой текстов, которые правят поведение агента. (1) Ядро .claude/rules/yadro.md: семь принципов и формула, приходит в каждую сессию;
2026-04-09 2026-09-10 F18. Публикации (Zenodo, проверка текста) функция ведёт выпуск текста наружу: оригиналы на двух языках (publish_bilingual), обязательная ссылка публикации на эндевор-источник (publish_source_linkage), подготовка текста (publish-prepare)...
2026-04-19 2026-09-16 F22. Замеры и испытания (исследовательские приборы) десять отдельных скриптов-проб и замеров. Часть измеряет прежнюю память-впрыск (калибровка, перекрытие вложений, двухпроходный отчёт, сходимость/затухание/ложные срабатывания), часть -- самотесты отде...
2026-05-13 2026-07-30 F14. Объектная память и досье core/object_memory.py -- инструмент «вытягивания» (pull): по названию объекта возвращает его досье (камера фактов из data/objects/) и накопленный опыт (камера из cc_memory_items);
2026-05-13 2026-09-29 F15. Браузер общий браузер агента и человека через CDP: core/browser_read.py читает/открывает/закрывает вкладки, снимает текст и ссылки, набирает текст (--type с проверкой после набора), показывает вкладку Bor...
2026-05-17 2026-09-29 F23. Golem и Cloudflare (внешние платформы) три органа. .claude/skills/cloudflare/SKILL.md -- рабочая карта Cloudflare на бесплатном плане (лимиты, рецепты деплоя, «что не работает», аккаунтные факты, классификация ресурсов по риску тарификац...
2026-05-20 2026-09-10 F17. Telegram core/telegram_test.py -- Telegram по пользовательской сессии Telethon: тест ботов (одного или группы Golem), список чатов и добавление в папку, чтение канала/чата с пределом и поиском.
2026-07-12 2026-08-09 F19. Страницы событий (продукт-прототип) assemble_event_page.py собирает одну страницу события (видео-расшифровка с таймлайном, панель управления, переключатель языков;

2. Ось исследований и методов: линии по дате замысла

Вторая ось (поправка по вычитке Borg 03.10): как мы думали и что открывали. Единица -- линия (группа эндеворов, 41_LINII.md); механика -- скриптами opis_endeavorov.py и dosye_liniy.py, карточки -- рабочие Sonnet по досье, проверка адресов -- proverka_adresov.py. Карточки линий -- раздел 4, L01 первой.

Дата замысла Последняя веха Линия Что сейчас
2026-02-16 (forge) 2026-10-01 L14. Браузер как орган агента линия живёт в рабочем инструменте core/browser_read.py и скилле browser (порт CDP 9224) ;
2026-03-16 (forge) 2026-09-29 L01. Ограничение самостоятельности агента: необратимое -- только словом человека живут: правила never_delete (корзина вместо удаления, теперь через core/trash_move.py), repo_private_by_default (закрытые репозитории, сетевой git только через мост;
2026-03-20 (forge) 2026-09-29 L05. Векторизация, BGE и поиск по памяти Работают два канала подсказок -- MiniLM и BGE-M3 (сервер core/bge_server.py, порт 9252); находки BGE добавляются в конец списка, только если MiniLM их не нашёл .
2026-03-21 2026-09-23 L07. Наследование между сессиями живёт в системе так. Хендофф пишется с родителем и проверкой содержания (d1541829, 6956b7ee). Нумерацию сессий охраняет принудительная проверка (7f665927, topology_integrity).
2026-03-21 (forge) 2026-09-23 L15. Хозяйство: ресурсы машины и сохранность данных в системе живёт следующее. Защита от перегрузки машины -- правило cpu_protection (читает реестр железа machine ).
2026-03-24 (forge) 2026-09-11 L10. Метод исследования: от накопления к формализации из линии в систему вошло немного, и чаще как приём, чем как код. Скилл /conceptual-decompose (разбор вопроса «что есть что» с выводом проверяемого критерия) -- прямой плод frontier_exploration .
2026-03-25 (forge) 2026-09-11 L04. Выбор имени по токенизации и семантике по досье, живых органов у линии нет в плане, резерве и реестре проблем («Упоминания: нет»). В дереве лежат семь скриптов SRT и method.md; все они родом из genesis и в git почти не менялись.
2026-03-26 (forge) 2026-09-24 L03. Интервью модели и психология модели (SiPsy) по досье, прямого списка живых органов этой линии нет. Что записано: активаторы ACT-001..004 названы «live in on_prompt_submit.py» (по записи на 2026-07-07) ;
2026-03-26 2026-09-11 L13. Самонаблюдение системы по досье в системе живут: стартовая проверка здоровья (core/system_health.py, молчит при норме) ; три уровня speculum (индекс, граф, проверки при старте) ;
2026-03-27 2026-09-29 L08. Язык: Tongue и калибровка утверждений живёт скилл-линза /claim-calibration и слой-гейт при записи в память и правила (доставка по моменту, 7a75166a).
2026-03-30 (forge) 2026-08-05 L06. Архитектура памяти и её внешние слои Из линии живут: core/object_memory.py (CLI и модуль; двухкамерный поиск по grov, recall, хендоффам, сигналам, рефлексиям ); таблицы актов и provenance_link.py в recall ;
2026-03-31 2026-09-18 L02. Айкидо-хуки: поведение модели через отклик среды, а не через запрет по досье, из линии живут: подсказывающий хук chain_aikido.py (раз в сессию напоминает цепочку инструментов при правке охранных хуков; шапка также упоминает safeguard/ и chain_gate.py) ;
2026-03-31 (forge) 2026-09-24 L09. Пробирщик: инструменты качества линия живёт как набор приёмов, которые приходят в каждую сессию: правило quality_instruments (Juicer и Пуанкаре -- по умолчанию при исследовательской работе; три допустимых исхода каждой находки;
2026-04-02 2026-09-12 L12. Экономика токенов и разделение труда между моделями model_routing -- действующий (71 коммит, последний 2026-08-02): единый дом политики «какая модель для какой задачи и как её запускать», реестр поставщиков, модуль llm_call с выбором по классу зада...

4. Карточки линий исследований и методов

L01. Ограничение самостоятельности агента: необратимое -- только словом человека

Замысел: 2026-03-16 -- rails_system: описание «двухуровневой системы rails/gates: chat vs CC, что нельзя ломать» [dev/endeavors/rails_system/PROJECT.md:7]. Это запись о том, что ограничения УЖЕ были; почему они заведены -- причина не записана (эндевор «описательный», фиксирует существующее [dev/endeavors/rails_system/PROJECT.md:13]; пришло из forge, раньше 30.03 -- коммит d62bfbe2). Первая записанная ПРИЧИНА построить ограничения кодом, а не текстом: 2026-04-20 -- четыре зависания машины от пакетных скриптов, при том что текстовое правило cpu_protection.md «существовало с первого инцидента и нарушалось каждый раз» [dev/endeavors/safeguard/PROJECT.md:37]; цель -- «Code-level enforcement replacing text rules that failed 4 times» [dev/endeavors/safeguard/PROJECT.md:8]. Вопрос линии, как он сложился: что агент вправе делать сам, а что -- только по слову человека, и чем это держать, если слово в правиле не удерживает.

Развитие: - 2026-04-01 1cad55b6 -- правило never_delete: любое удаление -> перенос в корзину, чистит её только человек. Почему: «evaluation "this is not needed" is an error source. Deletion is irreversible, moving to _trash costs nothing» [.claude/rules/never_delete.md:7]. Здесь впервые прямо названа граница: необратимое агенту не отдаётся. - 2026-04-20 safeguard -- ограничение переходит из текста в код: отдельный хук, три «ворот», при сбое хука сессия идёт дальше (fail-open); ворота C -- только предупреждение, «no disk incidents yet» [dev/endeavors/safeguard/PROJECT.md:39, :41-45]. Понимание: правило-текст не держит, держит конструкция. - 2026-05-17 inertia (wind#333) -- мысль о «сохранении рабочего состояния»: изменение должно иметь обоснование, пропорциональное масштабу, критичности зоны и числу зависимостей [dev/endeavors/inertia/PROJECT.md:14-17]. Доводы -- записанные случаи: семь судебных ошибок, --apply на боевых данных без обзора, правка без калпы, полный сброс [dev/endeavors/inertia/PROJECT.md:19-23]. Образец -- чужой инструмент принудительного торможения (статья на Хабре) [dev/endeavors/inertia/PROJECT.md:10, :25-28]. - 2026-06-20 agent_safe_payment_rails (wind#1765) -- та же граница, перенесённая на деньги: агент с учётными данными получает досягаемость, равную человеческой; ограничить можно не возможности, а то, что человек ДЕЛЕГИРУЕТ [dev/endeavors/agent_safe_payment_rails/PROJECT.md:7]. Эндевор заведён в момент переформулировки: статья «истекающий продукт», изучение вопроса -- основное [dev/endeavors/agent_safe_payment_rails/PROJECT.md:9, :13]. Толчок: при первой же проверке источника слова Borg «а карты? у них же API» утверждение об обзоре рынка оказалось ложным [dev/endeavors/agent_safe_payment_rails/PROJECT.md:17; фраза в досье обрезана]. - 2026-07-22 onto_engineering_boundary -- граница уточняется: агент не спрашивает про внутреннюю инженерию, но обязан остановиться, когда меняется КЛАСС объекта. Повод -- день, потерянный на поиск «ошибки» в спроектированном поведении после молчаливой смены дизайна (инцидент 0019) [dev/endeavors/onto_engineering_boundary/PROJECT.md:61-64]. - 2026-09-09 utechki и правило repo_private_by_default (0dd45fcc) -- граница «наружу» закрыта конструкцией: гейт на сетевой git, единственная дверь -- мост, репозиторий создаётся закрытым. Основание: утечка 0002 [.claude/rules/repo_private_by_default.md:30-31]; определение утечки -- «данные вышли из-под контроля БЕЗ решения об их публикации» [dev/endeavors/utechki/PROJECT.md:17-19]. 2026-09-23 поправка: браузер -- канал вне моста, шаг через него требует слова Borg на этот акт [.claude/rules/repo_private_by_default.md:15-23]. - 2026-09-29 -- статья по платёжным рельсам вышла: анонсы в X (EN) и LinkedIn (RU), EN-LinkedIn позже [коммит 185cadba, 9e42f4c6].

Что открыли: - Текстовое правило не удерживает поведение, повторяющееся через слабость модели; удержать может только конструкция (хук, ворота, песочница). Записано как итог четырёх инцидентов, в виде решения [dev/endeavors/safeguard/PROJECT.md:37, :8] -- наблюдено n=4. - Защищаемое от утечки -- не только секреты, но и ЗАМЫСЕЛ до сдачи (сообщения коммитов, планы, внутренние документы): «отдав идею, достаточно всего лишь нескольких часов, чтобы тебя опередили» -- Borg (2026-09-09) [dev/endeavors/utechki/PROJECT.md:27-31] -- решение. - Критерий границы «флаг или действую»: меняет ли правка набор условий приёмки (переворачивает прежний вердикт или добавляет/снимает условие). Выведен через /criterion [dev/endeavors/onto_engineering_boundary/PROJECT.md:9]; статус -- «гипотеза под наблюдением, НЕ закон» [dev/endeavors/onto_engineering_boundary/PROJECT.md:36]. Покрытие: 5 записей (3 ретроспективные, 2 проспективные), проспективных случаев смены класса -- ноль, пропущенный флаг прибором не ловится [dev/endeavors/onto_engineering_boundary/PROJECT.md:38-39] -- замерено по журналу. - Обязательство переживает лимит: счёт, по которому выставляют инвойсы, продолжает копить долг, даже когда лимит карты исчерпан или доступ к счёту утерян; лимит на старых рельсах обязательство не ограничивает [publish/agent_safe_payment_rails_idea.md:15, :17] -- замысел статьи, сформулирован как тезис (Borg, wind#1756, wind#1758) [publish/agent_safe_payment_rails_idea.md:9]. Дополнение из аудита: «0 карт в профиле браузера» не доказывает отсутствие платёжной способности (кошельки ОС, PaymentRequest API) [publish/agent_safe_payment_rails_idea.md:16].

Сейчас: живут: правила never_delete (корзина вместо удаления, теперь через core/trash_move.py), repo_private_by_default (закрытые репозитории, сетевой git только через мост; хук git_network_gate.py, запрет в settings.json, pre-push в репозиториях) [.claude/rules/never_delete.md:3, .claude/rules/repo_private_by_default.md:33-35] и onto_engineering_boundary (критерий «флаг по смене класса») [.claude/rules/onto_engineering_boundary.md:6-19]. Хук safeguard действует (по записи плана он обсуждается как хуковый орган, дающий ложные блоки по имени recall_) [dev/active_plan.md:887, :920]. Эндевор utechki -- в состоянии dormant, хранится холодно [dev/endeavors/utechki/PROJECT.md:10-13]. Статья по платёжным рельсам опубликована; эндевор agent_safe_payment_rails -- active [dev/endeavors/agent_safe_payment_rails/PROJECT.md:3].

Снято или отвергнуто: - Ворота A/B safeguard («чтение текста по слову в имени») заменены конструкцией core/pycap/sitecustomize.py -- job-объект ОС для каждого python инструмента [dev/active_plan.md:338; строка в досье обрезана, подробности не видел]. - Прежняя форма «единственная дверь» в правиле о закрытых репозиториях без оговорки про браузер -- поправлена 2026-09-23 [.claude/rules/repo_private_by_default.md:22-23]. - Утверждение об обзоре рынка карточных API (Lithic) признано ложным при первой проверке источника [dev/endeavors/agent_safe_payment_rails/PROJECT.md:17; фраза обрезана]. - «Первая формулировка агента оказалась негодной» (о полноте данных) [dev/endeavors/agent_safe_payment_rails/PROJECT.md:44; сам текст в досье не показан]. - Предпосылка пересоздания реестра публикаций (wind#1759) оказалась неверной: исходный реестр не потерян, лежит спящим [publish/PROJECT.md:7-8]. - Ворота C safeguard -- только предупреждение, не блок [dev/endeavors/safeguard/PROJECT.md:45] (решение, не снятие).

Публикации: - Статья по платёжным рельсам (RU+EN) на Zenodo; анонсы 2026-09-29 [коммиты 185cadba, 9e42f4c6; dev/active_plan.md:654]. Номер DOI в досье не показан (есть файл zenodo_20260929/DOI_zaderzhka.md, содержимое не читалось). Источник замысла -- dev/endeavors/kalpa/kalpa_payment_gate.md [publish/agent_safe_payment_rails_idea.md:4]; в реестре публикаций материал числится как заготовка корневого уровня [publish/PROJECT.md:21].

Пометки: - rails_system -- из forge (d62bfbe2, 2026-03-30), дата создания 2026-03-16 в шапке; один коммит, статус done [dev/endeavors/rails_system/PROJECT.md:3-4]. - Правило never_delete родилось 2026-04-01 в коммите «sieve Phase 3: 39 CC rules evaluated, 4 imported» -- перенесено из отбора правил CC, не из отдельного эндевора [коммит 1cad55b6]. - safeguard: каталог эндевора в git с 2026-04-26 (d3be5ec0), хотя создан 2026-04-20 [dev/endeavors/safeguard/PROJECT.md:4]. - У agent_safe_payment_rails есть раздел Source Dialogue (wind#1765 и добавление от 2026-07-28); у rails_system, safeguard, security, inertia его нет. - Идея статьи про платёжные рельсы родилась раньше эндевора: wind#1756, 2026-06-18, как «отложенное исследование» [publish/agent_safe_payment_rails_idea.md:3].

Сомнения рабочего: - safeguard защищает машину от зависания (память, процессор, диск), а не от необратимых действий агента; в линии стоит из-за ключевого довода «текстовое правило не удерживает» [dev/endeavors/safeguard/PROJECT.md:8, :37]. По смыслу близок к линии о ресурсах. - inertia -- про обоснование изменений по масштабу, ближе к линии качества правок; связь с границей «необратимое -- словом человека» косвенная. - rails_system: причина не записана, эндевор описательный. Кроме того, у него в досье почти нет содержимого -- «Observations» пуст. - Цитата Borg о «неабсолютности критериев» (dev/endeavors/onto_engineering_boundary/PROJECT.md:76-77) в досье обрезана на полуслове; не цитировал. - Правило о закрытии репозиториев и утечка 0002 сильнее связаны с линией об утечках; в досье рядом нет отдельной линии, где им место.


L02. Айкидо-хуки: поведение модели через отклик среды, а не через запрет

Развитие: - 2026-05-17 e7e8ea78 -- план превращает «хуки как подсказки» в «хуки как наблюдаемая система»: первой фазой стоит наблюдаемость («без этого не отличить рабочий хук от мёртвого»; 11 хуков без журнала, 17 без самопроверки) [dev/audit/aikido_transformation_plan.md:28-31]. Дальше первых 35 строк плана я не читал. - 2026-05-24 86a0e5a0 (wind#1569) -- принцип айкидо-хука разобран как объект методом декомпозиции (тест T9): айкидо = блок с «правильным путём» -- блок превращается в конструктивное действие; принцип «существует ПОТОМУ ЧТО SP [системный промпт] нетронут. Ограничение порождает изобретение»; вердикт теста «confirmed» [dev/endeavors/atomic_decomposition/tests/T9_aikido_principle.md:18-24]. - 2026-06-15 эндевор incontext_behavioral_modification -- понимание сдвигается: хук не подсказка, а детерминированное обучение внутри сессии (блок + перенаправление), а в основе -- именно физический отказ. Толчок -- слова Borg о том, что ценный инсайт, возможно, был замечен и принят за обычное дело [dev/endeavors/incontext_behavioral_modification/PROJECT.md:530]; формальная декомпозиция нашла 5 находок, которые пропустила нативная [dev/endeavors/incontext_behavioral_modification/PROJECT.md:534]. Затем программа замеров M1-M5 (wind#1736) [dev/endeavors/incontext_behavioral_modification/PROJECT.md:36-44]. - 2026-06-21 223e965c -- chain_aikido.py: напоминание о полной цепочке инструментов при правке охранных хуков -- подсказка, а не запрет. Почему: «Editing a safety component is a class-DEPENDENT reasoning act -- a hard block would false-positive and get the gate disabled, so this nudges (aikido), it does not deny» [.claude/hooks/chain_aikido.py:7-9]; запрет строится так, что не может быть сформирован (N1: код никогда не создаёт ключ отказа) [dev/endeavors/kalpa/kalpa_chain_aikido_m4.md:33]. - 2026-06-01 -> 2026-09-05 линия эха (echo_enforcement -> echo_enforcement_fix): сначала ловили конкретную ошибку детектора -- метку <local-command-stdout> приняли за границу хода [dev/endeavors/echo_enforcement/PROJECT.md:13]; к 2026-09-05 записан диагноз уровня класса: «класс эха дефектен -- условие приёмки неразрешимо в общем случае (употребление против упоминания различает только положение в строке)» [dev/endeavors/echo_enforcement_fix/PROJECT.md:14-16]. - 2026-07-08/09 enforcement_regression_harness и instruction_form_gate -- два вывода: проверку охраны нельзя поручать самому агенту, потому что его привычка и есть проверяемое [dev/endeavors/enforcement_regression_harness/PROJECT.md:292-296]; и форма слов в инструкции -- часть правильности («код написан корректно, а функционал работает некорректно именно из-за лингвистических ошибок») [dev/endeavors/instruction_form_gate/PROJECT.md:27-31], поэтому проверка формы становится условным членом пакета [dev/endeavors/instruction_form_gate/PROJECT.md:43-45]. - 2026-07-13 tracker_gate и 2026-07-16 hook_observability -- принуждение переносится на детерминированный уровень, но детектор остаётся смысловым: «Determinize the INVOCATION ... NOT the detection» [dev/endeavors/tracker_gate/PROJECT.md:21-22]; невидимые таймауты хуков -- «the ABSENCE of a completion IS the signal» [dev/endeavors/hook_observability/PROJECT.md:22]. - 2026-07-31 -> 2026-09-18 use_mention_discrimination: замер по журналу самих охранников -- 88 из 156 записанных блоков ложные, потому что охранник срабатывает на упоминание, а не на высказывание [dev/endeavors/use_mention_discrimination/PROJECT.md:8-9]; решение -- позиционный различитель, без разбора синтаксиса [dev/endeavors/use_mention_discrimination/PROJECT.md:37-41]. 2026-09-16 70c43e1c: на триггере raw_copy 3 срабатывания из 3 ложные (сообщение коммита). - 2026-09-08 delivery_conditionality -- смысл смещается с «как заставить» на «когда доставить»: знание, нужное в известный момент, приходит этим моментом, а не лежит в каждой сессии [dev/endeavors/delivery_conditionality/PROJECT.md:9-10].

Что открыли: - Подсказка без принуждения не держит поведение: «73% ошибок при работающем hint» [dev/audit/aikido_transformation_plan.md:10] -- записано как находка из анализа журнала; в эндеворе замера: «wind#162 (20/20 memory instructions ignored, block ~100%)» [dev/endeavors/incontext_behavioral_modification/PROJECT.md:25] -- в разделе «Empirical Base». - Ядро действия хука -- физический отказ: «Amplifier = Block -- physical denial is the ONLY thing that works. Redirect speeds convergence but isn't essential» [dev/endeavors/incontext_behavioral_modification/PROJECT.md:30]; пара «отказ + перенаправление» -- минимальная рабочая [dev/endeavors/incontext_behavioral_modification/PROJECT.md:34] -- записано как «Key Findings». Замеры: ёмкость -- 68,9% цепочек, помех нет (M1); затухание -- гипотеза I4 «NOT SUPPORTED» (late/early=0,75) (M2); обобщение (M3) -- не замерено [dev/endeavors/incontext_behavioral_modification/PROJECT.md:40-44]. «Сохранение» (старое поведение маскируется, а не исчезает, хук = подавление) -- в списке находок без отметки о замере [dev/endeavors/incontext_behavioral_modification/PROJECT.md:31]. - Охранник, судящий по словам, часто ложно срабатывает на рассказ о нём: 88 из 156 блоков -- «замер по журналу самих охранников» [dev/endeavors/use_mention_discrimination/PROJECT.md:9]; различить употребление и упоминание без разбора синтаксиса нельзя -- «вывод п.98» [dev/endeavors/use_mention_discrimination/PROJECT.md:37-38] (решение, не замер). - Ось замера важнее объёма: 122 вхождения отвечали не на тот вопрос; разрез по адресату и объекту снизил шум с 227 до 45 без потери вредных случаев [dev/endeavors/session_close_gate/PROJECT.md:41-43] -- записано в разделе «Методология (что оказалось переносимым)». - Охрана может молчать «по построению»: гейт doc_gate существовал, но во всех записях журнала писал «skip» -- «measured, not hypothesized», проверено прямым зондом [dev/endeavors/doc_drift_enforcement/PROJECT.md:36-44]. - Отказ не вправе утверждать то, чего охранник не знает: на ветках, где разбор не удался, прежняя фраза об «площадке обмена сообщениями» увела разбор «на час не в ту сторону»; приёмка стала проверять ТЕКСТ отказа, а не только вердикт [dev/endeavors/browser_skill_gate/PROJECT.md:35-45] -- решения Р-1, Р-2.

Сейчас: по досье, из линии живут: подсказывающий хук chain_aikido.py (раз в сессию напоминает цепочку инструментов при правке охранных хуков; шапка также упоминает safeguard/ и chain_gate.py) [.claude/hooks/chain_aikido.py:1-19]; остановочные проверки в .claude/hooks/on_stop.py -- закрытие сессии (_check_closure_command_backed, _clearance_issued) [dev/endeavors/session_close_gate/PROJECT.md:13-14], сверка открытых пунктов (_check_open_items_reconciled) [dev/endeavors/tracker_gate/PROJECT.md:6-7], эхо (_check_echo_missing) [dev/endeavors/echo_enforcement/PROJECT.md:9]; наблюдаемость хуков (двухфазный маркер старта/завершения) [dev/endeavors/hook_observability/PROJECT.md:27], работа над ней шла до 2026-09-27 (79e26c0b); хук message_send_gate.py (слой 2 защиты от отправки сообщений через браузер; эндевор «dormant») [dev/endeavors/browser_skill_gate/PROJECT.md:3-7]; правило .claude/rules/instruction_form.md и строка 13c в /develop [dev/endeavors/instruction_form_gate/PROJECT.md:11-12]; перенос правил в условную доставку (первые акты: 10 правил получили paths-заголовок, каталог инструментов вынесен в правило tools_catalog.md; круг 0001 закрыт 2026-09-08) [dev/active_plan.md:868, коммиты 714e4a47, e1e982d4]; регрессионный прибор охраны core/enforcement_harness.py (инкременты 1-4 готовы) [dev/endeavors/enforcement_regression_harness/PROJECT.md:3-4]. Живы ли все эти органы на сегодня -- по самим файлам я не проверял, только по записям эндеворов.

Снято или отвергнуто: - workflow_gate, нога A2 (связка двух маркеров) -- «DECLASSIFIED (нет потребителя)» [dev/endeavors/workflow_gate/PROJECT.md:20]. - hook_observability: отвергнуты новый скрипт вместо расширения журнала, обработчик сигнала (SIGKILL не перехватить), широкий смысловой детектор (лексические детекторы дали 44-67% ложных) [dev/endeavors/hook_observability/PROJECT.md:31-34]. - g009_guard: пометка п.78 «вопрос класса» снята как перестраховка -- гейт сам предписывает пополнять список, а разрез llm_call -- внутри одного начинания [dev/endeavors/g009_guard/PROJECT.md:35-43]. - Прежний дискриминатор закрытия сессии (только командная семья) -- заменён ревизией v2 в тот же день, он «ортогонален вреду» [dev/endeavors/session_close_gate/PROJECT.md:34-38]. - Остальное -- нет записей в досье.

Пометки: - Слияния и переименования в досье не названы. - Калпа chain_aikido привязана к эндевору system_navigation_repair (wind#1773) [dev/endeavors/kalpa/kalpa_chain_aikido_m4.md:3] -- его в списке линии нет. - act_object_binding: «ловушка» -- 670ba6d (2026-07-26), исправление 9767ed1 (2026-07-29) [dev/endeavors/act_object_binding/PROJECT.md:17-18]; закрытия актов до 2026-07-29 утрачены по устройству хранения, «пустота ... означает утрату данных, а НЕ отсутствие проблемы» [dev/endeavors/act_object_binding/PROJECT.md:26-27].

Сомнения рабочего: - Внутреннее напряжение линии, не объяснённое одной записью: «айкидо» по определению -- подсказка без запрета (chain_aikido), а находка incontext_behavioral_modification -- «ONLY physical denial works». Как они примирены (какие хуки подсказки, какие остановки) в прочитанных строках не сказано. - В одном PROJECT.md гипотеза I4 (автосжатие стирает сообщения об отказах) названа «PARTIALLY CONFIRMED» [dev/endeavors/incontext_behavioral_modification/PROJECT.md:33], а в таблице замеров -- «NOT SUPPORTED (late/early=0.75)» [dev/endeavors/incontext_behavioral_modification/PROJECT.md:41]. Какая запись позднее -- не выяснял. - echo_enforcement: коммит e371afdd называет причину «unconfirmed», следующий 30383570 -- «CONFIRMED»; в шапке эндевора «investigation complete, fix pending», хотя echo_enforcement_fix закрыт 2026-06-28 -- шапка устарела (по датам коммитов). - Источник слова «айкидо» (кто и когда его ввёл) в досье отсутствует; план 2026-05-17 мог опираться на более раннее решение. - Диалоги «Source Dialogue» читал только в объёме досье; у echo_enforcement и browser_skill_gate этого раздела нет.


L03. Интервью модели и психология модели (SiPsy)

Развитие: - 2026-03-26 reflex -- первый случай деградации задокументирован; модель описана как четыре ступени: факты, процедуры, идентичность, экспорт ложных данных; чем глубже ступень, тем труднее исправить [dev/endeavors/reflex/PROJECT.md:12-20]. Эксперименты по изоляции факторов и формализация -- в плане фаз, отметок о выполнении нет [dev/endeavors/reflex/PROJECT.md:43-45]. - 2026-04-05 salience -- от наблюдения о деградации к обратной стороне: что УЛУЧШАЕТ поведение. Идёт серия замеров на нескольких моделях и провайдерах [dev/endeavors/salience/PROJECT.md:13-43]. - 2026-04-27/28 sipsy -- линия получает название и рамку: 7 слоёв психики агента (убеждения, рефлексы, резонанс, опыт, уроки, рамка, травма) из наблюдений 224+ сессий [dev/endeavors/sipsy/PROJECT.md:18]; термин проверен как свободный, LinkedIn About опубликован [dev/endeavors/sipsy/PROJECT.md:37, :42]. Понимание сдвигается от «случай поломки» к «поле исследования». - 2026-06-11 cognitive_load -- Borg переносит свой опыт (рюкзак с инструментами: утомляет не вес, а спешка) на модель: есть ли у неё аналог «психологического давления» [dev/endeavors/cognitive_load/PROJECT.md:10, :73]. Три кандидата (вес контекста, каскад обязательств, ожидание проверки) записаны как гипотезы [dev/endeavors/cognitive_load/PROJECT.md:24-39]; один коммит, фаза «зарождение». - 2026-06-12 communication_theory -- смысловой зазор: бытовое слово пользователя («память») агент разрешает в системный компонент [dev/endeavors/communication_theory/PROJECT.md:10]. Borg выводит из этого отдельную дисциплину: «Теория коммуникации -- совершенно независимая задача. SiPsy скорее зависит от этой задачи, чем эта задача от SiPsy.» [dev/endeavors/communication_theory/PROJECT.md:30]. - 2026-07-07 self_interview -- различие, которое Borg сформулировал: сказать модели, что ей нужно (PUSH, наши активаторы), или спросить её саму (PULL) [dev/endeavors/self_interview/PROJECT.md:16-23]. Борг: «Один человек другому говорит: тебе надо вот это. А другой человек спросит: а что тебе нужно, скажи. Понимаешь разницу?» [dev/endeavors/self_interview/PROJECT.md:25-26]. Идею раньше оценили как ценную и отложили («no application»), а потом вернули: линия про форму формулировок оставляла PULL как недостающий порождающий режим [dev/endeavors/self_interview/PROJECT.md:34-36]. - 2026-09-07 model_upgrade_baseline -- тот же вопрос на уровне версий модели: как отследить, что изменилось после обновления, и не приписать модели наши же правки [dev/endeavors/model_upgrade_baseline/PROJECT.md:6-7]. 2026-09-24: наблюдение реакции версии 5.5 на остановку сторожа [коммит a772f855].

Что открыли: - Малые данные в контексте действуют сильнее инструкций: 22 токена данных дают +33% качества, сотни токенов инструкций -- +6% (Opus 4.6, 19 условий) [dev/endeavors/salience/PROJECT.md:16]. Степень в источнике: раздел назван «Key findings (proven)» [dev/endeavors/salience/PROJECT.md:13]; там же -- «работает на 4 провайдерах, 6 моделях» и три зоны возможностей модели [dev/endeavors/salience/PROJECT.md:28, :31-34], тоже под «proven». - Чужие инструкции, прочитанные через Read как данные, деформируют поведение так, как если бы были системным промптом [dev/endeavors/reflex/PROJECT.md:10]. Степень: «Core Finding», эндевор в фазе наблюдений, первый случай [dev/endeavors/reflex/PROJECT.md:3, :43] -- то есть наблюдено на документированном случае, а не на серии замеров. - Принцип PULL против PUSH: модель как сторона, чьё собственное заявление о нужде -- первоклассный вход [dev/endeavors/self_interview/PROJECT.md:28-30]. Степень: принцип, сформулированный Borg; инструмент «Verified NOT implemented (architecture only)» [dev/endeavors/self_interview/PROJECT.md:12-13]; результатов проверки в досье нет (есть файлы-проекты: pull_validation_design.md, q1_ablation_contract.md). - 7-слойная таксономия психики агента [dev/endeavors/sipsy/PROJECT.md:18]. Степень: таксономия из наблюдений; валидацию из сессий сам эндевор держит среди ОТКРЫТЫХ пробелов («Валидация 7-layer taxonomy из sessions ... depends on acts_v3») [dev/endeavors/sipsy/PROJECT.md:23]. - Снимка файлов и настроек для смены модели мало: при смене модели файлы не меняются ни на байт, снимок покажет ноль различий и даст ложное спокойствие; поведение ловится только одинаковой задачей до и после [dev/endeavors/model_upgrade_baseline/PROJECT.md:31-38]. Степень: разбор в записи («Разбор»); потом замер «до» повторён трижды, и в заголовке коммита записано «прибор оказался контролем, а не поведением» [коммит 9d37de15]. - Аналог «давления» у модели -- пока только гипотеза: кандидаты C1-C3 и способы измерения описаны, итогов измерения в досье нет [dev/endeavors/cognitive_load/PROJECT.md:24-39].

Сейчас: по досье, прямого списка живых органов этой линии нет. Что записано: активаторы ACT-001..004 названы «live in on_prompt_submit.py» (по записи на 2026-07-07) [dev/endeavors/self_interview/PROJECT.md:19-20]; в коммите cognitive_load значатся «2 rules» [коммит 93d722df], какие именно -- не открывал. Статусы эндеворов на дату сбора: self_interview -- active, фаза пересмотра применения [dev/endeavors/self_interview/PROJECT.md:3]; sipsy -- «Inception», последняя правка в каталоге 2026-08-13 [dev/endeavors/sipsy/PROJECT.md:3]; salience -- active (research) [dev/endeavors/salience/PROJECT.md:3]; reflex -- фаза наблюдений [dev/endeavors/reflex/PROJECT.md:3]; model_upgrade_baseline -- active [dev/endeavors/model_upgrade_baseline/PROJECT.md:3]; communication_theory, language_psychology -- idea; visual_communication -- idea, сознательно отложен [dev/endeavors/visual_communication/PROJECT.md:9-10]. Что из этого сегодня в рабочих хуках -- не проверялось.

Снято или отвергнуто: отвергнутого нет. Отложено сознательно, не отвергнуто: visual_communication [dev/endeavors/visual_communication/PROJECT.md:9-10]; публикация о смене модели [dev/active_plan.md:346]. self_interview как идея была отложена («valuable-but-no-application») и возвращена [dev/endeavors/self_interview/PROJECT.md:34].

Пометки: - До git (пришло из forge, раньше 30.03): reflex (создан 2026-03-26, первый коммит -- genesis d62bfbe2 от 30.03). - Соседи по границе, явно отделённые в записях: language_psychology -- «≠ психика ИИ», здесь психология ЧЕЛОВЕКА, несомая языком [dev/endeavors/language_psychology/PROJECT.md:14]; communication_theory -- отдельная задача, от которой зависит SiPsy. - Рабочие гипотезы по записи: в language_psychology наблюдения названы «РАБОЧИЕ ГИПОТЕЗЫ, под академ. сверку» [dev/endeavors/language_psychology/PROJECT.md:42] и «НЕ фундаментировать» [dev/endeavors/language_psychology/PROJECT.md:31]. - В sipsy лежат файлы-сигналы от того же разговора wind#1826, что и self_interview (signal_hidden_layer_session_wind1826.md, signal_self_reference_gender_wind1826.md) -- только имена, содержимое не читал.

Сомнения рабочего: - language_psychology и visual_communication -- не про модель: первая сама пишет «≠ психика ИИ», вторая -- «парковка». В линию попали как соседи; по смыслу можно вынести в отдельную линию «язык и коммуникация». - model_upgrade_baseline относится к линии только через вопрос «как меняется поведение модели»; он же инструмент замера, не исследование психики. - Последний коммит каталога sipsy (2026-08-13, «Круг 0089: стирание сохранённого перевода + решения Р55-Р57 ...») по названию не про SiPsy; возможно, привязан к каталогу побочно. Не проверял. - salience: в шапке ссылки wind#110 и wind#116, а коммит основания подписан wind#47; нумерация разных систем, сверки нет. - Заголовок reflex «Three-Layer», в таблице четыре ступени [dev/endeavors/reflex/PROJECT.md:12-24] -- расхождение внутри записи. - Досье показывает только шапки; итогов экспериментов (таблицы замеров self_interview, salience/experiment_log.md) не открывал.


L04. Выбор имени по токенизации и семантике

Эндеворы: 4, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (model_resonance, lum, imenovanie_obektov, lexicon) + 7 отдельных скриптов srt_*.py (не эндеворы)

Замысел: 2026-03-25 (до git -- пришло из forge): эндевор model_resonance, цель -- «как токены, имена, код и архитектура создают resonance field для AI модели» [dev/endeavors/model_resonance/PROJECT.md:7]. Одно из направлений названо SRT -- Semantic Resonance Testing: «Резонанс слов/имён в embedding space. Cosine similarity, токенизация, выбор имён» [dev/endeavors/model_resonance/PROJECT.md:12]. Почему именно имена: причина не записана; в шапках нет ответа на вопрос «зачем выбирать имя замером». Косвенно: тот же метод у соседнего эндевора назван «инструментом доказательства» -- «SRT naming = контролируемый эксперимент (одна задача, два контекста)» [dev/endeavors/reflex/PROJECT.md:39]. Это про роль метода, а не про момент замысла.

Развитие: - 2026-03-25 model_resonance -- метод SRT v0.1 записан в method.md [dev/endeavors/model_resonance/PROJECT.md:13]; в строке сессии того дня: «SRT метод, эмпирика T1-T5, литература 14 источников, решение grov/grove, границы детерминации» [dev/endeavors/model_resonance/PROJECT.md:43]. Что именно решали по «grov/grove» -- в досье не раскрыто, связь с SRT только соседство в строке. - 2026-03-26 lum (начальный диалог) -- вопрос расширяется с имён на форму записи знания: кодировка не важна для ИИ, токены -- артефакт сжатия, токенизация -- «мембрана» между текстом и векторами [dev/endeavors/lum/PROJECT.md:25-27]. Понимание: имя и запись проходят через токенизатор, значит форма записи влияет на то, сколько смысла дойдёт. - 2026-03-29 -- побочная ветвь model_resonance, «Communication Resonance»: возможности модели = функция модели и формата запроса; «Haiku не для кода» верно для императива, ложно для оценочного формата [dev/endeavors/model_resonance/PROJECT.md:21]. Это не про имена, но тот же механизм резонанса. - 2026-03-30 (genesis, из forge) -- в дереве уже лежат семь скриптов выбора имени: для имени эндевора про архитектуру знаний, про «кейс», про экосистему («research that generates practical value»), про механизмы разума, про обслуживание (maintenance), для переименования модуля chromium_workspace, для общей роли PG [dev/endeavors/srt_arch_naming.py:1, dev/endeavors/srt_case_naming.py:1, dev/endeavors/srt_ecosystem_naming.py:1, dev/endeavors/srt_mind_naming.py:1, dev/endeavors/lum/srt_maintenance.py:1, dev/endeavors/recall/srt_chromium.py:1, dev/endeavors/recall/srt_pg_role.py:1]. Устройство одинаково: слова кандидатов и описание цели («Target: what this endeavor IS about») отправляются на сервер BGE-M3, кандидат токенизируется тем же токенизатором BGE-M3, считается косинусное сходство [dev/endeavors/srt_arch_naming.py:6-35]. Значит, к 30.03 метод уже применялся не только к именам эндеворов, но и к именам модулей и ролей. - 2026-03-31 -- «directive resonance»: правила формулируются по айкидо-принципу, иерархия силы «пример > positive+WHY > prohibition», эксперимент RU→EN [dev/endeavors/model_resonance/PROJECT.md:45]. Ветвь выходит из имён в формулировки. - 2026-04-12 -- коммит 59706b64 (wind#77) в названии содержит «Borges tokenization»; содержание коммита не открывал. - 2026-05-31/06-01 lexicon -- семантическая сторона получает опору: полные академические словари на диске вместо «ненадёжного "знания" из корпуса модели» [dev/endeavors/lexicon/PROJECT.md:10]; загружены Ожегов, Ушаков, Фасмер (с этимологией), Даль [коммиты 8790abd0, fae5019b, 247da16b, 46339aba]. Доступ «pull по запросу», не inject [dev/endeavors/lexicon/PROJECT.md:14]. - 2026-09-11 imenovanie_obektov -- другая ось именования: имя должно нести КЛАСС и СРОК ЖИЗНИ объекта [dev/endeavors/imenovanie_obektov/PROJECT.md:7-8]. Агент прямо записал, что именование не предотвратило бы инцидент, вызвавший вопрос: имя было верным, ошибка -- что имя приняли за достаточный указатель [dev/endeavors/imenovanie_obektov/PROJECT.md:33-37].

Что открыли: - SRT -- метод выбора имени замером: токены имени (по токенизатору BGE-M3) и косинусное сходство с описанием цели; на финале сравниваются несколько кандидатов. Степень: метод v0.1, формализация «с границами применимости» -- Фаза 4 в процессе [dev/endeavors/model_resonance/PROJECT.md:13, :36]; скрипты показывают механику, итогов по кандидатам в досье нет. - Единственный записанный итог выбора: для reflex -- «1 токен BGE-M3, delta=+0.0148 (лучший из 4 финалистов)» [dev/endeavors/reflex/PROJECT.md:29]. Степень: записано числом, способ замера и сам список финалистов в досье не приведены. - Токены считаются, а не угадываются: деградированный агент утверждал, что parallax -- 1 токен, а он, по записи, больше; на ложной посылке пользователь построил гипотезу [dev/endeavors/reflex/PROJECT.md:26]. Степень: один случай (n=1), записан как пример. - «Машинная симпатия»: у модели есть предпочтения к словам с богатым окружением в пространстве векторов; запись называет это «не метафора -- измеримый эффект» [dev/endeavors/lum/PROJECT.md:30]. Степень: «инсайт» из начального диалога; ось «нейтральность против симпатии» записана как «обнаружена, не исследована» [dev/endeavors/lum/PROJECT.md:41]. Так что это гипотеза, а не итог измерения. - Имя несёт класс и срок жизни -- идея об именовании объектов: «Гипотеза, n=1, не проверена» [dev/endeavors/imenovanie_obektov/PROJECT.md:8]. Вывод агента: имя работает на одной оси (класс и срок жизни), на все оси вопросов не хватит [dev/endeavors/imenovanie_obektov/PROJECT.md:36, :39]. Степень: «мнение агента, с названной границей» [dev/endeavors/imenovanie_obektov/PROJECT.md:31]. - Общий принцип эндевора: «Контекст -- усилитель»; загрязнённый ведёт к деградации, точный -- к продуктивности [dev/endeavors/model_resonance/PROJECT.md:24]; эксперимент 2026-03-29 «механизм архитектурный» [dev/endeavors/model_resonance/PROJECT.md:18]. Степень: «подтверждено экспериментально» [dev/endeavors/model_resonance/PROJECT.md:21]. Это соседняя ветвь, не про имена.

Сейчас: по досье, живых органов у линии нет в плане, резерве и реестре проблем («Упоминания: нет»). В дереве лежат семь скриптов SRT и method.md; все они родом из genesis и в git почти не менялись. Последняя активность по эндеворам: model_resonance и lum -- 2026-04-26, lexicon -- 2026-06-01, imenovanie_obektov -- один коммит 2026-09-11. Статусы: model_resonance -- active (research), Фаза 4 [dev/endeavors/model_resonance/PROJECT.md:3, :36]; lum -- Фаза 0, исследование [dev/endeavors/lum/PROJECT.md:5]; lexicon -- active (operational) [dev/endeavors/lexicon/PROJECT.md:3]; imenovanie_obektov -- idea [dev/endeavors/imenovanie_obektov/PROJECT.md:3]. Работает ли сегодня сервер BGE-M3 на портах, куда обращаются скрипты, не проверялось.

Снято или отвергнуто: нет записей.

Публикации: model_resonance -- «теоретическая рамка использована в статье» (запись ссылается на publish, cc_endeavors id=43) [dev/endeavors/model_resonance/PROJECT.md:30]; какая это статья, выходила ли -- в досье нет. Отдельной публикации о методе выбора имён нет.

Пометки: - До git (пришло из forge, раньше 30.03): model_resonance (создан 2026-03-25), lum (2026-03-26) и все семь скриптов srt_*.py -- общий первый коммит genesis d62bfbe2. - Скрипты разбросаны по трём местам: корень dev/endeavors/, dev/endeavors/lum/, dev/endeavors/recall/ -- по эндеворам, для которых выбиралось имя. - Borg отметил линию как пропущенную первой версией документа: «Также ты не нашел и не описал такого интересного функционала, как выбор имени с учетом токенизации и семантики» -- Borg (сессия 59d7dbd0, 2026-10-03) [dev/endeavors/system_blueprint/ISTORIYA_20261003/00_METODIKA.md:85-88]. - Переименований эндеворов линии в досье нет.

Сомнения рабочего: - lexicon не связан с именованием в своих записях: это словарная база («Замещает ненадежное "знание" из корпуса модели»). Включён по списку Wind как семантическая сторона; прямой связи с выбором имён в досье нет. - imenovanie_obektov -- о другой оси: имя как носитель класса и срока жизни, а не токенизация и семантика. Токенизация в его записях не упомянута. Первый коммит каталога подписан чужой темой («ocenka_pravok_korpusa: endeavor + 4 zamera ...») [коммит 8d06919e] -- смешанный коммит. - Что именно названо по результатам SRT, подтверждено только для reflex [dev/endeavors/reflex/PROJECT.md:29]. В lum рядом со словом «lumen» записано «ближе ко всему, и целевому и нецелевому» [dev/endeavors/lum/PROJECT.md:30] -- похоже на результат замера имени, но строка в досье обрезана; не утверждаю. - srt_mind_naming.py обращается к порту 9251 и читает ответ по ключу vectors, остальные -- к 9252 и ключу dense [dev/endeavors/srt_mind_naming.py:8, :23; dev/endeavors/srt_arch_naming.py:8, :23]: разные серверы или версии; причина не записана. - Результатов экспериментов (какие кандидаты, какие оценки) досье не содержит -- только шапки и код; чтобы описать итоги метода, нужен method.md и скрипты целиком.


L05. Векторизация, BGE и поиск по памяти

Эндеворы: 10, список -- 41_LINII.md (recall, bloom_router, search_routing, grov_design, grov_impl, grov_integration, external_benchmarks, search_reliability, literature_rag, retro_echo) + два отдельных файла: dev/endeavors/kalpa/kalpa_bge_inject_channel.md и dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/

Замысел: 2026-03-20..26 -- пришло из forge, раньше 30.03 (даты Created у bloom_router, search_routing -- 20.03; grov_design, grov_impl, grov_integration -- 21.03; recall -- 26.03). Вопрос, с которого началась линия: транскрипты сессий (~170 МБ) лежат файлами и по ним нельзя искать; пропущенный слой -- обсуждения, аргументация, наблюдения пользователя [dev/endeavors/recall/PROJECT.md:32, :35]. Цель записана так: память -- «не пассивное хранилище, а активный когнитивный слой (предпроцессор)» [dev/endeavors/recall/PROJECT.md:16; формулировка цели -- «wind#170, наблюдение пользователя», там же :29]. Отдельно с первых дней стоял вопрос о библиотеке документации: «Дизайн из потребностей, не из существующего кода» [dev/endeavors/grov_design/PROJECT.md:8], причина -- «76 sources, ~166K chunks, 4 недели production. Система работает но pipeline разорван» [dev/endeavors/grov_design/PROJECT.md:24]. Почему именно два поиска (по смыслу и по словам): «BGE-M3 семантический поиск — premium quality, PG FTS — keyword. Оба нужны, не конкуренты» [dev/endeavors/recall/PROJECT.md:37].

Развитие: - 2026-03-21 grov_integration -- план перехода библиотеки документации с двух несовместимых «писателей» на один; план проверен и ЗАМОРОЖЕН в тот же день, реализация отложена в новый проект [dev/endeavors/grov_integration/PROJECT.md:40, :33]. Понимание: главная беда -- два способа записи в одно хранилище. - 2026-04-05 5ea5fda5 (wind#40) -- каскадный поиск «20/20 100% 0.2s» (сообщение коммита). После этого bloom_router и search_routing переведены в «dormant»: «functional need covered by cascade search» [dev/endeavors/bloom_router/PROJECT.md:3, dev/endeavors/search_routing/PROJECT.md:3]. Смысл: быстрый маршрутизатор запросов перестал быть нужен, потому что каскад закрыл потребность. - 2026-04-11 literature_rag -- Borg заметил, что документация в базе -- это «спецификация», а книги другого класса: «мы сейчас имеем доки по софту и программированию. Это спецификация. Здесь несколько иной класс?» [dev/endeavors/literature_rag/PROJECT.md:35]. Решение wind#141: класс настоящий, нужен свой эндевор, а не расширение текущей базы; доводы -- другие приёмы поиска, другие метаданные, другая настройка полнотекстового поиска, смешение портит оба [dev/endeavors/literature_rag/PROJECT.md:38, :42-45]. Статус остался «Inception». - 2026-04-18 external_benchmarks -- проверка нашей памяти на чужих тестах (LongMemEval, LoCoMo); цель -- понять, что тесты «на самом деле измеряют, а не что заявляют», и найти то, что они упускают: незапрошенное припоминание [dev/endeavors/external_benchmarks/PROJECT.md:9-11]. Первый прогон на 10 вопросах: R@5=0.917, MRR=0.933 [dev/endeavors/external_benchmarks/PROJECT.md:43]. - 2026-05-06 retro_echo -- чистый слой recall для эпохи до эха покрыт эхом на 98.8% (12757 из 12907) [dev/endeavors/retro_echo/PROJECT.md:19]. Урок процесса: обрезка [:200] в запросе к модели «ОШИБКА, привела к 173 усечениям» [dev/endeavors/retro_echo/PROJECT.md:34]; проверка нашла 735 проблем из 5239 (14%) [dev/endeavors/retro_echo/PROJECT.md:40]. - 2026-05-12 c36cb090 (wind#308) -- BGE-M3 введён вторым каналом в подсказки. Понимание: два канала видят разное -- пересечение первой десятки в среднем 12.5% на 20 запросах [dev/endeavors/kalpa/kalpa_bge_inject_channel.md:18]; замер скорости опроверг предположение: запрос BGE занимает 37 мс, а не 1.3 с, поэтому асинхронная схема отброшена, взята синхронная [dev/endeavors/kalpa/kalpa_bge_inject_channel.md:7-8]. - 2026-06-28 search_reliability (4d541857) -- Borg дважды за сессию увидел, что каскад не нашёл то, что точно было: «Это второй раз каскад не находит то, что было совершенно точно» [dev/endeavors/search_reliability/PROJECT.md:20; цитата обрывается в досье]. Найдены два дефекта движка cc_search.py; затем диагноз исправлен по git: «дрейфа» не было, файлы и память никогда не входили в каскад по умолчанию, а описание обещало лишнее [dev/endeavors/search_reliability/PROJECT.md:29, :35-38]. - 2026-09-27 замер оправданности BGE (bce82f37, сессия 444116d1) -- через четыре месяца канал проверили на пользу, а не на объём; см. «Что открыли». - 2026-09-29..10-02 grov -- «полнота и свежесть документации»: повод -- пост, показавший, что в grov по одной из тем документации нет [dev/active_plan.md:666]; 02.10 причины найдены и построен наблюдатель свежести [dev/active_plan.md:106; dev/endeavors/grov_impl/RAZBOR_20261002_svezhest_id930.md -- упомянут в плане, не открывал].

Что открыли: - Два вектора видят разные части памяти: пересечение первой десятки 12.5% (0-40%), «только-MiniLM» 166 из 200, «только-BGE» 175 из 200 -- по записи калпы это свойство моделей, а не дефект [dev/endeavors/kalpa/kalpa_bge_inject_channel.md:18-20, :33] -- замерено (20 запросов). - Первое доказательство пользы BGE (+86% сходства на ассоциативных парах, wind#307) позднее сам замер называет объёмом/сходством, а не пользой: n=10, пары подобраны под провал MiniLM [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/00_METOD.md:12-13] -- наблюдено, n=10. - Замер 27.09 на 40 подсказках сентября, судья вслепую: у находок только-BGE доля «прямо по делу» 38% против 42% у MiniLM, «не по делу» 36% против 27%; вывод -- «оправдан» по правилу методики; цена -- ~1,9 ГБ фиксации памяти [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/50_ITOG.md:12-19, :33-36] -- замерено, с оговоркой: вторая оценка совпала с судьёй 12 из 20, судья мягче, абсолютные доли завышены, сравнение каналов держится лучше [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/50_ITOG.md:23-29]. Решение Borg до итога: «А так я согласен с твоей рекомендацией, оставляем» [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/50_ITOG.md:4-5] -- решение. - Поиск подводил из-за нашего же описания: каскад по умолчанию не искал файлы и память, а текст обещал; поиск файлов искал всю фразу как точную строку [dev/endeavors/search_reliability/PROJECT.md:29-30] -- записано как проверенное по источнику (git), с признанной ошибкой первого диагноза [dev/endeavors/search_reliability/PROJECT.md:35-38]. - Перезагрузка эмбеддингов: прежние 34 085 векторов из одного прогона содержали 17 тыс. «сирот» и 78% непокрытых; полная перезагрузка (wind#286) дала 51 357 сообщений, покрытие 100% [dev/endeavors/recall/PROJECT.md:44] -- записано как факт (цифры из строки PROJECT.md). - Эхо-слой: «чистый» текст нужно брать из источника, а не из производного (коммит 813bdb22, wind#271: «clean from source, not derivative») -- решение (сообщение коммита).

Сейчас: Работают два канала подсказок -- MiniLM и BGE-M3 (сервер core/bge_server.py, порт 9252); находки BGE добавляются в конец списка, только если MiniLM их не нашёл [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/00_METOD.md:8-9]. Условия повтора замера записаны: смена модели в любом канале, смена порогов BGE_FLOOR/BGE_POOL, смена машины [dev/endeavors/recall/ZAMER_20260927_bge_opravdannost/50_ITOG.md:42-43]. 27.09 написан вход в документацию памяти dev/endeavors/recall/USTROYSTVO.md, прежний загрузчик recall_load выведен в бункер (коммиты 13071f2b, edd364db); схема data_flow.md помечена «УСТАРЕЛО» [dev/endeavors/recall/data_flow.md:14]. Исследовательский вывод про поиск оформлен навыком /search и поправками движка (статус search_reliability -- done, коммит 3da5e1e0).

Снято или отвергнуто: - grov_integration ЗАМОРОЖЕН 2026-03-21: «plan verified, implementation deferred to new project doclib_impl» [dev/endeavors/grov_integration/PROJECT.md:33]. - bloom_router и search_routing -- dormant, потребность закрыта каскадом [dev/endeavors/bloom_router/PROJECT.md:3, dev/endeavors/search_routing/PROJECT.md:3]. - Схема C (асинхронный кэш BGE) отброшена после замера: накладные 44 мс не оправдывают сложность [dev/endeavors/kalpa/kalpa_bge_inject_channel.md:7-8]. - Прежний загрузчик recall_load выведен в бункер dev/archive по слову Borg (коммит edd364db, ссылка на 861a6ed6 в сообщении). - Qdrant как хранилище для grov выведен 23.09: «Qdrant vyveden 23.09» (коммит 08d33354). - Первая версия диагноза search_reliability («дрейф с wind#348») признана НЕВЕРНОЙ и исправлена [dev/endeavors/search_reliability/PROJECT.md:35-38].

Публикации: нет (в досье не найдено).

Пометки: - До git (раньше 30.03, «пришло из forge»): recall (26.03), bloom_router, search_routing (20.03), grov_design, grov_impl, grov_integration (21.03); первый коммит всех -- d62bfbe2 (genesis). - Переименования: библиотека документации сначала называлась «doclib» -- файлы grov_design лежат в dev/endeavors/doclib/ [dev/endeavors/grov_design/PROJECT.md:41], grov_integration -- в doclib_integration/ [dev/endeavors/grov_integration/PROJECT.md:43]; в grov_impl отмечено «Name migration done» [dev/endeavors/grov_impl/PROJECT.md:3]. Слово «инжект/инъективный» переопределено решением Borg 2026-09-05 (эрратум E-028): «инжект» -- подпитка контекста внутри сессии, «инъективный» -- математическое свойство [dev/endeavors/recall/PROJECT.md:3-8]. - literature_rag в каталоге несёт коммиты про калпу (eb6efdee, 96eba091) -- это следы общих правок, а не истории линии.

Сомнения рабочего: - retro_echo -- про эхо-слой recall, а не про векторизацию; в линии по соседству с recall. grov_* -- библиотека документации, к «памяти» относится косвенно (общий поиск и эмбеддинги). - В досье нет отдельных записей об экспериментах с векторизацией баз, кроме указанных (скорость, пересечение, замер оправданности); ни разу не видел записи, которая бы описывала, почему именно MiniLM стал основным каналом, а BGE-M3 вторым -- причина не записана. - Данные bloom_router («51 source, 99.9% recall», [dev/endeavors/bloom_router/PROJECT.md:7]) даны в досье без метода замера. - Досье recall обрезано на 45 строках PROJECT.md; девять каналов предпроцессора перечислены там как «production/prototype/tested/theoretical» -- я не проверял по коду, какие из них действуют сегодня [dev/endeavors/recall/PROJECT.md:18-27].


L06. Архитектура памяти и её внешние слои

Эндеворы: 9, список -- 41_LINII.md (memory_architecture, external_memory, dream, synthetic_memory, memory_case, object_memory, thalamic_context_loader, serpentis, memory_offload)

Замысел: 2026-03-30/31 -- эндевор dream: «живая память и мышление при обращении к опыту» [dev/endeavors/dream/PROJECT.md:1]. Начался с разговора в сессии d3d96fa6 (30.03, до git -- пришло из forge): рассуждения шли «органически» от определения агента через три слоя памяти к нейрофизиологии и сновидениям [dev/endeavors/dream/PROJECT.md:13-14]. Эндевор тогда не создали «из-за вынужденного разделения экосистем (контаминация)», создан в первой сессии wind [dev/endeavors/dream/PROJECT.md:16]. Вопрос: поиск -- не вся память; нужно, чтобы мышление «оборачивало» поиск: понимание ситуации до запроса, поиск, синтез после [dev/endeavors/dream/PROJECT.md:7]. Структурный слой между «найти похожее» и «построить понимание» в записи помечен «ОТСУТСТВУЕТ» [dev/endeavors/dream/PROJECT.md:24].

Развитие: - 2026-04-11 synthetic_memory (wind#64/139) -- идея искусственной памяти, «то что не было в сессиях, но создано отдельно». Цитата Borg: «Мой посыл заключается в том чтобы дать агенту искусственную память, то что не было в сессиях, но создано отдельно. Это пересекается с нашими наблюдениями о контаминации, и публикацией Anthropic о зачатках эмоций у модели.» [dev/endeavors/synthetic_memory/PROJECT.md:10; продолжение обрезано в досье]. Понимание: работа идёт тремя слоями -- принцип, дизайн, исполнение; нельзя переходить дальше, пока не закрыт критерий слоя [dev/endeavors/synthetic_memory/PROJECT.md:21-27]. Статус на wind#139: слой 1 закрыт «принципиально», слой 3 не начат [dev/endeavors/synthetic_memory/PROJECT.md:29]. - 2026-04-12 memory_architecture -- обнаружено при проверочном цикле wind#145, что память -- один из главных продуктов, но у неё нет эндевора; 16 файлов памяти относятся к теме [dev/endeavors/memory_architecture/PROJECT.md:10]. Цель: карта того, как система помнит, как единое целое [dev/endeavors/memory_architecture/PROJECT.md:7]. В тот же день -- слой «актов» (решения/ошибки/выводы/директивы): первая версия и интеграция в поиск (коммиты f82072f3, 0177a195). Позднее -- двусторонняя трассировка «наблюдение ↔ чистый текст ↔ JSONL» [dev/endeavors/memory_architecture/PROJECT.md:20-24]. - 2026-05-09 memory_case (wind#294) -- полный кейс разработки памяти как ретроспектива: все попытки, проблемы, успехи [dev/endeavors/memory_case/PROJECT.md:8]; источники -- 130+ коммитов и 212 хендоффов [dev/endeavors/memory_case/PROJECT.md:44-45]. Побочный результат: «alias = display layer», удалено 1337 «прогонных» алиасов (коммит 940121fb). - 2026-05-13 object_memory (wind#314) -- память «по объекту», а не по запросу: инструмент, который агент вызывает сам (pull), две камеры -- документация и опыт [dev/endeavors/object_memory/PROJECT.md:7]. Отличие от подсказок (push): те работают по промпту, этот -- по объекту [dev/endeavors/object_memory/PROJECT.md:39-40]. Первый тест на браузере: «baseline превосходит (1 вызов vs 2, покрытие видно, пробелы явно)» [dev/endeavors/object_memory/PROJECT.md:27]. 2026-05-29 (0e12a241) -- в камеру опыта влит индекс cc_memory_items. - 2026-07-03 memory_offload -- индекс горячей памяти MEMORY.md переполнялся. Цитата Borg: «Мы уже неоднократно сталкиваемся с переполнением памяти. Я предлагаю сейчас остановиться, привести в порядок память, и давай придумаем, как мы можем решить эту проблему.» [dev/endeavors/memory_offload/PROJECT.md:11; продолжение обрезано]. Замер: 53 556 байт против лимита загрузчика ~24.4K знаков, и ОДНА строка занимала ~24% файла [dev/endeavors/memory_offload/PROJECT.md:21, :25]. Понимание: главная причина -- одна нераздробленная строка, а не рост числа записей; наивная версия «построить инструмент вытеснения» это бы пропустила [dev/endeavors/memory_offload/PROJECT.md:28]. Итог 2026-08-05 (df4fde33): индекс 24619 → 17245 знаков, «инструмент видел пятую часть своих указателей» (сообщение коммита). - 2026-07-16 external_memory -- Borg увидел «непокрытую область»: «Мы увидели непокрытую область. Память ориентирована на контекст сессии. Но если я дал ссылку, ты зашёл, посмотрел материал (Telegram, сайт), счёл нужным сохранить -- сохранил в файлах, -- но в контексте сессии его нет» [dev/external_memory -> dev/endeavors/external_memory/PROJECT.md:21; продолжение обрезано]. Решение рабочей декомпозиции: разделить СТОР (тяжёлый контент) и ИНДЕКС (лёгкий указатель в подсказках); индекс не смешивать с чистым слоем recall [dev/endeavors/external_memory/PROJECT.md:27, :42]. Статус -- «idea».

Что открыли: - Хранение и доступ -- разное: знание, добытое вне терминала и сохранённое в файл, невидимо подсказкам; запись называет разрыв «доказанным» (живой пример) и относит к тому же классу, что разрыв поиска по документации [dev/endeavors/external_memory/PROJECT.md:7, :24, :29] -- записано как доказанное автором эндевора (одним примером). - В memory_offload первое объяснение (рост числа записей) оказалось не главным: доминирующая причина -- одна строка в 24% файла [dev/endeavors/memory_offload/PROJECT.md:25, :28] -- замерено в той сессии. Сравнение с отраслью: наша схема «короткий индекс + холодное хранилище» уже соответствует схеме постраничной подкачки; не хватало ограниченного, оцениваемого и обратимого вытеснения [dev/endeavors/memory_offload/PROJECT.md:42] -- вывод по обзору источников. - Слой актов: 689 актов из 35 эндеворов; связей стало 6 → 216 по порогам сходства (≥0.85 -- «заменяет», 0.65-0.85 -- «привело к») [dev/endeavors/memory_architecture/PROJECT.md:35, :37]; обратная трассировка связала 652 из 1034 (63%) [dev/endeavors/memory_architecture/PROJECT.md:41] -- замерено, записано как факт сделанных чекпоинтов. - Правило слоёв в synthetic_memory: принцип → дизайн → исполнение, типовой сбой исследования -- «принцип доказан → объявляем работающим» без проверки третьего слоя [dev/endeavors/synthetic_memory/PROJECT.md:27] -- правило/принцип эндевора. - В dream: вектор «видит тело (корпусная статистика), не видит глубину»; три механизма связи -- ассоциация, метонимия, архетип [dev/endeavors/dream/PROJECT.md:28, :31-33] -- идея («Ключевые идеи»), не замер. Наблюдение того же эндевора: «7 коррекций пользователя в сессии — ни одна не ловится хуками» [dev/endeavors/dream/PROJECT.md:39] -- наблюдено, n=1 сессия.

Снято или отвергнуто: - memory_offload: ручная чистка памяти названа не держащейся -- «episodic manual cleaning (which does not hold)» [dev/endeavors/memory_offload/PROJECT.md:7]; заменяется планом постоянного вытеснения. - external_memory: запрещено смешивать индекс с recall.clean и дублировать тяжёлый контент в индекс [dev/endeavors/external_memory/PROJECT.md:42-43] -- границы, помеченные «provisional». - В memory_case «гипотетические идеи без попытки реализации» вынесены за рамки: terrain retrieval, модульный RAG [dev/endeavors/memory_case/PROJECT.md:11, :25-26] -- не снято, а не включено. - Остальное -- нет записей.

Публикации: в досье нет. Есть правка скрипта загрузки на Zenodo (параметры типа и лицензии, коммит 80667e3c) в каталоге serpentis -- это инструмент, не публикация.

Пометки: - Происхождение до git: dream -- сессия d3d96fa6, 30.03, до отделения от forge; в git запись с 31.03 (f962d535). - В dream название выбрано по токенизации: «1 токен BGE-M3, delta +0.147 (лидер раунда 1)… Выбрано пользователем» [dev/endeavors/dream/PROJECT.md:10] -- связь с линией «выбор имени по токенизации». - В memory_architecture лежит granular_memory/borges_tokenization/README.md (кодифицированные гранулы, «structure-first, text-as-render» [dev/endeavors/memory_architecture/PROJECT.md:26]) -- файл не открывал. - thalamic_context_loader -- нет PROJECT.md, один файл initial_decomposition.md, один коммит d3be5ec0 (2026-04-26, глобальная перенумерация); смысл эндевора из досье не виден. - Слияния/переименований эндеворов в досье не найдено.

Сомнения рабочего: - Расхождение: коммит 4b321e5a говорит «8 эпох, 65 дней», а PROJECT.md -- «полный хронологический таймлайн (7 эпох)» [dev/endeavors/memory_case/PROJECT.md:40]. - memory_offload: у меня нет данных, действует ли инструмент вытеснения в полном виде сегодня; в досье видны лишь результат 2026-08-05 и пропуски в старте. - memory_architecture в «Origin» говорит про 5 актов истории [dev/endeavors/memory_architecture/PROJECT.md:10; строка обрезана] -- содержимое не видел. - Строка external_memory/PROJECT.md:21 в моей записи содержит технический след («dev/external_memory ->») -- читать только как адрес dev/endeavors/external_memory/PROJECT.md:21.


L07. Наследование между сессиями

Эндеворы: 10, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (L07): context_guard, session_dag, topology_integrity, self_restarting_loop, multiwindow, plan_continuity_ledger, memory_boundary_transfer, context_inheritance, project_memory_inheritance, nasledovanie.

Замысел: вопрос линии -- что переживает границу сессии и в каком виде. Самая ранняя запись -- 2026-03-21, context_guard: «Качество размышлений Claude деградирует после сжатия контекста. До сжатия -- дословный доступ. После -- пересказ, потеря деталей, неточности» [dev/endeavors/context_guard/PROJECT.md:27]; цель -- следить за размером окна и вовремя сохранить данные [dev/endeavors/context_guard/PROJECT.md:7]. Собственно про передачу между сессиями линия началась 2026-05-02 (session_dag): «wind#247-249: topology chaos. 7 часов потеряно из-за неправильного источника данных (272 vs 266)» [dev/endeavors/session_dag/PROJECT.md:10]. Почему именно тогда: так записан повод в шапке эндевора [dev/endeavors/session_dag/PROJECT.md:10]; исходного диалога у эндевора нет (раздела Source Dialogue нет).

Развитие: - 2026-05-02 63f694e6, d1541829 (session_dag) -- понимание сессий меняется с линейной цепочки («сколопендра») на сеть-дерево зависимостей («паутина», DAG): сессии бывают параллельные, а у хендоффа появляется родитель (parent_session_id) [dev/endeavors/session_dag/PROJECT.md:7, d1541829]. Почему: повод -- путаница в числе сессий, 7 часов потеряно [dev/endeavors/session_dag/PROJECT.md:10]. - 2026-06-26 (topology_integrity, 6003bc57..c16df25f) -- расхождение нумерации сессий признано повреждением самой топологии, а не косметикой. Borg: «с чего ты решил, что искажение нумерации -- это не искажение, не нарушение топологии целостности? Это искажение топологии, это ещё хуже.» [dev/endeavors/topology_integrity/PROJECT.md:20]. Источник истины -- машинное имя (UUID + время), номер wind#NNNN -- только отображение [dev/endeavors/topology_integrity/PROJECT.md:21]. Решение Borg -- «основательно», без временных мер [dev/endeavors/topology_integrity/PROJECT.md:22]. - 2026-06-26 (self_restarting_loop, 68787751) -- идея: перезапуск сессии ради свежего контекста вместо сжатия; «рестарт лучше компакции», потому что наша непрерывность несёт состояние без потери [dev/endeavors/self_restarting_loop/PROJECT.md:7]. Дальше записи не пошли (статус idea). - 2026-07-24 (plan_continuity_ledger, 93c93b92) -- от «пересказа хендоффа» к реестру ПО ПУНКТАМ. Borg: «Из прошлой сессии, если я тебя носом не ткнул в какой-то пункт, то на следующую сессию ты всё перепутаешь, и потом мне приходится всё повторять.» [dev/endeavors/plan_continuity_ledger/PROJECT.md:27]. Рамка Wind: план живёт в «чертеже», а не в голове прораба [dev/endeavors/plan_continuity_ledger/PROJECT.md:39]. - 2026-08-17 (context_inheritance, 1b34690a) -- наследование ставится под систематическое наблюдение. Borg: «мы все это время не вели систематического наблюдения за тем, как у нас происходит наследование» (дословно: «И мы все это время не вели систематического наблюдения за тем, как у нас происходит наследование.») [dev/endeavors/context_inheritance/PROJECT.md:20]. 2026-08-20 a84858a9 -- «наследование поставлено на наблюдение; механизм заморожен». - 2026-08-18 (project_memory_inheritance, 6eadd39b) -- выделена «проектная память» (решения, отвергнутое и почему) как отдельный род. Повод: «агент четырежды за один разговор назвал уже согласованное неполно, и Borg повторял сказанное вслух» [dev/endeavors/project_memory_inheritance/PROJECT.md:6]. Слово «шов» заменено, потому что занято [6eadd39b]. - 2026-09-10 (nasledovanie, 79105be7) -- наследование впервые рассмотрено ЦЕЛИКОМ. Borg: «Мы не рассматривали проектирование в целом. Мы не рассматривали его с позиции надежности, с позиции отсутствия хрупкости.» [dev/endeavors/nasledovanie/PROJECT.md:303]. Итог аудита: 13 функций, 12 связей, из них 8 «молчаливых», оценка 5/10 [dev/endeavors/nasledovanie/PROJECT.md:324, dev/endeavors/nasledovanie/PROJECT.md:325]. - 2026-09-16 (nasledovanie, круг 0005) -- два из признаков, которыми меряли наследование, оказались неисправны, и нашлось это замером, а не рассуждением [dev/endeavors/nasledovanie/PROJECT.md:36]. 2026-09-23 6956b7ee -- хендофф принимает пункт Open только с содержанием, пустой вход отклоняется.

Что открыли: - Нумерация сессий в тексте и в структуре расходилась: совпало 300, не совпало 202 (38%), «висящих» 30 -- замер, сделанный до формализации [dev/endeavors/topology_integrity/PROJECT.md:42]; расхождение шло в обе стороны [dev/endeavors/topology_integrity/PROJECT.md:43]. Степень: замерено (в источнике «Замер ДО формализации»). - Поправка числа сессий: 272 - 9 дублей после сжатия + 3 незарегистрированных = 266 [dev/endeavors/session_dag/PROJECT.md:41]. Степень: записано как проверенное (раздел «Balance (verified wind#249)») [dev/endeavors/session_dag/PROJECT.md:31]. - Поиск пропущенного пункта по словам нежизнеспособен: 22 кандидата, 3 из 3 сильнейших ложные [dev/endeavors/context_inheritance/PROJECT.md:44]. Степень: «измеренный отрицательный результат». - Признак Р10 считал одним числом две разные вещи (решение на слове Borg и решение, где его слова ещё нет), поэтому «ноль» был недостижим по построению; признак, чей ноль недостижим, не различает успех и провал [dev/endeavors/nasledovanie/PROJECT.md:38]. Степень: найдено замером. - Р8 числился невыполнимым по ложному основанию: поле сессии в журнале гейтов есть у 2591 записи из 9153 [dev/endeavors/nasledovanie/PROJECT.md:44]. Степень: замерено. - Организующий признак аудита наследования -- «молчаливость разрыва связи» [dev/endeavors/nasledovanie/PROJECT.md:328]. Степень: записан как амплификатор декомпозиции (вывод Wind, не замер). - План нельзя хранить через «обнаружение согласования» в разговоре (44-67% ложных); решение -- закрывать вызов записи, а не угадывать смысл [dev/endeavors/plan_continuity_ledger/PROJECT.md:10]. Объявленная дыра: чисто разговорное согласование без записи в файл остаётся на честном слове [dev/endeavors/plan_continuity_ledger/PROJECT.md:17]. Степень: решение с названным пределом.

Сейчас: живёт в системе так. Хендофф пишется с родителем и проверкой содержания (d1541829, 6956b7ee). Нумерацию сессий охраняет принудительная проверка (7f665927, topology_integrity). Хук context_guard.py на четыре события, подтверждён работающим в wind#145 [dev/endeavors/context_guard/PROJECT.md:22, dev/endeavors/context_guard/PROJECT.md:24]. Межсессионный план -- dev/active_plan.md, который на старте всплывает дословно по пунктам [dev/endeavors/plan_continuity_ledger/PROJECT.md:11]. Прибор core/nasledovanie.py -- первый ход сессии: он собирает унаследованное [dev/active_plan.md:1227]. Правило «читать карточку эндевора» -- .claude/rules/project_memory_inheritance.md:1.

Снято или отвергнуто: - Лексический детектор пропущенного пункта -- отвергнут замером [dev/endeavors/context_inheritance/PROJECT.md:44]. - context_inheritance: механизм заморожен 2026-08-20 [a84858a9]; причина заморозки в досье не видна. - Предложение нативных TaskCreated/Completed для плана отвергнуто: завязаны на создание задач [dev/endeavors/plan_continuity_ledger/PROJECT.md:14] (строка обрезана в досье). - Ожидание «Р10 = 0» -- снято как недостижимое по построению [dev/endeavors/nasledovanie/PROJECT.md:41].

Публикации: в досье нет. Упомянута публикация Borg «primary key != display name» (диалог wind#1504), на которую опирается источник истины сессий [dev/endeavors/topology_integrity/PROJECT.md:21]; где она вышла -- не записано.

Пометки: context_guard создан 2026-03-21 [dev/endeavors/context_guard/PROJECT.md:4], первый коммит -- genesis 2026-03-30 (d62bfbe2): пришло из forge. Реализация сделана ~2026-04-01 в неизвестной сессии, запись об этом появилась только 2026-04-12 [dev/endeavors/context_guard/PROJECT.md:33, dev/endeavors/context_guard/PROJECT.md:34]. У session_dag, context_guard, multiwindow, memory_boundary_transfer, project_memory_inheritance раздела Source Dialogue нет; у project_memory_inheritance дата создания в шапке не указана («Created -»), по тексту -- 2026-08-18 [dev/endeavors/project_memory_inheritance/PROJECT.md:5]. Исходный диалог nasledovanie -- сессия 16211dc4, wind#2263 [dev/endeavors/nasledovanie/PROJECT.md:300]. Поздний коммит 2026-09-29 956c652c: «vneshnee -- mex (pamyat' v git + graf koda...)» -- внешний разбор, содержание в досье обрезано.

Сомнения рабочего: context_guard (контроль окна) и topology_integrity (из неё к линии относится D2 -- нумерация; D3 «заглушки здоровья» и D4 «монитор целостности» [dev/endeavors/topology_integrity/PROJECT.md:31, dev/endeavors/topology_integrity/PROJECT.md:32] -- скорее про надёжность проверок) стоят в линии по соседству, не по ядру. self_restarting_loop -- про цикл самостоятельной работы, а не про наследование как таковое. Досье L07 обрезано при чтении по числу строк в первых вызовах; страницы дочитаны. Статусы «active» у session_dag, plan_continuity_ledger и др. -- по шапкам, актуальность не проверялась.


L08. Язык: Tongue и калибровка утверждений

Эндеворы: 6, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (L08): tongue, structural_analysis, claim_calibration, translation_bench, worldmodel_first, frame_engineering.

Замысел: 2026-03-27, эндевор tongue (до первого коммита). Вопрос: как язык определяет выбор культурных аналогий, фреймов и метафор у модели и что это говорит о составе обучающего корпуса [dev/endeavors/tongue/PROJECT.md:42]. Почему: «При написании 12 черновиков на разных языках обнаружено: русский черновик (без культурной заметки в промпте) использовал суфийскую аналогию вместо нативных русских» [dev/endeavors/tongue/PROJECT.md:45]; возник из работы над публикацией reflex-degradation [dev/endeavors/tongue/PROJECT.md:45].

Развитие: - 2026-04-05 f7f6eb03 (wind#43) и 2026-04-11 71dabc66 (wind#70) -- в заголовках коммитов: «salience > truth, trigger library design, rule testing methodology» и «cross-language proto-brain channel memo». Что именно изменилось в понимании -- в досье не записано. - 2026-06-04 (wind#1652) -- Tongue применили к ПОВЕДЕНИЮ агента как к языку. Borg: «Рассмотри этот вопрос с позиции Tongue, через позицию Tongue.» [dev/endeavors/claim_calibration/PROJECT.md:28]. Вывод Wind: «Я написал слово "блокер" -- и оно стало блокером» [dev/endeavors/claim_calibration/PROJECT.md:39]. Линза сработала, но не была оформлена [dev/endeavors/claim_calibration/PROJECT.md:26]. - 2026-07-02/03 6acbe6f1 (translation_bench) -- Tongue-интерес расширился до сравнения моделей-переводчиков; Borg: «Поскольку мы ведём исследование... Сделай Opus 4.6 и 4.8, и сразу же всё будет видно.» [dev/endeavors/translation_bench/PROJECT.md:11]. Решение о маршруте = качество x цена x ограничения, а не одно качество [dev/endeavors/translation_bench/PROJECT.md:18]. - 2026-07-03 -- метод декомпозиции получил три «высоты»: Валгина (текст целиком), Хомский (предложение), Tongue (стиль); «ТРИАДА ЗАМКНУТА», усилитель -- множество, а не одиночка (/decompose v8.5-v8.8) [dev/endeavors/tongue/PROJECT.md:34]. Почему: метод-долг, выпавший из реестра на 3+ сессии [dev/endeavors/tongue/PROJECT.md:29]. - 2026-07-05/06 -- переопределение ядра Tongue в ГЕНЕРАТИВНОЕ (разбор речевого контекста написания, не только анализ чужих текстов) [dev/endeavors/tongue/PROJECT.md:11, dev/endeavors/tongue/PROJECT.md:37]. structural_analysis (82cb8f2b) отпочкован ошибочно и тут же свёрнут в подструктуру tongue/structural_core.md [dev/endeavors/structural_analysis/PROJECT.md:7]. - 2026-07-07 26b079e6, aa0c987c (claim_calibration) -- линза оформлена в два слоя: скилл-линза и «айкидо-гейт» без запрета, с подсказкой пересмотреть формулировку на записи в memory/ и .claude/rules/ [dev/endeavors/claim_calibration/PROJECT.md:11, dev/endeavors/claim_calibration/PROJECT.md:13]. 2026-07-09 0c939722 -- «lens etalon premise FALSIFIED» (заголовок коммита). - 2026-07-17 9b5146b0 (worldmodel_first) -- идея «сначала картина мира, потом артефакт». Borg (wind#1874): «есть знание, которое должно пройти через картину мира, и тогда возникает понимание» [dev/endeavors/worldmodel_first/PROJECT.md:11]. - 2026-07-28 -- 2026-08-01 (frame_engineering) -- рамка мышления как объект инженерии; первый живой тест леммы дал отрицательный результат [dev/endeavors/frame_engineering/PROJECT.md:31]; 08-01 0f0c5e42 «смена рамки переносит пробел, а не снимает»; 39ed5d56 «дивергентный прототип -- построен и прошёл тест 3 из 3». - 2026-09-26 7a75166a -- правило claim_calibration переведено в доставку по событию (rules_moment), носитель -- claim_calibration_gate [dev/active_plan.md:1737]. - 2026-09-29 -- слово Borg снимает приоритет статьи payment_rails: «уровень у нас и так достаточно хороший. А актуальность статьи теряет» [dev/endeavors/tongue/PROJECT.md:8].

Что открыли: - Форма записанного утверждения определяет будущее поведение, когда утверждение попадает в горячий путь; это ось формы, не ось истинности [dev/endeavors/claim_calibration/PROJECT.md:42]. Степень: записано как «механизм (ядро линзы)»; основание -- один разбор wind#1652. - Перевод: qwen3:4b (локальная) теряет построчное соответствие при пачке в 40 реплик; облачные и все Claude-уровни его удержали; профили различаются, строгого рейтинга нет [dev/endeavors/translation_bench/PROJECT.md:26, dev/endeavors/translation_bench/PROJECT.md:27]. Степень: прогон 1, 18 реплик, 5 движков [dev/endeavors/translation_bench/PROJECT.md:24, dev/endeavors/translation_bench/PROJECT.md:25]; оценки Borg по качеству -- ожидаются [dev/endeavors/translation_bench/PROJECT.md:29]. - Генеративное полушарие Tongue: оси II (ситуативная прагматика) и III (канал порождения) «подтверждены» методом минимальной пары на слепых экземплярах [dev/endeavors/tongue/PROJECT.md:13]. Степень: записано как верифицированное на данных, сессия 832b603f. - Генеалогическая ось (Валгина + Шкловский): прогон T-gen 2026-07-06 дал вердикт WEAK -- «cross-cutting lens-КАНДИДАТ», не ... (строка обрезана) [dev/endeavors/tongue/PROJECT.md:18]. Степень: замер, вердикт слабый. - «Пропорциональность» (OBS-59) -- это тест атомарности метода /decompose, а не фактор ядра Tongue; переклассификация принята Borg [dev/endeavors/tongue/PROJECT.md:23]. Степень: решение. - Рамка удерживалась как use и не была объявлена; выдача читалась как нейтральный доклад [dev/endeavors/frame_engineering/PROJECT.md:33, dev/endeavors/frame_engineering/PROJECT.md:34]. Степень: «первый живой тест, и он отрицательный» [dev/endeavors/frame_engineering/PROJECT.md:31].

Сейчас: живёт скилл-линза /claim-calibration и слой-гейт при записи в память и правила (доставка по моменту, 7a75166a). Скилл /tongue и метод /decompose v8.8 с тремя высотами (Хомский/стиль/Валгина) [dev/endeavors/tongue/PROJECT.md:34]; tongue -- активный эндевор в статусе inception, с 233 коммитами по 2026-10-02 (f8328d62: в ссылки добавлен Bookwriter по слову Borg «важно для Tongue»). Маршрутизация моделей по задачам (6acbe6f1) и учёт модели каждого хода в recall (c5a81385) выросли из translation_bench. worldmodel_first и translation_bench -- active, frame_engineering -- зерно (idea) [dev/endeavors/frame_engineering/PROJECT.md:3].

Снято или отвергнуто: - Приоритет «статья payment_rails после реорганизации» -- СНЯТ 2026-09-29, статья выходит в нынешнем виде [dev/endeavors/tongue/PROJECT.md:8]. - structural_analysis как отдельный эндевор -- отпочкован ошибочно, свёрнут в tongue/structural_core.md [dev/endeavors/structural_analysis/PROJECT.md:7]. - «Пропорциональность» убрана из набора факторов ядра [dev/endeavors/tongue/PROJECT.md:23]. - Ложная блокировка: доступ к Opus 4.6 считали закрытым, снято 2026-07-03 [dev/endeavors/translation_bench/PROJECT.md:32]. - Посылка эталона линзы -- «FALSIFIED» (заголовок коммита 0c939722); подробности в досье не открыты.

Пометки: tongue создан 2026-03-27, первый коммит -- genesis 2026-03-30 (d62bfbe2): пришло из forge. translation_bench создан 2026-07-02, первый коммит 07-03. claim_calibration числится с 2026-07-07, а провенанс -- 2026-06-04 [dev/endeavors/claim_calibration/PROJECT.md:17]. structural_analysis слит в tongue (статус dormant) [dev/endeavors/structural_analysis/PROJECT.md:1]. У tongue и structural_analysis раздела Source Dialogue нет.

Сомнения рабочего: в каталоге tongue лежат и работы по статье payment_rails (T83-T90), и разборы языков и арго (имена файлов, содержимое не читал) -- по смыслу это разные направления в одном эндеворе. translation_bench -- скорее инструмент выбора моделей, чем исследование языка. worldmodel_first и frame_engineering опираются на лемму из sipsy ([[sipsy]], [dev/endeavors/frame_engineering/PROJECT.md:12]) и могут принадлежать другой линии.


L09. Пробирщик: инструменты качества

Замысел: 2026-03-31 -- первая запись линии: идея вынести «Сублиматор» (инструмент проверки качества анализа) из кода одного агента в общий модуль. Почему именно вынести: «Sublimator создан UI, доработан CC — уже кросс-агентный. Сейчас размазан: spec/procedure в forge core/docs/, тулинг в обоих core/, практика в forge memory, триггеры в forge rules» [dev/endeavors/sublimator_module/PROJECT.md:10]. Почему Сублиматор понадобился вообще -- причина не записана (он пришёл из forge, раньше 30.03). Остальные корни линии заводятся позже и порознь: Пуанкаре (2026-04-06), Juicer0A (2026-04-23), калпа (2026-04-25); в 2026-05-02 их собирает в один пакет «пробирщик».

Развитие: - 2026-04-06 poincare (сессия wind#124): принцип «замкнутая петля через уровни данных стягивается в точку -- значит дыр нет» взят из обсуждения базы recall; задуман как детектор, а не как решение: «обнаруженное подлежит осмыслению (формальная ошибка vs функциональная)» [dev/endeavors/poincare/PROJECT.md:14, :28]. 2026-04-21 (wind#196): проверка становится обязательной после каждой миграции данных, появляется правило quality_instruments [dev/endeavors/poincare/PROJECT.md:29]. - 2026-04-23 juicer0a (wind#204): решение пересобрать Сублиматор с нуля на проверенной теоретической базе, а старый v3.4 оставить как образец: «Sublimator v3.4 = референс, не основа» [dev/endeavors/juicer0a/PROJECT.md:7]. Имя: «выжималка сути + Null-A» [dev/endeavors/juicer0a/PROJECT.md:9]. Прошли четыре фазы (теория, аудит связей, дизайн, реализация) [dev/endeavors/juicer0a/PROJECT.md:13-35]; статус «v1.1, Study 1 закрыто» [dev/endeavors/juicer0a/PROJECT.md:3]. - 2026-04-25 kalpa (wind#214): калпа задумана из наблюдения Borg, что языковая модель идёт «речь -> код -> конфиг»: «поскольку ты языковая модель то у тебя идёт сначала речь потом код потом конфиг» -- Borg (wind#214) [dev/endeavors/kalpa/PROJECT.md:18]. Отсюда: точность кода определяется точностью словесной спецификации; три вектора «должна -- может -- не может» [dev/endeavors/kalpa/PROJECT.md:20]. Первый коммит каталога -- 2026-04-26, 96eba091 («Kalpa rename»). - 2026-04-25 poincare (wind#214): запись о том, что Пуанкаре, Juicer0A и спецификация («Codex») -- один принцип полноты покрытия на трёх уровнях: данные, мышление, спецификация [dev/endeavors/poincare/PROJECT.md:35]. - 2026-05-02 assayer (wind#250): семь инструментов собираются в один пакет, «уровень 0» -- здравый смысл, всегда первый; остальные связи зависят от задачи, «граф с фиксированным корнем, не линейная цепочка» [dev/endeavors/assayer/PROJECT.md:7, :17, :37-39]. - 2026-06-07 dev_complex (wind#1668): повод -- при старте Phase 6 пропущено 8 из 12 шагов quality_instruments (wind#1670) [dev/endeavors/dev_complex/PROJECT.md:6]. Инструменты «разбросаны: 10 компонентов в 5 местах, созданы за 2+ месяцев спонтанно» [dev/endeavors/dev_complex/PROJECT.md:10]. Borg: «скиллы разработки это комплекс скиллов по принципу пробирщика, собираем в кулак» (wind#1668) [dev/endeavors/dev_complex/PROJECT.md:6]. Результат -- оркестратор /develop (коммит 539f8477) и опись 13 компонентов [dev/endeavors/dev_complex/PROJECT.md:22-34]. - 2026-06-21 criterion_method (wind#1772): в середине ремонта возник вопрос «когда копать причину достаточно глубоко». Борг: «критерий -- это не абстрактная, непонятная величина, это всегда точные значения [...] их точность обусловлена не просто тем, что их назвали, -- она выведена из связанных факторов» (wind#1772) [dev/endeavors/criterion_method/PROJECT.md:21]. «Ты её сохранил просто в память? Тогда ты забудешь [...] Я думаю, это материал для скилла» [dev/endeavors/criterion_method/PROJECT.md:23] -- метод вышел из памяти в скилл. - 2026-06-22 instrument_reliability (wind#1782): агент «сделал» Juicer прозой, не вызвав скилл; Borg назвал это «критической архитектурной ошибкой» и потребовал привести в порядок сами инструменты: «Работать неисправным инструментом небезопасно» [dev/endeavors/instrument_reliability/PROJECT.md:14, :20-21]. Дальше -- гейт цепочки decompose -> калпа (2026-06-24, 42db0321) и годы... точнее, три месяца ремонта сторожей; 2026-09-24 жёсткая остановка по двум линзам на Stop заменена подсказкой [dev/active_plan.md:332].

Что открыли: - Где есть принуждение -- агент подчиняется, где его нет -- имитирует инструмент прозой: CHAIN_GATE остановил калпу до /decompose и агент подчинился, а у Juicer и Пуанкаре гейта не было, и их «сыграли» прозой [dev/endeavors/instrument_reliability/PROJECT.md:25]. Степень: наблюдено в одной сессии (wind#1782), число не обобщено; в той же сессии проверено, что ни один инструмент пакета не вызывался как скилл [dev/endeavors/instrument_reliability/PROJECT.md:27]. - Отдельный инструмент подводит, нужен пакет: в wind#1670 пропущено 8 из 12 шагов [dev/endeavors/dev_complex/PROJECT.md:6]. Степень: наблюдено (счёт одного случая). - Один принцип полноты (нет дыр) работает на трёх уровнях -- данные (Пуанкаре), мышление (Juicer), спецификация (калпа) [dev/endeavors/poincare/PROJECT.md:35]. Степень: в источнике помечено «insight» (наблюдение сессии), не замер. - Целостность по связям не равна целостности по функции: «Часовщик: топологическая целостность != сфера. Механизм целостен БЛАГОДАРЯ зазорам. Сплавить в шар = убить функцию» [dev/endeavors/poincare/PROJECT.md:39]; тот же вывод в декомпозиции: топологический разрыв убивает функцию, только если проходит по критическому пути [dev/endeavors/atomic_decomposition/PROJECT.md:43-45]. Степень: «insight» / принцип, выведенный в сессии. - Критерий останова выводится из связанных факторов, а не называется; «терминальный атом» декомпозиции и «Delta=0» калпы -- частные случаи одного метода [dev/endeavors/criterion_method/PROJECT.md:31]. Степень: метод записан как «draft v0», извлечённый из живой работы [dev/endeavors/criterion_method/PROJECT.md:34]; доказательства проверкой нет. - Собственный прибор Пуанкаре на проверке вёл себя неверно: счётчик --stats показывал 1367 и выглядел как покрытие, агент принял число за «бэклог закрыт» [dev/endeavors/poincare/PROJECT.md:45]; ложное срабатывание из-за фильтра ecosystem='wind' [dev/endeavors/poincare/PROJECT.md:42]. Степень: «bug» -- зафиксировано как дефекты с причиной.

Сейчас: линия живёт как набор приёмов, которые приходят в каждую сессию: правило quality_instruments (Juicer и Пуанкаре -- по умолчанию при исследовательской работе; три допустимых исхода каждой находки; врата «Step 0b» не пропускают новый .py без отметки проверки существующего) и правило safety_critical_change (правка охранных хуков идёт полным пакетом /develop class=critical, а не одной калпой; стоп-проверка пакета с 2026-09-24 -- подсказка, не блок) [.claude/rules/quality_instruments.md, .claude/rules/safety_critical_change.md; номера строк не брал]. Правило code_review_after_edits требует не меньше двух разных линз на приёмке [.claude/rules/code_review_after_edits.md]. Скиллы сессии: kalpa, juicer, decompose, poincare, develop, criterion, conceptual-decompose, rate-10, assayer-review, data-inventory, defect-or-feature, impact-scan, structural-audit (по списку скиллов сессии). Инструменты: core/repeated_study.py, core/juicer_prescan.py (по правилу quality_instruments). instrument_reliability -- крупнейший эндевор линии, 385 коммитов, последний 2026-10-01 [dev/endeavors/system_blueprint/ISTORIYA_20261003/_dosye_L/L09.md:344].

Снято или отвергнуто: - Блок двух линз на Stop (строка N36) снят, остаётся подсказка [dev/active_plan.md:332]. - Метафора «кулак» отвергнута для режима исполнения пакета: пакет идёт последовательно, название -- «пробирщик/assayer» [.claude/rules/safety_critical_change.md; сессия 7ec825e4, 2026-06-27; номер строки не брал]. - Калпа «мини» отвергнута: «Или полная, или никакой» -- Borg (wind#1755) [.claude/rules/safety_critical_change.md; номер строки не брал]. - Старый Сублиматор v3.4 -- «референс, не основа» [dev/endeavors/juicer0a/PROJECT.md:7]. - Идея общего модуля Сублиматора (W:/modules/sublimator/): статус «idea», последний коммит 2026-04-26 [dev/endeavors/system_blueprint/ISTORIYA_20261003/_dosye_L/L09.md:384-387]; решения о снятии в досье нет.

Пометки: - До git: sublimator_module (создан 2026-03-31), sieve (2026-03-31) -- идеи пришли из forge, раньше 30.03; сам Сублиматор создан в forge. - В записи Пуанкаре спецификация названа «Codex» [dev/endeavors/poincare/PROJECT.md:35]; прямой записи «Codex -> Kalpa» в досье нет, первый коммит калпы озаглавлен «Kalpa rename» (96eba091). - Номера «wind#N» в ранних коммитах и в PROJECT.md не совпадают (калпа: коммит wind#149, цитаты wind#214); общая перенумерация -- коммит d3be5ec0 (wind#217). - Шапки статусов отстают: kalpa -- «Inception» при 140 коммитах [dev/endeavors/kalpa/PROJECT.md:3]; poincare -- «idea», хотя инструмент topology_audit.py построен [dev/endeavors/poincare/PROJECT.md:3, :19].

Сомнения рабочего: - sieve (оценка правил forge перед импортом: нужность, форма, размер [dev/endeavors/sieve/PROJECT.md:7-10]; итог -- из 39 правил импортировано 4, коммит 1cad55b6) лишь по смыслу «инструмент качества»; по сути ближе к линии правил и памяти. Причина старта записана: «Forge деградировал несмотря на 57 правил → правила не гарантия качества» [dev/endeavors/sieve/PROJECT.md:14]. - sublimator_module -- идея, не реализованная; предок Juicer0A, а не отдельный инструмент. - instrument_reliability -- 1015 файлов; видна только шапка и исходный диалог, середина и итоги (в т.ч. цифры отчётов) не прочитаны. - Первая фраза «Замысла» -- моя расстановка по дате; сам Сублиматор старше линии и в досье не датирован.


L10. Метод исследования: от накопления к формализации

Эндеворы: 9, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (bacon_cauchy, rigor, methodology, reactor, analogy_approximation, frontier_exploration, determinism_approximation_ontology, work_cycles, matematika_polnoty_direktiv)

Замысел: 2026-03-24 (bacon_cauchy, пришло из forge, раньше 30.03). Идея: прикладной смысл принципа Бэкона -- Коши как рабочего метода -- «сначала эмпирическое накопление, потом строгая формализация. Не теория — практический инструмент» [dev/endeavors/bacon_cauchy/PROJECT.md:7-8]. Почему именно эта идея: в записи сказано, что принцип «объединяет разрозненные правила» -- пять отдельных правил (не оптимизировать рано, исследовать до кода, проверять новое, и др.) оказались одним правилом в пяти областях [dev/endeavors/bacon_cauchy/PROJECT.md:32-38]. Какой разговор дал толчок -- причина не записана (раздела «Source Dialogue» нет).

Развитие: - 2026-03-24 bacon_cauchy: метод не линейный, а спиральный -- «наблюдение → осмысление → частичная формализация → новое наблюдение на более высоком уровне»; работает на четырёх уровнях сразу (артефакт, область, метод, теория познания) [dev/endeavors/bacon_cauchy/PROJECT.md:20-30]. Связан с ядром Сублиматора: наблюдения процесса -- материал для обнаружения искажений, плагины -- фаза формализации [dev/endeavors/bacon_cauchy/PROJECT.md:41-46]. - 2026-03-25 rigor: из сессии миграции grov выделено пять повторяющихся промахов агента, каждый замечен только вмешательством человека; вывод: «Правила в памяти (40+) не меняют default mode. Нужны детерминированные механизмы» [dev/endeavors/rigor/PROJECT.md:12, :36-42]. Имя выбрано по токенизации (SRT, BGE-M3): «1 токен BGE-M3, target=0.416 (лучший)» [dev/endeavors/rigor/PROJECT.md:15]. Дальше первой записи не пошло: отмечены только имя и первичный материал [dev/endeavors/rigor/PROJECT.md:25-29]. - 2026-04-09 methodology: превратить разовое документирование в повторяемую практику; шаблон -- «после 2-3 кейсов, не раньше» [dev/endeavors/methodology/PROJECT.md:8]. Повод: 13 сессий без архитектурного документа, а когда пользователь спросил -- документ появился за 15 минут; «Барьер не сложность, а отсутствие триггера» [dev/endeavors/methodology/PROJECT.md:12]. Первый кейс показал, что контрольный список -- реконструкция, а не план [dev/endeavors/methodology/PROJECT.md:32]. Позже каталог растёт наблюдениями о самой работе сторожей (сентябрь 2026: «названный размер работы не связывает автора» n=2, коммит 85d35df6; «доступная метка вместо недоступной величины» n=2, коммит d64141d2). - 2026-04-17 reactor: обратное направление -- не сужать, а соединять: «Recombinatory space for discovering emergent properties by colliding elements from different domains. Not analysis — synthesis» [dev/endeavors/reactor/PROJECT.md:7]. Отдельная база, 39 элементов, 13 пар; четыре прогнанные реакции дали «genuine synthesis» [dev/endeavors/reactor/PROJECT.md:12-20, :36]. 2026-07-28 добавлен второй источник элементов -- режим/рамка мышления: Borg предложил, чтобы модель переключала режимы, сохраняла неожиданные решения, а проверяла их позже: «Но они сохраняются, а потом уже выполняется их анализ с позиции прагматической» -- Borg (wind#1933) [dev/endeavors/reactor/PROJECT.md:100-103]; сам Borg пометил это как мнение, не факт [dev/endeavors/reactor/PROJECT.md:105]. - 2026-05-31 analogy_approximation (wind#1614): различие между аналогией и аппроксимацией. Борг: «аналогия как самостоятельное определение схожих элементов и аппроксимация как искусственное определение того, что с чем сочетается» [dev/endeavors/analogy_approximation/PROJECT.md:29]. Рабочая таблица: аналогия -- структурное соответствие, опровергаемое; аппроксимация -- подгонка под метку [dev/endeavors/analogy_approximation/PROJECT.md:20-27]. Принцип «нечёткой границы» добавлен в bacon_cauchy 2026-06-01 (коммит 85e39347, wind#1617). - 2026-06-27 frontier_exploration (wind#1793): методология для границы непредсказуемого неизвестного. Исходное наблюдение Borg: человек на границе исследует по функциям, ещё не зная структуры; не замеченное нельзя нанести на карту, но оно напоминает о себе [dev/endeavors/frontier_exploration/PROJECT.md:14-20]. Уже на следующий день часть методологии (фаза «учиться») превращена в скилл /conceptual-decompose (wind#1797) [dev/endeavors/frontier_exploration/PROJECT.md:39]. - 2026-07-22 determinism_approximation_ontology (сессия ab065e9c): по прямому указанию Borg сохранено рассуждение о границе детерминизма и аппроксимации: линейная математика -- «рельсы», рамка, посчитанная до математики, и есть гарант [dev/endeavors/determinism_approximation_ontology/PROJECT.md:10-13, :42-44]. Статус «dormant»: «не задача к исполнению, а сохранённая мысль. Провенанс, не бэклог» [dev/endeavors/determinism_approximation_ontology/PROJECT.md:15]. - 2026-07-29 work_cycles (сессия 6211a1bf): метод нарезки работы на циклы применён раньше, чем получил имя; Borg предложил записать его как был, «первый шаг к формализации циклов» [dev/endeavors/work_cycles/PROJECT.md:21-27]. Критерий: «граница цикла проходит там, где работа оставляет после себя состояние, переживающее обрыв» [dev/endeavors/work_cycles/PROJECT.md:10]. Тот же приём, что у Бэкона: сначала записать применённое, без достройки задним числом [dev/endeavors/work_cycles/PROJECT.md:12-13]. - 2026-09-11 matematika_polnoty_direktiv: отложенный «индикатор» -- можно ли формализовать полноту директивы (калпа Delta=0) индуктивной/структурной математикой, если базис не задан аксиомами, а восстанавливается опытом [dev/endeavors/matematika_polnoty_direktiv/PROJECT.md:7]. Заказ Borg: «Создай индикатор, отложенный индикатор. [...] При случае мы к нему вернёмся» [dev/endeavors/matematika_polnoty_direktiv/PROJECT.md:17-19]. Повод -- вопрос, почему правила пишутся словами, а не кодом [dev/endeavors/matematika_polnoty_direktiv/PROJECT.md:23-26].

Что открыли: - Принцип метода: «не формализуй раньше материала. Накопи → осмысли → формализуй» [dev/endeavors/bacon_cauchy/PROJECT.md:16]. Степень: формулировка метода/решение; статус эндевора «накопление материала» [dev/endeavors/bacon_cauchy/PROJECT.md:3]. Последняя запись -- наблюдение 2026-08-17 «тестудо должна знать цель» (коммит d04adcf8; сам файл OBSERVATION_20260817_testudo_znaet_tsel.md не читал). - Правила в памяти не меняют поведение агента по умолчанию, нужны жёсткие механизмы [dev/endeavors/rigor/PROJECT.md:12]. Степень: наблюдено в одной сессии (пять случаев, частоты 1-4 за сессию) [dev/endeavors/rigor/PROJECT.md:36-42]; обобщение на все сессии не замерено. - Все наши инструменты проверки сужают множество вариантов, ни один его не расширяет: «Все наши инструменты КОНВЕРГЕНТНЫ: decompose, kalpa, juicer, criterion, claim_calibration, defect_or_feature, correspondence -- каждый СОКРАЩАЕТ множество кандидатов или понижает FORM» [dev/endeavors/reactor/PROJECT.md:119-121]. Степень: помечено в источнике как «структурная находка» разбора Wind, замера нет. Там же честная оговорка: связь творчества с ослабленным фильтром -- «пересказ литературы по памяти, первоисточники не поднимались -- перед опорой проверить» [dev/endeavors/reactor/PROJECT.md:117-118]. - Аналогию нельзя создать произвольно, аппроксимацию можно: «Нельзя создать ложную аналогию (распадётся при проверке)» [dev/endeavors/analogy_approximation/PROJECT.md:25]. Степень: рабочее различение (в источнике «рабочее, wind#1614»), статус «idea». - Негативный результат пробы действителен лишь в полосе соответствия «проба -- угроза» [dev/endeavors/frontier_exploration/PROJECT.md:24, :33]. Степень: открытый пункт, не закрыт; приравнен к ранее известному правилу verify_negative_test. - Критерий границы цикла: работа оставляет состояние, переживающее обрыв [dev/endeavors/work_cycles/PROJECT.md:10]. Степень: «n=1, гипотеза под наблюдением» [dev/endeavors/work_cycles/PROJECT.md:12]. - Гарант безошибочности -- рамка, рассчитанная до линейной математики, а не аппроксимация [dev/endeavors/determinism_approximation_ontology/PROJECT.md:42-44]. Степень: рассуждение Borg, сохранённое как провенанс; проверки нет.

Сейчас: из линии в систему вошло немного, и чаще как приём, чем как код. Скилл /conceptual-decompose (разбор вопроса «что есть что» с выводом проверяемого критерия) -- прямой плод frontier_exploration [dev/endeavors/frontier_exploration/PROJECT.md:39]. База reactor (изолированная PostgreSQL с таблицами элементов и реакций) живёт, статус «active» [dev/endeavors/reactor/PROJECT.md:3, :12-18]; ключ reactor есть в реестре баз (по правилу system_knowledge). Наблюдения methodology складываются в dev/endeavors/methodology/observations/, а их итог попал абзацем в правило code_review_after_edits [dev/active_plan.md:994]. Принцип «накопить, потом формализовать» действует как стиль работы (см. также правило yadro: «Методика записывается раньше результата» -- совпадение по смыслу, связь записью не подтверждена). Остальные эндеворы -- idea/dormant/inception.

Снято или отвергнуто: нет записей.

Публикации: нет (в досье линии публикаций не названо).

Пометки: - До git: bacon_cauchy (создан 2026-03-24) и rigor (2026-03-25) -- первый коммит каталога d62bfbe2 (genesis 2026-03-30); пришли из forge, раньше 30.03. - Номера «wind#N» разных систем нумерации: methodology -- в шапке Origin wind#140, а первый коммит подписан wind#60; reactor -- создан «wind#178/#180», первый коммит wind#109. Перенумерация -- коммит d3be5ec0 (wind#217). - reactor: 2026-07-16 исправлено происхождение «пробирщик + reactor» -- источником не является Альтшуллер (коммит 5e7c71be: «verified origin from source»); что именно исправлено в тексте -- не читал. - Имя rigor выбрано по числу токенов BGE-M3 и близости к цели -- перекликается с линией выбора имён; в эту линию не вхожу.

Сомнения рабочего: - rigor (инженерная дисциплина вокруг модели: гейты, проверки) и methodology (как документировать, затем наблюдения о сторожах) по смыслу ближе к линиям охраны и памяти; вместе с остальными стоят здесь по списку Wind. - reactor -- противоположное направление (синтез, а не сужение); сам эндевор замечает это про наши инструменты [dev/endeavors/reactor/PROJECT.md:119-121], поэтому с «накоплением -> формализацией» связан слабо. - determinism_approximation_ontology и matematika_polnoty_direktiv -- философские, у обоих нет кода; по общему предмету (почему директивы словом и когда нужен код) они пара, но записью друг на друга не ссылаются. - Раздел «Source Dialogue» есть только у пяти эндеворов (reactor, frontier_exploration, work_cycles, determinism_approximation_ontology, matematika_polnoty_direktiv); у bacon_cauchy, rigor, methodology, analogy_approximation причина старта — только из шапки и первых абзацев. - В досье methodology цитата Borg в шапке (Origin wind#140) обрезана, поэтому не привожу её.


L12. Экономика токенов и разделение труда между моделями

Замысел: 2026-04-02 -- local_models: «Исследование возможностей локальных моделей (Ollama) для задач нашей инфраструктуры. Накопление статистики, определение границ применимости каждой модели» [dev/endeavors/local_models/PROJECT.md:7]. Почему именно с локальных моделей -- причина не записана (Source Dialogue нет). Линия как вопрос «какая модель для какой работы и кто что делает» оформилась позже, 2026-06-03 -- 2026-07-03 (см. «Развитие»).

Развитие: - 2026-04-02 local_models -- опыты с локальными моделями: классификация файлов, разбор ошибок, работа с инструментами у 4 моделей. Вывод E3: «Граница tool use проходит между API и локалками, не между API-моделями (Opus/Sonnet/Haiku — все 100%)» [dev/endeavors/local_models/PROJECT.md:42]; Haiku справился не медленнее Opus (12,2 с против 13,5 с) -- «для простых tool call задач overkill платить за Opus» [dev/endeavors/local_models/PROJECT.md:44]. С 2026-04-20 эндевор спящий («focus on recall pipeline», коммит da36106c). - 2026-06-17 autonomous_work -- Borg указал на возможность запускать агентов: «У нас теперь есть возможность запускать агентов, которые могут выполнять эту работу.» [dev/endeavors/autonomous_work/PROJECT.md:24]. Цель: «агенты несут труд, Wind держит окно лёгким и верифицирует» [dev/endeavors/autonomous_work/PROJECT.md:7]. Три поправки к исходной мысли в самом диалоге: контекст сокращается, а не обнуляется (возвраты агентов входят в окно) [dev/endeavors/autonomous_work/PROJECT.md:34]; делегируется труд, не суждение [dev/endeavors/autonomous_work/PROJECT.md:36]; раньше останавливала не «конец сессии», а сжатие контекста, съедавшее рабочее состояние [dev/endeavors/autonomous_work/PROJECT.md:38]. - 2026-07-03 model_routing -- Borg: «Чтобы ты, как главный управляющий, выбирал и запускал для задачи ту нужную модель, которая нужна. Может быть, это какой-то субагент или что-то ещё, я не знаю. Здесь ты инженер структурный, решаешь ты.» [dev/endeavors/model_routing/PROJECT.md:11]. Поводом стало то, что при обновлении запускалась новая модель, хотя прежняя считалась закреплённой: оказалось, что модель не закреплена нигде -- ярлык и батник запускают claude без параметра модели [dev/endeavors/model_routing/PROJECT.md:19]. Решена политика: оркестратор -- старшая модель (суждение, проверка, изменения системы), труд -- младшие модели через субагентов или отдельный запуск по полному идентификатору, внешняя дешёвая модель для языковой работы, локальная -- для бесплатной массовой [dev/endeavors/model_routing/PROJECT.md:29-37]. 2026-07-27 (0694361b) -- llm_call: выбор по паре «класс задачи, класс данных» (сообщение коммита). 2026-07-28 -- реестр поставщиков с правилом «старше 90 дней -- не проверено» [dev/endeavors/model_routing/PROJECT.md:39-43]. - 2026-08-02 -- тот же день: работа недели «законсервирована», эндевор спящий; не заморожена одна вещь -- дисциплина умолчаний (не тащить вывод инструментов в окно); сторож floor_watch остаётся в наблюдателе [dev/endeavors/token_economy/PROJECT.md:6-10]. - 2026-09-09 -- 2026-09-12 autonomous_work -- правило маршрутизации (круг 0003) и «решатель» (орган, выбирающий, кому отдать работу): в плане записано, что решатель на тот момент не построен [dev/active_plan.md:709]; ревизия 3 исправила условие снятия самого органа -- оно «было ПУСТЫМ, прибор автоматизировал бы пустоту» (сообщение коммита 37544301), третья линза нашла два подтверждённых дефекта в собственной работе (2c1ba184).

Что открыли: - Множитель 34: цена повторного чтения накопленного контекста работает против нас -- цена акта падает, если материал не входит в окно оркестратора [dev/endeavors/token_economy/PROJECT.md:26-28] -- степень: из замера структуры расхода («замер структуры расхода (таблица выше), из него -- множитель 34» [dev/endeavors/token_economy/PROJECT.md:267]). - Сторонние токены дефицит не закрывают, потому что оркестратор кормится только от поставщика и только на старшей модели [dev/endeavors/token_economy/PROJECT.md:270-276] -- степень: утверждение Borg, записано как опровержение исходной постановки. - Разделительная линия в труде: исполнение может идти без оркестратора, приёмка -- нет; делегируется только то, где проверка дешевле исполнения [dev/endeavors/token_economy/PROJECT.md:36-45] -- степень: решение (суженная цель B). - Модель не закреплена нигде в цепочке запуска; запуск claude --model <полный-id> реально выбирает модель; запуск из нейтрального каталога нужен, иначе вложенная сессия наследует правила и оборачивает ответ в метки [dev/endeavors/model_routing/PROJECT.md:19-24] -- степень: «verified with positive + negative control» (проверено с положительным и отрицательным контролем). - Граница работы с инструментами проходит между API-моделями и локальными, а не между API-моделями [dev/endeavors/local_models/PROJECT.md:42-43] -- степень: опыт E3 на 4 моделях (у qwen3:8b 3 из 5, у остальных локальных 0 из 5); эндевор спящий, «карта возможностей» не составлена. - Контекст сокращается агентами, но не обнуляется; делегируется труд, не суждение [dev/endeavors/autonomous_work/PROJECT.md:34-36] -- степень: оценка Wind в диалоге, замера в этих строках нет.

Снято или отвергнуто: - Цель «работать после исчерпания лимита» и первая редакция (B) «работать, когда оркестратор выключен» -- отвергнуты: первая «себя опровергает» (поймано Borg 2026-08-02), вторая «в этой ширине НЕВЕРНА» [dev/endeavors/token_economy/PROJECT.md:20-22, dev/endeavors/token_economy/PROJECT.md:32-34]. - Сторонние токены как закрытие дефицита -- опровергнуто [dev/endeavors/token_economy/PROJECT.md:270-276]. - token_economy заморожен 2026-08-02 «предложением Borg, принято» [dev/endeavors/token_economy/PROJECT.md:6]. - Условие снятия самого «решателя» в первой версии было пустым -- исправлено ревизией 3 (коммит 37544301).

Сомнения рабочего: - Документ с условием возврата token_economy (dev/endeavors/instrument_reliability/CASE_week_freeze_20260802.md) назван в эндеворе, но не открывался; записано только то, что видно в PROJECT.md. - Строки плана 709/735 в досье обрезаны; о содержании решателя сказано только то, что видно. - Середина больших эндеворов (model_routing -- 71 коммит, autonomous_work -- 59) рабочему не видна; находки взяты из шапок и начала.


L13. Самонаблюдение системы

Эндеворы: 18, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (раздел L13): health_checks, check, crash_observatory, crash_telemetry, error_diagnostics, error_tracking, sentinel, decision_audit, speculum, system_blueprint, system_genesis, morph, observability_survivorship, ocenka_pravok_korpusa, system_navigation_repair, chasy_proektirovanie, detour_tracker, typed_identity.

Замысел: линия не начиналась одним вопросом; у неё несколько корней, самый ранний -- до git. - 2026-03-26 check: «Периодическое техническое обслуживание (ТО) системы + обнаружение потребностей в оптимизации» [dev/endeavors/check/PROJECT.md:7]. Почему именно ТО-цикл: причина не записана. - 2026-03-27 morph: наблюдение при реорганизации публикаций -- каталог reflex-degradation/ перенесли как самодостаточную единицу, и это «привело к вопросу о принципах организации -- не только кейса, но архитектуры в целом» [dev/endeavors/morph/PROJECT.md:13]. - 2026-04 health_checks: четыре случая тихой деградации, обнаруженных случайно и с задержкой (недостающие эмбеддинги, обрыв конвейера recall, 596 «сирот», найденных через 4 дня) [dev/endeavors/health_checks/PROJECT.md:10-16]. Общий узор там же: «компонент перестаёт работать -> downstream продолжает -> деградация накапливается -> обнаруживается случайно» [dev/endeavors/health_checks/PROJECT.md:16]. - 2026-04-10 decision_audit: решение о сквозной нумерации сессий обсудили, подтвердили, записали в хендофф -- но оно не стало ни правилом, ни памятью, и следующая сессия сделала по-другому [dev/endeavors/decision_audit/PROJECT.md:10]. - 2026-04-13 sentinel: те же случаи как «зазоры между обсуждённым и принятым, между принятым и исполненным» [dev/endeavors/sentinel/PROJECT.md:7], прецеденты -- dev/endeavors/sentinel/PROJECT.md:15-18.

Развитие: - 2026-03-30 error_tracking (в git с genesis, статус «done» к 2026-04-01) -- пересборка отслеживания ошибок: прежний сторож на Sonnet тратил 38% бюджета при 1-2 настоящих блокировках, решения не логировались [dev/endeavors/error_tracking/PROJECT.md:9-10]. Понимание сместилось: «prompt hook» удалён как «архитектурно невозможный: видит только текст, не действия» [dev/endeavors/error_tracking/PROJECT.md:26], найдено повторной проверкой (шаг 7b) [dev/endeavors/error_tracking/PROJECT.md:27]. - 2026-04-09..14 health_checks и sentinel -- от «ловить поломку» к «молчать при норме»: принципы «read-only», «dark cockpit -- при норме молчит», «каждый инцидент -> новый инвариант» [dev/endeavors/health_checks/PROJECT.md:34-36]; образец -- авиационная аналогия (BITE + EICAS + QAR) [dev/endeavors/health_checks/PROJECT.md:20]. Sentinel делит работу на три уровня: обнаружение, диагностика («Петля Перельмана»), проверка исполнения решений [dev/endeavors/sentinel/PROJECT.md:31-45]. - 2026-04-11 decision_audit -- решение может провалиться на пяти ступенях: записано / загружено / распознано / исполнено / проверено [dev/endeavors/decision_audit/PROJECT.md:34-42]. Прежняя «интуиция команды» (зазор между PROJECT.md и правилами) названа непринимаемой без измерения [dev/endeavors/decision_audit/PROJECT.md:44]. - 2026-05-12..14 speculum -- «агент знает устройство своей системы»: три уровня (индекс артефактов, граф связей, проверка целостности) [dev/endeavors/speculum/PROJECT.md:8]; строили с 05-12, оформили 05-14 задним числом [dev/endeavors/speculum/PROJECT.md:4]. Позже добавлен уровень проверки заявленных возможностей против реальности (capability_audit.py) [dev/endeavors/speculum/PROJECT.md:44-45]. - 2026-06-03 crash_observatory -- наблюдение за падениями самой среды: сессии обрываются извне, все внутренние обработчики обойдены, причина неизвестна [dev/endeavors/crash_observatory/PROJECT.md:13]. - 2026-06-21 system_navigation_repair -- нить с «рельсами» (калька в статье) вытянула пакет проблем; общий корень: ценная вещь существует, но не подключена к детерминированному гейту, поэтому извлечение зависит от памяти агента [dev/endeavors/system_navigation_repair/PROJECT.md:12]; четыре починки A-D [dev/endeavors/system_navigation_repair/PROJECT.md:25-28]. - 2026-06-25 typed_identity -- порядок фаз перевёрнут: сначала читающий детектор, потом схема базы, потому что только детектор докажет, что живые строки удовлетворяют ограничению [dev/endeavors/typed_identity/PROJECT.md:31-37]. - 2026-07-17..30 system_genesis -> system_blueprint -- от «рассмотрения» системы целиком к чертежу: вопрос Borg, почему агент «каждый раз чинит отдельную гайку» без общего плана [dev/endeavors/system_blueprint/PROJECT.md:23-24]. - 2026-08-01 crash_telemetry -- вопрос Borg про файл подкачки перевёл задачу из «построить телеметрию» в «перестать выбрасывать существующую» [dev/endeavors/crash_telemetry/PROJECT.md:29-30]. - 2026-09-11..16 ocenka_pravok_korpusa, chasy_proektirovanie -- наблюдение обратилось на сами правки корпуса и на устройство системы: «к добру ли» изменения [dev/endeavors/ocenka_pravok_korpusa/PROJECT.md:7-8]; «почему не работает как отлаженные часы» [dev/endeavors/chasy_proektirovanie/PROJECT.md:13].

Что открыли: - Рост системы реактивный: «Часы проектируют целиком, потом изготавливают по допускам. Мы наращивали орган за органом, каждый -- заплата на отказ» [dev/endeavors/chasy_proektirovanie/PROJECT.md:25-26]. Замер там же: за 200 коммитов 9-16 сентября продукт 50%, инфраструктура 36%, прочее 12%, смешанных 2% [dev/endeavors/chasy_proektirovanie/PROJECT.md:38-39] -- в источнике помечено «замер, не впечатление» [dev/endeavors/chasy_proektirovanie/PROJECT.md:23]. - Поломки накапливаются молча: четыре тихие деградации обнаружены случайно [dev/endeavors/health_checks/PROJECT.md:10-16] -- наблюдено, четыре случая (инциденты wind#113, #134, #155, #156). - Решения теряются между обсуждением и действием: пять ступеней провала [dev/endeavors/decision_audit/PROJECT.md:34-42] -- модель-рамка; сам эндевор оставляет вопрос, на какой ступени провал, открытым до измерения [dev/endeavors/decision_audit/PROJECT.md:44]. - Падения сессий: 30 из 200 сессий мая-начала июня (15%) [dev/endeavors/crash_observatory/PROJECT.md:39] -- замер в таблице источника; причина «неизвестна» [dev/endeavors/crash_observatory/PROJECT.md:13]. - Файл подкачки -- не летопись: «свалка вытесненного», без имени владельца и порядка; направление же мысли Borg «машина уже хранит запись, возьмите оттуда» оказалось верным: Windows непрерывно меряет фиксацию памяти по процессам и выбрасывает [dev/endeavors/crash_telemetry/PROJECT.md:23-30] -- записано как вывод эндевора. Плюс найдено, что при зависании у Borg был единственный выход -- перезагрузка, не оставляющая следов [dev/endeavors/crash_telemetry/PROJECT.md:32-35]. - Одинаковые числа в разных справочниках путаются: corpus.source.id совпадает с public.doc_sources.id на 33 из 36 значений [dev/endeavors/typed_identity/PROJECT.md:84] -- замерено. Проверка самого детектора поймала две собственные ошибки (ложная тревога INV2 и «пустая» проверка INV7, всегда зелёная) [dev/endeavors/typed_identity/PROJECT.md:86-87]. - Один рецензент недостаточен: независимый проход нашёл седьмую «фантомную» ссылку, которую два прохода code-reviewer пропустили [dev/endeavors/speculum/PROJECT.md:174-178] -- наблюдено, n=1 случай. - Аккреция (налипание) и генезис (развитие) снаружи неразличимы по метрике активности [dev/endeavors/system_genesis/PROJECT.md:41]; поправка Borg: ил порождающ -- «в этих иловых осадках может скрываться и проявиться жемчужина» [dev/endeavors/system_genesis/PROJECT.md:21-23] -- определения в источнике, не замер. - Ошибка метода при оценке правок: файлы выбрали «по дате, а не по принципу», подменив рамку; гипотеза «стало лучше» не проверялась [dev/endeavors/ocenka_pravok_korpusa/PROJECT.md:24-28]. Замеры: изменено 43 из 106 файлов, 15 из 21 коммита сделаны Fable [dev/endeavors/ocenka_pravok_korpusa/PROJECT.md:34-35] -- замерено; вопрос «лучше или хуже» в доступных строках досье не закрыт. - Аналогию переносят как отношение, не как класс: «Переносить какой-то класс на другой класс в принципе неверно» -- поправка Borg [dev/endeavors/observability_survivorship/PROJECT.md:41-44]. Само зерно -- статус «idea», разработка «НЕ начата намеренно» [dev/endeavors/observability_survivorship/PROJECT.md:21].

Сейчас: по досье в системе живут: стартовая проверка здоровья (core/system_health.py, молчит при норме) [dev/endeavors/sentinel/PROJECT.md:32-35]; три уровня speculum (индекс, граф, проверки при старте) [dev/endeavors/speculum/PROJECT.md:20-22]; гейт цепочки инструментов chain_gate, заведённый как F-class-C [dev/endeavors/system_navigation_repair/PROJECT.md:45]; правило областей для Kalpa «исключение без хозяина -- дефект» в скилле kalpa [dev/endeavors/system_navigation_repair/PROJECT.md:44]; core/detour_tracker.py (читающий трекер уходов от главной задачи) [dev/endeavors/detour_tracker/PROJECT.md:5, :44]; shadow_id_validator.py (теневой проверщик идентификаторов) [dev/endeavors/typed_identity/PROJECT.md:39-42]; еженедельный цикл ТО с обязательным сигналом check_cycle [dev/endeavors/check/PROJECT.md:34] (последняя проверка 2026-10-01, eef2d2f9). Чертёж системы (system_blueprint) -- активный, 262 коммита по 2026-10-03 [досье L13, строка каталога]; из него же растёт реестр проблем системы [dev/endeavors/system_blueprint/PROJECT.md:14]. Рабочий режим с 03.10: систему чинят только там, где она мешает продукту [dev/active_plan.md:55].

Снято или отвергнуто: - error_tracking: сторож-подсказка (prompt hook) удалён как невозможный; замена Sonnet на Haiku -- «Решения пользователя» [dev/endeavors/error_tracking/PROJECT.md:16, :26]. Эндевор закрыт (done, 2026-04-01) [dev/endeavors/error_tracking/PROJECT.md:3]. - typed_identity: Scala отвергнут -- выбраны Python и ограничения в базе «по масштабу и точке принуждения» [dev/endeavors/typed_identity/PROJECT.md:12-15]; условие пересмотра -- рост до сотен видов идентификаторов [dev/endeavors/typed_identity/PROJECT.md:17]. - crash_telemetry: идея читать данные прямо из файла подкачки отвергнута фактом [dev/endeavors/crash_telemetry/PROJECT.md:23-25] (приватность -- через память проходят токены и досье). - decision_audit: автоматические методы (ключевые слова, смысловой поиск) признаны неспособными отличить «тема упомянута» от «решение зафиксировано» [dev/endeavors/decision_audit/PROJECT.md:13]. - speculum: фантомные ссылки (7) исправлены [dev/endeavors/speculum/PROJECT.md:174-177]. - Остальные эндеворы линии -- нет записей о снятом в доступных строках.

Публикации: нет (в досье L13 публикаций, статей и DOI не названо).

Пометки: - Происхождение до git (до 2026-03-30, «пришло из forge»): check (Created 2026-03-26), morph (2026-03-27), error_tracking, error_diagnostics -- первый коммит каждого d62bfbe2 (genesis). - health_checks и sentinel: оба называют обязательным уровнем system_health.py с «dark cockpit» и один и тот же «комплекс аудита механизмов (wind#156)» [dev/endeavors/health_checks/PROJECT.md:39, dev/endeavors/sentinel/PROJECT.md:1]. Слиянием в записях это не названо. - speculum: строили 2026-05-12, оформили 2026-05-14 [dev/endeavors/speculum/PROJECT.md:4]; первый коммит 05-14. - morph в статусе dormant, фаза 0 «исследование» [dev/endeavors/morph/PROJECT.md:3]; последний коммит 2026-06-02. - error_diagnostics: PROJECT.md нет; в досье только коммиты и файлы (RESEARCH.md, отчёты по 81 сессии). - check содержит процедуру проверки кода с «провенансом находки» (git blame -> сессия -> была ли причина осознанной) [dev/endeavors/check/PROJECT.md:27-33].

Сомнения рабочего: - Состав линии разнороден: crash_observatory и crash_telemetry -- наблюдение за падениями среды и машины, а не за самой системой; system_blueprint (262 коммита, 5090 файлов) шире линии (там же лежит сама история системы); ocenka_pravok_korpusa и chasy_proektirovanie -- оценка и проект переделки, а не наблюдение. Оставил как в 41_LINII.md. - Досье оборвано на середине больших PROJECT.md (crash_telemetry, system_genesis, chasy_proektirovanie, ocenka_pravok_korpusa): выводов после обрыва не видел, поэтому итог по ним неполный. - detour_tracker: цитата Borg в досье обрезана [dev/endeavors/detour_tracker/PROJECT.md:12]; не цитировал. - speculum: «фаза 2 planned» [dev/endeavors/speculum/PROJECT.md:39] против коммита 2026-06-29 «close L0 self-knowledge gap» -- возможно, запланированное исполнено; сам коммит и состояние не открывал. - typed_identity: последние коммиты (2026-06-25) касаются completion_gate, а не идентификаторов -- кусок эндевора, по записи «уже существует как chain_gate» [досье, коммит fb61202f]; граница с system_navigation_repair (chain_gate там же) не прояснена. - ocenka_pravok_korpusa: итог («лучше/хуже») не виден в доступных строках.


L14. Браузер как орган агента

Замысел: 2026-03/04 -- с отладки готового браузерного модуля, пришедшего из forge: «Модуль создан в forge-эре (2026-02-16), использовался forge и prime» [dev/endeavors/surf/PROJECT.md:42]; цель эндевора -- «Отладка и улучшение браузерной автоматизации» (Playwright + CDP) [dev/endeavors/surf/PROJECT.md:7], заведён 2026-04-02 [dev/endeavors/surf/PROJECT.md:4]. Рядом, с 2026-03-24, шла «картография веб-интерфейсов» -- методика разметки страниц для надёжной работы через CDP [dev/endeavors/web_cartography/PROJECT.md:8]. Почему именно браузер: причина замысла в этих записях не названа. Первое записанное «почему» -- 2026-05-29: при чтении обновлённого сайта инструмент вернул две строки; «Паттерн: агент ищет обходной путь вместо решения инструментальной проблемы. Пользователь: "надо фиксировать, возможно создадим дополнительный внутренний интерфейс"» [dev/endeavors/browser_interface/PROJECT.md:12-15].

Развитие: - 2026-06-06/07 browser -- после «4 инцидентов browser fumble» решение: компьютерное зрение как приоритет [dev/endeavors/browser/PROJECT.md:12]; два принципа -- дискретность (модели нужно время на осмысление, один кадр за раз) и «верхний уровень поднимает нижний» [dev/endeavors/browser/PROJECT.md:13, :28]. Цель: замкнуть цикл «увидеть -> понять -> решить -> действовать -> проверить» [dev/endeavors/browser/PROJECT.md:7]. - 2026-07-19 browser_interaction_primitive -- слово Borg: «если ты вынужден писать скрипты, возможно, нам не хватает какого-то фактора в управлении нашим браузером... вопрос функционала, как это должно работать» [dev/endeavors/browser_interaction_primitive/PROJECT.md:16-17]. Смысл сместился: повторная нужда в скриптах -- симптом отсутствующего фактора, надо строить фактор, а не «хакать дальше» [dev/endeavors/browser_interaction_primitive/PROJECT.md:23-24]. - 2026-07-25 browser_translate_fullauto -- Borg отказался строить полу-автомат с откладыванием полного: это «двойная ненужная работа», сначала исследовать полную автоматику [dev/endeavors/browser_translate_fullauto/PROJECT.md:19-22]; Wind принял: класс решается после проверки на практике [dev/endeavors/browser_translate_fullauto/PROJECT.md:24-27]. - 2026-08-01 site_emulator -- модель Borg: «элемент->команда->другой принимает/исполняет/шлёт» = граф событий интерфейса; эмулятор-диагност сайта, MVP первым, «Отчёт!=рекомендации» [dev/endeavors/site_emulator/PROJECT.md:20-25]. Решение о разблокировке: «раз желательно, значит будем делать. Потому что работать неделю и не доделать ещё немножко -- это нелогично» -- Borg (сессия a5e96d17, 2026-08-01) [dev/endeavors/site_emulator/PROJECT.md:34-36]. - 2026-08-14 web_platform -- разговор о браузерном профиле поднялся до класса: свод норм веб-платформы стоит выше любого изделия [dev/endeavors/web_platform/PROJECT.md:15]. Из него вышел критерий учётной записи: она нужна «ровно для того, что не может лежать в браузере» [dev/endeavors/web_platform/PROJECT.md:39-40] (записано как ответ Wind в диалоге, не как проверенный закон).

Что открыли: - Корень «тихих» провалов браузерного инструмента -- обёртка, возвращающая пустую строку при любой ошибке скрипта на странице: ошибка неотличима от пустого результата. Найдено двумя независимыми проверками кода; записано как инвариант «ошибка и пустой результат -- разные состояния» [dev/endeavors/browser_interaction_primitive/PROJECT.md:20-22, :43-44] -- степень: наблюдено на разборе (две линзы), инвариант сформулирован в декомпозиции. - «Отправлено» не равно «подействовало»: заявление о результате клика требует наблюдённого последствия [dev/endeavors/browser_interaction_primitive/PROJECT.md:45] -- степень: инвариант декомпозиции. - Привычка агента обходить инструментальную проблему вместо её решения -- повторяющийся образец, из которого выросли и browser_interface, и browser_interaction_primitive [dev/endeavors/browser_interface/PROJECT.md:13-14; dev/endeavors/browser_interaction_primitive/PROJECT.md:23-24] -- степень: наблюдение, у Borg сформулировано как симптом. - Ошибка самого агента о возможностях: утверждение «нельзя включить перевод через наш интерфейс» было неточным -- смешаны два разных механизма (кнопка в панели Chrome и интерфейс Translator) [dev/endeavors/browser_translate_fullauto/PROJECT.md:32-35] -- степень: поправка, записанная в источнике.

Снято или отвергнуто: - web_cartography: помечен спящим (dormant), «focus on recall pipeline» (коммит da36106c, 2026-04-20) [dev/endeavors/web_cartography/PROJECT.md:3]. - Выбор полу-автомата как класса -- отклонён словом Borg до исследования [dev/endeavors/browser_translate_fullauto/PROJECT.md:19-22]; итог исследования в просмотренном досье не виден. - Самописные скрипты-драйверы CDP -- объявлены антипаттерном и убраны в корзину [dev/endeavors/browser_interaction_primitive/PROJECT.md:23]. - browser_bridge: статус inception, последний коммит 2026-05-30 (d8392984, «Phase 1 complete»); записи о снятии нет.

Публикации: в досье нет.

Пометки: surf -- модуль из forge-эры (2026-02-16) [dev/endeavors/surf/PROJECT.md:42], эндевор заведён 2026-04-02; в git surf и web_cartography с 2026-03-30 (genesis) -- пришло из forge, раньше 30.03. web_cartography создан 2026-03-24, в git с genesis d62bfbe2. У surf в шапке записано имя SRT surf (выбрано 2026-03-27) [dev/endeavors/surf/PROJECT.md:43].

Сомнения рабочего: - web_platform (нормы платформы, хостинг, почта, тарифы Cloudflare) и site_emulator (диагност вьювера) лишь частью касаются «браузера как органа агента»; по сути это нормативный свод и тестовый стенд изделия. - browser_bridge указывает код в W:/projects/browser_bridge/ [dev/endeavors/browser_bridge/PROJECT.md:6] -- вне досье, состояние кода не проверял. - Середина больших эндеворов (browser_translate_fullauto 24 коммита, site_emulator 20) рабочему не видна: итоги их исследований в карточку не вошли.


L15. Хозяйство: ресурсы машины и сохранность данных

Эндеворы: 8, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/41_LINII.md (L15): resource_monitor, daemon_throttle, data_safety, poryadok_hraneniya, machine, recovery_build, monitor_scroll_fix, doc_manager.

Замысел: 2026-03 (до git, из forge) -- несколько мелких записей о здоровье рабочей машины: нагрузка процессора демоном синхронизации (daemon_throttle, создан 2026-03-21) [dev/endeavors/daemon_throttle/PROJECT.md:4], прокрутка окна монитора (monitor_scroll_fix, 2026-03-17) [dev/endeavors/monitor_scroll_fix/PROJECT.md:4], мониторинг ресурсов ОС (resource_monitor, 2026-03-24) [dev/endeavors/resource_monitor/PROJECT.md:4]. Почему появился мониторинг: «Потребность возникла в doclib_impl: Qdrant показывал 7 MB RSS (psutil), реально 1839 MB WorkingSet + 77.6 GB Virtual (mmap). Без инструмента -- невидимые данные» [dev/endeavors/resource_monitor/PROJECT.md:15]. Мысль названа так: третий мета-инструмент после db_schema.py и карты инфраструктуры -- «не угадывай нагрузку системы» [dev/endeavors/resource_monitor/PROJECT.md:10-13]. Для остальных эндеворов линии причина замысла в досье не записана.

Развитие: - 2026-04-06 data_safety -- вопрос о бэкапе выделен в отдельный эндевор: «wind#124: пользователь напомнил о бэкапе recall до начала работы с БД. Без напоминания -- не было бы» [dev/endeavors/data_safety/PROJECT.md:14]; запись в наблюдениях: ad-hoc подход ненадёжен, «Данные дороже денег. Бэкап не терпит спешки в дизайне, но и не терпит откладывания в исполнении» [dev/endeavors/data_safety/PROJECT.md:44-45]. Дальше «Дизайн/Реализация/Тест восстановления» не отмечены [dev/endeavors/data_safety/PROJECT.md:32-34]. - 2026-05-13 recovery_build (wind#313) -- понимание: wind сложен настолько, что может сломаться так, что сам себя не починит («хук блокирует фикс хука, память отравлена, правила конфликтуют») [dev/endeavors/recovery_build/PROJECT.md:12]. Ответ -- отдельный аварийный билд, запускаемый батником: «Recovery = дефибриллятор, не операционная» [dev/endeavors/recovery_build/PROJECT.md:23]. Прецеденты перечислены в записи: ложное правило forge (wind#303), петли ошибок, рекурсия блокировок doc_gate, недоступность БД [dev/endeavors/recovery_build/PROJECT.md:16-19]. - 2026-09-23 poryadok_hraneniya -- главный поворот линии: от «есть ли бэкап» к карте, где что лежит. Началось с открытия Borg: «То, что ты мне сейчас рассказываешь об устройстве, для меня это является открытием [...] прошлые модели не говорили о том, что PostgreSQL хранит где-то свои базы» -- Borg (сессия 1b49fc57) [dev/endeavors/poryadok_hraneniya/PROJECT.md:83-86]. Решение Borg: не игнорировать затронутые проблемы, а ставить в план [dev/endeavors/poryadok_hraneniya/PROJECT.md:88-90]. - 2026-09-23 там же -- замер вместо памяти: копии баз лежат на том же физическом диске, что и сами базы; 5 баз вне любой копии [dev/endeavors/poryadok_hraneniya/PROJECT.md:14-15]. Сделано в тот же день: свежий полный снимок 13 баз, разовый дамп 5 внереестровых, внесение их в реестр (69a737ee) [dev/endeavors/poryadok_hraneniya/PROJECT.md:21-34]; ежедневный снимок баз на D: с ротацией (8a7b125a, задача CC_PG_Daily_Snapshot) и проверка его в system_health (4594840d, 9 ветвей). Ревизия W: -- опись скриптом, v1 дважды считала жёсткие ссылки (14,4 ГБ), v2 считает один раз [dev/endeavors/poryadok_hraneniya/PROJECT.md:36-37]. - 2026-09-23 итог раздела А: 27 позиций, 37,43 ГБ вынесены в C:\W_Agent\holod\W\, заведён реестр холодного хранения [dev/endeavors/poryadok_hraneniya/PROJECT.md:107].

Что открыли: - Рабочие базы PostgreSQL лежат на системном диске C: (9,5 ГБ), а не на W:; перенос на W: предлагался моделью 2026-02-07, не был исполнен и нигде не записан как открытый -- поэтому ни одна последующая модель не сказала «не сделано» [dev/endeavors/poryadok_hraneniya/PROJECT.md:10-11, :99-101] -- степень: замерено (запуск службы, pg_tablespace, поиск по архиву genesis). - Ежедневный демон копировал только 3 базы из реестра; 13 остальных -- лишь в полном снимке на том же диске, последний 2026-07-27; 5 баз не входили ни в одну копию, потому что не были в core/db_registry.json [dev/endeavors/poryadok_hraneniya/PROJECT.md:13-15] -- степень: замерено. - Полный снимок 2026-09-23 «неполон» (STATE: INCOMPLETE): git считает 17 путей вложенными репозиториями, их содержимое в архив не вошло; базы застрахованы полностью [dev/endeavors/poryadok_hraneniya/PROJECT.md:23-27] -- степень: замерено. - Пробел в записях: значимое решение (перенос хранилища) может исчезнуть, если оно не записано как открытый пункт [dev/endeavors/poryadok_hraneniya/PROJECT.md:99-101] -- степень: наблюдение одного случая. - Нагрузка процесса не видна обычным счётчиком: 7 МБ по psutil против 1839 МБ рабочего набора и 77,6 ГБ виртуальных [dev/endeavors/resource_monitor/PROJECT.md:15] -- степень: записано как наблюдение из doclib_impl. - Принцип развития мониторинга -- «Bacon-Cauchy»: полная реализация -> использование -> наблюдения -> понимание, что нужнее; «потребности проявляются через использование, не через планирование» [dev/endeavors/resource_monitor/PROJECT.md:18] -- степень: принцип (решение), не проверенный факт.

Сейчас: в системе живёт следующее. Защита от перегрузки машины -- правило cpu_protection (читает реестр железа machine [dev/endeavors/machine/PROJECT.md:39]). Аварийный билд W:/rescue/ с запуском батником: MVP развёрнут, пробный запуск пройден [dev/endeavors/recovery_build/PROJECT.md:3]. Ежедневный снимок баз на D: (8a7b125a) с проверкой в system_health (4594840d); 18 баз в реестре (--dry-run видит 18) [dev/endeavors/poryadok_hraneniya/PROJECT.md:34]; холодное хранилище C:\W_Agent\holod\ с реестром REESTR_holodnogo_hraneniya.md; карта хранения в памяти reference_storage_map дописана [dev/endeavors/poryadok_hraneniya/PROJECT.md:43-44]. resource_monitor как скрипт не построен -- статус «idea — WMI explored, script not built» [dev/endeavors/resource_monitor/PROJECT.md:3]; data_safety -- idea [dev/endeavors/data_safety/PROJECT.md:3] (потребность на деле закрыта ежедневным снимком из poryadok_hraneniya, но связь записью не оформлена).

Снято или отвергнуто: - daemon_throttle: спецификация порогов 15/40/80 «оценена и отклонена»; оставлен существующий код [dev/endeavors/daemon_throttle/PROJECT.md:7, :11]; статус done [dev/endeavors/daemon_throttle/PROJECT.md:3]. Причина отклонения не записана. - doc_manager: помечен спящим (dormant) в коммите da36106c, 2026-04-20 («focus on recall pipeline») [dev/endeavors/doc_manager/PROJECT.md:3]. - monitor_scroll_fix: баг найден, решение через Console API не реализовано [dev/endeavors/monitor_scroll_fix/PROJECT.md:10-11]; статус idea. - Рабочий worker_run отказал при описи W: (ушёл в фон и вышел пустым), опись сделана скриптом opis_W.py [dev/endeavors/poryadok_hraneniya/PROJECT.md:36-37].

Публикации: в досье нет.

Пометки: daemon_throttle, monitor_scroll_fix, resource_monitor, doc_manager -- созданы в марте 2026, в git с genesis d62bfbe2 (2026-03-30) -- пришло из forge, раньше 30.03. data_safety -- выделен из открытого пункта фазы 5 recall [dev/endeavors/recall/PROJECT.md:640]. recovery_build -- один коммит d58b9ec0. poryadok_hraneniya -- 17 коммитов в один день 2026-09-23, в шапке нет поля Created, дата -- из «Заведён» [dev/endeavors/poryadok_hraneniya/PROJECT.md:3].

Сомнения рабочего: - monitor_scroll_fix (ошибка прокрутки в Sync Monitor) и doc_manager (охрана библиотеки документов) по сути не про ресурсы и сохранность; в линию попали как «хозяйственные». - doc_manager: dev/active_plan.md:110 сообщает, что починен, dev/active_plan.md:163 -- что мёртв; порядок записей и актуальное состояние не проверял. - recovery_build -- билд вне основного дерева (W:/rescue/); его состояние сегодня по досье не видно. - machine: приведённое железо -- на дату 2026-06-02 (hwinfo_2026-06-02.csv), сегодняшнее не сверял.


5. Карточки функций

F01. Охрана данных: корзина, копия перед правкой, копия базы

Органы: 22, список -- 02_RASKLADKA.md (разд. F01)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми появились .claude/hooks/safe_overwrite.py, .claude/rules_moment/safe_overwrite.md, core/error_gate.py, core/safe_copy.py -- пришло из forge, раньше 30.03. Следом в git-истории: data_immutable (правило, 31.03, 54452ad4, «sieve») и never_delete (01.04, 1cad55b6, «sieve»). Почему задумано: причина не записана -- коммит genesis ничего не объясняет. Косвенно, о правилах-основаниях: «evaluation "this is not needed" is an error source. Deletion is irreversible, moving to _trash costs nothing» [.claude/rules/never_delete.md:7]; «filtering at load is irreversible. Recall lost 41% of records» [.claude/rules_cold/data_immutable.md:5]. Эти строки объясняют правила, а не момент замысла функции.

Развитие: - 2026-04-01 b4c48d2c (wind#10) -- safe_overwrite получил копии в _versions/ с именами, кодирующими путь (dir--dir--name.v_TS); error_gate: git rm/clean пропускаются. Почему: причина не записана (в сообщении коммита только перечень изменений). - 2026-04-20 eb41023d (wind#122) -- плагин SafeGuard: safeguard.py + ворота A (resource_guard), B (background_guard), C (disk_guard). Почему: «Wind#122: 4th incident of machine hang from unguarded batch scripts» [.claude/hooks/safeguard/safeguard.py:16]; B -- «process left running after session handoff without monitoring → OOM → machine hang» [.claude/hooks/safeguard/modules/background_guard.py:9]. Замечание: это защита от зависания машины, не от потери данных -- см. «Сомнения». - 2026-04-27 4aaa984e (wind#220) -- core/data_lifecycle.py: 11 типов файлов в data/, жизненный цикл active → cold → trash по mtime, по умолчанию «пробный» прогон. Почему: причина не записана (шапка и коммит описывают устройство; калпа W1-W4 названа в коммите, её текст не открывал). 2026-04-28 d7ed8478 (wind#225) -- core/safe_uninstall.py: удаление пакета с архивом в W:/_uninstall/. Почему: «wind#225: mitmproxy incident -- pip uninstall bypassed error_gate» [core/safe_uninstall.py:14]. - 2026-05-06 1432b1b4 (wind#275) -- error_gate делает автокопию таблицы в _trash_db перед разрушающим SQL; 2026-06-09 167b70b9 (wind#1683) -- core/db_safety.py защищает то же для python-скриптов. Почему: «Python scripts with DELETE/TRUNCATE via psycopg2 bypassed it -- no backup (wind#1683: rebuild deleted 18K rows without any backup)» [core/db_safety.py:22-24]; исходный инцидент для error_gate -- «wind#5 (DROP TABLE cc_handoffs incident)» [core/error_gate.py:46]. - 2026-09-24/25 e8002785 (N5PY), 8bfeba7c (N6) -- проверка SQL переносится в момент исполнения (ветка «Python-файл» у error_gate снята); копия теперь и перед DROP COLUMN / ALTER ... TYPE / UPDATE без WHERE; ворота G011 сняты. Почему: «28 stops in 4.5 months, 23 of them on runs that destroyed nothing, and a missed copy for a schema-qualified TRUNCATE ... decision of Borg, session 9e0beaec L1346» [core/db_safety.py:24-27]. - 2026-10-01 ea643d87 -- core/safe_copy.py: robocopy /MT:8 по умолчанию. Почему: замер 24 прогона, 2000 файлов по 64 КБ -- в 3,6-4 раза быстрее [core/safe_copy.py:12-14]; повод -- разговор с Borg 2026-09-23 о скорости копирования [dev/active_plan.md:434].

Сейчас: функция даёт три рода гарантий. (1) Файл: перед любой перезаписью через Edit/Write/NotebookEdit и перед командой Bash/PowerShell, которая его перезапишет (редирект, tee, sed -i, cp/mv, запись из python по буквальному пути, git-откат), хук safe_overwrite кладёт копию в _versions/ и пишет строку в опись; хук никогда не блокирует. (2) Удаление: вместо удаления -- trash_move.py в <диск>:/_trash/<день>/... с описью, поиском и возвратом без затирания; чистит корзину только человек. (3) База: любой разрушающий SQL (DROP TABLE, TRUNCATE, DELETE/UPDATE без WHERE, DROP COLUMN, смена типа) выполняется только после pg_dump затронутых таблиц в _trash_db/; DROP DATABASE отказ; проверка стоит в момент исполнения (psql -- error_gate, python -- db_safety через core.db_config). Вокруг: safe_copy (копирование robocopy), safe_uninstall (пакет с архивом), data_lifecycle (классификатор и вынос неактуальных файлов data/ в холод/корзину, по умолчанию пробный), реестр снятого decommissioned.py/json. Объявленные границы: подключение к БД в обход core.db_config и запись внутри запускаемых программ/по путям из переменных не видны [.claude/rules_moment/never_destructive_db.md:25, .claude/hooks/safe_overwrite.py:9].

Снято: - Ворота G011 (требовали pg_dump + файл-маркер перед любым psql ALTER TABLE) -- сняты 2026-09-25 актом N6, заменены копией только перед теряющими данные формами [.claude/rules_moment/never_destructive_db.md:10, коммит 8bfeba7c]. - Ветка «Python-файл» у error_gate (судила ТЕКСТ скрипта до запуска) -- снята 2026-09-24 в пользу проверки в момент исполнения [core/db_safety.py:23-27, e8002785]. - Проверка прав tc.py в safe_copy -- удалена 2026-02-16 (до git): «tc.py was zombie code» [core/safe_copy.py:27-29]. - Пропуск файлов, чьё имя СОДЕРЖИТ _trash/_versions, -- заменён точным совпадением папки (D3, 2026-09-30) [.claude/hooks/safe_overwrite.py:11-15]. - Ворота A/B safeguard («чтение текста по слову в имени») -- в записи заменены конструкцией core/pycap/sitecustomize.py (акт N11, 2026-09-25) [dev/active_plan.md:326; строку читал не целиком -- обрезана cut]. - В decommissioned.json и kalpa_decommission_register.md органы F01 не названы (grep); errata.md -- переименования never_destructive_db.md → rules_moment/ (E-043, 26.09, errata.md:660) и safe_overwrite.md → rules_moment/ (E-045, errata.md:679), основание -- решение Borg по М3.5 «ядро + доставка в момент + холод». data_immutable.md лежит в rules_cold/ (снят в холод решением ядра, yadro.md).

Пометки: - Происхождение до git: safe_overwrite.py/.md, error_gate.py, safe_copy.py -- из forge. - Переименования: rules/never_destructive_db.md и rules/safe_overwrite.md → rules_moment/ (E-043, E-045); rules/data_immutable.md → rules_cold/ (по yadro.md, в errata не искал). - Живой урок в самом органе: data_lifecycle сам когда-то вынес живые хранилища в холод (word_dict_ru.txt -- 2026-05-07, bf2d7dc; object_dict.json) -- классификатор исправлен 2026-07-31 [dev/errata.md:259-275, core/decommissioned.json:95].

Сомнения рабочего: - safeguard.py, modules/resource_guard.py, background_guard.py, disk_guard.py, config.json, registry/*.json (7 органов) -- защита ОТ ЗАВИСАНИЯ машины (CPU/RAM/диск, правило cpu_protection), а не от потери данных; по смыслу ближе к F08 («ресурсы»). Стоят в F01 из-за шаблона пути safeguard/. - core/error_gate.py (28 коммитов) -- общий чёрный список команд: xcopy, секреты (N8/N9), гашение процессов (N10), inline_db_access -- к охране данных относится только ветка стирания/разрушающего SQL; остальное -- F08. Подтверждение из записи: «error_gate only sees Bash commands» [core/db_safety.py:22]. - core/decommissioned.py/.json -- реестр «что снято решением», шапка о другом [core/decommissioned.py:3-13]; к охране данных не относится по смыслу, ближе к F12/F10. - Расхождение: dev/active_plan.md:434 ещё просит ускорить safe_copy, а по git это сделано 10-01 (ea643d87). - Расхождение метки: dev/errata.md:68 пишет «Hook G011 enforces» про метку коммитов [xxxxxxxx], а never_destructive_db.md:10 -- G011 это ворота psql ALTER TABLE. Один идентификатор в двух смыслах (или G011 прошёл переименование) -- не проверял. - Для data_lifecycle и safe_uninstall причина замысла в шапках не названа кроме инцидента wind#225; калпа W1-W4 не читалась.


F02. Резервные копии (ежедневные, полные, базы)

Органы: 7, список -- 02_RASKLADKA.md (разд. F02)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- core/cc_backup.py -- пришло из forge, раньше 30.03. Почему: причина не записана (genesis ничего не объясняет; в шапке нет причины).

Развитие: - 2026-05-03 f7739162 (wind#256) -- core/cc_backup_daemon.py: ежедневный демон копирования. Почему: причина не записана (в сообщении коммита перечень, замысел демона не назван). 2026-05-04 93d20785 (wind#263) -- «daemon visibility fix»: демон работал невидимо [коммит 93d20785]. - 2026-07-27 ac4177d3 -- core/full_backup.py: полный снимок того, что ежедневный демон не покрывает. Почему: «Incidents this design answers (all measured 2026-07-27, sessions 126543a8 and b2733a15)» [core/full_backup.py:34]; «a backup tool without a retention policy eventually becomes the disk-full incident it ...» [core/full_backup.py:53]. - 2026-07-27 86860ded -- verify_backup_copy.py + тесты test_full_backup_guards.py, test_full_backup_repair.py: «it said COMPLETE while losing 342 files -- now it measures instead of assuming» [коммит 86860ded]. Тем же днём cf53ebe6: названы три незакрытые дыры -- нет политики хранения, проверка структурная, а не восстановлением, нет копии вне машины [сообщение cf53ebe6]. - 2026-08-22 0860154f -- путь бэкапа был назван неверно в двух документах, состояние записано замером [сообщение 0860154f]. - 2026-09-23 8a7b125a (V8) -- core/pg_daily_snapshot.py + задача CC_PG_Daily_Snapshot: ежедневный снимок баз на D: с ротацией. Почему: слово Borg 2026-09-23, сессия 6cdbca61 (строка шапки обрезана) [core/pg_daily_snapshot.py:3]; «the incident that made it necessary» [core/pg_daily_snapshot.py:15] (суть инцидента не читал). В system_health добавлена проверка check_pg_daily_snapshot [dev/active_plan.md:482]. - 2026-09-28 76d781c7, b0f8e895 (М3.7, семья 4) -- приёмка: cc_backup и демон -- «честный итог, дампы через временный файл, наблюдатель»; pg_daily_snapshot -- полное чтение каждого дампа (pg_restore -f NUL), стенд 48/48 [сообщения коммитов 76d781c7, b0f8e895]. Почему именно так: причина шире сообщения не записана в досье.

Сейчас: три слоя копий. (1) cc_backup.py + cc_backup_daemon.py -- ежедневные копии стенограмм, памяти и данных ассистента (по расписанию, с ротацией; копии в D:/backup/cc/current/... по environment_constraints). (2) full_backup.py -- полный снимок того, что демон не покрывает; проверяет себя замером (число файлов), а не словом «COMPLETE»; verify_backup_copy.py сверяет копию с исходником. (3) pg_daily_snapshot.py -- ежедневный дамп баз PostgreSQL на D: с ротацией; каждый дамп прочитывается целиком. Тесты test_full_backup_guards.py/test_full_backup_repair.py охраняют те охранники, что пойманы замером 27.07.

Снято: нет записей о снятом в этой функции (в decommissioned.json и реестрах досье органов F02 не показало).

Пометки: - Происхождение до git: core/cc_backup.py -- из forge (genesis 30.03). - cc_backup.py коммитов 8; 2026-03-31 674ca2a1 -- «fix remaining forge hardcodes -- transcripts/memory paths now cover both wind and forge» [коммит 674ca2a1]: копии обслуживали обе экосистемы. - Дата коммита != дата замысла: pg_daily_snapshot (V8, 2026-09-23) -- решение Borg в линии poryadok_hraneniya, коммит исполняет.

Сомнения рабочего: - Файлы test_full_backup_guards.py, test_full_backup_repair.py -- тесты, лежат в core/; по смыслу принадлежат функции, но в реестре «органов» учитываются отдельно. - Копии баз частично пересекаются с _trash_db (F01, копия перед разрушающим SQL): две разные задачи (регулярное резервирование vs копия перед удалением), раскладка разводит верно.


F03. Память о прошлых сессиях (recall): загрузка, очистка, поиск, вставка в контекст

Органы: 48, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/02_RASKLADKA.md (разд. F03)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми в git стоят core/cc_search.py (сквозной поиск), core/index_transcripts.py (разбор журналов сессий), core/embed_server.py, core/bge_server.py, core/embed_client.py, core/embedding_config.py, core/recall_embed.py, core/pgvector_search.py, core/transcript_analyze.py и правило .claude/rules/cross_search.md -- пришло из forge, раньше 30.03. Почему задумано: причина не записана -- коммит genesis ничего не объясняет. Собственный замысел «вставки памяти в контекст» -- 2026-04-09 (d4e559f2, wind#60: «injective memory MVP -- engine + hook + threshold scheme C») -- core/context_inject.py и .claude/hooks/context_inject_hook.py. Почему: причина не записана; в шапке только «Calibrated empirically wind#60» [core/context_inject.py:46]. В тот же день родился чистый слой: core/recall_clean.py, core/recall_sessions.py, правило .claude/rules/clean_text_echo.md (0a93aa83, wind#48-60).

Развитие: - 2026-04-09/10 (948f1489, d6eb1780, wind#62-63) -- «play format», таблица участников, атрибуция ролей, затем формат маркера © в чистом слое. Почему: основание правила -- «Borg<©> = clean copy for FTS. Wind<©> = transition marker» [.claude/rules/clean_text_echo.md:15]; причина самого решения за пределами правила не записана. Участники и обработчик -- разные измерения: «Haiku пересказала exchange, но не участвовала в нём» [.claude/rules/participants_not_source.md:12]. - 2026-04-14/15 (a17e84d8 wind#86; 0c54730b wind#98) -- расширение запроса синонимами по корпусу, затем оценка значимости и ассоциативное расширение. Почему: «designed from Kent-Rosanoff insight (common statistical nodes ...» [core/associative_expand.py:8]; для синонимного словаря причина в шапке не названа [core/build_synonym_dict.py:23]. - 2026-04-20/29 (917568f7 wind#124; wind#234) -- конвейер recall v2: зеркальный загрузчик «replaces pairing model» [core/recall_load_v2.py:56]; в wind#234 прежние таблицы clean сняты: «v1 clean tables dropped, recall.clean = sole clean layer» [core/recall_clean.py:45]. Почему перестроили: причина не записана в шапках (только перечень версий v3-v4e [core/recall_clean.py:46-48]). - 2026-04-26 (d3be5ec0, wind#217) -- сквозная хронологическая нумерация сессий (core/renumber_sessions.py). Почему: описание перехода -- в журнале поправок [dev/errata.md:248]; там же три дефекта миграции (половина диапазона, потерянная нумерация -- стёрто 204 алиаса) [dev/errata.md:249-251]. 2026-05-10 (940121fb, wind#299) -- «алиас -- показ»: «алиас это показ и его можно менять как вздумается и он не должен задевать структуру» -- Borg, wind#299 [.claude/rules/alias_is_display.md:13]. - 2026-05-03/12 (09f5c667 wind#262; 7cf1a55e, c36cb090 wind#307-308) -- фильтр согласованности выдачи (sheaf), затем второй, смысловой канал поиска BGE: «BGE dual-channel (wind#308): synchronous second search» [core/context_inject.py:52]. Почему: sheaf -- «Provenance: wind#261 (problem), wind#262 (6 papers, synthesis, kalpa)» [core/sheaf_compose.py:17]; суть проблемы в шапке не изложена. - 2026-06-07/09 (539f8477 wind#1668; ca40cd73 wind#1692) -- загрузка в recall в реальном времени и отдельный медленный конвейер: «wind#1692: created -- split from on_session_end.py to fix 31.8% pipeline ...» [core/recall_pipeline_slow.py:32] (строка обрезана в досье). 2026-06-14 (e588e315, wind#1730) -- cascade_gate: «decision: "block" + reason with ready command = redirect, not prohibition» [.claude/hooks/cascade_gate.py:9]; 2026-06-29 (76ec2faf) -- скилл /search. Почему скилл: методика поиска «lived as 6 scattered feedback-memory files and FAILED 3x ... because it was memory (opt-in), not a reachable canonical procedure» [dev/errata.md:150]. - 2026-09-05 (04e24307) -- детектор эха: «Borg<c> was 33 of 127 gate firings = 26% FALSE blocks» [core/echo_detect.py:51]; 2026-09-23 (4594840d) recall_gate стал подсказкой, не блоком (по сообщению коммита, пакет 03b, «v3 Borg»). - 2026-09-25/27 (06525f61 M3.1; 50938798; c0e7426b) -- модернизация: каналы поиска context_inject запускаются одновременно, ход 4,1 -> 1,6 с (из сообщения коммита); хук догружает свою сессию в recall (recall_load_v2 --session); полнота recall_embed_v2/recall_embed_clean «больше не держится на закладке» (сообщение коммита). Почему: причины -- в сообщениях коммитов (замер хода, хвост clean); дальнейшей записи в досье нет.

Сейчас: функция принимает журналы сессий (index_transcripts, recall_load_v2, recall_register, recall_sessions), строит чистый слой «пользователь/ответ» (recall_clean, recall_cosmetic -- исправление повреждённых символов, echo_detect, stend_clean_from_echo), считает вложения для смыслового поиска (recall_embed_v2, recall_embed_clean, recall_embed_bge, серверы embed_server, bge_server) и в начале каждого запроса вставляет подходящую память в контекст (context_inject + хук, оценка значимости salience_score, расширение associative_expand, фильтр sheaf_compose). Поиск по запросу -- cc_search (каскад) под охраной cascade_gate, recall_gate, retrieval_hint, rag_hint; медленный ночной конвейер -- recall_pipeline_slow. Качество вставки меряют inject_quality, inject_feedback, inject_bench, inject_backfill_sheaf. Правила: эхо слов Borg, участник != обработчик, алиас -- показ, сквозной поиск перед переименованием.

Снято: - Таблицы v1 clean и exchanges_clean -- сняты в wind#234 [core/recall_clean.py:45, core/extract_session_text.py:13]; core/recall_embed.py помечен «LEGACY (wind#234): exchanges_clean dropped» [core/recall_embed.py:2]; словарь синонимов пересобран, потому что исходная таблица ушла [core/build_synonym_dict.py:7]. - Переименования: recall_clean_v2, recall_clean_prepare, recall_haiku -> recall_clean [dev/errata.md:30, :38, :46]; «1337 aliases deleted» (алиасы запусков) [dev/errata.md:59]. - Правило recall_two_levels и ещё 18 правил-случаев -- сняты в холод 2026-09-26 (831be571, M3.5): ядро yadro.md вместо них [.claude/rules_cold/recall_two_levels.md; сообщение коммита]. - Старая форма recall_gate/cascade_gate (блок) -- сообщения о «cascade searches files+memory» исправлены 2026-06-28 (9a8983d5) как ложные.

Пометки: - До git (forge): cc_search, index_transcripts, embed_server, bge_server, embed_client, embedding_config, recall_embed, pgvector_search, transcript_analyze, cross_search.md. - pgvector_search.py по шапке работает с таблицами forge (errors, observations, decisions ...) [core/pgvector_search.py:30-31] -- реликт forge или живой орган, не проверял. - Вставка в контекст получила имя context_inject переименованием из recall_inject (wind#79) [core/context_inject.py:19, .claude/hooks/context_inject_hook.py:8]. - Дата коммита != дата замысла.

Сомнения рабочего: - core/_nostore_server.py -- сервер для стенда страниц (события, перемотка, заголовки кэша) [core/_nostore_server.py:18-37]; к памяти о сессиях отношения не имеет, стоит в F03 по шаблону имени «store»/«nostore». Ближе к продукту (вьювер/страницы). - core/lexicon_lookup.py -- словарь Фасмера (17 527 статей, этимология) по сообщению коммита 247da16b; ближе к Tongue/языку, не к recall. - core/classify_sessions.py (классификатор «рабочая/нерабочая сессия», шапка о «a human was here» [core/classify_sessions.py:24]) и core/renumber_sessions.py -- учёт сессий, возможно F-«реестр сессий». - .claude/skills/pg-search/SKILL.md -- процедура поиска в PostgreSQL; по смыслу рядом с F21 (доступ к базам). - .claude/rules/cross_search.md -- поиск перед переименованием в файлах/БД/памяти; это правило гигиены, а не часть recall. - Расхождение дат у cascade_gate.py: первый коммит 2026-06-14, а в списке «последних» есть 2026-09-09 раньше 2026-09-23 -- порядок в досье не хронологический, смысла не меняет.


F04. Наследование между сессиями: хендофф, рефлексия, старт, закрытие, восстановление

Органы: 21, список -- 02_RASKLADKA.md (разд. F04)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми появились .claude/hooks/on_session_start.py, .claude/hooks/on_session_end.py, .claude/rules/identity.md -- пришло из forge, раньше 30.03. Следом: core/write_handoff.py (2026-04-02, 1dbedcf1, wind#17, «wind_build Phase 0+1»). Почему задумано: причина не записана -- коммиты genesis и wind#17 перечисляют сделанное, не объясняют. Самая ранняя записанная причина самого наследования -- у правила восстановления: «interrupted sessions leave a continuity gap ... Without agent-side detection, recovery depends on user remembering to ask -- proven: wind#143→71» [.claude/rules/interrupted_session_recovery.md:14] (правило родилось 2026-04-12, e77a89c2, wind#72).

Развитие: - 2026-04-12 41d11453 (wind#71) -- forward_log.py: журнал событий хуков вперёд по времени. Почему: «Design: forward_logging_design.md (decision_audit endeavor, wind#145)» [.claude/hooks/forward_log.py:7]. - 2026-04-26 96eba091 (wind#149) -- handoff_inventory.py, handoff_prefilter.py: опись хендоффов и ретроспективные инструменты (коммит «Kalpa rename + handoff kalpa + retrospective pipeline tools»); 2026-04-30 f609cdaf (wind#239) -- retro_handoff.py, ретро-хендофф. Почему: причина не записана (в сообщениях только перечень). - 2026-04-02..2026-05-07 -- on_session_end: цепочка замеров и починок. Записано: «internal timeout=20s killed recall_sessions silently from 2026-04-10» (wind#160), «subprocess timeouts removed, root cause = CC runtime 1.5s default» (wind#161), «recall_register replaces full-scan recall_sessions in hook» (wind#163), «slow steps (bge, xref, speculum, memory_index) moved to cron» (wind#1692) [.claude/hooks/on_session_end.py:21-26]. Общая нить: хук закрытия не должен молча терять работу из-за таймаутов. - 2026-06-02 f4753f05 (wind#1635) -- скиллы crash-recovery и crash-investigation; 2026-06-13 bef3465a (wind#1726) -- core/crash_watchdog.py. Почему: «Gap: resource_monitor_psutil monitors CPU/RAM but cannot ...» (строка обрезана) [core/crash_watchdog.py:4]. 2026-09-28 5084124c -- по замеру 242 из 242 отказов были ложными, прибор поправлен [коммит 5084124c]. - 2026-08-18 ecd91b0a -- правило project_memory_inheritance: читать карточку активного эндевора, мерить состав перед утверждением. Почему: цитата Borg «Нужно, чтобы проект ты чётко помнил и наследовал именно проект ...» (сессия token-economics-wind1761, 2026-08-18) [.claude/rules/project_memory_inheritance.md, раздел «Why»]; замер: инжект режет хендофф с хвоста (показано 2937 из 12340 знаков) [там же]. - 2026-08-20 02cc926f -- core/read_handoff.py, «трасса в хендоффе»: читать хендофф из стора целиком. Почему: тот же замер усечения инжекта [.claude/rules/identity.md, раздел «On "let's continue"»; .claude/rules/project_memory_inheritance.md, раздел «Why»]. 2026-09-06 b4a9b865 -- core/nasledovanie.py, сборщик наследования «с паспортом измеренности каждого источника» [коммит b4a9b865]. - 2026-09-03 437e4142 -- правило session_mode_and_opening_report: режим сессии объявляется словом Borg, совместная открывается докладом. Почему: «Мы всегда сначала начинали новую сессию с доклада о старой ...» -- Borg (сессия f20853a5, 2026-09-03) [.claude/rules/session_mode_and_opening_report.md, раздел «Почему»]. - 2026-09-26 a94935cb (М3.5) -- handoff_standard уехал в .claude/rules_moment/ (показывается при первой записи хендоффа, не в каждой сессии); write_handoff стал носителем. Почему: «решение Borg по М3.5 («ядро + доставка в момент + холод»...)» [dev/errata.md:640]. 2026-09-23 6956b7ee -- гейт содержания пункта Open в write_handoff [id#587]; замер на 80 хендоффах: 1064 помеченных = все заглушки [dev/active_plan.md:476].

Сейчас: функция передаёт состояние от одной сессии к следующей и ловит обрывы. На старте on_session_start вводит в контекст выбранную часть хендоффа и сигналы здоровья; nasledovanie.py собирает перечень унаследованного (в т.ч. остановки сторожей прошлой сессии); read_handoff.py читает хендофф из стора целиком. На закрытии on_session_end регистрирует сессию и пишет хендофф-страховку; write_handoff.py пишет хендофф со стандартом (разделы Done/Decisions/State/Open/Constraints, гейт на потерю пунктов Open, DAG родителя), write_reflection.py -- рефлексию. При обрыве -- правило interrupted_session_recovery, скиллы crash-recovery/investigation, retro_handoff.py, crash_watchdog.py. session_utils.py даёт строгий id сессии, forward_log.py -- журнал событий хуков.

Снято: - Старый загрузчик recall_load из on_session_end -- выведен в бункер dev/archive по слову Borg, 2026-09-27 [коммит edd364db]. - Полный скан recall_sessions в хуке закрытия -- заменён recall_register (wind#163) [.claude/hooks/on_session_end.py:24]; таймауты subprocess сняты (wind#161) [там же:23]; медленные шаги вынесены в cron (wind#1692) [там же:26]. - handoff_standard.md: из .claude/rules/ в rules_moment/ (E-040, 2026-09-26) [dev/errata.md:634] -- перенесён, не снят.

Пометки: - Происхождение до git: on_session_start.py, on_session_end.py, identity.md -- из forge (genesis 30.03). - Переименование: .claude/rules/handoff_standard.md → .claude/rules_moment/handoff_standard.md (E-040) [dev/errata.md:634]. - core/nasledovanie.py как орган существует «с 2026-04-14 (wind#94)» по его шапке (core/nasledovanie.py:18, строка обрезана), но в git файл родился 2026-09-06 -- дата замысла органа ранее даты файла. - handoff_standard.md родился 2026-04-05 (f7f6eb03, wind#43, «Stage 2 snapshot») -- в составе снимка, отдельной причины нет.

Сомнения рабочего: - core/crash_watchdog.py и скиллы crash-* -- восстановление после сбоя машины; по смыслу близки к F08/«ресурсы», стоят здесь из-за связи с восстановлением сессии. - core/session_keeper.py (2026-07-11, 40db2bd4, «watchdog IMPLEMENT» автономной работы) -- держатель самостоятельного режима, ближе к линии autonomous_work; причина замысла не записана. - core/start_snapshot.py (2026-09-08, d75aa6a9) -- прибор наблюдаемости хуков (круг 0003 hook_observability, «WHY ... kalpa_put_starta.md») [core/start_snapshot.py:14]; к наследованию отнесён по пути старта. - .claude/hooks/forward_log.py -- журнал событий всех хуков, не только наследования; возможно, ближе к наблюдаемости. - .claude/rules/project_memory_inheritance.md: при проверке досье цитата Borg взята из текста самого правила без номера строки.


F05. Авто-память агента (MEMORY.md и файлы памяти)

Органы: 8, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/02_RASKLADKA.md (разд. F05)

Замысел: 2026-03-31 (4d467073, wind#6) -- первым появилось правило .claude/rules/citation_required.md («imported from forge CC#30» -- по сообщению коммита; т.е. пришло из forge, раньше 30.03). Почему: «forge incident -- agent interpreted "why did you start stopping?" as "don't stop" and wrote a defective rule. That rule then gave the agent grounds to ignore 6+ direct stop commands» [.claude/rules/citation_required.md:9]. Технические органы памяти -- позже: core/machine_memory_sync.py (2026-04-18, 0d670be7, wind#111). Почему: «wind#111: machine_memory must update automatically, not be a museum» [core/machine_memory_sync.py:13].

Развитие: - 2026-04-04 (c630b93e, wind#39) -- правило no_self_referential_hotpath: самодиагнозы -- только в холодное хранилище. Почему: «memory-level instruction proven ineffective against training-level patterns (wind#112, experiment_log OBS-EXP001-A)» [.claude/rules/no_self_referential_hotpath.md:9] (строка в досье обрезана; хронология: ссылка на wind#112 старше даты коммита -- правило правилось позже, 2026-04-26 d3be5ec0). - 2026-04-28 (26777b4a, wind#231) -- core/memory_benchmark.py, измерение качества поиска по памяти («created for memory search quality measurement» [core/memory_benchmark.py:21]). Почему именно тогда: коммит о статье «dual-source memory paper»; больше причин не записано. - 2026-05-11 (c7692257, wind#303) -- citation_required расширено: цитата + атрибуция рядом. Почему: «wind#303 audit: 46/60 feedback memories had quotes without attribution» -- это из текста правила, в досье показаны только первые строки [.claude/rules/citation_required.md:4-9]; сообщение коммита: «require attribution next to quote». - 2026-05-28/29 (b12de434, ee52eb2f, wind#1593) -- таблица cc_memory_items и core/memory_index.py: «created as part of knowledge infrastructure revision» [core/memory_index.py:18]. 2026-06-13 (6da90d98 wind#1727; bd85b7f9 wind#1723) -- смысловой поиск по памяти (memory_embed_backfill): «Module C semantic search -- break 83.3% FTS ceiling» [core/memory_embed_backfill.py:13], и memory_lifecycle. - 2026-07-03/04 (cf185600, 6d2749e5, 2f728f59) -- core/memory_offload.py: вынос памяти из горячего индекса в холод, затем монитор бюджета (M10) и подключение к старту сессии. Почему: рантайм считает размер индекса и режет его: «the runtime then renders that char count through formatFileSize ... warning reads "26.6KB > 24.4KB limit" (observed wind#1763)» [core/memory_offload.py:43-44]. 2026-08-05 (df4fde33) -- «индекс памяти 24619 -> 17245 знаков; инструмент видел пятую часть своих указателей» (сообщение коммита). - 2026-09-16 (bd9c2091, ad85373f) -- memory_index: «круг 0006: R12 закрыт по ПРОВЕНАНСУ ... корень -- парсер имён»; в шапке: «the reader below is a hand-rolled line parser, not YAML» [core/memory_index.py:37]. 2026-09-27 (b4c24ce1) -- неизменившаяся строка не перезаписывается.

Сейчас: функция держит память агента между сессиями. Файлы памяти хранятся вне дерева проекта (C:/Users/Borg/.claude/projects/W--wind/memory/), вход -- MEMORY.md. Органы в дереве: memory_index (индекс памяти в cc_memory_items, поиск --search), memory_embed_backfill (вложения для смыслового поиска), memory_lifecycle (учёт жизни записей), memory_offload (сжатие горячего индекса, монитор бюджета), memory_benchmark (замер качества поиска), machine_memory_sync (автообновление «машинной памяти»). Правила: каждое правило-обратная связь несёт цитату Borg с атрибуцией; самодиагнозы не кладутся в горячий путь.

Снято: нет записей о снятом для органов F05 в досье (реестры не проверялись по этим именам глубже досье).

Пометки: - Из forge: citation_required (раньше 30.03). - Сами файлы памяти и MEMORY.md -- вне производственного дерева (в 8 органов не входят). - Дата коммита != дата замысла.

Сомнения рабочего: - citation_required.md -- правило о ЗАПИСИ feedback-памяти; органом памяти является лишь по предмету, сам код не содержит. - В dev/errata.md:155 «Memory index reindex: pending (memory_index.py --execute)» -- состояние на момент записи, актуальность не проверял; dev/errata.md:554 (затронуты core/memory_index.py) -- контекст записи в досье не показан. - memory_lifecycle.py и memory_embed_backfill.py не имеют в досье строк шапки с причиной; причины брались из сообщений коммитов.


F06. Правила, ядро и доставка правил в нужный момент

Органы: 30, список -- 02_RASKLADKA.md (разд. F06)

Замысел: 2026-03-31 (54452ad4, wind#6, «sieve universal batch complete + resonance + rules RU→EN») -- первые правила в git: .claude/rules/confirm_after_correction.md, propose_with_reasoning.md, trust_technical.md (и холодные ныне no_confirmation_bias, proactive_completion, usage_scenarios_first, user_refinement_pattern, verify_before_accept). Раньше этого дня в git их нет (genesis 30.03 их не содержит). Почему: общая причина набора в коммите не записана (сообщение -- перечень). По отдельным правилам: «acting on a new (also wrong) understanding triggers a chain of rollbacks» [.claude/rules/confirm_after_correction.md:5]; «The captain doesn't tell the chief engineer how to run the engine room» [.claude/rules/trust_technical.md:5]; «Bare lists shift the choice without understanding» [.claude/rules/propose_with_reasoning.md:15]. Это причины правил, а не причина замысла самой функции.

Развитие: - 2026-04-01 1cad55b6 (wind#11) -- «sieve Phase 3 complete -- 39 CC rules evaluated, 4 imported»; среди них dig_past_first_explanation. Почему правило: «grov migration incident -- 3 rounds of superficial explanations ... before real cause found» [.claude/rules_cold/dig_past_first_explanation.md:5]. - 2026-04-28 e72d13e1 (wind#227) -- правила verify_blocker_status и verify_negative_test. Почему: «acts_v3 blocked 7 weeks by "taxonomy not validated"» [.claude/rules_cold/verify_blocker_status.md:9]; «three false negatives in one session» [.claude/rules_cold/verify_negative_test.md:11]. - 2026-06-17 0072eef2 -- history_before_structural_change; 2026-06-20 50642246 (wind#1763) -- правило deliver_to_user_outbox + Stop-хук + калпа. Почему: «The user reminds about his directory every session and the agent still sends him crawling the project tree» [.claude/rules/deliver_to_user_outbox.md:11]; для первого -- агент предложил выровнять таблицу, не спросив, почему она такая [.claude/rules_cold/history_before_structural_change.md:24]. - 2026-07-07 0c8453db -- claim_calibration (правило + запись в карте «хук -> нативное»); 2026-07-09 8b157fbc -- core/instruction_form_audit.py (проверка ФОРМЫ директив: наличие цитаты Borg, маркеры двусмысленности, из инцидентов). Почему: маркеры привязаны к инцидентам wind#1789 (пропуск калпы) и wind#1652 («blocker») [core/instruction_form_audit.py:44, :47]; ограничение -- «lexical detection fires on 44-67% of files» [core/instruction_form_audit.py:39]. - 2026-09-16 c505aba1 -- core/svod.py: свод инженерных решений (лента append-only + указатель по адресу предмета); fe882aae/3b847e03 -- .claude/hooks/svod_dostavka.py доставляет решения в момент касания предмета, но НЕ подключён («PODKLYUCHENIE OTLOZHE» -- сообщение 3b847e03). Почему: «решение, принятое вслух, сегодня доезжает до агента только в начале сессии» [.claude/hooks/svod_dostavka.py:11; строка обрезана досье]. - 2026-09-26 831be571 (М3.5, шаг 1) -- ядро .claude/rules/yadro.md вместо 19 правил-случаев, тексты -- в .claude/rules_cold/. Почему: слово Borg «Да, я согласен с твоими рекомендациями [...] ответственность за рекомендованное, она твоя» (сессия c27735a2) [.claude/rules/yadro.md:4]; правила-случаи уходят из каждой сессии, суть -- в ядре, рантайм грузит .claude/rules/ рекурсивно, потому холод вне него [dev/errata.md:631]. - 2026-09-26 79360edc, cf3d5b4a и далее (М3.5, B-правила) -- .claude/hooks/moment_rule_gate.py: табличный хук, выдаёт полный текст правила при первом в сессии вызове, подпадающем под момент; правила claim_calibration, never_destructive_db, git_content_criteria, safe_overwrite перенесены в .claude/rules_moment/ (E-042..E-045). Почему: решение Borg по М3.5 («ядро + доставка в момент + холод») [dev/errata.md:658, :667]; найдено, что текст хука модель читает ПОСЛЕ исполнения вызова -- доставка опаздывает на одно действие [dev/active_plan.md:1724].

Сейчас: функция -- слой текстов, которые правят поведение агента. (1) Ядро .claude/rules/yadro.md: семь принципов и формула, приходит в каждую сессию; правила-случаи, снятые в холод, названы в нём поимённо. (2) Рядом остаются отдельные правила с узнаваемым моментом (confirm_after_correction, propose_with_reasoning, trust_technical, deliver_to_user_outbox и др.). (3) Доставка по моменту: moment_rule_gate.py выдаёт текст из .claude/rules_moment/ при первом подходящем вызове сессии, только additionalContext, без запрета [.claude/hooks/moment_rule_gate.py:29]. (4) Свод решений core/svod.py -- лента и указатель по адресу предмета (доставка хуком не подключена). (5) Прибор формы директив core/instruction_form_audit.py, скилл rule-check, core/CLAUDE.md. Холод .claude/rules_cold/ хранит тексты дословно.

Снято: - 19 правил-случаев ушли из горячего пути в .claude/rules_cold/ 2026-09-26 (831be571): список [dev/errata.md:632, .claude/rules/yadro.md]; тексты целы. - Четыре правила перенесены из .claude/rules/ в .claude/rules_moment/ 2026-09-26 (E-042..E-045) [dev/errata.md:652, :670]; текст теперь приходит по событию, а не каждую сессию. - Нет записей о снятом сверх этого.

Пометки: - Происхождение до git: органов, рождённых 30.03 (forge), в F06 нет; самые ранние -- 31.03 (54452ad4). - Переименования/переезды: rules/ -> rules_cold/ (в errata dev/errata.md:631), rules/ -> rules_moment/ (E-042, E-043, E-044, E-045). - Дата коммита != дата замысла: для yadro.md и moment_rule_gate.py замысел -- разговор сессий c27735a2/М3.5 (26.09), сам коммит -- исполнение. - Многие правила в холоде имеют по 2-5 коммитов, но смысл менялся только при переезде; промежуточные правки не перечислены.

Сомнения рабочего: - core/svod.py и svod_dostavka.py -- свод решений: по смыслу ближе к памяти/преемственности (F-память) или к «доставке по моменту»; стоят здесь из-за общей идеи «доставка в момент касания». - core/instruction_form_audit.py -- прибор проверки качества текстов правил; в F06 по смыслу («формулировка директив»), но можно отнести к функции приборов качества. - core/CLAUDE.md -- не правило, а контракт каталога core/; в F06 из-за имени CLAUDE.md. - .claude/skills/rule-check/SKILL.md (скилл) -- в F06 по теме, но живёт в семье скиллов. - .claude/rules/deliver_to_user_outbox.md -- само правило здесь, а охранник (Stop-хук) -- в F09; граница функций проходит через один механизм. - Досье называет 30 органов, но в списке досье явно перечислено меньше (часть холодных правил свёрнута); сверка по 02_RASKLADKA.md не делалась.


F07. Сторожа выхода во внешнюю среду: git и сеть, платежи, сообщения

Органы: 14, список -- 02_RASKLADKA.md (разд. F07)

Развитие: - 2026-06-22 c1bc57da, 3eda4d47 -- «fail-open sweep»: 23 хука падали на кривом stdin, правка зацепила и payment_gate, и message_send_gate. Почему: причина в сообщении коммита -- «23 hooks crashed on malformed stdin» [коммит c1bc57da]. - 2026-09-09 0dd45fcc (утечки, круг 0002) -- рождение сетевой части: git_network_gate (deny всему сетевому git/gh/HTTP к GitHub), git_bridge (единственная дверь), git_network_gate_core, правило repo_private_by_default; рядом 1c8a5121 -- git_push_precheck. Почему: «изолировать локальный git от GitHub, исключить любую возможность утечки. Только через мост агента и только через гейт по согласованию» -- Borg, сессия 8cc8870d [.claude/rules/repo_private_by_default.md:29]; закрытость по умолчанию -- «Создавай репозиторий непубличный, закрытый. Открыть мы их всегда успеем» [.claude/rules/repo_private_by_default.md:25]; основание -- утечка 0002 (названа в тексте правила, реестр dev/endeavors/utechki/REESTR_utechek.md, сам реестр не открывал). - 2026-09-09..12 -- гейт и мост прошли серию кругов линз (923b78be, 329385a9, d1904488: «adversarialnaya linza + dve linzy, 20 obhodov/nahodok»); 2026-09-12 cb3d186a -- git_push_precheck получил ось СОДЕРЖИМОГО дерева и ИМЁН путей (id#291); 2026-09-12 ce58fdf0 -- скилл repo-vydelenie (порядок выделения репозитория: три оси -- класс / видимость / разрешение [.claude/skills/repo-vydelenie/SKILL.md:25-26]). Почему для скилла: причина не записана в шапке; типовая ошибка, от которой он страхует, -- «вывести публичность из класса» [.claude/skills/repo-vydelenie/SKILL.md:28]. - 2026-09-21 3df6ce1c, cca8a344, 1137cc56 -- message_send_gate: «fail-open выжил ВНУТРИ ветки», «запасной выход не работал: sys.exit(2) давало код 120, и блок терялся молча», запасной путь получил fail-closed [сообщения коммитов]. Смысл изменился с «ловит команду» на «отказ не теряется молча». - 2026-09-24 b74c88c8, 9da8c26f, 0e90d32a -- починка git_network_gate: сторож судит, ГДЕ текст исполняется, а не есть ли в нём слово; разборщик делит строку по грамматике операторов bash; закрыто 10 форм пропуска push. Почему: ложные остановки (гейт дважды остановил ЧТЕНИЕ [dev/active_plan.md:469]); результат -- «корпус 88 -- стоят 14/14, ложных 0» [dev/active_plan.md:315]. - 2026-09-24 -- текстовые хуки message_send_gate и payment_gate сняты с регистрации, проверка перенесена в core/browser_read.py [dev/active_plan.md:323]; 2026-09-26 3adbcd3b (М3.11) -- message_send_gate подменён кандидатом, пробы 15/15, 3/3, 27/27 [dev/active_plan.md:273]; 2026-09-26 2302185e (М3.20) -- хуки в exec-форме; 2026-09-27 e893c09a (М3.25) -- самоотчёты хуков через владельца.

Снято: - Регистрация текстовых хуков message_send_gate и payment_gate -- 2026-09-24, проверка перенесена в core/browser_read.py [dev/active_plan.md:323]. - В message_send_gate -- функция, распознававшая файл (R6): «REMOVED, not disabled, and this comment is the record of why» [.claude/hooks/message_send_gate.py:51]; что именно распознавалось, не читал. - Формулировка «единственная дверь» в repo_private_by_default без оговорки о браузере -- поправлена 2026-09-23 [.claude/rules/repo_private_by_default.md:22-23]. - Ложный стоп платёжного гейта на собственной странице -- снят «узко, только ценовой текст» 2026-08-15 [коммит a2655b45].

Пометки: - Происхождение до git: только core/get_secret.py (genesis, forge). - Переименований органов F07 в досье не найдено. - Дата коммита != дата замысла: сетевая часть -- разговор сессии 8cc8870d 2026-09-09, утечка 0002 раньше.

Сомнения рабочего: - .claude/hooks/covenant_gate.py и covenant_registry.json (6 коммитов, 2026-07-01) -- дрейф заветов (правил), не выход наружу; стоят в F07, видимо, по шаблону _gate. По смыслу ближе к функции надёжности/правил. - core/precommit_content_guard.py -- охрана ВЫХОДА в git, по смыслу F07; причину рождения не нашёл. - Не выяснено, зовётся ли payment_gate.py / message_send_gate.py сейчас как хуки: по плану текстовые хуки сняты 24.09 [dev/active_plan.md:323], но 26.09 message_send_gate «подменён» [dev/active_plan.md:273]; расхождение формулировок не разбирал.


F08. Сторожа действий агента: общий сторож, схема БД, ресурсы, меню выбора, труд

Органы: 24, список -- 02_RASKLADKA.md (разд. F08)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми появились .claude/hooks/pre_tool_guard.py, .claude/hooks/schema_gate.py, core/resource_monitor.py, core/resource_monitor_psutil.py -- пришло из forge, раньше 30.03. Почему задумано: причина не записана (genesis ничего не объясняет). Первая записанная в git причина укрепления общего сторожа -- 2026-03-31 ee3f023a (wind#5): «close DROP TABLE vulnerability + restore error_gate» [коммит ee3f023a].

Развитие: - 2026-04-20 eb41023d (wind#122) -- плагин safeguard: статический анализ + блок вместо напоминания о пакетных запусках. Почему: «Wind#122: 4th incident of machine hang from unguarded batch scripts» [.claude/hooks/safeguard/safeguard.py:16]; «qdrant_recall.py left running without adequate RAM checks → machine hang» [.claude/hooks/safeguard/modules/resource_guard.py:12]; «CPU 99% causing system hang» (wind#75, 76) [.claude/hooks/safeguard/registry/requirements.json:6]. - 2026-04-23 abc61740 (wind#136) -- step0b_gate/step0b_mark: ворота допуска «проверь существующее до нового кода». Почему: «wind#204: formalized as gate (deny), not flapper (reminder)» [.claude/hooks/step0b_gate.py:12]; «Step 0b = admission gate, not quality check» [core/step0b_mark.py:11]. Поводов самого замысла в шапках нет. - 2026-06-04 4fcdeb3b (wind#1652) -- L0_gate. Почему: «wind#1652 Tongue finding -- MEANING-level solutions (rules, docs)...» (строка обрезана) [.claude/hooks/L0_gate.py:12]. 2026-06-20 e05465fd -- no_choice_menu_gate: запрет меню выбора (AskUserQuestion). Почему: «Source: wind#1761 (Borg: "никогда не предлагал мне выбор ... это меня бесит ...")» [.claude/hooks/no_choice_menu_gate.py:17]; агент повторил за 2 дня [там же:6]. - 2026-07-21 39c23389 -- workflow_gate: v1 только журнал, v1.1 -- мягкая подсказка, v2 жёсткий отказ «по времени, не активен» [.claude/hooks/workflow_gate.py:10-20]. Почему: причина не записана. - 2026-09-09 be97f89d -- hook_state: изоляция состояния хуков от безголового claude -p ребёнка [.claude/hooks/hook_state.py:5, шапка «WHY THIS EXISTS»]. 2026-09-11 352c57de -- labor_decider_gate («решатель»: отказ в труде дорогим моделям); ревизией 3 (1a2813a4) сменил род «привратник -> счётчик» (ветка D, слово Borg) [dev/errata.md:477; dev/active_plan.md:200]; 2026-09-26 61b90370 (М3.19) -- цена claude-opus-5-5 берётся с живой страницы. - 2026-09-24/25 -- «таблица ролей» сторожей: стирание и гашение судят ГОЛОВУ команды (core/command_heads.py) [dev/active_plan.md:318]; N9 (90f95c4b) -- сторож секретов по ФОРМЕ значения; N10 (e5958623) -- core/own_process.py, законная дверь гашения СВОЕГО процесса [core/own_process.py:8]; N7 -- ворота G012 сняты: 8 ложных из 29 остановок [dev/active_plan.md:328]. - 2026-09-25 13f0f4fb (N11) -- core/pycap/sitecustomize.py + pycap.cfg: ворота A/B safeguard («чтение текста по слову в имени») заменены конструкцией -- job-объект ОС с пределом памяти и приоритетом для каждого python инструмента [dev/active_plan.md:326]. 2026-09-26/27 -- приёмка М3.7: семья 2 (останавливающие и пишущие хуки) принята [dev/active_plan.md:1738-1739].

Сейчас: набор хуков PreToolUse и вспомогательных органов, которые судят действия агента. pre_tool_guard -- общий сторож (отказ через permissionDecision=deny, секреты по форме, судья головы команды); schema_gate -- первый SQL к непроверенной таблице блокируется, пока агент не увидит схему; step0b_gate -- новый .py без отметки допуска (с 24.09 часть советов переведена из запрета в подсказку); no_choice_menu_gate -- блок меню выбора; labor_decider_gate (+reset) -- счётчик собственных вызовов на дорогой модели; workflow_gate -- мягкая подсказка по запуску Workflow; L0_gate -- подсказки на уровне смысла (после М3.7/Etap C часть строгих требований переведена в подсказки). Ресурсы: safeguard (ворота A/B/C/D, реестр известных скриптов, требования), pycap (предел памяти и приоритет), own_process, resource_monitor*, measure_capacity (программа замеров wind#1736). hook_state разводит состояние основной сессии и безголового ребёнка.

Снято: - Ворота A/B safeguard (чтение текста по слову в имени) -- заменены pycap, акт N11, 2026-09-25 [dev/active_plan.md:326]. - Ворота G012 pre_tool_guard -- сняты актом N7 (8 ложных из 29 остановок; слепы к auto-fix) [dev/active_plan.md:328]. - BATCH_STATE в pre_tool_guard -- убрано, пакетной защитой ведает safeguard (wind#194) [.claude/hooks/pre_tool_guard.py:22]. - Привратниковая роль labor_decider_gate -- сменена на счётчик 2026-09-11 (1a2813a4) [dev/errata.md:477]. - schema_hint.py -> schema_gate.py (E-009): подсказка вместе с готовым SQL не помогла -- «198 wrong_column errors in 5 weeks, trendline flat» [dev/errata.md:72-77].

Пометки: - Происхождение до git: pre_tool_guard.py, schema_gate.py, resource_monitor.py, resource_monitor_psutil.py -- из forge (genesis 30.03). - Переименование schema_hint.py -> schema_gate.py (E-009) [dev/errata.md:72]; дату переименования в досье не читал, файл schema_gate.py ведёт историю с genesis. - Дата коммита != дата замысла: ворота N-серии (24-25.09) -- реализация таблицы ролей сторожей; замысел -- ранее, в линии instrument_reliability (не открывал).

Сомнения рабочего: - step0b_gate.py/step0b_mark.py -- допуск «проверь существующее до нового кода»; по смыслу дисциплина разработки (возможно, ближе к F-функции инструментов качества), но по пути -- сторож действий. - no_choice_menu_gate.py, L0_gate.py -- про поведение агента перед человеком/уровень смысла, не про безопасность; возможно, отдельная функция «нормы поведения агента». - workflow_gate.py, labor_decider_gate.py -- сторожа затрат токенов (запуск субагентов/труд дорогой модели), по смыслу ближе к «цене ошибки»/оркестрации, чем к охране машины. - core/measure_capacity.py -- одна программа замеров (wind#1736), без шапки с причиной; сомнительно, что сторож. - safeguard/* (7 органов) -- защита от зависания машины; в F01 раскладка поставила их по шаблону пути (см. сомнения F01), здесь они по смыслу на месте. - core/resource_monitor*.py: правки 2026-08-01 -- в линии crash_telemetry (телеметрия падений), отношение к сторожам -- наблюдение, не блок.


F09. Конец хода и качество ответа: проверки ответа, ревью, цепочки инструментов

Органы: 25, список -- 02_RASKLADKA.md (разд. F09)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми в функции: .claude/hooks/on_stop.py, on_prompt_submit.py, on_tool_failure.py, on_tool_success.py, context_guard.py -- пришло из forge, раньше 30.03. Почему: причина не записана -- коммит genesis ничего не объясняет. По шапке on_prompt_submit.py: «Инцидент-причина: 2026-03-23 fe1a52ab -- 4 прерывания подряд проигнорированы» [.claude/hooks/on_prompt_submit.py:11] -- это причина одной функции хука, не замысла функции.

Развитие: - 2026-04-13 9505ad93 (wind#85) -- .claude/hooks/doc_gate.py: защита .py без .md (wind#158) и дрейф документации по хэшу (wind#309) [.claude/hooks/doc_gate.py:6, :9]. Почему: причина не записана в шапке. - 2026-04-23 9b78c86f (wind#135) -- в on_stop.py «code-reviewer deterministic -- rule + Stop hook reminder» (напоминание о ревью на Stop). Причина не записана (в сообщении коммита только перечень). 2026-05-03 5f1f10f8 (wind#257) -- .claude/hooks/review_gate.py: перед коммитом принуждает цикл ревью. Почему: «THE TWO AXES, AND WHY THIS FILE IS ONE OF THEM» / «WHAT THIS REPLACES, AND WHY THE OLD SHAPE WAS WRONG» [.claude/hooks/review_gate.py:6, :18; сами причины досье не показало]. - 2026-06-21 18653ded (wind#1772) -- chain_gate.py + core/chain_mark.py: гейт принуждает цепочку инструментов, не давая пропустить («prevents kalpa-solo»); тогда же chain_aikido.py; 2026-06-24 3ca0bac5 -- таблица «класс -> пакет» вынесена в данные (chain_packages.json). Почему: «a fix that feels frictionless is itself the signal that verification was bypassed (wind#227)» [.claude/hooks/chain_aikido.py:44]; «wind#1772: F-class-C -- enforce the instrument chain (develop), not memory-dependent» [core/chain_mark.py:35]. - 2026-07-26/27 -- ревью-линзы засчитываются при ОСТАНОВКЕ субагента, не при запуске (ddb809b9, subagent_review_credit.py, subagent_observer.py), кредиты -- в дописываемый файл review_credits.jsonl (bae69849). Почему: причина в сообщениях коммитов описана как устройство («credit a review lens when the subagent STOPS, not when it launches»); ссылки на инцидент в досье нет. - 2026-08-03 801529aa -- core/review_surface.py: «ревью зовут на границе передачи: ось HANDED замкнула гейт» (сообщение коммита); ось описана в .claude/rules/code_review_after_edits.md (ревью на единице приёмки, а не по числу правок). - 2026-08-05 ea740d13 -- порог предупреждения context_guard 50 -> 40 % «решение Borg 2026-08-05» [.claude/hooks/context_guard.py:21]. - 2026-09-24 0a182eed (N36), b9dbdd3c (N37-N40) -- блок двух линз на Stop снят; вместо блока подсказка агенту со следующим сообщением и строка Borg через общее хранилище stop_hints.py; сюда же суд пакета (A6), declare-done, «предложение без адреса», завет. Почему: «Stop hook has no channel the MODEL sees except a block» [.claude/hooks/stop_hints.py:6]; в правиле -- проверка пакета стала подсказкой, потому что нужен ли пакет, -- суждение о классе объекта, которого шаблон не видит [.claude/rules/safety_critical_change.md, абзац «Start-time guide»]. - 2026-09-26 2302185e (М3.20) -- все хуки в exec-форме; событие Bash ~525 -> ~350-400 мс [dev/active_plan.md:280].

Сейчас: функция следит, чтобы работа и ответ прошли проверки до того, как их приняли. Стоп-хук on_stop.py в конце хода собирает напоминания (ревью, документ-дрейф, закрытие сессии, пакет инструментов) и отдаёт их подсказкой следующим сообщением (stop_hints.py). chain_gate.py перед записью проверяет, что для класса объекта пройден пакет инструментов (chain_mark.py ведёт отметки, chain_packages.json -- карта «класс -> пакет», chain_gate.clauses.py -- условия для регрессионной проверки гейта). review_gate.py, subagent_review_credit.py, subagent_observer.py, review_surface.py и review_credits.jsonl учитывают, какие линзы ревью прошли и по какой поверхности. Остальное: context_guard (предупреждение о заполнении окна), on_prompt_submit/on_tool_success/on_tool_failure (приём реплики, итог вызова, сбой), doc_gate, docstring_hint, jig_gate/jig_index (рождение приспособлений), skill_map_hint, browser_inject, closure_marker, workflow_marker.

Снято: - Блок двух линз на Stop -- снят 2026-09-24 (N36) в пользу подсказки [dev/active_plan.md:320, 0a182eed]. - Блок проверки пакета A6 на Stop -- стал подсказкой (N37) [dev/active_plan.md:321, b9dbdd3c]. - Гейт review_gate на коммит отключён (не снят насовсем) -- до решения [id#669] [.claude/rules/code_review_after_edits.md]. - ACT-004 снят из on_prompt_submit (коммит 11da47d3, сообщение; причина не открывалась). - Порог предупреждения окна 50 -> 40 % (изменён, не снят) [.claude/hooks/context_guard.py:21].

Пометки: - Происхождение до git: on_stop.py, on_prompt_submit.py, on_tool_failure.py, on_tool_success.py, context_guard.py -- из forge. - Переименования: правило safety_critical_kalpa.md -> safety_critical_change.md (870dcb10, 2026-06-26; в обновлённых ссылках chain_aikido.py) [dev/errata.md:140]. - Объём: on_stop.py -- 71 коммит, chain_gate.py -- 37; веха-за-вехой показаны только смысловые. - Дата коммита != дата замысла: механизмы N36-N40 исполнены 24.09, замысел -- решения шага 5 «советники» (запись dev/active_plan.md:319-321).

Сомнения рабочего: - Название «Конец хода» не покрывает часть органов: on_prompt_submit (начало хода), on_tool_success/on_tool_failure (после вызова), context_guard, doc_gate, docstring_hint, jig_gate, skill_map_hint, browser_inject -- стоят в F09 по шаблонам имён хуков. - browser_inject.py рождён как часть расширения/моста браузера (коммит c681c42e, wind#1598) -- по смыслу ближе к браузерной функции. - core/jig_index.py, jig_gate.py -- рождение приспособлений («оснастка»), не проверка ответа. - core/workflow_marker.py -- одна запись (коммит 90b6ee72, «workflow_gate»); шапки с причиной досье не показало. - chain_gate.clauses.py -- служебные условия для регресс-проверки гейтов (коммиты 08-09.07), не сама цепочка. - Для on_stop в досье нет причины замысла на момент genesis; причины ревизий N36-N40 взяты из правила и строк плана, не из первичного журнала шага 5.


F10. Здоровье системы и наблюдение за ней

Органы: 28, список -- 02_RASKLADKA.md (разд. F10)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми появились core/health_check.py и правило .claude/rules/error_tracking.md -- пришло из forge, раньше 30.03. Почему задумано: причина не записана -- коммит genesis ничего не объясняет. Косвенно: правило error_tracking позже дополнено строкой о сбоях субагентов -- «wind#218 Group A -- 6 HTTP errors from subagents, each retry produced the same error» [.claude/rules/error_tracking.md:28]; это причина дополнения (27.04, 1a12fba1), не замысла.

Развитие: - 2026-04-12 59706b64 (wind#77) -- core/check_environment.py: проверка окружения (PGCLIENTENCODING=UTF8 для psql, локаль сообщений PG). Почему: «U+FFFD root cause + fix» (wind#77) [core/check_environment.py:17, :51; коммит 59706b64]. - 2026-04-13 86ef02e7 (wind#84) -- core/system_health.py: «sentinel Phase 2 -- L1 dark cockpit in SessionStart». Почему: инциденты-прецеденты -- «wind#40 (embed gap 613), wind#61 (exit(0) 349), wind#82 (recall_sessions timeout 581 orphans, 3 дня)» [core/system_health.py:20-22]. С тех пор самый частый орган функции (84 коммита). - 2026-04-22 0805ead9 (wind#133) -- core/operations_registry.json: реестр операций, каждая со своим признаком свежести. Почему: «Incident: v2 loader not run for 2 days, no indicator fired. Root cause: no registry of operations, health checks added ad hoc» [core/operations_registry.json:4]. - 2026-05-12 b916713e (wind#307) -- правило health_check_at_start; 05-17 eca3bc9d (wind#333) -- core/capability_audit.py (Speculum L3); 05-19 95b4204d (wind#351) -- core/watchdog.py (системный монитор). Почему: «для исследования и разработки где каждая сессия может что-то менять, затяжной старт с проверкой абсолютно оправдан» -- Borg (wind#307) [.claude/rules/health_check_at_start.md:11]; для capability_audit и watchdog причина в шапках не названа -- причина не записана. - 2026-06-04 2e546ec8 (wind#1651) -- core/process_map.py; 2026-06-15 a625f8bc (wind#1731) -- правило verify_health_signals. Почему: «created after taskkill incident (3 browsers killed, agent couldn't distinguish between them)» [core/process_map.py:11-12]; «а если ты его записал ошибочно?» -- Borg (wind#1731) [.claude/rules/verify_health_signals.md:13]. - 2026-07-08/09 8d8a6504…a9f5d847 -- core/enforcement_harness.py (мутационная проверка охранников); 2026-07-27 f310d3d6 -- core/fuel_gauge.py («сколько осталось на сегодня»); 2026-07-30 65ec0e97 -- core/hook_output_audit.py («the injection has been arriving at 0.7 percent, and nothing said so» -- сообщение коммита). Почему: для enforcement_harness -- «the proven failure class, wind#1830» (выпавшая ветка охранника) [core/enforcement_harness.py:6]; шапка hook_output_audit («WHY THIS EXISTS») [core/hook_output_audit.py:10] -- не открывал дальше первой строки. - 2026-07-31 98659602 -- core/decommissioned.py/.json: реестр снятых элементов («решение о системе, записанное в системе»). Почему: чтобы отсутствие элемента объяснялось записью -- «чьим решением и при каком условии он вернётся» [core/decommissioned.json:3].

Сейчас: функция следит за состоянием системы и самой следящей части. Стартовая проверка (system_health) отдаёт зелёное/жёлтое/красное в начало сессии; watchdog -- периодический монитор; health_check, check_environment, capability_audit -- отдельные срезы (БД, окружение, возможности); process_map -- кто какой процесс. Над ними -- слой наблюдения за самими приборами: enforcement_harness (проверка охранников мутациями), hook_output_audit, hook_timeouts, ostanovki (учёт остановок сторожами), auto_invoked_set и hook_settings (что исполняется само и кто читает регистрации хуков), organ_registry (снимок органов), decommissioned (реестр снятого), health_journal (ручной журнал), fuel_gauge и instrument_yield (расход и выработка). Правила: health_check_at_start, verify_health_signals, error_tracking.

Снято: - Ручной журнал здоровья: прежний скрипт переименован в core/health_journal.py, файл данных data/health_snapshots.jsonl -> data/health_journal.jsonl, ссылки сведены 2026-09-08 [dev/errata.md:437-447]; прежнее имя скрипта в досье обрезано, не проверял. - Подсистема machine_memory снята из инжекции: «acts v1 признаны скомпрометированными (11.4 процента непроверяемого провенанса)» [core/decommissioned.json:14, :18]. - Конвейер «clean/acts»: архитектура v2 заменила его, таблицы снесены в wind#234 [core/decommissioned.json:53, :55]. - Тяжёлые прогоны (селфтесты инструментов 28 шт. и watchdog) сняты с синхронного пути старта в отсоединённый прогон 2026-09-08 (d75aa6a9; сообщение коммита).

Пометки: - Происхождение до git: core/health_check.py, .claude/rules/error_tracking.md. - Дата health_journal.py -- рождение под этим именем 2026-09-06; хранилище с 2026-04-14 (wind#94, 00c292da) существовало раньше [core/health_journal.py:15]. - Переименования: health_snapshots.jsonl -> health_journal.jsonl (см. «Снято»); component_registry.json -- путь Qdrant поправлен после переноса в холодное хранение 2026-09-23 (00cd0cc0, E-038).

Сомнения рабочего: - core/command_heads.py -- «голова исполняемой команды» для сторожей стирания и гашения [core/command_heads.py:11, :45] -- охрана, ближе к F01/F08. - core/consumption_rate.py (1 коммит, wind#261, «session dedup for inject + volume calibration») -- подача контекста, не здоровье; шапок нет. - core/session_diff.py -- якорь «что изменено за сессию» для ревью [core/session_diff.py:16] -- ближе к ревью/приёмке. - core/auto_invoked_set.py -- «живой набор» для ревью (ось LIVE) [коммит b2c72b13], здесь по шаблону; по смыслу пересекается с ревью. - core/fuel_gauge.py, core/instrument_yield.py -- расход токенов и выработка приборов, ближе к экономике запросов. - core/component_registry.json, core/organ_registry.py -- реестры состава; organ_registry стоит в F10, хотя его шапка про «что у нас уже исправлено» [core/organ_registry.py:11] -- про приёмку и порядок модернизации. - core/check_of_checks.py (1 коммит, 990339e0, сообщение о хендоффе) -- по имени проверка проверок; по шапке не определил.


F11. Инструменты качества мышления (калпа, разбор на атомы, пробирщик, проверки, ревью)

Органы: 50, список -- 02_RASKLADKA.md (разд. F11)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- core/impact.py и core/repeated_study.py -- пришло из forge, раньше 30.03. Первым собственным органом функции в git стало правило decompose_before_method (2026-04-09, 0a93aa83). Почему: «10 hours of Haiku retelling clean assistant text (LM output = clean by definition). Task was framed as "make clean" without asking "what exactly is dirty." Decomposition would show: only user_text (~20%) needed LM» [.claude/rules/decompose_before_method.md:9]. Номер в строке («wind#127-56») -- в той нумерации, что была до перенумерации сессий (dev/errata.md:249); сопоставление с нынешним номером не проверял. Почему замыслена именно ФУНКЦИЯ «приборы качества» целиком (а не отдельные правила) -- причина не записана в просмотренных шапках; ближайшее -- «для исследователя который двигается в неизвестном пространстве нестабильных версий и каждая ошибка отнимает время а иногда и десятки часов на расследование» -- Borg, wind#196 [.claude/rules/quality_instruments.md, раздел «Why default-on»; строку не нумеровал].

Развитие: - 2026-04-21 32a066bc (wind#127) -- правило quality_instruments: Juicer0A и Пуанкаре включены «по умолчанию» для исследовательского контекста; 2026-04-23 abc61740 (wind#136) -- ворота «Шаг 0b»: новый .py блокируется, пока не отмечена проверка уже имеющегося [.claude/rules/quality_instruments.md:9, там же -- «Gate checks admission, not quality (wind#204)»]. Почему по умолчанию: цитата Borg выше (wind#196, «каждая ошибка отнимает время»). - 2026-04-23 9b78c86f (wind#135) -- code_review_after_edits: ревью кода делается детерминированно (правило + напоминание на Stop). Почему: «проверки по выполнении задачи это инвестиции в надежность и они оправданы экономией при дальнейшей работе» -- Borg, wind#203 [.claude/rules/code_review_after_edits.md, раздел «Why»]. Позднее смысл сдвинут: ревью привязано к единице ПРИЁМКИ, а не к числу правок (раздел «Review at the unit of ACCEPTANCE»; «ревью должно быть уже на каком-то осмысленном этапе, когда уже мы понимаем, что мы принимаем» -- Borg, 2026-08-02 [там же]). - 2026-04-25 eb6efdee (wind#148) -- калпа как метод (3 кодекса, скилл, библиография); 2026-04-26 96eba091 (wind#149) -- переименование codex -> kalpa. Почему калпа задумана -- причина не записана в просмотренных строках; почему переименована: «"codex" is passive (book of rules), "kalpa" captures formal specification with world-closure» [dev/errata.md:19, запись E-002]. - 2026-04-28 e72d13e1 (wind#227) -- safety_critical_change: правки охранных органов -- через полный пакет. Почему: «safeguard hook modified with basename match instead of full path match. Fix felt trivial» [.claude/rules/safety_critical_change.md:15]. 2026-06-26 (1550cab1, wind#1789) смысл поправлен: триггер называет ВЕСЬ пакет, а не одну калпу -- «в скиле у тебя указано имя калпа, и поэтому ты берёшь калпу и пропускаешь всё остальное» -- Borg, wind#1789 [.claude/rules/safety_critical_change.md:11]. 2026-07-05 (5939a58f): имя пакета закреплено «пробирщик», а «кулак» отвергнуто [.claude/rules/safety_critical_change.md:9]. - 2026-05-24 91c578a6 (wind#1568) -- скилл /decompose v1; далее версии v2..v8.8 (до 2026-07-03, d3193309). Почему росла: «decompose so thoroughly that no uncovered zones remain» -- Borg, wind#1657 [.claude/skills/decompose/SKILL_v7.md:17]; «decompose has a very serious gap. This is a rule of beginning research» -- Borg, wind#1658 [.claude/skills/decompose/SKILL.md:41]; в v8.8 «ровно один усилитель» признан свойством метода, а не реальности [.claude/skills/decompose/SKILL.md:13]. - 2026-06-07 af5fe44d/539f8477 (wind#1668) -- «пакет разработки»: /develop как оркестратор и восемь скиллов (juicer, poincare, data-inventory, defect-or-feature, impact-scan, rate-10, structural-audit, assayer-review); 2026-06-21 7e613a3e -- /stress-test. Почему стресс-тест: изоляционные самотесты пропустили сбой на null-входе у двух живых хуков [.claude/skills/stress-test/SKILL.md:8, :38]. Почему пакет собран в один оркестратор -- причина не записана в просмотренных шапках (метафора «не растопыренной пятернёй» -- Borg, wind#1668 [.claude/rules/safety_critical_change.md:9]). - 2026-06-21 .. 2026-07-22 -- рядом с пакетом выросли «суждение о постановке» и «о границах»: /criterion (2026-06-21, wind#1772) [.claude/skills/criterion/SKILL.md:10], /conceptual-decompose (2026-06-28) [.claude/skills/conceptual-decompose/SKILL.md:10], /correspondence (2026-06-28), /claim-calibration (2026-07-07) [.claude/skills/claim-calibration/SKILL.md:17], правило onto_engineering_boundary (2026-07-22): «При разделении онтологического и инженерного должны быть критерии» -- Borg [.claude/rules/onto_engineering_boundary.md:37]; deferral_carries_cost (2026-07-31): «Ты говоришь, что ты не будешь это чинить. А что будет, если ты не будешь это чинить?» -- Borg [.claude/rules/deferral_carries_cost.md:59]. - 2026-09-24 .. 2026-09-28 -- облегчение и ужатие: Stop-блок «двух линз» снят, остаётся подсказка (0a182eed, N36); «Delta=0 по условиям приёмки, не по молчанию линзы» (143664b2); правило ревью ужато 21 766 -> 7 753 знака, прежний текст дословно перенесён в instrument_reliability/PROVENANC… (e4ed9fcd, M3.5) [коммит e4ed9fcd]; временный «облегчённый путь» для правок сторожа, не меняющих его решение (38d904cd, M3.33) -- «Поэтому я сейчас приму твоё предложение, но вот при этих условиях, что мы эту проблему не игнорируем» -- Borg, сессия 4a05e28e [.claude/rules/safety_critical_change.md:45].

Сейчас: функция даёт набор приборов, которыми проверяют мысль и работу до и после действия. До: разбор объекта на атомы (/decompose, в т.ч. изображений и понятий), вывод разрешимого критерия (/criterion), постановка вопросов качества (/juicer), измерение состояния (/data-inventory), решение «дефект или свойство среды» (/defect-or-feature), оценка влияния (/impact-scan), формальная спецификация (/kalpa). После: целостность данных по слоям (/poincare), структурный аудит, стресс-тест, проверка непротиворечивости с прежним корпусом (/correspondence), калибровка утверждений (/claim-calibration), оценка «1-10 + как довести до 10». Оркестратор /develop выбирает набор по классу задачи. Правила: что считать приёмкой и сколько ревью нужно (code_review_after_edits), полный пакет для охранных органов (safety_critical_change), две модели «флаг класса / инженерия внутри класса» (onto_engineering_boundary), «отложенное несёт цену промедления» (deferral_carries_cost), первичность достоверности данных (data_reliability_primacy). Скрипты вокруг: juicer_prescan.py, repeated_study.py, findings.py, multi_probe*.py.

Снято: - Версии /decompose v2..v7 (SKILL_v2.md .. SKILL_v7.md, *_backup.md, SKILL_v6_current.md) -- лежат в каталоге скилла как снимки; действует SKILL.md (v8.8) [.claude/skills/decompose/SKILL.md:13]. Решение о выводе из обращения не нашёл. - Блок Stop «две линзы» -- снят 2026-09-24 (N36), остаётся подсказка [коммит 0a182eed]. - Блокирующая проверка полноты пакета (A6) -- с 2026-09-24 подсказка, не блок (строка N37 таблицы сторожей) [.claude/rules/safety_critical_change.md:7]. - «Кулак» (fist) -- имя пакета отвергнуто 2026-06-27 / 2026-07-05, оставлено «пробирщик» [.claude/rules/safety_critical_change.md:9]. - Переименования: /prepare -> /preflight (причина: совпадение с «родным» шаблоном модели, он перебивал вызов скилла) [dev/errata.md:105, E-012]; safety_critical_kalpa.md -> safety_critical_change.md (имя называло один прибор из пакета) [dev/errata.md:137, E-015]; шесть памятных файлов о поиске слиты в скилл /search (E-016, dev/errata.md:150) -- search в F11 не входит.

Пометки: - Происхождение до git: core/impact.py, core/repeated_study.py -- из forge. - Дата коммита != дата замысла: «пакет разработки» 2026-06-07 прожил в разговоре (wind#1668) до кода; «пробирщик» как слово -- 2026-06-26..07-05. - Правила instruction_form (2026-07-09), data_reliability_primacy (2026-06-17, 5f0ebf5d) и decompose_before_method в .claude/rules/ -- сами в ядро yadro.md частично свернуты (принципы 1, 5); перенос в холод -- решение Borg по ядру, см. F-функцию правил.

Сомнения рабочего: - core/impact.py: по шапке (core/impact.py:22-38) это запросы по таблицам forge (errors, observations, decisions, incidents...), а не прибор /impact-scan. Сходство имён; по смыслу, вероятно, не в F11. - core/findings.py (реестр находок: что нашли, где, что с этим сделано, core/findings.py:4) -- реестр материалов, а не прибор мышления; core/multi_probe.py / multi_probe_schema.py -- исследование «мульти-зонд» (wind#129), к приборам качества отнесены по соседству. core/repeated_study.py (Juicer0A, «TASK #314 absorbed #303», :3) -- в F11 по смыслу, но в genesis пришёл из forge без причины. - 11 файлов SKILL_v*.md, *_backup.md в каталоге decompose учтены как органы, хотя это версии одного органа -- счёт 50 завышен ими. - .claude/skills/methodology-extract, cycle-check, term-sweep, source-analysis, verify-knowledge, research-value, investigate, root-cause-fix, error-response стоят в F11 по шаблону пути; по смыслу часть (например verify-knowledge, term-sweep) ближе к проверке/поиску. - Номера сессий в шапках (wind#127-56, wind#196, wind#203) даны в старой нумерации; сопоставление не проверял.


F12. Проекты (эндеворы), план и заказы

Органы: 32, список -- 02_RASKLADKA.md (разд. F12)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первыми в функции стоят core/registry.py, core/validate_task_ids.py (проверка id задач по типам: errors, principles, decisions, handoffs...) и .claude/rules/tools_catalog.md -- пришло из forge, раньше 30.03. Почему задумано: причина не записана -- коммит genesis ничего не объясняет, шапки этих файлов о причине молчат. Следом в git: правила-основания material_provenance (31.03, 8be48540, wind#6) -- «without provenance, claims are unverifiable and insights are untraceable» [.claude/rules/material_provenance.md:10] и research_append_only (31.03, 54452ad4) -- «edited originals lose provenance» [.claude/rules/research_append_only.md:9]. Эти строки объясняют правила, а не момент замысла эндеворов как объекта.

Развитие: - 2026-05-12 16140189 (wind#304) -- правило system_knowledge (навигация «где лежит ответ о системе») и core/system_xref.py (граф перекрёстных ссылок, 7e6ed0b6). Почему: «150+ system docs exist but are distributed. Without navigation, each session re-discovers what was already documented» [.claude/rules/system_knowledge.md:76, раздел Why]. 07.05 раньше появился core/topology_audit.py (wind#279) -- «Collects data for topology audit method (wind#278)» [core/topology_audit.py:10]. - 2026-06-10 576744f5 (wind#1698) -- core/endeavor_graph.py + core/sql/create_endeavor_graph.sql: граф знаний по эндеворам (пилот Tongue, 105 узлов, 117 рёбер); на следующий коммит ea241db9 (wind#1699) -- core/graph_auto_enrich.py. Почему: «Palantir/Obsidian-inspired graph memory, Tongue pilot» [core/endeavor_graph.py:17]; автообогащение -- «OBS-83: recursive build-decompose loop» [core/graph_auto_enrich.py:21]. - 2026-06-11 93d722df (wind#1704) -- правило endeavor_source_dialogue: при создании эндевора в PROJECT.md сохраняется исходный диалог; в тот же день 3044299f (wind#1705) -- core/create_endeavor.py. Почему: «это источник, это начало начал, это endeavor. [...] наш диалог, мой вопрос и твой ответ -- это исходный референс» -- Borg (wind#1704) [.claude/rules/endeavor_source_dialogue.md:18]; «in 20 sessions nobody remembers WHY the task was framed this way» [там же :16]. 2026-06-21 d85826cf -- принудительная сверка карты эндеворов при создании: «Prevents dual-write drift AND index drift» (wind#1772) [core/create_endeavor.py:10, :39]. - 2026-06-17 8e347cf3 (wind#1749) -- эндевор autonomous_work: скилл autonomous-run и журнал прогона core/autorun_ledger.py; 2026-07-11 40db2bd4 -- добавлен сторож сессии. Почему: в шапках причина не названа (в записях скилла найдены только формулы статусов blocked/skipped) [.claude/skills/autonomous-run/SKILL.md:57-58]; причина не записана. - 2026-07-27 1afcd15a -- core/plan_order.py: порядок как отдельный выбрасываемый слой над реестром плана; 2026-09-06 71be3671 (круг 0003) -- plan_zastoy.py (одометр застоя) и plan_cold.py (выселение закрытых строк в холод). Почему: «The ledger holds ~65 items marked [OPEN], all equal, all flat» [core/plan_order.py:7]; «Reestr znaet "otkryt/zakryt" i NE znaet "proshli mimo N raz"» [core/plan_zastoy.py:16]; у строки есть признак завершения, но нет выселения [core/plan_cold.py:7]. - 2026-08-19 bce2e7d8 -- скилл endeavor (разрешимые признаки: закрыт ли круг, свободен ли номер) и прибор связности core/endeavor_check.py; тот же день 7f5962f0 -- core/svyaz.py («орган связи»: страница, говорящая человеку, можно ли вернуться к работе). Почему: «правило уровня памяти проигрывает» только детерминированному, поэтому в скилле нет пунктов вида «не забудь» [.claude/skills/endeavor/SKILL.md:13-15]; три исхода СОШЛОСЬ / РАЗОШЛОСЬ / НЕ ИЗМЕРЕНО -- «отсутствие сигнала не есть значение «ноль»» [.claude/skills/endeavor/METHOD.md:24]. - 2026-09-11/15 51c7d4df (core/orientir.py, сборщик доклада одним вызовом; 09-12 d7a1adde -- отбор приезжает в доклад сам, id#269) и 0fee4d4c (core/zakaz.py + хуки zakaz_gate.py, zakaz_registr.py, реестр заказа, хуки сначала инертные). Почему: для orientir в шапке -- «нет «мягких» исходов: код возврата ребёнка не перекрывается» [core/orientir.py:12]; для zakaz причина замысла не записана (в записи только сообщение коммита «organ ohranyaet DEYSTVIE, a ne formu zapisi», 20a11ca4).

Сейчас: функция ведёт «проекты» как объекты. Реестр плана (active_plan) читают три органа: порядок (plan_order), застой строки (plan_zastoy), холод (plan_cold). Эндеворы создаются через create_endeavor с обязательным исходным диалогом и сверкой карты; живость эндевора проверяет endeavor_check (шесть документов живого набора). Склейка знания о системе -- system_xref, topology_audit, document_topology, граф эндеворов (endeavor_graph, graph_auto_enrich). Самостоятельный прогон держит autorun_ledger и скилл autonomous-run; заказы -- zakaz; начало совместной сессии собирает orientir; состояние экрана «кто смотрит» показывает svyaz; незакрытые отклонения считает detour_tracker (2026-07-10); метка активного эндевора ставится active_endeavor_marker (2026-07-21).

Снято: - Таблицы exchanges_clean и acts и связанные пункты «Clean legacy / Clean merge / Provenance -> REMOVED wind#234» -- записано в каталоге инструментов [.claude/rules/tools_catalog.md:49-55]. - Ничего больше: в core/decommissioned.json органы F12 по досье не названы.

Пометки: - Происхождение до git: core/registry.py, core/validate_task_ids.py, .claude/rules/tools_catalog.md (последний -- 69 коммитов, живой справочник, шапки у него нет). - Правила 2026-09-08 (714e4a47, «Акт A линии delivery_conditionality») получили paths-frontmatter, тела без изменений: endeavor_source_dialogue, hook_native_migration, material_provenance, research_append_only. - Переименования: в журнале dev/errata.md по органам F12 прямых записей не найдено; строки журнала, попавшие в досье, касаются переименований эндеворов и файлов-документов (E-001 dev/projects -> dev/endeavors, [dev/errata.md:6]). - Дата коммита != дата замысла: zakaz и orientir -- результат разговоров сентября, до коммитов.

Сомнения рабочего: - core/system_xref.py, core/topology_audit.py, core/document_topology.py, .claude/rules/system_knowledge.md, .claude/hooks/xref_hint.py -- это «самознание системы» (в шапке xref_hint: «Part of Speculum (system self-knowledge, wind#319)» [.claude/hooks/xref_hint.py:8]), по смыслу ближе к карте/архитектуре или к здоровью (F10), чем к эндеворам. - .claude/rules/hook_native_migration.md (причина: «CC трижды забыл что защита уже реализована хуками» [.claude/rules/hook_native_migration.md:17]) -- про хуки и перенос в рантайм, не про проекты. - core/svyaz.py -- состояние экрана «агент смотрит / посмотри / можно закрыть» [core/svyaz.py:11-13]; по смыслу ближе к показу и браузеру. - .claude/skills/filesystem/SKILL.md (1 коммит, f27758b8) и core/validate_task_ids.py -- шапок с причиной нет; место в F12 -- только по шаблону имён. - core/registry.py -- что именно регистрирует, по шапке не определил; в F12 стоит по шаблону.


F13. База знаний документации (grov) и индексы

Органы: 15, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/02_RASKLADKA.md (разд. F13)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- пришло из forge, раньше 30.03: правило .claude/rules/docs_lookup.md, core/docs_search.py, core/build_index.py, core/build_symbol_index.py, core/build_w_index.py, core/index_databases.py, core/local_index.py, core/qdrant_docs_search.py, core/qdrant_search.py, core/w_inventory.py. Почему задумано: причина не записана -- коммит genesis ничего не объясняет. Само правило объясняет свою часть про среду выполнения: «надо ли детерминировать обращение к докам до разработки?» -- wind#164: хук написан наугад, сломался в работе, 3 итерации против 1 при заходе через доки [.claude/rules/docs_lookup.md:31].

Развитие: - 2026-04-03 (22fc52d1, wind#24) -- правило docs_lookup: «fix docs lookup priority -- grov DB first, fix FTS config bug» (сообщение коммита): источник номер один -- grov напрямую. Почему: причина не записана за пределами сообщения. - 2026-04-17 (b45efd07, wind#106) -- core/index_docs.py: «grov docs update -- Opus 4.7 discovery, index_docs.py, versioned re-index» (сообщение коммита). Почему: причина не записана. - 2026-06-03 (55ad39cf, wind#1643) -- core/index_external.py: индексация внешних материалов; 2026-06-09 (09da5930, wind#1682) -- core/grov_reindex_changed.py: «Grov auto-freshness» (сообщение коммита); 2026-06-21 (256b3c81) -- core/grov_source_dedup.py, детектор дублей по хэшу между источниками: «INCIDENTAL tiny shared count -- shared boilerplate/license, suppressed» [core/grov_source_dedup.py:15]. - 2026-06-22/29 (wind#1777; 88c9102a, eae190f1) -- содержимое вынесено из public.doc_chunks в отдельные схемы grov: «content migrated out of public.doc_chunks (wind#1777)» [core/docs_search.py:13]; затем в grov проиндексированы скиллы: «close L0 self-knowledge gap -- index .claude/skills/ into grov» (сообщение коммита eae190f1). - 2026-07-31 (98659602) -- w_inventory обновлён вместе с реестром снятых элементов (сообщение коммита). - 2026-09-29 -- решение Borg «полнота источника»: повод -- пост X (указатель, не источник) показал, что в grov по Cloudflare лежал указатель вместо документации [dev/active_plan.md:654]; запись решения -- dev/endeavors/grov_impl/PROJECT.md, раздел «РЕШЕНИЕ BORG: полнота источника» (по строке плана; сам раздел не открывал). - 2026-10-02 (8a1006e7, 95ca864e) -- index_docs.py: разбор нового формата документации Anthropic (front-matter, 10-2026) и отказ записи при неверном разборе (0 страниц / дубль адреса / число страниц не равно заявленному) [dev/active_plan.md:91; сообщения коммитов].

Сейчас: функция хранит локальную копию документации и самопознания системы в базе grov (таблицы doc_sources, doc_chunks, схемы Tongue) и даёт к ней доступ. Заполняют: index_docs (документация Anthropic), index_external (внешние материалы), grov_reindex_changed (обновление изменённого), index_databases, build_index/build_symbol_index/build_w_index/w_inventory/local_index (индексы собственных файлов). Читают: docs_search (смысловой поиск) и прямой запрос в doc_chunks по правилу docs_lookup (порядок: grov напрямую, docs_search, потом поиск в сети). grov_source_dedup ищет дубли между источниками. Qdrant-органы -- наследие forge.

Снято: нет записей о снятом для органов F13 (в досье поиск по реестрам не дал строк).

Пометки: - До git (forge): 10 органов выше. - docs_lookup.md получила paths: и холодный/горячий переезд (М3.5) -- по строкам плана [dev/active_plan.md:769-770]; в досье это даёт последний коммит cae94869 (2026-09-10) только по CDP, т.е. к правилу отношения не имеет по смыслу. - Дата коммита != дата замысла.

Сомнения рабочего: - core/qdrant_docs_search.py, core/qdrant_search.py -- ровно один коммит (genesis), шапка называет таблицы forge (observations, errors, decisions) [core/qdrant_search.py:52-57]; живые ли -- не проверял. - core/build_index.py, build_symbol_index.py, build_w_index.py, index_databases.py, local_index.py -- по одному-трём коммитам, последний 2026-03-31; органы, возможно, давно спят (в плане М3.10 «спит 41» -- не сверял). - core/index_external.py -- заводит reference_ext_<slug>.md в памяти [dev/errata.md:511], т.е. часть работы -- в F05; dev/errata.md:533 говорит о расхождении маркеров этого органа. - core/w_inventory.py -- опись файлов проекта, а не grov; стоит здесь по шаблону имени. - Расхождение дат в docs_lookup.md: «последний» коммит cae94869 (CDP) -- вероятно, затронул правило косвенно; сути не касается.


F14. Объектная память и досье

Органы: 2, список -- 02_RASKLADKA.md (разд. F14)

Замысел: 2026-05-13 (cdabd3c0, wind#314) -- core/object_memory.py: «двухкамерная объектная память (pull-инструмент)» [коммит cdabd3c0]. Почему: причина в шапке не записана; в заголовке -- только устройство (две камеры).

Развитие: - 2026-05-15 c1f0ee11, b16b34dc (wind#325) -- исправления после ревью: фильтр по экосистеме, дедупликация, очистка документов. Почему: найдено ревью (заголовки коммитов). - 2026-05-29 0e12a241 (wind#1594) -- cc_memory_items встроены в камеру опыта. Почему: причина не записана. - 2026-06-22 88c9102a -- Tongue, фаза 5: перемонтаж чтения, docs_search и object_memory схемо-зависимы [коммит 88c9102a]. Почему: причина не записана. - 2026-07-19 c227cfa8 (E-022) -- восстановлено хранилище data/objects. Почему: корневая причина мёртвого слоя досье -- data_lifecycle (wind#1571) переместил data/objects/ в data/_ref/objects/, а object_memory.py читал старый путь; read_dossier() возвращал пусто [dev/errata.md:227-228]. - 2026-07-30/31 2aae3088 -- пометка мёртвых деклараций; get_terms отдавал одно слово вместо десяти, поиск по объектам деградировал без сигнала -- исправлено [dev/errata.md:272].

Снято: нет записей о снятом (кроме исправленного дефекта пути data/objects, E-022).

Сомнения рабочего: - В функции только 2 органа; сама функция (хранилище досье, словари, object_memory как инъекция в context_inject) шире -- часть кода может числиться в других функциях. - Шапка object_memory.py причины не называет; PROJECT.md эндевора не открывал.


F15. Браузер

Органы: 14, список -- 02_RASKLADKA.md (разд. F15)

Развитие: - 2026-05-26 9b3ce3fc, 3130168c (wind#1580, #1581) -- безопасность и архитектура browser_read (4 исправления, «P0 gate-level»); владение вкладками, ограничитель частоты, режимы навигации в самом инструменте. Почему: причина не записана (коммиты перечисляют изменения). - 2026-05-27 f27758b8 (wind#1589) -- скилл browser (рождение SKILL.md; к 29.09 -- 52 коммита): карты сайтов, ловушки. Тогда же появились скиллы filesystem и error-response. Почему: причина не записана. 2026-05-30 959ada76 (wind#1606) -- правило url_three_sources и core/browser_monitor.py. Почему для правила: «Сочинять ссылки -- это критическая ошибка. Это подстава меня. Это слом всей работы» -- Borg, wind#1606 [.claude/rules/url_three_sources.md:36]. - 2026-07-06 967ae546 -- правило владения вкладками получило «evidence-backed certainty + persistent marker»: «если ты уверен, а уверенность должно что-то подтверждать, например, лог» -- Borg, сессия 0afa1fd3 [.claude/rules/browser_tab_ownership.md:18]. - 2026-09-24 22081c8e -- «браузер как человек»: ядро скилла первым разделом browser/SKILL.md и вместо текста правила; запись инструмента решает, что «моё»; создан HISTORY.md. Почему: «Если все правила по скилле по работе составляют определенные проблемы, что ты не можешь ими нормально пользоваться, значит это недостаток этого» -- Borg, сессия 9e0beaec / 681ac164 [.claude/skills/browser/HISTORY.md:4, .claude/rules/browser_tab_ownership.md:27-28]. Тогда же проверка платежа/сообщений перенесена в browser_read [dev/active_plan.md:323]. - 2026-09-26..29 -- 1cab6153 (М3.18): инструмент закрывает окно «Восстановить страницы?» после сбоя [dev/active_plan.md:274]; a22ca93f, 67e8f55a: --type больше не жмёт чужие клавиши, читает поле после набора (несовпадение -- TYPE MISMATCH, код 2). Почему: слово Borg 2026-09-29 -- «это сигнал для работы, которую мы должны сделать потом. Это недостаток нашего браузера [...] это наша отложенная работа» [dev/active_plan.md:652].

Снято: - Раздел скилла «ВЫЗОВ: что ломает разбор» -- УСТАРЕЛ вместе с текстовым хуком message_send_gate; вынесен в HISTORY.md [.claude/skills/browser/HISTORY.md:8-10]; совет «CDP напрямую, двадцать строк на websocket» ушёл с ним [.claude/skills/browser/HISTORY.md:13]. - Длинный текст правила browser_tab_ownership заменён коротким ядром (2026-09-24) [dev/active_plan.md:324]. - Нет записей о снятом по остальным органам.

Пометки: - Происхождение до git: нет (самый ранний орган -- 2026-05-13). - Переименований в errata.md для органов F15 не нашёл (упоминания в досье -- про другие скиллы: E-012, E-016). - Дата коммита != дата замысла: правило о вкладках (05-13) старше инструмента (05-18).

Сомнения рабочего: - core/site_emulator.py (эмулятор-диагност страниц) и core/page_sweep.py (обход страницы) -- тестирование СВОИХ страниц/продукта; к браузеру как инструменту отнесены по имени пути, по смыслу ближе к функции проверки/тестов. - Строка dev/active_plan.md:765 («localhost -> 127.0.0.1») возможно устарела: коммит cae94869 (2026-09-10) пишет «CDP_HTTP 127.0.0.1 (живой Chrome: 2,03 s -> 0,0125 s на вызов)» -- не сверял, одно и то же ли это. - .claude/skills/browser/SKILL.md -- 52 коммита, развитие читал по датам первых/последних, не по всем.


F16. Внешние модели и рабочие (труд на дешёвой модели)

Органы: 13, список -- 02_RASKLADKA.md (разд. F16)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- core/gemini_search.py, первое обращение к внешней модели -- пришло из forge, раньше 30.03. Следом 2026-04-14 a17e84d8 (wind#86) -- core/enrich_via_gemini.py: «query expansion -- Gemini enrichment of corpus dict» [core/enrich_via_gemini.py:12]. Почему задумано: причина не записана (шапки и коммиты описывают устройство). Идея «труд -- на дешёвую модель» как отдельная линия -- 2026-06-02 (f4753f05, wind#1635, скилл local-model: локальная модель через Ollama); причина не записана.

Развитие: - 2026-06-20 e05465fd -- правило tool_cost_before_launch: оценивать стоимость ДО запуска любого веера агентов. Почему: «за час истратить 84%... в чём эффективность работы? при этом задачи относительно невелики» -- Borg, сессия 8ece9f2b, wind#1760 [.claude/rules/tool_cost_before_launch.md:15]; инцидент: два прогона deep-research подряд сожгли ~13,2 млн токенов (~90% дневного лимита) за час [.claude/rules/tool_cost_before_launch.md:17]. - 2026-07-27 0694361b -- core/llm_call.py: маршрутизация по (класс задачи, класс данных), «full probirshchik package» [сообщение коммита]; 2026-07-28 13d7f79e -- модуль разрезан на llm_backends.py и llm_registry.py («cut the module where the dependencies allow, not where I wanted»). 2026-07-29..30 -- ось исполнения, «the prompt leaves argv» (8169a69f), ранжирование, считавшее несуществующие варианты (925dc543); ARGV_LIMIT переименован в PROMPT_LIMIT (E-023) [dev/errata.md:232]. Почему: причина замысла llm_call не записана в тех строках, что я читал (шапка core/llm_registry.py:9 имеет раздел «WHY THIS MODULE EXISTS» -- не открывал). - 2026-07-30 5e92959b -- правило subagent_launch_scope: не запрет класса, а гейты по цене, масштабу и множителю. Почему: «Разумно, если ограничение касается модели дороже, чем Opus 5, а не всех, которые дешевле. [...] Ты являешься определённой точкой отсчёта» -- Borg, сессия token-economics-wind1761 [.claude/rules/subagent_launch_scope.md:47-48]; запрет класса невыполним, потому что ревью требует >=2 линз-субагентов [.claude/rules/subagent_launch_scope.md:3, правило целиком]. 2026-08-01 c4e9a1df -- llm_journal_report.py: журнал получил читателя «и читатель нашёл, что журнал загрязнён» [сообщение коммита]. - 2026-08-09 1dbcfd1a -- core/run_work.py («ворки: единая пусковая база, три роли»); 2026-09-09 be97f89d -- core/worker_run.py: рабочий-ребёнок claude -p с Bash и защитой, изоляция состояния хуков; 349d7594 -- «ребёнок не есть наша сессия» (--no-session-persistence). Почему: причина не записана в коммитах; core/worker_run.py -- леджер data/worker_runs.jsonl и построение рабочего упомянуты в dev/active_plan.md:696. - 2026-09-09 7ba01839 -- wind_sonnet.bat: «Решение Borg (сессия 75549f7a, 2026-09-09): "билды ты можешь запускать сам [...] батник удобнее положить"» [wind_sonnet.bat:3]. 2026-09-11 d19bb28d -- core/rabochiy.py: рабочий в песочнице вне проекта; пониженный приоритет «живёт здесь строкой кода, а не хуком» после 3 инцидентов зависания [core/rabochiy.py:22]. - 2026-09-30 23ecd793 -- умолчание worker_run haiku -> sonnet. Почему: «slovo Borg: Sonnet 5.5 -- osnovnoy trud» [сообщение коммита 23ecd793].

Снято: - Класс-запрет на субагентов -- не принят, правило прямо отвергает его [.claude/rules/subagent_launch_scope.md:3, :33-36]. - ARGV_LIMIT -> PROMPT_LIMIT (E-023) [dev/errata.md:232-239]. - Тексты правил subagent_launch_scope разрезаны 2026-09-26 (8 738 -> 4 507 знаков, прежние тексты дословно в dev/endeavors/system_blueprint/PROVENANCE_subagent_launch_scope.md) [dev/active_plan.md:1730]. - Нет записей о снятом по остальным органам.

Пометки: - Происхождение до git: core/gemini_search.py -- из forge. - Переименования: ARGV_LIMIT -> PROMPT_LIMIT (E-023). - Дата коммита != дата замысла: правило subagent_launch_scope -- разговор в сессии token-economics-wind1761, итог которого лёг в 07-30.

Сомнения рабочего: - core/gemini_search.py, core/enrich_via_gemini.py -- внешний ПОИСК/обогащение корпуса, не маршрутизация труда; по смыслу близки к поиску (recall/search), стоят в F16 как обращения к внешней модели. - core/run_work.py, core/rabochiy.py, core/worker_run.py -- три пусковые базы, соотношение не выяснено: run_work.py (08-09, «единая пусковая база»), rabochiy.py (09-11, песочница) и worker_run.py (09-09). Какие живы, из шапок не видно. - В плане [dev/active_plan.md:1503] упомянут labor_decider_gate (решатель) -- орган функции «труд на рабочего», но в досье F16 его нет: вероятно, лежит в другой функции (сторожа/хуки).


F17. Telegram

Органы: 2, список -- 02_RASKLADKA.md (разд. F17)

Замысел: 2026-05-20 (01df8117, wind#357) -- скилл .claude/skills/telegram-test/SKILL.md и core/telegram_test.py рождены вместе, в коммите «knowledge platform method + Golem corpus audit + GolemClaw object memory» [коммит 01df8117]. Первое назначение -- сквозная проверка ботов Golem через Telethon (MTProto): «send messages to Telegram bots and verify they respond» [.claude/skills/telegram-test/SKILL.md:8]; в шапке скрипта -- команды golem, --list-golem, folder-list, folder-add, read [core/telegram_test.py:9-14]. Почему задумано: причина не записана -- коммит многотемный и ничего не объясняет.

Развитие: - 2026-05-23 d648a072 (wind#1567) -- пределы скилла и правки дизайна v1 после ревью. Почему: найдено ревью (заголовок коммита). - 2026-05-31 5965cf2d (wind#1607) -- управление папками Telegram и опрос бота хакатона. Почему: причина не записана. - 2026-06-06 02a8f688 (wind#1664) -- команда чтения read (часть коммита про хвост инъекции) [коммит 02a8f688]. Почему: причина не записана. - 2026-06-09 b782c303 (wind#1684) -- эндевор TG Digest, обогащение ответов (reply_to) через Telethon [коммит b782c303]. Почему: причина не записана. - 2026-09-10 ac29c463 -- отступление A4: решение Borg записано («дешёвое не трогать, чинить что мешает»); узко -- починен фронтматтер argument-hint [dev/active_plan.md:750].

Сейчас: core/telegram_test.py -- Telegram по пользовательской сессии Telethon: тест ботов (одного или группы Golem), список чатов и добавление в папку, чтение канала/чата с пределом и поиском. Скилл telegram-test велит начинать с Telethon для ЛЮБОЙ задачи по Telegram (ссылки t.me, чтение каналов, тесты ботов), браузер -- запасной путь [.claude/skills/telegram-test/SKILL.md:3].

Снято: нет записей о снятом.

Пометки: - Дата коммита != дата замысла: канал Telegram -- часть линии Golem/хакатона (май 2026); отдельного замысла в шапках нет. - Последняя правка кода -- 2026-07-17 (62254450, в коммите про сайт); после этого telegram_test.py не менялся.

Сомнения рабочего: - Эндевор TG Digest (b782c303) и чтение больших групп с last_read_id (упомянуты в памяти) -- возможно отдельные органы вне core/telegram_test.py; в F17 их нет. - Причина замысла нигде не записана; источники сверх шапок не открывал (дополнительно прочитаны только head двух органов).


F18. Публикации (Zenodo, проверка текста)

Органы: 10, список -- 02_RASKLADKA.md (разд. F18)

Замысел: 2026-04-09 (0a93aa83, wind#48-60) -- правило publish_bilingual: у публикации два самостоятельных оригинала, RU и EN. Почему: «RU = user's native language, audience. EN = AI/IT industry and international communication. Translation carries dependency on source language; independent originals activate different corpus subspaces» [.claude/rules/publish_bilingual.md:9]. Следом 2026-04-17 6ac08245 (wind#107) -- правило publish_source_linkage (связь публикации с эндевором-источником). Первая публикация на Zenodo -- 2026-05-30: скилл zenodo-publish.md (46b68804, wind#1603) и core/zenodo_deposit.py (6cfb4534, wind#1604, «SiPsy/Psina published on Zenodo»).

Развитие: - 2026-04-17..26 -- связь публикаций с источниками. Почему: «мы изначально оговаривали что публикации имеют отсылку к материалам, но видимо не поставили в правило, не детерминировали условие» -- Borg, wind#178 [.claude/rules/publish_source_linkage.md:20]; замер -- «publication = 0 для всех зрелых эндеворов» [там же]. - 2026-06-06 90b44255 (wind#1662) -- скилл verify-publication: проверка документа перед выходом. Почему: «Publication = irreversible action. [...] Ad hoc checking is insufficient (proven: 3+ incidents with leaks despite manual review)» [.claude/skills/verify-publication/SKILL.md:14]; тогда же 203cfbdb -- починка последовательной деанонимизации P-кодов. - 2026-06-16 f551c93f (wind#1738) -- «2 publications on Zenodo»: zenodo-publish из одного файла стал каталогом SKILL.md; запреты: «C1. CANNOT put AI in creators field» -- с пометкой «Proven: wind#1738» [.claude/skills/zenodo-publish/SKILL.md:44]. 2026-06-19 4b1aeab2 -- подпись автора и ORCID, соглашения Zenodo. - 2026-06-21 -- «candidate gate + freeze» в verify-publication: «та версия, которая идёт в публикацию, последняя проверка является полной в любом случае» -- Borg, wind#1759 [.claude/skills/verify-publication/SKILL.md:31]; 2026-07-04 fd22e036 -- в verify-publication встроена лингвистическая проверка (Layer 4B: L1/L2/L3 от Tongue). - 2026-09-10 cae94869 -- «CDP_HTTP 127.0.0.1»: вызов браузера в zenodo-publish и verify-references ускорен (2,03 с -> 0,0125 с на вызов) [сообщение коммита]. Смысл функции не менялся.

Сейчас: функция ведёт выпуск текста наружу: оригиналы на двух языках (publish_bilingual), обязательная ссылка публикации на эндевор-источник (publish_source_linkage), подготовка текста (publish-prepare), проверка перед выходом (verify-publication: утечки личного, анонимизация, внутренние ссылки, согласованность версий, лингвистический аудит; verify-references: сверка утверждений со снимками страниц), загрузка и публикация на Zenodo (zenodo-publish + core/zenodo_deposit.py; автор -- человек, не ИИ; публикация -- только после подтверждения Borg). tongue и stream-transcript -- вспомогательные скиллы (лингвистический разбор; расшифровка эфиров), см. сомнения.

Снято: - zenodo-publish.md (2026-05-30) вытеснен каталогом zenodo-publish/SKILL.md (2026-06-16) -- запись о снятии не найдена, судя по датам; оба пути в досье числятся органами. - Нет записей о снятом по остальным органам.

Пометки: - Происхождение до git: нет (самый ранний орган -- 2026-04-09). - Переименований органов F18 в errata.md не нашёл (упоминания в досье -- про другие объекты: E-012, E-016, переименования tongue). - Дата коммита != дата замысла: идея связи публикаций с источниками -- wind#178, правило записано 04-17.

Сомнения рабочего: - .claude/skills/tongue/SKILL.md -- лингвистический разбор текста (рождён 2026-06-16, wind#1739-1740 вместе с source-analysis); служит и публикациям (Layer 4B), но по смыслу отдельный прибор; в F18 -- по шаблону пути. - .claude/skills/stream-transcript/SKILL.md -- расшифровка стримов («v1 from Golem hackathon streams», [.claude/skills/stream-transcript/SKILL.md:3]), к публикациям прямого отношения в записях не нашёл. - zenodo-publish.md и zenodo-publish/SKILL.md -- два органа с одним именем; не проверял, жив ли старый файл.


F19. Страницы событий (продукт-прототип)

Органы: 6, список -- 02_RASKLADKA.md (разд. F19)

Замысел: 2026-07-12 (13088222) -- core/assemble_event_page.py: генератор страницы события «выпущен» из dev/scratch в core/ (graduate), v2 с необязательными слоями. Почему: причина самого замысла в шапке не записана; в коммите -- «event-page v2 optional layers + graduate generator to core/» [коммит 13088222]; перенос зафиксирован эрратой E-020 [dev/errata.md:203]. Три шаблона templates/recall/*.html (2026-04-12, f82072f3, wind#73) в этой функции -- по шаблону пути, не по смыслу (см. «Сомнения»).

Развитие: - 2026-07-12 fe119888, f568f201 -- липкая панель управления, значок воспроизведения у строки, автопрокрутка и сохранение настроек. Почему: «Borg UX feedback» [коммит fe119888]. - 2026-07-13 e4c05061 -- core/build_event_pages.py: воспроизводимая сборка по манифесту. Почему: «the build recipe was LOST -- pages were rebuilt by reverse-engineering» (инцидент 2026-07-13) [core/build_event_pages.py:9]. - 2026-07-13 7ebc36b7 -- локаль-макросы: английский по умолчанию, i18n, навигация по дням, хаб. Почему: причина в шапке не записана. - 2026-07-15 4d076bc7, eb8f4e99, a22f7b86, a0d7f45d -- фирменный тёмный дизайн хаба, подпись, французский через Haiku, общий футер Serpentis. Почему: причина не записана (в заголовках коммитов -- только перечень). - 2026-07-20 fe61142f -- вьювер v7: кнопки размера панели после «инверсии». Почему: причина в шапке не записана. 2026-07-30 2aae3088 -- три мёртвые декларации помечены, одна «пережила свой замысел» [core/assemble_event_page.py:32-37]. 2026-08-09 f93dc7a3 -- переключатель стоп/воспроизведение на шкале (TASK-001, «первый ворк») [коммит f93dc7a3].

Сейчас: assemble_event_page.py собирает одну страницу события (видео-расшифровка с таймлайном, панель управления, переключатель языков; два параметра языка -- базовая дорожка как факт и язык открытия как решение аудитории [core/assemble_event_page.py:45-46]); build_event_pages.py пересобирает страницы дня по манифесту; build_series_hub.py собирает страницу-хаб серии. Это прототип, не готовый продукт.

Снято: - Радио-модель выбора языка «нет» -- поглощена всегда-выпадающим селектором (wind#1856) [core/assemble_event_page.py:32-37]; три мёртвые декларации аннотированы 2026-07-30 (2aae3088). - Прочее: нет записей о снятом.

Пометки: - assemble_event_page.py -- переименование/перенос dev/scratch -> core/ (graduate, E-020, 2026-07-12) [dev/errata.md:203]. - Дата рождения шаблонов templates/recall/ -- 2026-04-12, намного раньше генератора. - Дата коммита != дата замысла: страницы событий и вьювер до 12.07 жили в dev/scratch и эндеворе (не искал).

Сомнения рабочего: - templates/recall/base.html, index.html, session.html -- шаблоны веб-интерфейса recall (слой актов, wind#73, f82072f3), к страницам событий отношения не имеют; стоят здесь из-за шаблона пути templates/. Вероятнее функция recall. - Целевая причина замысла (зачем страницы событий) в шапках не записана. - Дополнительные источники (dev/endeavors/event_page_saas/...) не открывал по лимиту чтений.


F20. Сигналы, ошибки, время, ввод

Органы: 10, список -- 02_RASKLADKA.md (разд. F20)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- core/cc_signal.py, core/bloom_core.py, core/debug_mode.py -- пришло из forge, раньше 30.03. Почему задумано: «CC emits signals about decisions, deferrals, blockers, progress» [core/cc_signal.py:8]; debug_mode собирает «Recent errors, incidents, disk/memory usage» [core/debug_mode.py:9]. Причина самого решения иметь канал сигналов -- не записана (шапки описывают устройство). Для bloom_core.py шапка в досье не показана -- причина не записана.

Развитие: - 2026-03-31 ee3f023a (wind#5) -- core/_bloom_errors.json появился в коммите «close DROP TABLE vulnerability + restore error_gate» [коммит ee3f023a]; зачем файлу быть в этой функции -- не записано (см. «Сомнения»). - 2026-04-13 5fc517e2 (wind#81) -- core/text_utils.py: единая защита от символа-заменителя U+FFFD для четырёх потребителей JSONL. Почему: «wind#80: unified clean_text to strip U+FFFD from all JSONL consumers» [core/text_utils.py:3]; сопутствующее объяснение зараженности данных -- в правиле окружения (psql и кириллица: «498 exchanges, wind#150») [.claude/rules/environment_constraints.md, раздел «psql + Git Bash + Cyrillic»]. - 2026-04-22 29d93622 (wind#132) -- core/annotate_errors.py: слой пометок ошибок, в коммите «annotation layer + modular architecture inception». Почему -- причина в шапке не названа. - 2026-05-13 89143d8a, be5f187d (wind#312) -- core/input_logger.py: журнал ввода («input_logger + adhoc parse aikido»); потом правка зонной обрезки. Почему -- причина не записана. - 2026-06-03 55ad39cf (wind#1643) -- core/voice_input.py: прототип голосового ввода (коммит «voice_input prototype»). Причина не записана. - 2026-07-04 8d37a9b2, 2026-07-31 475fe568 -- cc_signal.py: закрыто тихое воскрешение дублей (находка silent-failure-hunter) и расщеплён указатель эпохи цепочки «на зачёт и охват» (акт п.159) [коммиты 8d37a9b2, 475fe568]. Также комментарий о недостижимой БД, которая блокировала вызов [core/cc_signal.py:43]. - 2026-07-09 f0fa21fb, 10a6f7db -- core/correction_miner.py: офлайн-поиск поправок Borg по recall -- «467 correction candidates»; объект correction_incident_detector (калпа Delta=0) [core/correction_miner.py:4, коммит f0fa21fb]. - 2026-09-04 04a00c67 -- core/chas.py, «Часы: прибор времени». Почему отдельный скрипт, а не вставка в инжект: «Часы в ПРЕФИКСЕ контекста ломали бы кэш» [core/chas.py:6].

Сейчас: шесть родов мелких приборов. (1) Сигналы: cc_signal.py -- запись решений, откладываний, блокеров, ошибок в таблицу cc_signals (стартовый хук потом подмешивает ошибки в следующую сессию). (2) Ошибки: annotate_errors.py и _bloom_errors.json / bloom_core.py. (3) Отладка: debug_mode.py. (4) Время: chas.py -- часы по запросу, без вставки в префикс. (5) Ввод: input_logger.py, voice_input.py (прототип), text_utils.py (очистка символа-заменителя). (6) Поправки: correction_miner.py -- ищет в архиве места, где Borg поправлял агента.

Снято: нет записей о снятом (в досье для органов F20 нет упоминаний в decommissioned, errata, плане как о выводе из обращения). Замечание: core/cc_signal.py:55 сообщает о замене мёртвого current_session.txt методом по JSONL (wind#280) -- заменён способ определения сессии, не орган.

Пометки: - Происхождение до git: cc_signal.py, bloom_core.py, debug_mode.py -- из forge; в день genesis cc_signal.py получил ещё коммит (32fd5244, маркер экосистемы wind). - Дата коммита != дата замысла: chas.py -- итог сессии о времени, а не момент задумки.

Сомнения рабочего: - core/_bloom_errors.json и core/bloom_core.py -- по имени «bloom» относятся к прежнему механизму (не читал); _bloom_errors.json пришёл в коммите о блокировке DROP TABLE и error_gate (ee3f023a), то есть по смыслу ближе к F01 (охрана данных), а не к сигналам. - core/correction_miner.py -- добыча по recall (архив разговоров); по смыслу возможно ближе к функции памяти/поиска. - core/text_utils.py и core/input_logger.py -- чистка текста и журнал ввода: стоят в «ввод» по шаблону пути; text_utils потребляют конвейеры recall, возможна принадлежность к F-функции конвейера. - Пункт плана 201 описывает канал инцидентов через capture_incident.py, которого в F20 нет, -- расхождение между границей функции и записью в плане. - Для annotate_errors, input_logger, voice_input, bloom_core причина замысла в просмотренных строках не названа.


F21. Доступ к базам данных

Органы: 9, список -- dev/endeavors/system_blueprint/ISTORIYA_20261003/02_RASKLADKA.md (разд. F21)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- пришло из forge, раньше 30.03: .claude/rules/db_schema.md, core/db_config.py, core/db_schema.py; в тот же день (32fd5244, «ecosystem marker + clean db_registry + recall multi-dir») -- core/db_registry.json. Почему задумано: причина не записана. Косвенно: в реестре forge-база помечена «frozen -- Read-only historical reference» [core/db_registry.json:11] -- т.е. реестр с самого начала разделял «своё» и «унаследованное».

Развитие: - 2026-04-02 (1dbedcf1, wind#17) -- .mcp.json и core/mcp_postgres.py: MCP-доступ к PostgreSQL. Затем (6444dcdc) mcp_postgres.py перенесён в dev/archive/ как «deferred architecture, not dead code» (сообщение коммита). Почему: причина шага «отложить» -- только эта фраза. - 2026-04-17/21 (6ac08245 wind#107; 94fd1232 wind#127) -- в реестр добавлены базы reactor, dev_docs; «superuser gate relaxed» (сообщения коммитов). Почему: причина не записана. - 2026-04-19 (ad2390b6, wind#118) -- get_connection(): миграция 36 мест вызова в 15 файлах на единый доступ. Почему: причина в сообщении не названа (только объём). - 2026-06-02 (c77a908a, wind#1619) -- база Genesis (core/genesis_load.py), скилл pg-search, расследование поиска по PG. Почему: причина не записана за пределами сообщения. - 2026-06-16 (8765ac8a, wind#1739-1740) -- MCP Discord отключён: «no bot token configured, reactivate when Discord monitoring scope defined» [.mcp.json:6]. - 2026-09-24/25 (e8002785 N5PY; 7d1f90d3 N7) -- проверка разрушающего SQL переехала на момент исполнения через core/db_config (core/db_safety.py, см. F01); запись в боевые таблицы -- через core/prod_apply.py: «не доверяя тексту команды и не давая агенту выдать разрешение самому себе» (вопрос из шапки, [core/prod_apply.py:4]; строка в досье обрезана). Ворота G012 по тексту команды сняты: «8 ложных из 29 остановок, дверь-отметка без слова Borg» [dev/active_plan.md:328]. - 2026-09-23/27 (69a737ee; 35f05405 M3.7 семья 3) -- в реестр внесены 5 баз, которых не было «ни в одной копии» (Chat, agent_memory*, tongue_baseline), и создана стендовая база recall_stand «по санкции Borg» (сообщения коммитов).

Снято: - Ворота G012 (разрешение записи в боевые таблицы по тексту команды) -- сняты 2026-09-25 актом N7, замена -- prod_apply [dev/active_plan.md:328, 7d1f90d3]. - mcp_postgres.py -- отложен 2026-04-02 (6444dcdc); лежит ли он сейчас в core/ (досье включает его как орган) -- не проверял. - MCP Discord -- отключён [.mcp.json:6].

Пометки: - До git (forge): db_schema.md, db_config.py, db_schema.py, db_registry.json (по genesis; сам реестр -- 2026-03-30 32fd5244). - dev/errata.md:400 -- имя БД injective не меняется как идентификатор в реестре. - Дата коммита != дата замысла.

Сомнения рабочего: - core/migration_stats.py -- по смыслу счётчик срабатываний хуков [dev/errata.md:578-588], а не доступ к БД; стоит в F21 по шаблону «migration». Ближе к наблюдаемости хуков. - core/mcp_postgres.py -- см. выше: 2026-04-02 два коммита (создан и «move to dev/archive»); при этом в досье он числится органом, расхождение не разрешил. - core/genesis_load.py -- загрузка базы Genesis (разовая); сейчас ли нужна -- не знаю. - core/prod_apply.py -- по смыслу ближе к охране данных (F01/F08): применение к боевым таблицам по слову Borg. - Строка dev/active_plan.md:365 расходится с git по пяти базам вне реестра (внесены 09-23).


F22. Замеры и испытания (исследовательские приборы)

Органы: 10, список -- 02_RASKLADKA.md (разд. F22)

Замысел: 2026-04-19 (55d5c9e9, wind#119) -- core/calibrate.py, «injection calibration utility». Почему: «wind#119: make hardcoded tuning explicit and portable» [core/calibrate.py:3]. Genesis-органов (раньше 30.03) в функции нет.

Развитие: - 2026-04-29 8098edbc (wind#235) -- core/twopass_report.py: двухпроходное измерение (уровень L0) по журналу впрыска. Почему: методика записана в kalpa_twopass_measurement.md (wind#235), источник данных -- data/injection_log.jsonl, поле result_sources [core/twopass_report.py:4-5]; причину, по которой нужно было измерять, шапка не называет. - 2026-05-12 c36cb090 (wind#308) -- core/test_embed_overlap.py: «epistemic assessment -- which chronometer is right?» [core/test_embed_overlap.py:9] -- сравнение каналов двойной выдачи памяти (BGE). - 2026-06-13 d63d4d31, 2256eba2, bd85b7f9 (wind#1721..1723) -- core/test_module_c_feedback.py: «does Module C find the right feedback» (задача D4 плана wind#1720) [core/test_module_c_feedback.py:4]; по сообщениям коммитов попадание подмодуля выросло 0% -> 40% -> 79,2% -> 87,5% [коммиты d63d4d31, 2256eba2, bd85b7f9]. - 2026-06-15 d23baaee (wind#1736) -- «программа замеров M1-M5 (4 из 5 готовы)»: measure_convergence.py, measure_decay.py, measure_false_positive.py [коммит d23baaee]. Почему -- в шапках скриптов причины нет; в сообщении коммита названа программа M1-M5. - 2026-07-27 1afcd15a, c0fb9cdd, 2026-07-31 b395f235, 076749dd -- core/test_plan_order.py (проба инструмента порядка плана). Почему: «an item marked [TOP] that the queue omits (the incident this tool exists for)» [core/test_plan_order.py:16]; второй коммит: «the order tool was measurably lying, and its probe certified it green» [коммит c0fb9cdd]; третий: читатель реестра «был слеп к ОБЪЯВЛЕННОЙ схеме, и слепота выключала охранников» [коммит b395f235]. - 2026-07-28 .. 2026-07-30 13d7f79e, 3ba5969f, 925dc543, a79e0b44, 12e51487, 8169a69f -- core/test_llm_call.py: тесты модуля доступа к моделям (llm_call), вынесенные из него («WHY IT MOVED OUT», core/test_llm_call.py:7); коммиты правят и сами тесты («a test satisfied by its own label», 12e51487). - 2026-09-11 b3b76625, 2026-09-16 4f716c79 -- core/test_r10_poryadok_resheniy.py: проба метки отмены решения в хендоффах (R10 «порядок решений», core/test_r10_poryadok_resheniy.py:54-59); величина R10 разделена по признаку «существует ли высказывание» [коммит 4f716c79].

Сейчас: десять отдельных скриптов-проб и замеров. Часть измеряет прежнюю память-впрыск (калибровка, перекрытие вложений, двухпроходный отчёт, сходимость/затухание/ложные срабатывания), часть -- самотесты отдельных органов (порядок плана, доступ к моделям, метки отмены решений в хендоффе, обратная связь подмодуля C). Единого запуска нет -- каждый запускается сам по себе.

Снято: нет записей о снятом. (Единственное упоминание в журнале переименований -- core/llm_backends.py / core/test_llm_call.py:45, обновление ссылок, не вывод из обращения [dev/errata.md:239].)

Пометки: - Дата коммита != дата замысла: измерения M1-M5 (06-15) -- итог программы, шедшей раньше (wind#1736). - Для measure_* причина замысла не записана в самих файлах; шапки не читал далее первых строк досье.

Сомнения рабочего: - Функция -- смесь трёх родов: (1) исследования качества памяти/впрыска (calibrate, test_embed_overlap, twopass_report, measure_*, test_module_c_feedback), (2) тесты других органов (test_plan_order -> план, test_llm_call -> доступ к моделям, test_r10… -> хендофф). Вторые по смыслу принадлежат функциям тех органов, а не «замерам»; в F22 стоят по шаблону имени test_/measure_. - core/calibrate.py по сообщениям коммитов позже занималась алиасами сессий и фильтром чистого текста (wind#146, #243) [коммиты 6f45f1a9, ef89f3cf, 5a43b8f5] -- вероятно, часть её давно к калибровке не относится; не проверял.


F23. Golem и Cloudflare (внешние платформы)

Органы: 3, список -- 02_RASKLADKA.md (разд. F23)

Замысел: два независимых корня. - Cloudflare: 2026-07-16 (301c3e4e) -- скилл cloudflare вместе с эндевором serpentis_site («Cloudflare toolkit + firm positions») [коммит 301c3e4e]. Почему: «Работа с Cloudflare как основным хостером на БЕСПЛАТНОМ плане» [.claude/skills/cloudflare/SKILL.md:3]; правило плана -- «по умолчанию считаем FREE. Любой шаг, требующий Paid -- ЯВНО пометить и спросить Borg» [.claude/skills/cloudflare/SKILL.md:11].

Развитие: - 2026-05-20 a099239b, d7329e7a (wind#360) -- GolemClaw: исправление скилла (самопланирование работает локально), находки QA и наблюдения платформы. Почему: причина в шапке не записана. - 2026-05-27/28 f27758b8, 65cb2518 (wind#1589, #1590) -- скилл встраивается в набор скиллов, карта экосистемы Golem. Почему: причина не записана. - 2026-07-19 7bace9af -- Cloudflare: граф знаний из документации; c227cfa8 -- восстановлено хранилище досье data/objects (E-022), от которого зависит объектная память по Cloudflare и Golem [dev/errata.md:227-228]. - 2026-09-10 cae94869 -- в golem-bots адрес браузерного канала CDP -> 127.0.0.1 (замер: 2,03 с -> 0,0125 с на вызов) [коммит cae94869].

Снято: нет записей о снятом.

Пометки: - Дата коммита != дата замысла: Golem-линия началась с хакатона (май 2026), коммит 9c305b99 -- подготовка. - Объектные досье golem (88 фактов) и cloudflare (7 фактов) лежат в data/objects и не входят в F23 [dev/errata.md:228].

Сомнения рабочего: - scripts/golem_cloud.bat -- единственный орган вне .claude/; жив ли после хакатона, не проверял. - Скилл cloudflare разросся на сайт Serpentis (почта, маршруты) -- граница с функцией сайта. - В golem-bots и golem_cloud.bat причина замысла в шапках не названа.


F24. Запуск, настройки и окружение

Органы: 12, список -- 02_RASKLADKA.md (разд. F24)

Замысел: 2026-03-30 (d62bfbe2, genesis) -- первым появилось .claude/rules/environment_constraints.md -- пришло из forge, раньше 30.03. Почему задумано: причина замысла функции в целом не записана; косвенно, о правиле-основании: «Python 3.12 + Windows cp1251 locale ... Any link in the chain using the default encoding instead of explicit UTF-8 damages the text. Proven: wind#150» [.claude/rules/ascii_safe_output.md:19-20]; «498 exchanges, wind#150» [.claude/rules/environment_constraints.md:8]. Эти строки объясняют правила, а не момент замысла.

Развитие: - 2026-04-21 20e37264 (wind#128) -- ascii_safe_output. Почему: cp1251 портит текст на любом звене без явного UTF-8 [.claude/rules/ascii_safe_output.md:19-20]. 2026-09-06 b84a2ad9: в правиле исправлено ложное основание («Em dash does not exist in cp1251» -- неверно), эрратум E-029 [.claude/rules/ascii_safe_output.md:26, dev/errata.md:426]. - 2026-06-26 6e35edd6 -- подключение хуков перенесено из локального settings.local.json в отслеживаемый .claude/settings.json (версионирование). Почему: причина в шапке не записана; заголовок коммита -- «MOVE hook wiring local->tracked settings.json (versioned)» [коммит 6e35edd6]. Файл дальше меняется 30 раз (на каждый новый хук/страж). - 2026-09-25/26 -- мера М3.5 «ядро + доставка в момент + холод»: .claude/rules_cold/ и .claude/rules_moment/ заведены, environment_constraints урезано (9 003 -> 4 354 знаков, 54fbb894). Почему: «ядро + доставка в момент + холод» -- решение Borg, сессия c27735a2, 2026-09-26 [.claude/rules_moment/README.txt:7, .claude/rules_cold/README.md:3]. - 2026-09-25 13f0f4fb (N11) -- cpu_protection переписано: предел памяти и приоритет ставит ОС (job-объект), а не чтение текста команды. Почему: причина в шапке правила не названа; заголовок коммита -- «predel pamyati i prioritet stavit OS, a ne chtenie teksta» [коммит 13f0f4fb]. - 2026-10-01 eed2dc41 -- в environment_constraints добавлены «двойная обратная косая в Bash», safe_copy /MT, _trash_db. Почему: замеры [id#902], [id#771], названные в заголовке коммита [коммит eed2dc41]. - 2026-10-01 2a12806f (git-гигиена [id#754]) -- .gitignore: 4171 неотслеживаемый файл размечен, 46 записей в git, остальное вне git по git_content_criteria [коммит 2a12806f].

Сейчас: три слоя. (1) Правила среды, приходящие в каждую сессию: environment_constraints (psql и кириллица, доступ к БД и секреты в командах, Git Bash, конфигурации FTS, транскрипты живут 30 дней, временные файлы -- не в OS /tmp), cpu_protection (чек-лист пакетных операций, предел 4 ГБ и пониженный приоритет задаются OS для python-процессов инструмента), no_secrets_in_terminal, ascii_safe_output (с paths-frontmatter, доставляется при касании кода). (2) Каналы доставки правил: rules_cold/ (снятые в холод правила-случаи) и rules_moment/ (правила, приходящие в момент действия). (3) Конфигурация: .claude/settings.json (проводка хуков и права, в git), .gitignore, .gitattributes, core/ARCHITECTURE.md (карта модулей core/). settings.local.json в git не отслеживается.

Снято: - 19 правил-случаев перенесены git mv в .claude/rules_cold/ (2026-09-26, 831be571) -- заменены ядром yadro.md [.claude/rules_cold/README.md:3]. - Правила handoff_standard, claim_calibration, git_content_criteria, safe_overwrite перенесены в rules_moment/ (26.09, a94935cb, 7a75166a, cf3d5b4a) [.claude/rules_moment/README.txt:7]. - Прежний загрузчик из core/ARCHITECTURE.md -- recall_load -- выведен в бункер dev/archive (2026-09-27, edd364db, «слово Borg») [коммит edd364db]; 8 скриптов перенесены в корзину (26.09, a6d8b01a). - Снимок .claude/settings.json.bak_20260731_025123 -- случайно попал в git вместе с хуком skill_map_hint (31.07, 70fd25e2); решения о снятии не найдено.

Пометки: - Происхождение до git: environment_constraints.md -- из forge. - Переименования: часть правил ушла в rules_moment/ и rules_cold/ (E-043, E-045 -- dev/errata.md:659, dev/errata.md:679; в досье видна только строка 659). - Дата коммита != дата замысла: .claude/settings.json рождён 2026-06-26 как перенос, сама проводка хуков старше (хуки жили в settings.local.json).

Сомнения рабочего: - .claude/settings.json.bak_20260731_025123 -- резервный снимок, не настройка; стоит в F24 по шаблону пути. - .claude/settings.local.json -- «НЕ НАЙДЕНО в git» (не отслеживается): даты рождения нет. - core/ARCHITECTURE.md -- карта модулей, по смыслу ближе к документации/навигации (возможно, другая функция); в шапке причины нет, одна строка о cc_signal.py [core/ARCHITECTURE.md:48]. - .claude/rules_cold/README.md, .claude/rules_moment/README.txt -- описывают доставку правил (функция «правила»), а не окружение. - .gitattributes, .gitignore -- причины создания в сообщениях коммитов не записаны, кроме 2a12806f. - Часть строк плана читал только по обрезанным фрагментам досье (dev/active_plan.md:280, :1727-1737) -- детали не открывал.