Commit Graph
221 Commits
Author SHA1 Message Date
ddadmin dab120a07e fix(generator): устранён флаки runtime-гейта стыка backfill/live
- Зачем:
  - гейт generated-history-runtime-check падал через раз: docker compose
    stop убивал генератор SIGKILL'ом посреди batch (SIGTERM не ловился),
    непарные строки маскировались под «смену фактуры» (задача 20).
- Что:
  - генератор грациозно завершается по SIGTERM: текущий batch дописывается
    во все топики с flush и записью history; compose даёт минуту grace.
  - runtime-check ждёт пересекающий визит в STG (предусловие проверки),
    seam-check получил precheck непарных live-строк; в STG-запросах
    закреплён 'UTC' против сдвига наивных меток в поясе сервера.
  - контрактные тесты усилены, задача 20 закрыта, блокер задачи 13 снят.
- Проверка:
  - тесты: 192 passed (generator), 21 passed (контракты);
  - стенд: 3 подряд зелёных make generated-history-runtime-check;
    красный сценарий (искажение referer_url пересекающего визита) валит
    гейт прежним сообщением при нулевых непарных счётчиках.
2026-07-12 19:33:28 +03:00
ddadmin 55a3feb63d docs(generator): развилка фикса задачи 20 решена после ревью постановки
- Зачем:
  - адверсарное ревью показало: генератор не обрабатывает SIGTERM
    (python — PID 1, docker compose stop ведёт к SIGKILL посреди batch),
    а вариант «ждать записи generator_batch_history» гонку не закрывает.
- Что:
  - направление фикса: минимальный SIGTERM-хендлер с дозаписью batch,
    альтернативы отклонены с доводами, bounded live mode вне скоупа.
  - критерии дополнены: красный сценарий обязан ловиться, стабильность
    обосновывается структурно, запрещены вероятностные смягчения.
  - в диагноз внесены механизм обрыва и различие device/geo vs location.
- Проверка:
  - чтение постановки: все находки ревью закрыты решением или доводом.
2026-07-12 18:28:17 +03:00
ddadminandClaude Fable 5 515d5ef73b docs(generator): решена развилка задачи 13, handoff сессии
- Зачем:
  - диагноз задачи 20 снял страх швов (генератор на стыке не ломает),
    и пользователь выбрал вариант реализации next-day;
  - сессия завершается - нужен handoff для продолжения.
- Что:
  - задача 13: выбран вариант 2 (генерация следующего дня от слепка),
    вариант нарезки артефакта отклонён с обоснованием; статус
    ready-for-agent, blocked by задача 20;
  - handoff сессии в .scratch/handoffs/ - итоги проверки пути менти,
    состояние трекера, план (фикс 20 -> задача 13 -> HITL).
- Проверка:
  - чтение задачи 13 и handoff; git status чистый после коммита.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:40:29 +03:00
ddadminandClaude Fable 5 98be722808 docs(generator): диагноз флаки-гейта в задаче 20, задача 13 разблокирована
- Зачем:
  - Codex-диагноз нашёл корень нестабильности runtime-гейта: гонка
    остановки live-генератора, batch публикуется по топикам без
    атомарности, seam-SQL маскирует непарные строки под смену фактуры;
  - попутно закрыт второй открытый вопрос задачи 13 - запасная ветка
    рождения визита уже хранит донора (фикс задачи 09).
- Что:
  - задача 20: диагноз с судьбой трёх гипотез, направление фикса
    (управляемая остановка live + precheck непарных строк), статус
    ready-for-agent;
  - задача 13: вопрос про fallback-ветку закрыт, статус ready-for-human
    (осталось решение по развилке реализации).
- Проверка:
  - утверждение про донора перепроверено по generation.py:194-209;
    эмпирика диагноза - в логах прогонов, пути в задаче 20.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:29:42 +03:00
ddadminandClaude Fable 5 984d6fc912 chore(agents): добавлены субагенты deep-reasoner и fast-worker
- Зачем:
  - плейбук оркестрации опирается на репо-локальных субагентов для
    глубоких рассуждений и шумной механики; в этом репозитории их
    ещё не было.
- Что:
  - созданы .claude/agents/deep-reasoner.md (Opus, high) и
    .claude/agents/fast-worker.md (Sonnet) по референсу скилла
    claude-subagent-playbook;
  - .gitignore: локальное содержимое .claude/ скрыто, agents/
    коммитятся.
- Проверка:
  - git status не показывает .claude/settings.local.json;
    субагенты видны в новой сессии Claude Code.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:07:13 +03:00
ddadminandClaude Fable 5 900e9498ca docs(course): устранены шероховатости пути менти
- Зачем:
  - ревью пути менти 2026-07-07 нашло четыре места, где документация
    сбивает новичка: скрытый шаг с паузой etl_pipeline, два рецепта
    первого запуска без связки, неверное число дашбордов и пустые
    панели Airflow на backfill-only пути.
- Что:
  - README: добавлен шаг «снимите паузу с etl_pipeline» перед backfill
    и пометка, что generated-history-analytics — тот же путь одной
    командой;
  - курс: README курса связывает оба рецепта первого запуска, урок 05
    называет четыре дашборда (включая Generator Overview) и объясняет,
    почему панели Airflow пусты до запуска etl_pipeline.
- Проверка:
  - чтение задетых разделов; имена дашбордов сверены с provisioning
    Grafana в ходе ревью.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:00:00 +03:00
ddadminandClaude Fable 5 a3ac4b4c46 docs(generator): переписана задача 13 и заведён баг флаки-гейта
- Зачем:
  - рамка задачи 13 пересмотрена: ценность доливки — кормление стенда
    дневными батчами (урок и имитация жизни), а не удлинение истории;
  - прогон пути менти 2026-07-07 показал, что runtime-гейт стыка
    backfill->live нестабилен — красный/зелёный через раз.
- Что:
  - задача 13 переписана под глагол next-day в generator_control:
    сценарии, развилка реализации (срез артефакта против доливки от
    слепка), закрыт вопрос про импорт частями (сейчас всё или ничего);
  - добавлена задача 20 про нестабильную runtime-проверку стыка с
    эмпирикой двух прогонов и гипотезами для диагноза.
- Проверка:
  - два прогона make generated-history-runtime-check (красный 8/19,
    затем зелёный) — зафиксированы в задаче 20.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 21:57:38 +03:00
ddadmin 59b3e106dd docs(generator): расширен handoff после issue 19
- Зачем:
  - следующей сессии нужен актуальный handoff после закрытия issue 19 и внешнего approve.
- Что:
  - добавлены итоги коммита 9b0b063, проверки make test и make lint.
  - зафиксированы ручные HITL-проверки, suggested skills и обновлённые открытые риски.
- Проверка:
  - git diff --check.
2026-07-05 22:53:37 +03:00
ddadmin 9b0b063fed fix(generator): усилены проверки startup-history
- Зачем:
  - коммит-гейт не запускал корневые контрактные тесты, а часть подтверждённых обходов могла снова смешать разные миры генератора.
- Что:
  - добавлены цели make test, make lint и contract-test с тихим pytest-выводом через Docker.
  - закрыты обходы через generator-reset, неизвестную версию state и fail-open проверку DM-витрин.
  - усилены поведенческие контракты CHECK_LIVE_SEAM, профиля manifest и pause-check etl_pipeline; обновлены документы и issue 19.
- Проверка:
  - make test; make lint; git diff --check.
2026-07-05 22:46:53 +03:00
ddadmin 0faa5cc219 docs(generator): добавлен handoff после цепочки 15-18
- Зачем:
  - coordinator-loop требует handoff для внешнего кросс-линейного ревью.
- Что:
  - добавлена записка с индексом изменений, ревью и открытыми рисками.
  - журнал фиксирует завершение финального review и handoff.
- Проверка:
  - staged-состав содержит только handoff и журнал.
2026-07-05 22:13:31 +03:00
ddadmin 8e1c7330e1 docs(generator): уточнены проверки startup-history после review
- Зачем:
  - backfill-only сценарии не должны советовать проверку, которая требует live seam.
- Что:
  - для backfill/import-only путей указан CHECK_LIVE_SEAM=0.
  - live-проверка вынесена в generated-history-runtime-check или явно описанный live-путь.
  - журнал дополнен финальным review и rerun.
- Проверка:
  - финальный chain review rerun APPROVED; git diff --check.
2026-07-05 22:12:09 +03:00
ddadmin 2778eae9f0 docs(generator): добавлена задача на test и lint цели
- Зачем:
  - коммит-гейт coordinator-loop требует единых быстрых команд проверки.
- Что:
  - добавлен issue 19 для make test и make lint.
  - PRD обновлён после закрытия задач 15-18.
  - журнал фиксирует follow-up перед финальным review.
- Проверка:
  - staged-состав содержит только PRD, журнал и issue 19.
2026-07-05 22:03:34 +03:00
ddadmin 6d64f3909a docs(generator): закрыта задача 18 в трекере
- Зачем:
  - coordinator-loop отделяет рабочие изменения от статусов и журнала.
- Что:
  - задача 18 переведена в done с закрытыми критериями.
  - журнал дополнен ревью, проверками чистого маршрута и коммитом.
- Проверка:
  - staged-состав содержит только issue 18 и журнал.
2026-07-05 22:01:44 +03:00
ddadmin 77e4fb6119 docs(course): согласованы уроки со startup-history
- Зачем:
  - курс должен проходить на чистом стенде без архивного сида и скрытых шагов.
- Что:
  - уроки 00, 01 и 05 согласованы с генераторными топиками, no-live default и consumer lag.
  - упражнение с kafka_msg_ts переведено на повторную заливку без сброса схемы.
  - учебный путь в операционной документации ведёт через startup-history.
- Проверка:
  - make generated-history-analytics; make up; doc rg checks; git diff --check.
2026-07-05 22:01:00 +03:00
ddadmin 67313494d9 docs(generator): закрыта задача 17 в трекере
- Зачем:
  - coordinator-loop отделяет рабочий срез от статусов и журнала.
- Что:
  - задача 17 переведена в done с закрытыми критериями.
  - журнал дополнен ревью, bounded runtime gate и коммитом.
- Проверка:
  - staged-состав содержит только issue 17 и журнал.
2026-07-05 21:33:35 +03:00
ddadmin 00c97eb063 test(generator): усилены проверки startup-history и Superset
- Зачем:
  - зелёный результат проверок должен означать фактический стык и точный контракт дашборда.
- Что:
  - проверка startup-history читает manifest, требует live seam и непустой ODS.
  - добавлен быстрый runtime gate для daily-wave и live-продолжения.
  - Superset sync ограничен целевым dashboard и сверяет существенные params.
- Проверка:
  - docker target tests; make generator-test; make generated-history-runtime-check.
2026-07-05 21:32:51 +03:00
ddadmin 9804d0beae docs(generator): закрыта задача 16 в трекере
- Зачем:
  - coordinator-loop отделяет рабочие изменения от статусов и журнала.
- Что:
  - задача 16 переведена в done с закрытыми критериями.
  - журнал дополнен ревью, стендовым gate и коммитами.
- Проверка:
  - staged-состав содержит только issue 16 и журнал.
2026-07-05 20:47:41 +03:00
ddadmin 27947cee57 fix(airflow): исправлен запуск пульта на свежем стенде
- Зачем:
  - свежий стенд должен доходить до generator_control без скрытых ручных шагов и зависаний.
- Что:
  - quick start явно готовит DDL и откладывает Superset init до готового DM.
  - generator_control проверяет паузу etl_pipeline до мутирующих шагов.
  - make up пересобирает Airflow и поднимает базовый набор сервисов.
- Проверка:
  - make generator-test; docker compose config --quiet; make clean; make up; make ddl.
2026-07-05 20:47:02 +03:00
ddadmin 108053bfc2 docs(generator): закрыта задача 15 в трекере
- Зачем:
  - coordinator-loop требует отделять рабочий срез от статусов и журнала.
- Что:
  - задача 15 переведена в done с закрытыми критериями.
  - журнал дополнен происхождением ревью и коммит-гейтом.
- Проверка:
  - git status --short и staged-состав перед коммитом.
2026-07-05 20:21:55 +03:00
ddadmin 080d5ae313 fix(generator): исключено смешение миров при запуске
- Зачем:
  - старый state и ручной live-генератор могли тихо писать события в новый мир данных.
- Что:
  - добавлена общая проверка чистого стенда для Airflow и host-путей.
  - защищены backfill, import, continue и clean-start сценарии live-generator.
  - описан миграционный отказ старого state.
- Проверка:
  - make generator-test; docker compose config --quiet; py_compile; bash -n.
2026-07-05 20:21:13 +03:00
ddadmin 525bd8cabf docs(issues): оформлены задачи кросс-ревью генератора
- Зачем:
  - нужен готовый набор задач для закрытия находок кросс-линейного ревью.
- Что:
  - добавлены issue 15-18 по границе миров, свежему стенду, проверкам и курсу.
  - обновлены навигация PRD и блокировка будущей доливки истории.
  - уточнены риски fallback, Superset sync и простоя daily-wave.
- Проверка:
  - git diff --cached --check.
2026-07-05 01:00:39 +03:00
ddadmin 1b1c37e3bf docs(agents): уточнён формат имени handoff-файла
- Зачем:
  - формат даты в имени handoff-файла приведён в соответствие с фактическим шаблоном, который использует скилл.
- Что:
  - изменён шаблон имени с `.scratch/handoffs/YYYY-MM-DD-<slug>.md` на `.scratch/handoffs/YYYYMMDD-HHMM-<slug>.md` в AGENTS.md.
- Проверка:
  - открыть AGENTS.md и убедиться, что указан актуальный формат.
2026-07-05 00:12:41 +03:00
ddadminandClaude Fable 5 749ae91a07 docs(handoff): кросс-линейное ревью цепочки генератора
- Зачем:
  - зафиксировать результат кросс-прохода другой родословной по
    c672ed0..ec815ce для передачи в багфикс-цепочку.
- Что:
  - отчёт: 1 critical, 5 high, 10 medium, 4 low; четыре сквозных семейства
    (смешение миров, стенд без live, ложнозелёные проверки, чистый клон).
  - маршрутизация находок и предложение порядка багфикс-цепочки.
- Проверка:
  - находки доказаны исполнением: мутационные тесты, compose-эксперимент,
    зонды на сиде, Context7 по Airflow 2.10.5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 00:03:44 +03:00
ddadmin 549ce0c00d docs(handoff): добавлен независимый ревью-проход в handoff цепочки
- Зачем:
  - следующий шаг handoff — независимый ревью диапазона c672ed0..HEAD;
    результат нужно зафиксировать для продолжения в новой сессии.
- Что:
  - добавлен раздел «Независимый ревью-проход» (свежий взгляд, без субагентов):
    вердикт, прогнанные тесты 172+5, находки по задачам, косметические мелочи.
  - обновлены «Открытые риски» и «Следующий шаг»: остаётся HITL-приёмка и
    решение по задаче 13.
- Проверка:
  - git show --stat HEAD; ревью-раздел читается в handoff.
2026-07-04 23:58:09 +03:00
ddadmin ec815cea82 docs(handoff): добавлен handoff цепочки генератора
- Зачем:
  - нужен обязательный handoff перед выходом из coordinator-loop.
- Что:
  - зафиксированы коммиты, происхождение ревью и отклонения процесса.
  - перечислены открытые риски, ручная приёмка и следующий шаг по issue 13.
- Проверка:
  - git diff --cached --check.
2026-07-04 23:13:17 +03:00
ddadmin f8b419d84d docs(generator): закрыты находки финального ревью цепочки
- Зачем:
  - финальный review должен видеть согласованные PRD, issue, курс, Superset и архитектурные документы.
- Что:
  - обновлены PRD, чекбоксы закрытых issue и журнал coordinator-loop.
  - синхронизированы архитектура, карта репозитория, CONTEXT и курс со startup-history-путём.
  - убраны старые маркеры Superset-геокарты после перехода на Top Countries.
- Проверка:
  - rg-проверки финального review по PRD, issue и Superset-маркерам.
  - git diff --cached --check.
2026-07-04 23:09:15 +03:00
ddadmin 3d4e13c541 docs(issues): закрыта задача 08 по миграции курса
- Зачем:
  - нужно зафиксировать состояние трекера после рабочего коммита issue 08.
- Что:
  - задача 08 переведена в done.
  - журнал coordinator-loop дополнен ревью-гейтом и коммит-гейтом.
- Проверка:
  - git diff --cached --check.
2026-07-04 22:23:15 +03:00
ddadmin d76c03655b docs(course): переведены уроки на стартовую историю
- Зачем:
  - учебный путь должен идти через генерацию и штатный пайплайн, а не через архивный сид.
- Что:
  - обновлены уроки 00-06 и стандарт урока под startup-history/backfill.
  - объяснено, что data/*.jsonl остаются кладовкой значений генератора.
  - тест-план переведён на новый штатный запуск и HITL-приёмку.
- Проверка:
  - rg -n \"make clean/up/ddl/data/transform|make data|kafka_load|LIMIT=|2022-11-28|26 из 50\" docs/course docs/TEST_PLAN.md.
  - git diff --cached --check.
2026-07-04 22:22:36 +03:00
ddadmin de938edb06 docs(issues): закрыта задача 10 по гео-графику
- Зачем:
  - нужно зафиксировать состояние трекера после рабочего коммита issue 10.
- Что:
  - задача 10 переведена в done.
  - журнал coordinator-loop дополнен ревью-гейтом и коммит-гейтом.
- Проверка:
  - git diff --cached --check.
2026-07-04 22:06:36 +03:00
ddadmin 0c80e2438e fix(superset): заменена нечитаемая гео-карта
- Зачем:
  - гео-блок дашборда должен показывать понятную метрику, единицы и сравнение стран.
- Что:
  - legacy world_map заменён на столбцы Top Countries by Events с tooltip и легендой.
  - синхронизирован экспорт дашборда и добавлены контрактные тесты.
  - обновлены документы и урок Superset по новому гео-блоку.
- Проверка:
  - uv run --with pytest pytest tests/test_superset_dashboard_config.py.
  - uv run python -m py_compile superset/create_dashboard.py tests/test_superset_dashboard_config.py.
  - jq empty superset/dashboards/ecommerce_analytics.zip.json.
2026-07-04 22:05:56 +03:00
ddadmin 0f435d70fd docs(issues): закрыта задача 09 по фактуре визита
- Зачем:
  - нужно зафиксировать состояние трекера после рабочего коммита issue 09.
- Что:
  - задача 09 переведена в done.
  - журнал coordinator-loop дополнен двумя кругами гейтового ревью и коммит-гейтом.
- Проверка:
  - git diff --cached --check.
2026-07-04 21:47:00 +03:00
ddadmin e2d06841de fix(generator): сохранена фактура визита при восстановлении
- Зачем:
  - визит после восстановления не должен менять браузер и источники перехода внутри одного click_id.
- Что:
  - добавлен base_click_id в state v3 для восстановления донора фактуры.
  - исправлено восстановление timestamp offset без потери микросекунд.
  - расширены тесты и стыковая проверка browser/source и device/os/geo.
- Проверка:
  - uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
  - bash -n scripts/check_generated_analytics.sh.
  - git diff --cached --check.
2026-07-04 21:46:23 +03:00
ddadmin 0cbfe9b32e docs(issues): закрыта задача 14 по быстрому профилю
- Зачем:
  - нужно зафиксировать состояние трекера после рабочего коммита issue 14.
- Что:
  - задача 14 переведена в done.
  - журнал coordinator-loop дополнен ревью-гейтом и коммит-гейтом.
- Проверка:
  - git diff --cached --check.
2026-07-04 21:18:30 +03:00
ddadmin 9d1bcc43fa feat(generator): ускорен учебный профиль daily-wave
- Зачем:
  - суточная волна должна быть видна на занятии за минуты, а не за сутки работы стенда.
- Что:
  - профиль daily-wave переведён на speed 60 при тике 1 секунда.
  - приглушены подробные live-логи успешного тика без изменения сохранения state.
  - обновлены тесты, спека и инструкции запуска быстрого профиля.
- Проверка:
  - make generator-test.
  - git diff --cached --check.
2026-07-04 21:17:46 +03:00
ddadmin 200bb82890 docs(issues): закрыта задача 12 по пульту генератора
- Зачем:
  - нужно зафиксировать состояние трекера после рабочего коммита issue 12.
- Что:
  - задача 12 переведена в done.
  - журнал coordinator-loop дополнен ревью-гейтом и коммит-гейтом.
- Проверка:
  - git diff --cached --check.
2026-07-04 21:07:13 +03:00
ddadmin dd4af822d2 feat(airflow): добавлен пульт управления генератором
- Зачем:
  - нужен основной ручной интерфейс стенда для backfill/import/check без консольной матрицы переменных.
- Что:
  - добавлен DAG generator_control с параметрами Airflow, ветвлением операций и ожиданием ETL.
  - вынесена общая логика запуска и предпроверок генератора для Airflow.
  - обновлены compose-настройки, зависимости, тесты и документация по пульту.
- Проверка:
  - uv run --with pytest --with-requirements generator/requirements.txt pytest generator/tests -q.
  - docker compose config --quiet.
2026-07-04 21:06:30 +03:00
ddadminandClaude Fable 5 c672ed0329 docs(issues): дооформлены задачи 12 и 14, обновлён граф бэклога генератора
- Зачем:
  - подготовить цепочку 12 -> 14 -> 09 -> 10 -> 08 к передаче в coordinator-loop:
    задаче 12 не хватало решений после 07 и 11, задача 14 родилась из обсуждения
    учебного UX (суточная волна вживую).
- Что:
  - issue 12 (DAG-пульт): решения 2026-07-04 — без Docker-доступа из Airflow,
    операции как Python-код генератора в тасках, генератор без автостарта,
    границы пульта, предпроверки чистоты (топики + STG), ожидание ETL перед
    check; учтены находки адверсарного ревью и ревью Codex.
  - issue 14 (новая): профиль daily-wave переводится на speed=60 при тике 1 с —
    модельный час за настенную минуту без изменения фактуры мира.
  - issue 08: мягкие зависимости от 14 и 09 (артефакт курса рождается после
    них), режим ревью; PRD: задача 14 в списке и графе, 12 помечена дооформленной.
- Проверка:
  - вычитка: статусы задач ready-for-agent, порядок в PRD и Blocked by
    согласованы; mermaid-граф рендерится.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 20:42:46 +03:00
ddadmin 0a240e3077 docs(agents): закрыта цепочка генератора
- Зачем:
  - нужно зафиксировать итог coordinator-loop и обновить порядок оставшихся задач.
- Что:
  - PRD обновлен после завершения issue 07 и 11.
  - журнал дополнен финальным review и диагностикой nested reviewer tools.
- Проверка:
  - git diff --cached --check.
2026-07-04 19:01:14 +03:00
ddadmin 5081319651 docs(agents): обновлен журнал coordinator-loop
- Зачем:
  - нужен след ревью и коммит-гейта по issue 11.
- Что:
  - добавлены записи о worker-е, code review и коммите issue 11.
- Проверка:
  - git diff --cached --check.
2026-07-04 18:51:41 +03:00
ddadmin 4f8f992363 feat(generator): добавлены профили запуска
- Зачем:
  - запуск генератора должен быть понятным перед будущим DAG-пультом.
- Что:
  - добавлены глаголы запуска backfill, continue и reset.
  - добавлены профили ci и daily-wave с расчётом длительности истории.
  - обновлены runbook и документы запуска под профильный интерфейс.
- Проверка:
  - uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
  - bash -n scripts/run_generator.sh scripts/export_startup_history_artifact.sh scripts/import_startup_history_artifact.sh scripts/run_generated_history_analytics.sh.
  - PROFILE=daily-wave COMPOSE_BIN=true bash scripts/run_generator.sh backfill.
2026-07-04 18:51:10 +03:00
ddadmin d2899e9ee3 docs(agents): добавлен журнал coordinator-loop
- Зачем:
  - нужен воспроизводимый след review gate и коммит-гейта по цепочке 07 -> 11.
- Что:
  - добавлен журнал coordinator-loop для generator-model-time-startup-history.
- Проверка:
  - git diff --cached --check.
2026-07-04 18:24:27 +03:00
ddadmin 3c38465d89 feat(generator): добавлен артефакт стартовой истории
- Зачем:
  - чистый стенд должен восстанавливать стартовую историю без повторной генерации.
- Что:
  - добавлены export/import артефакта через Kafka и compact-топики.
  - добавлена manifest-aware сверка ClickHouse и защита от смешения state.
  - добавлен runbook использования стартовой истории.
- Проверка:
  - uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
  - bash -n scripts/check_startup_history_manifest.sh scripts/export_startup_history_artifact.sh scripts/import_startup_history_artifact.sh.
  - git diff --check.
2026-07-04 18:23:54 +03:00
ddadminandClaude Fable 5 ee4c9f5857 docs(generator): порядок бэклога «пульт вперёд» и граф задач в PRD
- Зачем:
  - узкое место — время человека на ручную приёмку: без DAG-пульта проверять
    миграцию курса пришлось бы через консоль.
- Что:
  - PRD, раздел «Задачи»: номер файла объявлен идентификатором (не порядком),
    порядок задан ветками и mermaid-графом; основная цепочка 07 -> 11 -> 12,
    миграция курса 08 — последней.
  - issue 08: добавлена мягкая зависимость от 12 (приёмка уроков через пульт).
  - handoff триажа: раздел «Следующий шаг» обновлён под новый порядок.
- Проверка:
  - mermaid-диаграмма проверена валидатором Mermaid; статусы задач не менялись.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 17:12:13 +03:00
ddadminandClaude Fable 5 f59b6d128f docs(generator): issue 09 и 10 дооформлены до ready-for-agent
- Зачем:
  - закрыть последний шаг триажа: без Acceptance criteria и способа приёмки
    задачи нельзя передавать Codex на исполнение.
- Что:
  - issue 09: причина уточнена по коду (расходится источник фактуры — донор
    против seed_click_id, а не индекс), зафиксировано решение хранить донора
    в state, критерии расширены полями location (referer, utm) по итогам ревью.
  - issue 10: приёмка по скриншотам playwright-cli с определением «читаемо»,
    поправлена длительность пересборки (6 часов по умолчанию, не 2 суток),
    отмечено, что legacy world_map, похоже, не умеет легенду и tooltip.
  - handoff триажа дополнен сдвигами в понимании и итогом тройного ревью.
- Проверка:
  - утверждения по коду сверены с generation.py, runtime.py, state.py и
    sql/ddl/dds/30_dds.sql двумя независимыми ревью-агентами.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 17:04:18 +03:00
ddadminandClaude Fable 5 95f9b5cbc8 docs(handoff): зафиксирован триаж бэклога и следующий шаг по 09 и 10
- Зачем:
  - продолжение работы планируется в новой сессии; нужен одноразовый
    handoff по ADR-0003 с решениями дня и точкой входа.
- Что:
  - записан handoff: рабочая форма Claude/Codex, решения по целеполаганию
    и бэклогу, очередь задач, следующий шаг — дооформить 09 и 10 до
    ready-for-agent, затем передача Codex.
- Проверка:
  - просмотр .scratch/handoffs/2026-07-04-generator-backlog-triage.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:39:40 +03:00
ddadminandClaude Fable 5 88d2c77624 docs(agents): статус done для завершённых задач локального трекера
- Зачем:
  - в конвенции набора скиллов нет состояния «сделано» (в GitHub это
    закрытие issue), из-за чего закрытые задачи помечались случайными
    ролями триажа (ready-for-human на сделанных 01-06).
- Что:
  - в issue-tracker.md добавлено: завершённая задача — Status: done,
    состояние жизненного цикла трекера, а не роль триажа;
    triage-labels.md с пятью ролями не тронут.
- Проверка:
  - просмотр docs/agents/issue-tracker.md, раздел «Соглашения».

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:39:40 +03:00
ddadminandClaude Fable 5 85f076e205 docs(generator): проведён триаж бэклога фичи, задачи 01-06 закрыты
- Зачем:
  - follow-up задачи после ревью 2026-06-14 лежали без триажа; решения по
    артефакту, громкому отказу и интерфейсу приняты 2026-07-04 и должны
    попасть в задачи до передачи исполнителю.
- Что:
  - задачи 07 (миграция курса) и 08 (артефакт) поменяны местами — номера
    отражают порядок; ссылки обновлены.
  - 07 (артефакт + runbook) дооформлен: импорт строго через Kafka (напрямую
    в ClickHouse не пишет), громкий отказ при несовместимом state с правкой
    спеки, граница runbook «использование, не устройство»; ready-for-agent.
  - 08 дооформлен: устройство генератора вне пути менти, реальный объём
    (make data во всех уроках 00-05), демо вне скоупа; ready-for-agent.
  - новые задачи: 11 глаголы/длительность/профили (после 07, до 12),
    12 Airflow-DAG как пульт (приоритет поднят), 13 доливка (после 09).
  - задачи 01-06 переведены в done (стояли ошибочные ready-for-human);
    PRD фичи дополнен списком задач 7-13 с порядком и зависимостями.
- Проверка:
  - head -1 .scratch/generator-model-time-startup-history/issues/*.md;
    grep по старым именам файлов ничего не находит вне handoff.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:39:40 +03:00
ddadminandClaude Fable 5 7d54e5fc1f docs(course): зафиксировано целеполагание стенда, демо-материалы удалены
- Зачем:
  - целеполагание было размазано по обсуждениям: место стенда в менторской
    программе и иерархия целей нигде не были записаны, а демо-употребление
    стенда устарело (выросло в отдельный проект).
- Что:
  - PRD курса §1: место стенда в треке ClickHouse (теория и лабы вне репо,
    здесь — интеграции), иерархия целей курс -> стенд -> генератор;
    схема потока обновлена на генератор как источник.
  - PRD §7: закрыта развилка про урок о генераторе (урока не будет,
    генератор — скрытая инфраструктура), добавлена открытая развилка про
    кластерную конфигурацию.
  - удалены DEMO_CHEATSHEET_5MIN.md и DEMO_SCRIPT_10_15MIN.md; ссылок на них
    в репозитории не осталось.
- Проверка:
  - grep -rn "DEMO_CHEATSHEET\|DEMO_SCRIPT" --include="*.md" . — только
    исторический handoff.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:39:16 +03:00
ddadminandClaude Opus 4.8 d7f02fd700 docs(generator): зафиксировано независимое ревью и задачи на потом
- Зачем:
  - после coordinator-loop нужно независимое ревью результатов модельного
    времени и стартовой истории; пропущенный внешний review gate после задачи 5
    закрыт другой родословной.
- Что:
  - добавлен verification-handoff: что проверено независимо, дефект стыка
    (issue 09) и открытые пробелы (×K, crash recovery, коридоры мат-спеки,
    воспроизводимость, review gate задачи 3).
  - заведены issues 08 (портативный артефакт + runbook + идеи интерфейса),
    09 (баг браузерной фактуры на стыке), 10 (читаемость гео-карты).
  - в docs/course/PRD.md §7 — открытый вопрос «генератор как скрытая
    инфраструктура vs отдельный урок».
- Проверка:
  - git show --stat HEAD
  - чтение .scratch/handoffs/2026-06-14-generator-model-time-verification-review.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 23:03:08 +03:00
ddadminandClaude Opus 4.8 86bba06f09 docs(handoff): handoff coordinator-loop перенесён в навык (указатель)
- Зачем:
  - авторитетная версия должна жить у навыка (dotfiles), рядом с handoff-побратимом; здесь — чтобы не плодить расходящиеся копии.
- Что:
  - полное содержимое заменено коротким указателем на dotfiles-версию.
- Проверка:
  - открыть .scratch/handoffs/2026-06-14-coordinator-loop-context-economy.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 21:39:46 +03:00