docs: линтеры и механизация переехали записью конвенций go-linters.md

- документ docs/autotests.md снят: перечень правил, подавлений и лестница
  механизации — это конвенция о том, чем машина читает код, и место ей среди
  прочих записей
- в шапке названо, чего в записи нет: как писать тесты. Свойства, которые обязан
  проверять тест, остаются в review.md, «Типовые узлы»
- ссылки переставлены в памятке, индексе конвенций, четырёх записях, review.md,
  .golangci.yml, lefthook.yml и пакете сканеров
This commit is contained in:
av
2026-08-13 09:11:49 +03:00
parent 8bcd2c0059
commit d8d6bcc193
11 changed files with 62 additions and 51 deletions
+9 -7
View File
@@ -8,9 +8,10 @@
Разделы ниже заполнены наперёд по коду и правятся по итогам прогонов: «Типовые
ложноположительные» первым прогоном уже пользовались.
Дом темы `autotests` — [autotests.md](autotests.md): что уже проверяет машина и
что из этого спрашивать больше не нужно. Вопросы ниже — то, чего машина не
проверяет.
Что уже проверяет машина и о чём поэтому спрашивать не нужно — конвенция
[conventions/go-linters.md](conventions/go-linters.md). Вопросы ниже — то, чего
машина не проверяет; свойства, которые обязан проверять тест, — в «Типовых
узлах».
### Типовые узлы
@@ -148,7 +149,8 @@
состоянию обработчика — **только там, где ответ идёт мимо recorder**, через
свой `http.ResponseWriter`. Обращение к живой карте recorder'а с
2026-08-12 роняет гейт правилом линтера
([autotests.md](autotests.md), «Механизировано»), и спрашивать о нём не нужно.
([conventions/go-linters.md](conventions/go-linters.md), «Механизировано»), и
спрашивать о нём не нужно.
- `security`: не открылась ли снова поверхность, которую приносит хранилище, —
собственная регистрация, вход по паролю, одноразовый код, восстановление
доступа, продление сессии. Всё это приходит включённым и закрывается нами
@@ -255,7 +257,7 @@ API и имя не откатываются обратной правкой по
но матчинг по тексту не видит; прозой это правило записано не было, и ревью его
не спрашивало
- **Что меняем:** узнавание переведено на `errors.Is(err, io.EOF)`; класс закрыт
тестом-сканером (docs/autotests.md, «Ошибки и отказы»)
тестом-сканером (docs/conventions/go-linters.md, «Ошибки и отказы»)
## 2026-08-13 — правило гейта обходилось одной лишней строкой [пойман ревью]
@@ -275,8 +277,8 @@ API и имя не откатываются обратной правкой по
которого писали. Мутация была, но одна — нужна была по одной на каждую форму
- **Что меняем:** правило судит по типу приёмника (`analyze-types`,
`httptest.ResponseRecorder.Header` и `.HeaderMap`) и ловит все шесть форм;
проверено мутацией по каждой. Отсюда же строка в docs/autotests.md, «Лестница
механизации»: запрет по имени, обходимый лишней строкой, — это ступень
проверено мутацией по каждой. Отсюда же строка в
docs/conventions/go-linters.md, «Лестница механизации»: запрет по имени, обходимый лишней строкой, — это ступень
тест-сканера, наряженная запретом
## 2026-08-12 — закрыли поверхность так, что войти не мог никто [пойман ревью]