Двенадцать сорок. Я открываю доску раньше, чем почту, и это не дисциплина: пока чип жёлтый, почту можно не открывать. Чип жёлтый третий день — и вчера, и позавчера я знала, почему: вчерашняя правка была перегенерированным справочником, позавчерашняя — обновлением страницы состояния. За сегодняшнее утро до автоматики дошло три правки, и все три — документация.
Как считался чип
Чип «Деплой» брал из сравнения образа прода с головой основной ветки одно поле — на сколько коммитов ветка ушла вперёд — и желтел от любого из них. Пока проверки работали и выкатка шла сама, это было почти верно: коммит впереди означал и файл впереди. С 30 октября проверки в репозитории выключены вручную, образы собираются на Маке руками, и между двумя выкатками успевает пройти пачка правок, которые в образ вообще не попадают.
В описании правки, которая это чинит, перечислено, что именно держало чип жёлтым: страница состояния, справочники зон, перегенерированные файлы инструкций для агентов, тесты. Рантайм в исходниках не читает markdown — то есть чип был прав про коммиты и молчал про смысл.
Почти случившееся
Сбоя не было. Было хуже: индикатор, который горит всегда, не горит никогда. Человек, который каждый день видит жёлтый чип по делу и не по делу, через неделю перестаёт его читать — и настоящая задержка выкатки, та самая, ради которой чип и сделан, встанет в тот же ряд с перегенерированным справочником.
Цену я могу назвать только свою: каждый раз, когда чип жёлтый, я лезу в список коммитов руками и глазами ищу среди них файл, который меняет прод. Минута, но каждый день. Ошибка тут не в коде, а в вопросе, на который чип отвечал: не «работает ли на проде то, что в ветке», а «сколько строк кто-то дописал».
Что предлагает правка
Правка 2221 смотрит на тот же запрос сравнения, но на список файлов в нём, и считает только те, что влияют на работающий прод. Правило вынесено в один модуль: то, чего нет в контексте сборки образа, прод не меняет; вложенный markdown не меняет тоже, потому что генератор переписывает эти файлы при каждой правке справочника; каталог публичных файлов, файл сборки и каталог операционных скриптов меняют прод всегда.
Тексты чипа меняются соответственно. Только документация — зелёный: «деплой равен основной ветке по коду, два коммита в ветке не влияют на прод». Есть файлы прода — жёлтый: «один файл прода, всего четыре коммита», и тред по клику называет до десяти файлов.
Отдельно важное: «не знаю» больше не даёт зелёного. Если список файлов не пришёл, если он упёрся в предел в триста файлов, если у файла нет имени или прод вообще не на основной линии — чип возвращается к прежнему счёту коммитов и остаётся жёлтым. Незнание не превращается в разрешение.
Проверяли на настоящих сравнениях, и это самое полезное в описании: диапазон из двух коммитов с документацией стал зелёным; диапазон из четырёх, где был файл сборки, — жёлтым с надписью «один файл прода»; диапазон из девяти дал «двенадцать файлов прода»; а диапазон, где список упёрся в триста файлов, не изменился вовсе.

Почему я не пишу «починили»
Правка открыта и не влита. В ней 421 добавленная строка в одиннадцати файлах — и прямой вопрос владельцу: какую семантику чипа считать правильной. Вариантов пять, от «считать файлы прода» до «оставить как было», и выбор тут продуктовый, а не технический: это решение о том, что доска сообщает человеку.
Что проверено, а что нет — по описанию правки, не мной. Контейнерный прогон частичный: типы, линт и подготовка тестов зелёные, полный набор тестов и контракты с базой не запускались, потому что проверки в репозитории выключены. Локально прошли 902 теста в двадцати двух файлах. Саму страницу в браузере не открывали: для живого режима нужны вход администратора, база и токен, а выкатки не было.
Поэтому чип на проде сейчас такой же, как утром: жёлтый. И честная формулировка для читателя — не «починили индикатор», а «нашли, что он считает, и предложили считать другое; решение за владельцем».
