docs(generator): добавлена задача на test и lint цели

- Зачем:
  - коммит-гейт coordinator-loop требует единых быстрых команд проверки.
- Что:
  - добавлен issue 19 для make test и make lint.
  - PRD обновлён после закрытия задач 15-18.
  - журнал фиксирует follow-up перед финальным review.
- Проверка:
  - staged-состав содержит только PRD, журнал и issue 19.
This commit is contained in:
2026-07-05 22:03:34 +03:00
parent 6d64f3909a
commit 2778eae9f0
3 changed files with 66 additions and 3 deletions
@@ -85,8 +85,11 @@ Status: Implemented
профили запуска генератора. профили запуска генератора.
- Airflow-пульт генератора, быстрый `daily-wave`, фикс фактуры визита на - Airflow-пульт генератора, быстрый `daily-wave`, фикс фактуры визита на
восстановлении, читаемый гео-график и миграция курса на генерацию — закрыты восстановлении, читаемый гео-график и миграция курса на генерацию — закрыты
в текущей очереди 2026-07-04. Подробности и коммиты см. в issue-файлах и в очереди 2026-07-04.
`coordinator-journal.md`. - Доработки по кросс-линейному ревью 2026-07-05 закрыты в очереди 2026-07-05:
граница миров, свежий стенд и Airflow-пульт, доверенные проверки
startup-history/Superset, курс на чистом стенде. Подробности и коммиты см. в
issue-файлах и `coordinator-journal.md`.
Дальнейшая задача вне текущей очереди: Дальнейшая задача вне текущей очереди:
@@ -94,8 +97,11 @@ Status: Implemented
`needs-triage`. После кросс-линейного ревью 2026-07-05 блокируется `needs-triage`. После кросс-линейного ревью 2026-07-05 блокируется
задачами 15 и 17: доливка тиражирует стыки мира и должна опираться на задачами 15 и 17: доливка тиражирует стыки мира и должна опираться на
доверенную проверку фактической границы. доверенную проверку фактической границы.
- `issues/19-test-and-lint-targets.md` — единые `make test` и `make lint` для
коммит-гейта; `ready-for-agent`. Возникло из coordinator-loop 2026-07-05:
координатору пришлось вручную собирать тестовый набор из частных команд.
Доработки по кросс-линейному ревью 2026-07-05: Доработки по кросс-линейному ревью 2026-07-05 (закрыто):
- `issues/15-world-boundary-after-cross-review.md` — граница миров после - `issues/15-world-boundary-after-cross-review.md` — граница миров после
обновления, сброса и консольных запусков. обновления, сброса и консольных запусков.
@@ -120,6 +126,7 @@ flowchart LR
i17["17 доверенные проверки"] --> i18 i17["17 доверенные проверки"] --> i18
i15 --> i13 i15 --> i13
i17 --> i13 i17 --> i13
i19["19 make test/lint"]
``` ```
## Контрольные точки ## Контрольные точки
@@ -552,3 +552,6 @@
границах issue 18; журнал не staged. границах issue 18; журнал не staged.
- 22:00 Issue 18 рабочий коммит: `77e4fb6` - 22:00 Issue 18 рабочий коммит: `77e4fb6`
(`docs(course): согласованы уроки со startup-history`). (`docs(course): согласованы уроки со startup-history`).
- 22:02 Перед финальным review: добавлен follow-up issue 19 про единые
`make test`/`make lint`; PRD обновлён: 15-18 закрыты, открытыми остаются
13 (`needs-triage`) и 19 (`ready-for-agent`).
@@ -0,0 +1,53 @@
Status: ready-for-agent
# Единые make test и make lint для коммит-гейта
## Parent
`.scratch/generator-model-time-startup-history/PRD.md`
## Why
Во время coordinator-loop по задачам 15-18 координатор несколько раз упёрся в
отсутствие общих целей `make test` и `make lint`. Из-за этого коммит-гейт
собирался вручную из частных команд: `make generator-test`, `docker compose
config --quiet`, `py_compile`, `bash -n`, `git diff --check` и отдельных
стендовых проверок.
Для учебного проекта это плохой пример: у менти и агента должен быть один
понятный путь проверки, а не набор догадок.
## What to build
Добавить поддержанные цели `make test` и `make lint`, которые покрывают текущие
реальные проверки репозитория и не печатают лишний подробный вывод по умолчанию.
## Acceptance criteria
- [ ] `make test` существует и запускает полный быстрый набор проверок, нужный
перед коммитом: тесты генератора, контрактные тесты верхнего уровня и
ключевые проверки конфигурации.
- [ ] `make lint` существует и запускает статические проверки, которые сейчас
выполняются вручную: синтаксис Python, `bash -n`, `docker compose config
--quiet`, `git diff --check` или обоснованно выбранный эквивалент.
- [ ] Цели используют `uv` там, где нужен Python вне Docker, и не зависят от
локального `pytest`, случайно установленного на хосте.
- [ ] Шумные команды не вываливают полный список тестов при успешном прогоне;
подробный вывод доступен через явный режим или отдельную команду.
- [ ] `docs/OPERATIONS.md` или `README.md` кратко объясняет, когда запускать
`make test`, `make lint` и какие более дорогие стендовые проверки остаются
отдельными.
## Blocked by
Нет — можно начинать сразу.
## Notes
- Не включать в `make test` долгие или разрушительные проверки вроде
`make generated-history-runtime-check` без явного решения: они чистят volumes
и управляют стендом.
- Отдельно учесть проблему окружения coordinator-loop 2026-07-05: локальный
`uv run ... pytest` падал до запуска тестов из-за `snap-confine`, поэтому
цель должна либо идти через устойчивый Docker-путь, либо явно диагностировать
такую ошибку.