Files
transcriber/tasks/items/archrule-config-knows-no-transport.md
T
av 11269c1567 учёт: заведён урожай ревью входа по конфигу
- пять задач партии review-2026-08-23: многозначность Remote-Name и Remote-Email,
  мелочи входа, механизация правила о зависимостях конфига, снятие мёртвого
  читателя .env, управляющие знаки в расширении
- две существующие разведки дополнены находками того же прогона: адрес объекта в
  тексте отказа SpeechKit и выводимость имени копии из журнала
2026-08-23 14:03:52 +03:00

43 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧹 Механизировать правило «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`.
## Рамки
Внутренний порядок задан: сначала перенос файла во внешний пакет, потом правило,
— иначе правило по всем файлам уронит гейт. Норма не пересматривается: правится
то, чем она проверяется, а не она сама.