- пять задач партии review-2026-08-23: многозначность Remote-Name и Remote-Email, мелочи входа, механизация правила о зависимостях конфига, снятие мёртвого читателя .env, управляющие знаки в расширении - две существующие разведки дополнены находками того же прогона: адрес объекта в тексте отказа SpeechKit и выводимость имени копии из журнала
3.2 KiB
🧹 Механизировать правило «internal/config не знает транспорта»
- Тип: chore
- Категория: Очередь — Оба правят проверки, которым потом верят: правило направления зависимостей встаёт рядом с покрытием оснастки, до задач, что опираются на зелёный гейт
- Зачем: правило записано конвенцией, а сканера у него нет; проект его уже нарушает — go test ./internal/config линкует всю поверхность HTTP, и будущая надобность конфига в транспорте даст цикл импорта на уровне проверок
- Теги: review-2026-08-23
Направление зависимостей в проекте держат тесты-сканеры internal/archrules, а
не договорённость. У правила «internal/config не знает транспорта» сканера нет,
и проект его уже нарушает — файлом проверок, а не рабочим кодом.
Нашёл прогон ревью config-test-headers-login 2026-08-23: норма записана в
docs/conventions/config.md, а grep -n "config" internal/archrules/arch_test.go
не даёт ни одного совпадения. Нарушает её сегодня файл проверок —
internal/config/test_headers_test.go объявлен package config и импортирует
internal/controller/http. В рабочем бинарнике этого ребра нет, но
go test ./internal/config линкует всю поверхность HTTP.
Затрагивает
internal/config/test_headers_test.go— перевод во внешний пакетpackage config_test;internal/archrules/arch_test.go— новое правило;docs/conventions/config.md— источник нормы, которую правило механизирует.
Критерии приёмки
- Правило существует и зелёное. Оракул:
internal/archrules/arch_test.goсодержит правило «internal/configне знает транспорта», иgo test ./internal/archrulesзелёный. - Файл проверок объявлен
package config_test. Оракул:head -1 internal/config/test_headers_test.goдаётpackage config_test,go test ./internal/configзелёный. - Импорта
internal/controller/httpв пакетеconfigнет. Оракул:go list -deps ./internal/configне содержитinternal/controller/http, и то же говорит новое правилоinternal/archrules.
Рамки
Внутренний порядок задан: сначала перенос файла во внешний пакет, потом правило, — иначе правило по всем файлам уронит гейт. Норма не пересматривается: правится то, чем она проверяется, а не она сама.