0.26.0: пять дефектов, найденных на шести сайтах
Шесть сайтов, собранных подряд, дали пять дефектов. Четыре из них уже были запрещены написанным правилом — и всё равно случились.

Шесть сайтов, собранных одним и тем же скиллом за два дня, — это лучший тест на то, что в маршруте написано зря. Нашлось пять дефектов, и четыре из них были описаны правилом, которое существовало до сборки.
Отсюда вывод, важнее самих правок: **правило про считаемое свойство, которое никто не считает, шаблон нарушает сам.** Три из пяти стали проверками в `npm run audit`.
Что было сломано
**Бейдж на ховер пропал у большинства списочных секций.** Правило говорит: всё, что лежит списком, отвечает курсору. Тринадцать секций не отвечали. Теперь каждая несёт свою подпись, а аудит падает на секции, которая рисует карточки и не реагирует на курсор нигде.
**Закрывающая секция поверх формы в подвале давала странице два конца.** Форма стоит на каждой странице, и любой призыв ведёт к ней; блок «давайте работать» над ней спрашивает второй раз, и выигрывает нижний — не смыслом, а положением.
**В подвале некуда было положить строчку копирайта.** Правило велело спросить её у заказчика, а поля под ответ не было. Самый надёжный способ потерять вопрос — задать его и не приготовить место для ответа.
**Шапка была нечитаема над первым экраном в брендовом цвете.** Признак «тёмный экран» был булевым, а экранов три вида: тёмный, светлый и залитый цветом бренда. На заливке шапка красилась белым и давала 1.19 к одному.
И одна команда
`npm run headings` водит браузер по всем маршрутам во всех языках на двух ширинах, группирует слова заголовка по вертикали — это и есть строка — и падает, если последняя строка короче 40 процентов предыдущей. Дыры в крупных заголовках были описаны в двух местах маршрута, и шесть сайтов всё равно уехали с ними: где ломается строка — это факт вёрстки, и никакая проверка по файлам его не даёт.
Ещё в блоге
Две, не больше. Более длинная лента превращает конец статьи во вторую индексную страницу, а читатель уже сделал выбор один раз.

