refactor(make): правки по холодному ревью реализации

- Зачем:
  - половина критерия приёмки стояла не там, где решено: предупреждение о ручном равенстве версий ruff адресовано тому, кто правит лок в generator/, а лежало в корневом Makefile.
  - довод «генератор — отдельная сущность» был выписан трижды почти дословно.
- Что:
  - равенство версий и охват корневой цели названы в карте проверок; три примечания к таблице собраны списком.
  - названа цена занижения target-version: даги бегут на 3.13 и модернизаций не получают.
  - шапка generator/Makefile вырезана, корневая сжата до строки, объяснение в ruff.toml укорочено.
  - формулировки в AGENTS.md и README поправлены.
- Проверка:
  - make lint; make config-test — зелёные.
  - make -C generator lint; typecheck — зелёные; исходники генератора не менялись.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-09 21:49:54 +03:00
co-authored by Claude Opus 5
parent 6a708cd5aa
commit e4e5688775
6 changed files with 24 additions and 24 deletions
+12 -5
View File
@@ -54,11 +54,18 @@
генератора, генераторная — ни одного файла стенда. Человек в корне видит
зелёное и может решить, что зелёный весь репозиторий.
Список правил у обеих один, а строгость нет: правила `UP` предлагают синтаксис
настолько новый, насколько позволяет `target-version`, — у генератора это 3.14
из `requires-python`, у стенда 3.10, младшая из версий Python в его образах.
Один и тот же файл может пройти корневую проверку и не пройти генераторную.
Довод и замер — в комментарии `ruff.toml`.
Три тонкости, которых не видно из таблицы:
- **Список правил у дверей один, а строгость нет.** Правила `UP` предлагают
синтаксис настолько новый, насколько позволяет `target-version`: у генератора
это 3.14 из `requires-python`, у стенда 3.10 — столько у Superset, младшего из
его образов. Один и тот же файл может пройти корневую проверку и не пройти
генераторную. Довод и замер — в комментарии `ruff.toml`.
- **Версия ruff у корневой цели закреплена в самом вызове** (`uvx ruff@0.16.1`)
и равна той, что в `generator/uv.lock`. Равенство держится руками: обновили
лок — поправьте и вызов, сверять их некому.
- **Охват держат аргументы вызова, а не устройство дерева.** Python,
положенный вне двух названных в таблице путей, не проверит ни одна из дверей.
**Корневого `typecheck` нет, и это решение, а не пропуск.** Проверке типов мало
прочитать файл: чтобы понять `from airflow.sdk import dag`, ей нужен