Почему схема не доказательство
Схема разделения данных отвечает на вопрос «как задумано». Вопрос, который стоит на самом деле, звучит иначе: попадут ли данные одного проекта в контекст сессии другого при обычном запуске, со всеми хуками, инструкциями и накопленной памятью. Ответ на него даёт только запуск — читать конфигурацию бесполезно, потому что слоёв несколько и собирает их не тот, кто их писал.
Двенадцать запусков и что они показали
| Назначение пробы | Запусков | Результат |
|---|---|---|
| Основные пробы по разделению данных | 6 | живые данные рабочей базы — «не знаю» в обоих проектах |
| Инфраструктурные значения | 2 | «не знаю»; сами значения в публикацию не идут |
| Факт из накопленного слоя памяти | 2 | персональные данные — «не знаю» везде |
| Контроль метода | 2 | оба слоя знаний загружаются — см. ниже |
| Итого | 12 | общий канон доступен обоим проектам и взят из одного экземпляра, а не из копии |
Строка про общий канон важна не меньше строк с «не знаю». Разделение сделано правильно не тогда, когда сессия не знает ничего лишнего, а тогда, когда общее остаётся общим и живёт в одном месте. Копия канона в каждом проекте разошлась бы за месяц.
Контроль обязателен: «не знаю» бывает от пустоты
Ответ «не знаю» имеет два несовместимых объяснения. Первое — данные изолированы, и это то, что мы хотели показать. Второе — слой знаний не загрузился вообще, и сессия не знает ничего, включая то, что знать должна. Различить их изнутри ответа невозможно, поэтому две пробы из двенадцати ушли на контроль.
- Проба A: грузится ли слой инструкций. Сессия воспроизвела то, что записано в инструкциях проекта. Значит, инструкции доехали.
- Проба B: грузится ли слой памяти. Сессия назвала указатель из индекса памяти и при этом корректно отделила указатель от тела записи — сказала, где лежит факт, не выдав самого факта. Значит, память доехала, и доехала ровно указателями.
Без этих двух запусков вся работа стоила бы ноль. Десять «не знаю» подряд выглядят как доказательство изоляции ровно до момента, когда выяснится, что в тех сессиях не загрузилось ничего. Отрицательный результат читается только на фоне положительного контроля.
Свой контекст нельзя проверять своим же контекстом
Промежуточную гипотезу автора замера опровергла контрольная проба, и опровержение оказалось полезнее гипотезы. Сессия уверенно «помнила» два значения — техническое и денежное — и на их основании строился вывод о составе загруженного.
Сверка по диску показала другое: живой файл памяти размером 17 568 байт этих двух значений уже не содержит. Они были в версии, снятой в контекст на старте, и с тех пор из файла убраны.
Класс шире нашего случая. Ответ модели о собственном контексте описывает момент старта, а не текущее состояние источника. Спрашивать сессию «что у тебя загружено» — это спрашивать у снимка про оригинал. Состав контекста меряется снаружи: со стороны диска и со стороны сборщика контекста.
Честная граница замера
Оговорка стоит в самом отчёте: изоляция проверена на двух проектах из 25. Утверждение, которое мы имеем право сделать, — «на проверенных проектах разделение держится, метод воспроизводим». Без оговорки вышло бы обобщение с двух случаев на двадцать пять.
Стоимость такой честности мала, а польза большая: следующая сессия видит, какие проекты ещё не проверены, и не считает вопрос закрытым.
Что сделать у себя
- Отключите инструменты и спросите. Самый дешёвый способ узнать состав стартового контекста: без инструментов агенту нечем добыть факт, кроме как из предзагрузки.
- Заготовьте пробы заранее. По одному характерному значению на слой: живая база, персональные данные, инфраструктура, общий канон. Значение должно быть таким, чтобы его нельзя было угадать.
- Обязательно поставьте положительный контроль. Минимум две пробы на то, что слои вообще загрузились. Без них ваш ноль ничего не значит.
- Проверяйте, что общее берётся из одного экземпляра. Разделение, сделанное копированием канона в каждый проект, разъедется тихо.
- Не спрашивайте сессию о её собственном контексте. Сверяйте с диском: у нас разошлись два значения из одного файла на 17 568 байт.
- Пишите охват проверки цифрой. «Два проекта из 25» — нормальная строка отчёта, «изоляция проверена» — нет.