- пять задач партии review-2026-08-23: многозначность Remote-Name и Remote-Email, мелочи входа, механизация правила о зависимостях конфига, снятие мёртвого читателя .env, управляющие знаки в расширении - две существующие разведки дополнены находками того же прогона: адрес объекта в тексте отказа SpeechKit и выводимость имени копии из журнала
43 lines
3.2 KiB
Markdown
43 lines
3.2 KiB
Markdown
# 🧹 Механизировать правило «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`.
|
||
|
||
## Рамки
|
||
|
||
Внутренний порядок задан: сначала перенос файла во внешний пакет, потом правило,
|
||
— иначе правило по всем файлам уронит гейт. Норма не пересматривается: правится
|
||
то, чем она проверяется, а не она сама.
|