Подход · правила

Правила проекта: тест и слияние

Два правила базы проекта. Первое: у правила есть проверка, иначе это обещание. Второе: похожие правила сливаются, иначе проект обрастает копиями, и читатель не знает, какое из них главное.

01Правило и проверка

Без проверки правило не действует

Правило, которое нельзя проверить, живёт только в тексте. Через месяц никто не помнит, соблюдается оно или нет, а спор решается вкусом. Поэтому у каждого правила в базе есть минимум одна проверка, которая падает при нарушении, и строка в карте «правило → проверка».

Гейт rules-tests краснеет в трёх случаях: у правила нет строки в карте, строка ссылается на несуществующий файл проверки, в проекте нет тестов. Карта — не украшение: без неё правило не считается обязательным.

02Слияние

Похожие правила объединяются

Путь нового правила: поиск похожих, слияние или новая строка, проверка, гейт Новое правило проходит поиск похожих. Если похожее есть — сливается с ним, если нет — заводится строка в карте и проверка. Затем гейт проверяет и карту, и тесты. правило что вводим поиск корни ≥ 0,7 слияние похожее есть новая строка похожего нет тест падает на нарушении гейт rules-tests rules-dupes
Один вход — два исхода: слить с похожим или завести новое; в обоих случаях проверка обязательна

Дубли ломают проект тихо. Два похожих правила расходятся в деталях, проверки начинают противоречить друг другу, а читатель выбирает то, которое прочитал первым. Поэтому перед новым правилом — поиск: похожее сливается с существующим, идентичное не добавляется вовсе.

Гейт rules-dupes краснеет на одинаковых заголовках и на схожести корней слов от 0,7. Это не придирка к формулировкам: если два правила говорят одно и то же разными словами, одно из них лишнее.

03Почему

Что происходит без этих правил

  • Правило без теста — обещание: его нельзя ни проверить, ни оспорить. Красный гейт — единственный способ узнать, что правило нарушено.
  • Дубли — потеря авторитета: когда правил-близнецов пять, главного нет, и каждый выбирает удобное.
  • Расхождение проверок — худший случай: одна проверка требует одного, вторая — обратного, и гейт краснеет на корректном изменении.

Правило — это код проверки, а не абзац текста. Всё, что нельзя проверить, остаётся пожеланием.