docs(specs): спека генератора (этап 2) из решений карты #26 #35

Merged
ddmitry merged 6 commits from feat/32-generator-spec into main 2026-08-01 21:05:49 +03:00
Owner

Часть карты #26 (тикет #32). Приёмка владельцем — тикет #33: слияние этого PR и есть приёмка.

Что внутри

  • Спека генератора docs/specs/2026-08-01-generator.md — решения четырёх развилок (#27 модель мира, #28 детерминизм, #29 архитектура, #30 производительность) собраны в одну картину; отклонённые варианты записаны с доводами; числовые требования и способ замера — раздел 5; механизм подпотоков SeedSequence.spawn сверен через Context7.
  • Мастер-спека согласована тем же коммитом: 1.4 — data contract вместо автогенерации DDL; 8 — в git только манифест, снимок генерируется; 11 — числа вместо «зафиксировать требования»; мелкие согласования в разделах 7 и 9.
  • CONTEXT.md — термины: состав мира, ось модельного времени, пошаговый режим, живой день, граница суток, контракт схемы, канонический сериализатор, проигрыватель.
  • Попутно в main въезжает заметка исследования #31 (docs/research/2026-08-01-python-batch-generation-speed.md) и правка AGENTS.md о маршруте развилок — они лежали на ветке research и нужны спеке ссылками.

Проверка

Вычитка; относительные ссылки между спеками и заметкой исследования указывают на файлы этого же PR.

Часть карты #26 (тикет #32). Приёмка владельцем — тикет #33: слияние этого PR и есть приёмка. ## Что внутри - **Спека генератора** `docs/specs/2026-08-01-generator.md` — решения четырёх развилок (#27 модель мира, #28 детерминизм, #29 архитектура, #30 производительность) собраны в одну картину; отклонённые варианты записаны с доводами; числовые требования и способ замера — раздел 5; механизм подпотоков `SeedSequence.spawn` сверен через Context7. - **Мастер-спека** согласована тем же коммитом: 1.4 — data contract вместо автогенерации DDL; 8 — в git только манифест, снимок генерируется; 11 — числа вместо «зафиксировать требования»; мелкие согласования в разделах 7 и 9. - **CONTEXT.md** — термины: состав мира, ось модельного времени, пошаговый режим, живой день, граница суток, контракт схемы, канонический сериализатор, проигрыватель. - Попутно в main въезжает заметка исследования #31 (`docs/research/2026-08-01-python-batch-generation-speed.md`) и правка AGENTS.md о маршруте развилок — они лежали на ветке research и нужны спеке ссылками. ## Проверка Вычитка; относительные ссылки между спеками и заметкой исследования указывают на файлы этого же PR.
ddmitry added 3 commits 2026-08-01 19:48:04 +03:00
Зачем: развилке производительности генератора (#30) нужны числа вместо
догадок — тикет #31 просил ответ по первоисточникам.

Что: заметка docs/research/2026-08-01-python-batch-generation-speed.md —
бенчмарки авторов orjson (5–14x к stdlib json), таблица производительности
генераторов numpy (~3 нс на значение), доки multiprocessing (обход GIL),
бенчмарк mimesis против Faker (~24x), кросс-проверка msgspec; плюс локальная
проверка порядков через uv.

Проверка: ссылки на первоисточники в тексте; локальный микробенчмарк
воспроизводится `uv run --with numpy --with orjson`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Зачем: практика веера жила только в заметках карты #26 и памяти агента —
хрупко и локально для одной машины. Строку в AGENTS.md читает каждая
сессия, включая чартинг будущих wayfinder-карт.

Что: подраздел «Развилки решений» в Agent skills — существенные развилки
вести через скилл brainstorm-with-docs: веер вариантов, потом конвергенция.
Состав веера и запись отклонённых — в самом скилле, без дублирования.

Проверка: чтение. Сам скилл версионируется в dotfiles владельца.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Зачем:
  - этап 2 нельзя нарезать на тикеты без единой картины генератора,
    а решения четырёх развилок карты #26 жили только в тикетах трекера.
- Что:
  - новая спека docs/specs/2026-08-01-generator.md: функциональный мир,
    детерминизм до байта (SeedSequence сверен через Context7), контракт
    схемы, канонический сериализатор, числа и порог производительности;
    отклонённые варианты записаны с доводами.
  - мастер-спека согласована тем же коммитом: 1.4 — data contract вместо
    автогенерации DDL, 8 — в git только манифест, 11 — числа вместо
    «зафиксировать требования»; мелкие согласования в 7 и 9.
  - CONTEXT.md пополнен терминами модели мира и вывода генератора.
- Проверка:
  - вычитка; относительные ссылки спек указывают на существующие файлы
    в docs/specs/ и docs/research/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ddmitry added 1 commit 2026-08-01 20:49:55 +03:00
- Зачем:
  - вычитка спеки на приёмке нашла дыру: состав мира читался как
    замкнутая труппа без новых посетителей — неправдоподобный магазин.
- Что:
  - раздел 1: состав не замкнут — план задаёт календарь появления кук,
    доля одноразовых высока; приток — часть плана, не мутация.
  - раздел 6: «Faker» ослаблен до «посточные фейкеры (Faker, mimesis)»,
    выбор библиотеки — этапу 2; там же оговорка про таблицы-литералы.
  - раздел 9: к интерфейсу запуска добавлены вопросы «кто зовёт
    генератор (даги world_init/next_day)» и «в каком контейнере живёт».
  - CONTEXT.md: в «Состав мира» добавлен календарь появления.
- Проверка:
  - вычитка; правки точечные, решения развилок не пересматриваются.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ddmitry added 1 commit 2026-08-01 21:00:23 +03:00
- Зачем:
  - холодное ревью (Fable, свежая сессия) нашло невыполненный хвост
    тикета #32 и места, где доводы резолюций сжались до непонятности.
- Что:
  - мастер-спека 1.1: «склад» заменён на «хранилище» (хвост #32);
    CONTEXT.md: DWH в избегаемых, отдельная статья «Пакетный режим».
  - спека: восстановлены доводы «на маке и в WSL тоже» и «менти упрётся
    в красный чек манифеста»; обещания про diff привязаны к манифесту;
    темп ×60 и расчёт порога согласованы с числами разделов; заголовок
    притока честен про затухание; выход за мандат оговорён в «Зачем».
  - раздел 9: добавлены числа притока и календарная дата-константа D0;
    заметка исследования: у Faker единицы «значений/с», не «строк/с».
- Проверка:
  - вычитка; решения развилок не пересматриваются, правки текстовые.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ddmitry added 1 commit 2026-08-01 21:02:02 +03:00
- Зачем:
  - владелец сознательно вывел DWH из списка избегаемых (синоним
    хранилища), а правка по холодному ревью вернула его по старому
    комментарию тикета #32 — откат к воле владельца.
- Что:
  - в статье «Хранилище» список «_Избегать_» снова: склад, склад данных.
- Проверка:
  - вычитка CONTEXT.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ddmitry merged commit 9e04eae72a into main 2026-08-01 21:05:49 +03:00
ddmitry deleted branch feat/32-generator-spec 2026-08-01 21:05:49 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#35