- Зачем:
- справочники читает человек со стороны, а «пульт мира», «опись мира»,
«работник» и «сырьё» звучали шуткой или калькой времён разработки
(тикет #214, выбор владельца).
- Что:
- CONTEXT.md: статьи «Паспорт мира», «Даги модельного времени»,
«Шаговый даг», «Сырые данные», старые слова в строках «Избегать»;
пометки в ADR 0005, 0008, 0009 без переписывания решений.
- замены по README, справочникам, путеводителю, лабам, спекам,
комментариям дагов и SQL, тегу дага и панели Grafana; имена в коде
не тронуты.
- world.md и stand.md: 35 находок вычитки внесены, регистр выровнен.
- Проверка:
- make config-test; make lint в корне и в generator/; make test в
generator/ (437 passed); скрипт ссылок из #212 пуст; grep старых
слов вне ADR, research и CONTEXT.md пуст.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QBCtU38qSHg5DvgtnKXcW
3.8 KiB
Мост к склейке: человек, person_id, user_id
Резолюция развилки «Мост к склейке: user_id и двухкуковые пары».
Причинная модель: план состава порождает человека; ему принадлежат одна или две куки, каждая наблюдается в кликстриме как отдельный посетитель. Визит может оформить заказ — тогда заказная сторона представляет того же человека как пользователя магазина. Это не модель аккаунта: регистрации нет, люди без визитов не порождаются, внутреннее знание наружу не выдаётся.
План владеет устойчивой личностью и отношением «кука принадлежит человеку».
Минимальная форма — непрозрачный внутренний person_id, выровненный по кукам:
у двух кук пары он одинаков. Заказ выводит то же значение под родным именем
user_id (UInt64); в кликстрим ни person_id, ни user_id не попадает —
анонимность формата держится формой, а не забывчивостью сериализатора.
person_id — последний обычный бросок потока случайности когорты, после уже
принятых свойств: добавление личности не сдвигает куки, пары, возвраты и
паспорта. Для второй куки повторяется ID её человека. Раздельные прогоны
ничего не хранят и не согласуют: генератор событий и команда слепка заново
спрашивают один план и получают тот же person_id.
Наблюдаемое обещание — четыре свойства: назначенные заказы пары с разных
ClientID несут один user_id; событие Метрики не раскрывает user_id;
отдельные прогоны одного мира дают то же соответствие; принятый мир
воспроизводит эффект склейки без случайных ложных объединений. Паспорт не
закрепляет конкретное число пар. Межкогортные столкновения принимаются по той же
дисциплине, что у случайных ClientID: принимается конкретный канонический мир
по внешнему результату.
Отклонено: заказная сторона сама назначает личность — родство кук всё равно пришлось бы спрашивать у плана; материализованный реестр кука↔пользователь — состояние между прогонами без нового внешнего эффекта; первая кука как ID человека — магазин оказался бы замаскированным продолжением трекера; структурная координата, хеш или глобальная последовательность — больше механики при тех же данных; полная модель аккаунтов — менти её не наблюдает.