Первая глава путеводителя: docs/handbook/storage-layers.md. Читатель проходит путь данных от сообщения Kafka до витрины и понимает, за что отвечает каждый слой и по каким колонкам слои соединяются. Глава ведет в справочники, а не пересказывает их. Форма главы — образец для следующих глав путеводителя.
Скелет главы (порядок разделов зафиксирован)
Вводка. В хранилище два потока из Kafka: события кликстрима (топик hits) и заказы магазина (топик orders). Путь один: STG → ODS → DDS → DM. Одна простая mermaid-схема пути.
Как читать имена. Читают через объекты с суффиксом _v; остальные суффиксы (_rep, _dist, _kafka, _mv) — устройство, о нем — в справочнике. Коротко, без таблицы всех суффиксов.
Слои по одному. По разделу на STG, ODS, DDS, DM: за что отвечает, что в нем лежит, одна деталь-крючок. STG — «как привезли», сырая строка с метаданными доставки, живет трое суток. ODS — типизировано, язык источника, брак уходит в таблицы *_errors. DDS — язык бизнеса: событие, заказ, сессия, карта идентичностей; сессию стенд режет из событий сам. DM — витрины под дашборды.
Сбоку цепочки. Зона dic и словарь товаров: его никто из слоев не производит, читают все. Два абзаца.
Ключи, по которым слои соединяются. Маленькая таблица колонок: WatchID, ClientID, order_id, sku, EventDate — что означает и какие слои соединяет. Семантика — по справочнику хранилища и CONTEXT.md (посетитель — кука, ClientID).
Посмотрите сами. Два коротких SELECT по _v-поверхностям: например, события одного дня из ods.event_v и выручка по категориям из dm.revenue_daily_v. Подключение — ссылкой на «Адреса и пароли» корневого README.
Куда дальше. Справочник хранилища за подробностями; следующая глава — потоки Airflow.
Критерии приёмки
docs/handbook/storage-layers.md написан по скелету; детали устройства — ссылками в справочники, не пересказом.
Каждая колонка таблицы ключей существует в схеме (sql/ddl/) и названа словом из CONTEXT.md.
Оба SELECT обращаются только к _v-поверхностям и синтаксически верны; прогон на живом стенде — за оркестратором на приёмке.
docs/handbook/README.md: раздел «Будущие главы» становится «Главы», аннотация первой ведет в файл главы, у остальных остается «Пока главы нет…».
Адресация — «вы», как в README путеводителя; слова «менти» в тексте нет; буквы «ё» в новом тексте нет; тире «—» и кавычки-елочки, как в соседних документах.
Все относительные ссылки главы и README путеводителя целы.
Границы
Справочники docs/architecture/, CONTEXT.md, DDL и код не правятся.
docs/architecture/storage.md — фактура: слои, имена, ключи, сроки жизни.
CONTEXT.md — словарь: посетитель, человек, пользователь магазина, сырые данные.
Корневой README, разделы «Адреса и пароли» и «Подключиться из DBeaver» — как читатель выполнит SELECT.
Проверка
Из корня репозитория, обе команды дают пустой вывод:
for f in docs/handbook/README.md docs/handbook/storage-layers.md; do
d=$(dirname "$f")
grep -oE '\]\(([^)]+)\)' "$f" | sed -E 's/^\]\(//; s/\)$//; s/#.*$//' \
| grep -vE '^(https?:|$)' | sort -u \
| while read -r p; do [ -e "$d/$p" ] || echo "$f -> $p MISSING"; done
done
grep -n "менти\|ё" docs/handbook/storage-layers.md
Part of #206
## Цель
Первая глава путеводителя: `docs/handbook/storage-layers.md`. Читатель проходит путь данных от сообщения Kafka до витрины и понимает, за что отвечает каждый слой и по каким колонкам слои соединяются. Глава ведет в справочники, а не пересказывает их. Форма главы — образец для следующих глав путеводителя.
## Скелет главы (порядок разделов зафиксирован)
1. **Вводка.** В хранилище два потока из Kafka: события кликстрима (топик `hits`) и заказы магазина (топик `orders`). Путь один: STG → ODS → DDS → DM. Одна простая mermaid-схема пути.
2. **Как читать имена.** Читают через объекты с суффиксом `_v`; остальные суффиксы (`_rep`, `_dist`, `_kafka`, `_mv`) — устройство, о нем — в справочнике. Коротко, без таблицы всех суффиксов.
3. **Слои по одному.** По разделу на STG, ODS, DDS, DM: за что отвечает, что в нем лежит, одна деталь-крючок. STG — «как привезли», сырая строка с метаданными доставки, живет трое суток. ODS — типизировано, язык источника, брак уходит в таблицы `*_errors`. DDS — язык бизнеса: событие, заказ, сессия, карта идентичностей; сессию стенд режет из событий сам. DM — витрины под дашборды.
4. **Сбоку цепочки.** Зона `dic` и словарь товаров: его никто из слоев не производит, читают все. Два абзаца.
5. **Ключи, по которым слои соединяются.** Маленькая таблица колонок: `WatchID`, `ClientID`, `order_id`, `sku`, `EventDate` — что означает и какие слои соединяет. Семантика — по справочнику хранилища и CONTEXT.md (посетитель — кука, `ClientID`).
6. **Посмотрите сами.** Два коротких SELECT по `_v`-поверхностям: например, события одного дня из `ods.event_v` и выручка по категориям из `dm.revenue_daily_v`. Подключение — ссылкой на «Адреса и пароли» корневого README.
7. **Куда дальше.** Справочник хранилища за подробностями; следующая глава — потоки Airflow.
## Критерии приёмки
- [ ] `docs/handbook/storage-layers.md` написан по скелету; детали устройства — ссылками в справочники, не пересказом.
- [ ] Каждая колонка таблицы ключей существует в схеме (`sql/ddl/`) и названа словом из CONTEXT.md.
- [ ] Оба SELECT обращаются только к `_v`-поверхностям и синтаксически верны; прогон на живом стенде — за оркестратором на приёмке.
- [ ] `docs/handbook/README.md`: раздел «Будущие главы» становится «Главы», аннотация первой ведет в файл главы, у остальных остается «Пока главы нет…».
- [ ] Адресация — «вы», как в README путеводителя; слова «менти» в тексте нет; буквы «ё» в новом тексте нет; тире «—» и кавычки-елочки, как в соседних документах.
- [ ] Все относительные ссылки главы и README путеводителя целы.
## Границы
- Справочники `docs/architecture/`, CONTEXT.md, DDL и код не правятся.
- Коммит не делается: коммитит оркестратор.
## Сначала прочитать
1. `docs/handbook/README.md` — тон, адресация, аннотация будущей главы.
2. `docs/architecture/storage.md` — фактура: слои, имена, ключи, сроки жизни.
3. CONTEXT.md — словарь: посетитель, человек, пользователь магазина, сырые данные.
4. Корневой README, разделы «Адреса и пароли» и «Подключиться из DBeaver» — как читатель выполнит SELECT.
## Проверка
Из корня репозитория, обе команды дают пустой вывод:
for f in docs/handbook/README.md docs/handbook/storage-layers.md; do
d=$(dirname "$f")
grep -oE '\]\(([^)]+)\)' "$f" | sed -E 's/^\]\(//; s/\)$//; s/#.*$//' \
| grep -vE '^(https?:|$)' | sort -u \
| while read -r p; do [ -e "$d/$p" ] || echo "$f -> $p MISSING"; done
done
grep -n "менти\|ё" docs/handbook/storage-layers.md
Сделано в PR #219 (ждет слияния владельцем; Closes#218 закроет тикет сам).
Глава.docs/handbook/storage-layers.md по скелету постановки: путь STG → ODS → DDS → DM с mermaid-схемой, правило чтения через _v, слои по одному с деталью-крючком, зона dic, таблица ключей (WatchID, ClientID, order_id, sku, EventDate) с переименованиями DDS, два SELECT и «Куда дальше». Оба SELECT прогнаны оркестратором на живом стенде от analyst: события дня D0 читаются, выручка по категориям ранжируется. README путеводителя: раздел «Главы», аннотация первой ведет в файл, заглушки остальных на месте.
Конвейер. Проза — Sol (gpt-5.6-sol), саморевью 2/2. Слепое ревью Opus: 0 блокеров, 2 minor, 3 nit. Вычитка прозы Opus (ai-text-lint + оптика литературного русского): 16 находок. Итого 21 внесена, 3 отклонены с доводами (параллелизм разделов и заголовок «Главы» — требования скелета; роли суффиксов — три документированные роли). Перепроверки обеих линий: все закрыто; две новые находки перепроверок (мертвые якоря на CONTEXT.md, две прозаические в добавленных фразах) закрыты узкими правками тем же исполнителем.
Приемка. Оркестратор вернул словарю «статьи» (унификация «глав» зацепила абзац про CONTEXT.md в README путеводителя) и срезал повтор зачина в разделе DDS. Поправки владельца по ходу: заголовок «STG: как поступило» вместо «как привезли», фраза про посетителя переформулирована.
Дальше по очереди #208: глава «Потоки Airflow и даги модельного времени».
Сделано в PR #219 (ждет слияния владельцем; Closes #218 закроет тикет сам).
**Глава.** `docs/handbook/storage-layers.md` по скелету постановки: путь STG → ODS → DDS → DM с mermaid-схемой, правило чтения через `_v`, слои по одному с деталью-крючком, зона `dic`, таблица ключей (`WatchID`, `ClientID`, `order_id`, `sku`, `EventDate`) с переименованиями DDS, два SELECT и «Куда дальше». Оба SELECT прогнаны оркестратором на живом стенде от `analyst`: события дня D0 читаются, выручка по категориям ранжируется. README путеводителя: раздел «Главы», аннотация первой ведет в файл, заглушки остальных на месте.
**Конвейер.** Проза — Sol (gpt-5.6-sol), саморевью 2/2. Слепое ревью Opus: 0 блокеров, 2 minor, 3 nit. Вычитка прозы Opus (ai-text-lint + оптика литературного русского): 16 находок. Итого 21 внесена, 3 отклонены с доводами (параллелизм разделов и заголовок «Главы» — требования скелета; роли суффиксов — три документированные роли). Перепроверки обеих линий: все закрыто; две новые находки перепроверок (мертвые якоря на CONTEXT.md, две прозаические в добавленных фразах) закрыты узкими правками тем же исполнителем.
**Приемка.** Оркестратор вернул словарю «статьи» (унификация «глав» зацепила абзац про CONTEXT.md в README путеводителя) и срезал повтор зачина в разделе DDS. Поправки владельца по ходу: заголовок «STG: как поступило» вместо «как привезли», фраза про посетителя переформулирована.
**Дальше по очереди #208:** глава «Потоки Airflow и даги модельного времени».
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #206
Цель
Первая глава путеводителя:
docs/handbook/storage-layers.md. Читатель проходит путь данных от сообщения Kafka до витрины и понимает, за что отвечает каждый слой и по каким колонкам слои соединяются. Глава ведет в справочники, а не пересказывает их. Форма главы — образец для следующих глав путеводителя.Скелет главы (порядок разделов зафиксирован)
hits) и заказы магазина (топикorders). Путь один: STG → ODS → DDS → DM. Одна простая mermaid-схема пути._v; остальные суффиксы (_rep,_dist,_kafka,_mv) — устройство, о нем — в справочнике. Коротко, без таблицы всех суффиксов.*_errors. DDS — язык бизнеса: событие, заказ, сессия, карта идентичностей; сессию стенд режет из событий сам. DM — витрины под дашборды.dicи словарь товаров: его никто из слоев не производит, читают все. Два абзаца.WatchID,ClientID,order_id,sku,EventDate— что означает и какие слои соединяет. Семантика — по справочнику хранилища и CONTEXT.md (посетитель — кука,ClientID)._v-поверхностям: например, события одного дня изods.event_vи выручка по категориям изdm.revenue_daily_v. Подключение — ссылкой на «Адреса и пароли» корневого README.Критерии приёмки
docs/handbook/storage-layers.mdнаписан по скелету; детали устройства — ссылками в справочники, не пересказом.sql/ddl/) и названа словом из CONTEXT.md._v-поверхностям и синтаксически верны; прогон на живом стенде — за оркестратором на приёмке.docs/handbook/README.md: раздел «Будущие главы» становится «Главы», аннотация первой ведет в файл главы, у остальных остается «Пока главы нет…».Границы
docs/architecture/, CONTEXT.md, DDL и код не правятся.Сначала прочитать
docs/handbook/README.md— тон, адресация, аннотация будущей главы.docs/architecture/storage.md— фактура: слои, имена, ключи, сроки жизни.Проверка
Из корня репозитория, обе команды дают пустой вывод:
Сделано в PR #219 (ждет слияния владельцем; Closes #218 закроет тикет сам).
Глава.
docs/handbook/storage-layers.mdпо скелету постановки: путь STG → ODS → DDS → DM с mermaid-схемой, правило чтения через_v, слои по одному с деталью-крючком, зонаdic, таблица ключей (WatchID,ClientID,order_id,sku,EventDate) с переименованиями DDS, два SELECT и «Куда дальше». Оба SELECT прогнаны оркестратором на живом стенде отanalyst: события дня D0 читаются, выручка по категориям ранжируется. README путеводителя: раздел «Главы», аннотация первой ведет в файл, заглушки остальных на месте.Конвейер. Проза — Sol (gpt-5.6-sol), саморевью 2/2. Слепое ревью Opus: 0 блокеров, 2 minor, 3 nit. Вычитка прозы Opus (ai-text-lint + оптика литературного русского): 16 находок. Итого 21 внесена, 3 отклонены с доводами (параллелизм разделов и заголовок «Главы» — требования скелета; роли суффиксов — три документированные роли). Перепроверки обеих линий: все закрыто; две новые находки перепроверок (мертвые якоря на CONTEXT.md, две прозаические в добавленных фразах) закрыты узкими правками тем же исполнителем.
Приемка. Оркестратор вернул словарю «статьи» (унификация «глав» зацепила абзац про CONTEXT.md в README путеводителя) и срезал повтор зачина в разделе DDS. Поправки владельца по ходу: заголовок «STG: как поступило» вместо «как привезли», фраза про посетителя переформулирована.
Дальше по очереди #208: глава «Потоки Airflow и даги модельного времени».